| |
| 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: bestimmte Layer bei Nuke.lsp weiterverarbeiten (1861 mal gelesen)
|
RobCraven Mitglied Konstrukteur
Beiträge: 107 Registriert: 30.01.2009
|
erstellt am: 14. Okt. 2010 09:11 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich möchte mit hilfe der EDATA Liste aus NUKE.lsp Elemente auf bestimmten Layer löschen und andere (mehrere) auf einen anderen Layer setzen und noch andere sollen gleich bleiben und der Rest soll auf einen weiteren Layer. Mein Ansatz war die Liste zu filtern und unter neuen Namen weiterzuverarbeiten. Aber wie krieg ich aus der Liste den/die entsprechenden Layer? Ich hab schon ein paar Sachen probiert, aber so recht wills nicht klappen.
Code: (if (assoc (progn 8 "AM_0" ) ;progn EDATA) (setq EDATA(subst(cons (progn 8 "AM_0") "AM_11")(assoc 8 EDATA)EDATA)) (entmod EDATA) ) ;if
War mein Versuch einen bestimmten Layer auszuwählen und nur diesen dann weiterzuverarbeiten. Wär schön, wenn mich jemand in die richtige Richtung schubsen könnte.LG KJ. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
neurosis Mitglied dipl.ing.
Beiträge: 224 Registriert: 22.08.2006
|
erstellt am: 14. Okt. 2010 09:35 <-- editieren / zitieren --> Unities abgeben: Nur für RobCraven
|
RobCraven Mitglied Konstrukteur
Beiträge: 107 Registriert: 30.01.2009 Win10 64bit CoCreate V19 AutoCad mechanical 2017
|
erstellt am: 14. Okt. 2010 09:47 <-- editieren / zitieren --> Unities abgeben:
Hi Marco, super, funzt... den Rest muss ich mal sehen, ob ichs hinkrieg... nen Ansatz wie ich bestimmte Layer auswähle hast du mir ja gegeben. Danke dafür und für deine schnelle Antwort...
LG KJ. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RobCraven Mitglied Konstrukteur
Beiträge: 107 Registriert: 30.01.2009
|
erstellt am: 14. Okt. 2010 12:35 <-- editieren / zitieren --> Unities abgeben:
So, die mehrfach auswahl hab ich jetzt auch Code:
(if (or (= (cdr (assoc 8 EDATA)) "AM_3") (= (cdr (assoc 8 EDATA)) "AM_4") (= (cdr (assoc 8 EDATA)) "AM_8") ) ;or (progn (setq EDATA (subst (cons 8 "AM_99") (assoc 8 EDATA) EDATA)) (entmod EDATA) ) ;progn ) ;if
nur jetzt krieg ich den Layer samt Elemente nicht gelöscht? Ausserdem fahr ich bestimmt mit der Kirche ums Dorf, indem ich erst alles auf einen anderen neuen Layer schiebe um diesen dann zu löschen? oder?Ausserdem versteh ich noch nicht so ganz, warum das "(entmod EDATA)" in der DANN-Anweisung und nicht wie in NUKE.lsp in der SONST-Anweisung enthalten ist? endmod aktualisiert ja die Liste, folglich müsste doch auch bei NUKE.lsp das in der DANN-Anweisung enthalten sein? Was soll ich die Liste aktualisieren, wenn ich nichts geändert hab? Aber es funktioniert ja, wo ist mein denkfehler? KJ.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
neurosis Mitglied dipl.ing.
Beiträge: 224 Registriert: 22.08.2006
|
erstellt am: 14. Okt. 2010 18:28 <-- editieren / zitieren --> Unities abgeben: Nur für RobCraven
Zitat: nur jetzt krieg ich den Layer samt Elemente nicht gelöscht? Ausserdem fahr ich bestimmt mit der Kirche ums Dorf, indem ich erst alles auf einen anderen neuen Layer schiebe um diesen dann zu löschen? oder?
koenntest du bitte mal beschreiben, was du genau alles machen willst. und was du bisher schon hast. auf welche daten du zugreifst, ... Zitat: Ausserdem versteh ich noch nicht so ganz, warum das "(entmod EDATA)" in der DANN-Anweisung und nicht wie in NUKE.lsp in der SONST-Anweisung enthalten ist? endmod aktualisiert ja die Liste, folglich müsste doch auch bei NUKE.lsp das in der DANN-Anweisung enthalten sein? Was soll ich die Liste aktualisieren, wenn ich nichts geändert hab? Aber es funktioniert ja, wo ist mein denkfehler?
an welcher stelle im code von nuke.lsp (ich gehe davon aus, dass du das von cadwiesel.de meinst) ist das so? gruss marco ------------------ Marco Heuer www.arc-aachen.de Airport Office [Diese Nachricht wurde von neurosis am 14. Okt. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RobCraven Mitglied Konstrukteur
Beiträge: 107 Registriert: 30.01.2009 Win10 64bit CoCreate V19 AutoCad mechanical 2017
|
erstellt am: 15. Okt. 2010 08:16 <-- editieren / zitieren --> Unities abgeben:
Hi, also ich möchte Linien, Polylinien, Kreise, Bögen, etc. die auf bestimmten Layern liegen weiterverarbeiten, so z.B. soll alles was auf AM_3, AM_4 und AM_8 liegt gelöscht werden. Danach folgt der Schritt, das alle Elemente die nicht auf AM_7 liegen auf den Layer AM_11 verschoben werden sollen. Schritt zwei ist erstmal auskommentiert, da ja auch die Elemente von ersten Auswahlschritt auf AM_11 geschoben werden würden und somit nicht mehr nachvollziehbar wäre, ob und was er gemacht hat. Zu 2. da muss ich mich korrigieren... ich habe hier ein lisp, von dem ich dachte es sei das NUKE.lsp, es hat zwar einen anderen Namen, aber dennoch war/bin ich mir sicher, dass es DAS oder zumindest Teile (fast alles) aus dem NUKE.lsp ist. aber da ist wohl dann der Hase im Pfeffer... aus NUKE.lsp (von CADwiesel.de)
Code: (if(assoc 62 EDATA) ;Resets object color to BYLAYER if it isn't. (setq EDATA(subst(cons 62 256)(assoc 62 EDATA)EDATA)) );if
aus "meinem"
Code: (if(assoc 62 EDATA) ;Resets object color to BYLAYER if it isn't. (setq EDATA(subst(cons 62 256)(assoc 62 EDATA)EDATA)) (entmod EDATA); );if
Daher kam meine Frage und hat sich somit auch schon erledigt... KJ. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RobCraven Mitglied Konstrukteur
Beiträge: 107 Registriert: 30.01.2009
|
erstellt am: 25. Okt. 2010 09:21 <-- editieren / zitieren --> Unities abgeben:
Hallo nochmal, hat zu dem Löschen der Layer keiner eine Idee? Ich hatte auf CADwiesel.de noch ein bisschen rumgestöbert und dabei DELLAYER.LSP gefunden. Das funktioniert auch soweit, das es den ausgewählten Layer löscht, aber eben nur in der aktuellen Bearbeitungs-Ebene und nicht gleich bis in alle Unterblöcke runter... und ich kriegs einfach nicht umgebastelt. Und nochmal eine ganz bescheuerte Frage... EDATA aus dem NUKE.LSP ist eine Liste und damit Vergleichbar mit sset_1 aus dem DELLAYER.LSP, oder? Und noch eins... entdel oder ssdel löschen doch Entity's also Elemente aus der Zeichnung (nicht aus der Liste)? Stimmt das so und wie ist die Syntax dieser Befehle (mapcar geht darauf meines Wissens nicht ein)? LG KJ. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 25. Okt. 2010 09:37 <-- editieren / zitieren --> Unities abgeben: Nur für RobCraven
|