| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Objekte auf Layer vorhanden (942 mal gelesen)
|
Christian01 Mitglied Technischer Zeichner
Beiträge: 281 Registriert: 17.04.2007
|
erstellt am: 05. Dez. 2013 16:07 <-- editieren / zitieren --> Unities abgeben:
Hallo liebe Community, ich steh irgendwie im Wald. Könnt ihr mir bitte helfen. Code:
(defun C:Plaene_on (/ obj1 obj2) (if (tblsearch "Layer" "Plaene") ; ---> TEIL1 ( (command "-Layer" "_on" "Plaene" "") (setq elem1 (ssget "X" '((0 . "IMAGE") (8 . "Plaene")))) (command "_chprop" elem1 "" "_layer" "0" "") ) ) (command "-Layer" "_on" "0" "") ; ----> TEIL2 (setq elem2 (ssget "X" '((0 . "IMAGE")))) (command "_draworder" elem2 "" "_back") (princ) )
Es funktioniert so weit alles. D.h.: Wenn Bilder auf dem Layer "Plaene" vorhanden sind werden sie auf den Layer 0 verschoben.
Mein Problem: *) Wenn keine Bilder auf Layer "Plaene" liegen, dann soll er automatisch mit Teil 2 weitermachen. *) Wenn zusätzlich keine Bilder auf dem Layer 0 liegen, dann soll er den gesamten Befehl beenden/ abbrechen. BITTE UM HILFE. DANKE ------------------ Grüße Christian [Diese Nachricht wurde von Christian01 am 05. Dez. 2013 editiert.] [Diese Nachricht wurde von Christian01 am 05. Dez. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3424 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 05. Dez. 2013 16:15 <-- editieren / zitieren --> Unities abgeben: Nur für Christian01
Servus, hast das If nicht schon abgeschlossen? Code: (defun C:Plaene_on (/ obj1 obj2) (if (tblsearch "Layer" "Plaene") ; ---> TEIL1 (command "-Layer" "_on" "Plaene" "") (cond (setq elem1 (ssget "X" '((0 . "IMAGE") (8 . "Plaene")))) (command "_chprop" elem1 "" "_layer" "0" "") ) ) ----> end if!?!?! (command "-Layer" "_on" "0" "") ; ----> TEIL2 (setq elem2 (ssget "X" '((0 . "IMAGE")))) (command "_draworder" elem2 "" "_back") (princ) ) ----> sollte es nicht da enden )
------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. "Warum Einfach es geht auch kompliziert". Schöne Grüsse aus der Steiermark Bernd P. Sport ist Mord Rekorde: Scalelist>11727, Fehler>34365, Layerfilter>XXXX [Diese Nachricht wurde von Bernd P am 05. Dez. 2013 editiert.] [Diese Nachricht wurde von Bernd P am 05. Dez. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian01 Mitglied Technischer Zeichner
Beiträge: 281 Registriert: 17.04.2007
|
erstellt am: 05. Dez. 2013 16:24 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd Leider habe ich LISP nie wirklich irgendwo gelernt, hauptsächlich in Eigenregie. Kannst mir bitte weiterhelfen. Habe den Code nochmals geändert!!! Zitat:
) ----> end if!?!?!
Meinst du das end if fehlt ??
Zitat:
) ----> sollte es nicht da enden
Was sollte hier enden? Der IF Befehl? Mein Problem: *) Wenn keine Bilder auf Layer "Plaene" liegen, dann soll er automatisch mit Teil 2 weitermachen. *) Wenn zusätzlich keine Bilder auf dem Layer 0 liegen, dann soll er den gesamten Befehl beenden/ abbrechen
------------------ Grüße Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 05. Dez. 2013 17:41 <-- editieren / zitieren --> Unities abgeben: Nur für Christian01
Hier mal zum Vergleich: Code: (defun C:Plaene_on (/ obj1 obj2) (if (tblsearch "Layer" "Plaene") ; ---> TEIL1 (progn (command "-Layer" "_on" "Plaene" "") (if (setq elem1 (ssget "X" '((0 . "IMAGE") (8 . "Plaene")))) (command "_chprop" elem1 "" "_layer" "0" "") ) ;_ ende von if ) ;_ ende von progn ) ;_ ende von if (command "-Layer" "_on" "0" "") ; ----> TEIL2 (if (setq elem2 (ssget "X" '((0 . "IMAGE")))) (command "_draworder" elem2 "" "_back") ) ;_ ende von if ) ;_ ende von defun
dein code:
Code: (defun C:Plaene_on (/ obj1 obj2) (if (tblsearch "Layer" "Plaene") ; ---> TEIL1 ( (command "-Layer" "_on" "Plaene" "") ;diese Klammer darf nicht alleine stehen, es muss eine progn oder cond Anweisung dahinter (setq elem1 (ssget "X" '((0 . "IMAGE") (8 . "Plaene")))) (command "_chprop" elem1 "" "_layer" "0" "") ) ) (command "-Layer" "_on" "0" "") ; ----> TEIL2 (setq elem2 (ssget "X" '((0 . "IMAGE"))));wenn dieser Auswahlsatz nil ist produziert die nächste Zeile einen Fehler (command "_draworder" elem2 "" "_back") (princ) )
------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |