| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
| |
 | Optimieren Sie Ihr Rechenzentrumsn, eine Pressemitteilung
|
Autor
|
Thema: Elemente aus Liste löschen (1337 mal gelesen)
|
StephanWörz Mitglied Maschinenbautechniker
  
 Beiträge: 786 Registriert: 11.10.2000 exone - Win10 i9-12900K 3187MHz 32GB Ram nVidia RTX A5000 creo elements/direct V20.5.1.0 SolidPower V20.4 ModelSearch KeyShot 11 CADdoktor SX PHOENIX V11
|
erstellt am: 27. Jul. 2012 09:44 <-- editieren / zitieren --> Unities abgeben:         
Guten morgen! Das nächste Problem hält mich auf! Ich brauche einen Tipp zum grundsätzlichen herangehen an folgende Sache: Ich habe eine Lister aller Teile in einer Baugruppe Code: (setf AlleTeileGlied1 (sd-call-cmds (get_selection :focus_type *sd-part-seltype* :select :recursive :in_assembly LayoutBgr)))
...nun wird diese Baugruppe inhaltlich erweitert (es kommen Teile hinzu). Ich lese nun wieder eine Liste aller Teile dieser Baugruppe aus: Code: (setf AlleTeileGlied12 (sd-call-cmds (get_selection :focus_type *sd-part-seltype* :select :recursive :in_assembly LayoutBgr)))
Wie komme ich nun zu einer Liste in der nur die neu hinzugekommenen Teile drinstehen Ich habe folgendes versucht: Zitat: (setq AlleTeileGlied2 (copy-seq AlleTeileGlied12)) (dolist (Teil AlleTeileGlied1) (setq AlleTeileGlied2 (remove Teil AlleTeileGlied2 )) );;dolist
...irgendwie passiert hier gar nichts. Welche Möglichkeiten gibt es um eine Liste "AlleTeileGlied12" um den Inhalt einer 2. Liste "AlleTeileGlied1" zu erleichtern??
------------------ ...viele Grüße Stephan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Patrick Weber Mitglied Konstruktionstechniker, Admin
  
 Beiträge: 659 Registriert: 20.11.2006
|
erstellt am: 27. Jul. 2012 10:16 <-- editieren / zitieren --> Unities abgeben:          Nur für StephanWörz
http://jtra.cz/stuff/lisp/sclr/set-difference.html(setq AlleTeileGlied12 (set-difference AlleTeileGlied12 AlleTeileGlied1)) oder (nset-difference AlleTeileGlied12 AlleTeileGlied1) nset-difference ist also die destruktive Version von set-difference. Die nähere Definition findest du im Hyperspec (display (set-difference '(A B C D E F) '(A C D))) => (B E F) ------------------ Grüße aus Sachsen pw
Karl Marx ist tot, Einstein ist tot, und mir ist auch schon ganz schlecht! [Diese Nachricht wurde von Patrick Weber am 27. Jul. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StephanWörz Mitglied Maschinenbautechniker
  
 Beiträge: 786 Registriert: 11.10.2000 exone - Win10 i9-12900K 3187MHz 32GB Ram nVidia RTX A5000 creo elements/direct V20.5.1.0 SolidPower V20.4 ModelSearch KeyShot 11 CADdoktor SX PHOENIX V11
|
erstellt am: 27. Jul. 2012 11:02 <-- editieren / zitieren --> Unities abgeben:         
Hallo Patrick, leider haut das nicht hin! Dein Beispiel Code: (display (set-difference '(A B C D E F) '(A C D))) => (B E F)
tut wie erwartet. Code: (setq AlleTeileGlied12 (set-difference AlleTeileGlied12 AlleTeileGlied1)) oder (nset-difference AlleTeileGlied12 AlleTeileGlied1)
...hier tut sich bei beiden Varianten gar nix???
------------------ ...viele Grüße Stephan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Patrick Weber Mitglied Konstruktionstechniker, Admin
  
 Beiträge: 659 Registriert: 20.11.2006
|
erstellt am: 27. Jul. 2012 11:24 <-- editieren / zitieren --> Unities abgeben:          Nur für StephanWörz
Ich habe zur Zeit nix, womit ich das testen könnte. Vielleicht fehlt nur ein Testkriterium? (setq AlleTeileGlied12 (set-difference AlleTeileGlied12 AlleTeileGlied1 :test #'equal)) ------------------ Grüße aus Sachsen pw Karl Marx ist tot, Einstein ist tot, und mir ist auch schon ganz schlecht! [Diese Nachricht wurde von Patrick Weber am 27. Jul. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StephanWörz Mitglied Maschinenbautechniker
  
 Beiträge: 786 Registriert: 11.10.2000 exone - Win10 i9-12900K 3187MHz 32GB Ram nVidia RTX A5000 creo elements/direct V20.5.1.0 SolidPower V20.4 ModelSearch KeyShot 11 CADdoktor SX PHOENIX V11
|
erstellt am: 27. Jul. 2012 12:49 <-- editieren / zitieren --> Unities abgeben:         
...folgendes hat nun geklappt: Code: (setq AlleTeileGlied2 (set-difference AlleTeileGlied12 AlleTeileGlied1 :test #'equal))
Herzlichen Dankf für die Unterstützung ------------------ ...viele Grüße Stephan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |