| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: Layer ändern mit oder ohne Auswahlsatz (2074 mal gelesen)
|
MARTINLE Mitglied Tischler
Beiträge: 485 Registriert: 18.10.2007 AUTOCAD 2016, MS Windows7, 64-bit
|
erstellt am: 10. Sep. 2013 14:16 <-- editieren / zitieren --> Unities abgeben:
Hallo! Komm mal wieder nicht weiter...... Folgende Aufgabe soll in einem Klick erledigt werden:
1) Setze den Layer auf den Namen Abdeckplatte. (der Layer ist in der Zeichnung schon vorhanden) 2) Wenn Objekte ausgewählt sind (Griffe aktiv) dann ändere den Layer der markierten Objekte auch in Layer Abdeckplatte. 3) Wenn kein Objekt ausgewählt ist dann soll das Programm enden. Zur Zeit ist es so: Es kommt immer die Objektauswahl und wenn man beendet dann wird der Layer wieder zurückgestellt. Nur wenn ein Objekt bereits ausgewählt ist dann funktioniert es. Bitte um eure Hilfe. Lg. Martin Das Buttonmakro lautet: ^C^C(if(null c:Abdeckplatte)(load"Abdeckplatte"));Abdeckplatte (defun c:Abdeckplatte () (command "-layer" "se" "Abdeckplatte" "" ) (tolayer (ssget "_:L") ;;selection "Abdeckplatte" ;;Layer ) (princ) )
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
spider_dd Mitglied
Beiträge: 1144 Registriert: 27.11.2003 Win 10Pro Intel(R) Core(TM) i7-7700 NVIDIA Quadro P1000 ACAD, Civil-3D 2018
|
erstellt am: 10. Sep. 2013 14:50 <-- editieren / zitieren --> Unities abgeben: Nur für MARTINLE
|
MARTINLE Mitglied Tischler
Beiträge: 485 Registriert: 18.10.2007 AUTOCAD 2016, MS Windows7, 64-bit
|
erstellt am: 10. Sep. 2013 15:15 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas! Ich habe gesucht aber keine Funktion tolayer gefunden. Ich habe schon ewig rumgeschnipselt und diese " tolayer" Funktion scheint übrig geblieben zu sein. Komisch ist nur, dass das Lisp funktioniert wenn ein Objekt markiert ist. lg. Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 10. Sep. 2013 15:15 <-- editieren / zitieren --> Unities abgeben: Nur für MARTINLE
|
MARTINLE Mitglied Tischler
Beiträge: 485 Registriert: 18.10.2007 AUTOCAD 2016, MS Windows7, 64-bit
|
erstellt am: 10. Sep. 2013 15:25 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas! Dich kenn ich ja! Danke für die Hilfe! Beim Laden kommt aber die Fehlermeldung: Fehler: no function definition: /AWS Ich hab es so gemacht: (c:Abdeckplatte (/AWS) (if (setq AWS (cadr(ssgetfirst))) (progn (command "_layer" "_make" "ABDECKPLATTE" "") (mapcar '(lambda(X / D) (and(=(type(cadr X))'ENAME) (setq D(entget (cadr X))) (entmod(subst (cons 8 "ABDECKPLATTE")(assoc 8 D)D)) ) ) (ssnamex AWS) ) ) (command "_layer" "_make" "ABDECKPLATTE" "") ) ) lg. Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 10. Sep. 2013 15:37 <-- editieren / zitieren --> Unities abgeben: Nur für MARTINLE
|
MARTINLE Mitglied Tischler
Beiträge: 485 Registriert: 18.10.2007 AUTOCAD 2016, MS Windows7, 64-bit
|
erstellt am: 10. Sep. 2013 15:56 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas! Wenn ich das Lisp in die Zeichnung Lade und den Befehl Abdeckplatte in die Befehlszeile eingebe funktioniert alles wunderbar. Nur wenn ich über den Button starte mit ^C^C(if(null c:Abdeckplatte)(load"Abdeckplatte"));Abdeckplatte dann wird immer "Objekte wählen" ausgegeben. Dies passiert nur wenn kein Objekt ausgewählt ist! Woran kann das liegen? lg. Martin
[Diese Nachricht wurde von MARTINLE am 10. Sep. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MARTINLE Mitglied Tischler
Beiträge: 485 Registriert: 18.10.2007 AUTOCAD 2016, MS Windows7, 64-bit
|
erstellt am: 10. Sep. 2013 16:23 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas! Nochmal genauer: Wenn ein Objekt markiert ist funktioniert es auch im "Button" wunderbar. Nur wenn kein Objekt markiert ist kommt die Abfrage "Objekt wählen". Wenn kein Objekt gewählt ist sollte das Lisp nach der Layerumstellung einfach enden (ohne Objekt wählen). lg. Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 11. Sep. 2013 09:35 <-- editieren / zitieren --> Unities abgeben: Nur für MARTINLE
|
MARTINLE Mitglied Tischler
Beiträge: 485 Registriert: 18.10.2007 AUTOCAD 2016, MS Windows7, 64-bit
|
erstellt am: 11. Sep. 2013 09:45 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas. Ich hab's noch mal getestet und herausgefunden wenn ich eine neue Zeichnung anfange und nur dein Lisp verwende funktionieren beide varianten. Wenn ich aber mein ursprüngliches Programm aufrufe und danach wieder dein Lisp dann kommt die Abfrage Objekt wählen. Die Lösung ist für mich einfach: Altes Lisp raus--> neues rein! Dann passt es. Danke für deine Hilfe! Lg. Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |