Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  bestimmte Layer bei Nuke.lsp weiterverarbeiten

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  bestimmte Layer bei Nuke.lsp weiterverarbeiten (1836 mal gelesen)
RobCraven
Mitglied
Konstrukteur


Sehen Sie sich das Profil von RobCraven an!   Senden Sie eine Private Message an RobCraven  Schreiben Sie einen Gästebucheintrag für RobCraven

Beiträge: 107
Registriert: 30.01.2009

erstellt am: 14. Okt. 2010 09:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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.


Sehen Sie sich das Profil von neurosis an!   Senden Sie eine Private Message an neurosis  Schreiben Sie einen Gästebucheintrag für neurosis

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 14. Okt. 2010 09:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für RobCraven 10 Unities + Antwort hilfreich

hallo RobCraven,
ungetestet so, wenn du "AM_0" mit "AM_11" ersetzen willst:

(if (= (cdr (assoc 8 EDATA)) "AM_0")
  (progn
    (setq EDATA (subst (cons 8 "AM_11") (assoc 8 EDATA) EDATA))
    (entmod EDATA)           
  )
)

gruss
marco

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RobCraven
Mitglied
Konstrukteur


Sehen Sie sich das Profil von RobCraven an!   Senden Sie eine Private Message an RobCraven  Schreiben Sie einen Gästebucheintrag für RobCraven

Beiträge: 107
Registriert: 30.01.2009

Win10 64bit
CoCreate V19
AutoCad mechanical 2017

erstellt am: 14. Okt. 2010 09:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von RobCraven an!   Senden Sie eine Private Message an RobCraven  Schreiben Sie einen Gästebucheintrag für RobCraven

Beiträge: 107
Registriert: 30.01.2009

erstellt am: 14. Okt. 2010 12:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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.


Sehen Sie sich das Profil von neurosis an!   Senden Sie eine Private Message an neurosis  Schreiben Sie einen Gästebucheintrag für neurosis

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 14. Okt. 2010 18:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für RobCraven 10 Unities + Antwort hilfreich

 
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


Sehen Sie sich das Profil von RobCraven an!   Senden Sie eine Private Message an RobCraven  Schreiben Sie einen Gästebucheintrag für RobCraven

Beiträge: 107
Registriert: 30.01.2009

Win10 64bit
CoCreate V19
AutoCad mechanical 2017

erstellt am: 15. Okt. 2010 08:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Test_bl.lsp.txt

 
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


Sehen Sie sich das Profil von RobCraven an!   Senden Sie eine Private Message an RobCraven  Schreiben Sie einen Gästebucheintrag für RobCraven

Beiträge: 107
Registriert: 30.01.2009

erstellt am: 25. Okt. 2010 09:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 25. Okt. 2010 09:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für RobCraven 10 Unities + Antwort hilfreich

entdel löscht ein Objekt aus der Zeichnungsdatenbank
ssdel entfernt ein Objekt aus einem Auswahlsatz

Die Syntax bekommst du am besten aus der Lisp-Hilfe .... vlide öffnen und F1 !

.. zu den Cadwiesel-Lisp kann ich nichts sagen ....

------------------
      - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz