Hallo Programmierer,
ich versuche gerade es selber zu programmieren und habe jetzt ein Problem mit dem Befehl Member. Kann mir jemand weiterhelfen warum der LISP-Befehl nicht funktioniert ?
Ich lasse alle Teile in einer Liste speichern. In einer zweiten Liste will ich die Modellnamen/Inhalts-ID speichern lassen. Mit Member will ich prüfen lassen ob der Modellname schon existiert.
Member gibt aber keine Liste zurück auch wenn der Modelname existiert.
Die Displayausgaben zeigen das die Liste richtig zusammengesetzt wird und member keine Liste zurückliefert.
Im folgenden ist der Quellcode und die Displayausgabe.
Tschuess
Martin
QUELLCODE
---------
; Liste aller Teile speichern und Anzahl ermitteln
(setf total-ls nil)
(setf total-ls (sd-call-cmds (get_selection :focus_type *sd-part-seltype* :allow_wire_part :allow_face_part :select :recursive :in_assembly A_ASSEM)))
(setf total (length total-ls ))
; Den Modellnamen/Inhalts-ID in eine neue Liste speichern
(setf artikel-ls nil)
(dolist (teil total-ls)
(setf modellname (SD-INQ-OBJ-CONTENTS-NAME teil))
(setf member-ls (member (SD-INQ-OBJ-CONTENTS-NAME teil) artikel-ls))
(display (format NIL "Teil ~A" (SD-INQ-OBJ-CONTENTS-NAME teil)))
(display (format NIL "Liste ~A" artikel-ls))
(display (format NIL "Member ~A" (member (SD-INQ-OBJ-CONTENTS-NAME teil) artikel-ls)))
(display (format NIL "Member ~A" (member modellname artikel-ls)))
(display (format NIL "Member-ls ~A" member-ls))
(display " ")
; Der Modellname soll nur in die Liste geschrieben werden wenn er nicht in der Liste vorhanden ist
(when (length (member (SD-INQ-OBJ-CONTENTS-NAME teil) artikel-ls))
(push (SD-INQ-OBJ-CONTENTS-NAME teil) artikel-ls)
)
)
(setf artikel (length artikel-ls))
DISPLAYAUSGABE
--------------
Teil B92.06431_019S
Liste NIL
Member NIL
Member NIL
Member-ls NIL
Teil B92.V0012
Liste (B92.06431_019S)
Member NIL
Member NIL
Member-ls NIL
Teil B92.V0014
Liste (B92.V0012 B92.06431_019S)
Member NIL
Member NIL
Member-ls NIL
Teil B92.V0009
Liste (B92.V0014 B92.V0012 B92.06431_019S)
Member NIL
Member NIL
Member-ls NIL
Teil B92.06619_002S
Liste (B92.V0009 B92.V0014 B92.V0012 B92.06431_019S)
Member NIL
Member NIL
Member-ls NIL
Teil B92.V0009
Liste (B92.06619_002S B92.V0009 B92.V0014 B92.V0012 B92.06431_019S)
Member NIL
Member NIL
Member-ls NIL
Teil 300.74763
Liste (B92.V0009 B92.06619_002S B92.V0009 B92.V0014 B92.V0012
B92.06431_019S)
Member NIL
Member NIL
Member-ls NIL
Teil B92.03657
Liste (300.74763 B92.V0009 B92.06619_002S B92.V0009 B92.V0014 B92.V0012
B92.06431_019S)
Member NIL
Member NIL
Member-ls NIL
Teil B92.01092
Liste (B92.03657 300.74763 B92.V0009 B92.06619_002S B92.V0009 B92.V0014
B92.V0012 B92.06431_019S)
Member NIL
Member NIL
Member-ls NIL
Teil B92.03657
Liste (B92.01092 B92.03657 300.74763 B92.V0009 B92.06619_002S B92.V0009
B92.V0014 B92.V0012 B92.06431_019S)
Member NIL
Member NIL
Member-ls NIL
Teil B92.03657
Liste (B92.03657 B92.01092 B92.03657 300.74763 B92.V0009 B92.06619_002S
B92.V0009 B92.V0014 B92.V0012 B92.06431_019S)
Member NIL
Member NIL
Member-ls NIL
Teil B92.03657
Liste (B92.03657 B92.03657 B92.01092 B92.03657 300.74763 B92.V0009
B92.06619_002S B92.V0009 B92.V0014 B92.V0012 B92.06431_019S)
Member NIL
Member NIL
Member-ls NIL
Teil B92.03657
Liste (B92.03657 B92.03657 B92.03657 B92.01092 B92.03657 300.74763
B92.V0009 B92.06619_002S B92.V0009 B92.V0014 B92.V0012
B92.06431_019S)
Member NIL
Member NIL
Member-ls NIL
------------------
OSDM - Die freie Wissensdatenbank
WorkManager Forum
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP