Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  lisp tool zum aufbrechen

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:  lisp tool zum aufbrechen (1288 mal gelesen)
fewoer
Mitglied



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

Beiträge: 28
Registriert: 09.01.2012

AutoCAD Architecture 2011
Graitec Advance Steel 2012
Windows Vista 64 Bit

erstellt am: 09. Jan. 2012 10:40    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,

tut mir leid, ich bin heute das erste Mal hier und finde auf die Schnelle leider nicht das, was mir weiterhilft. Was LISP anbelangt, gehen meine Kenntnisse leider auch gegen 0.

Vielleicht weiß einer von euch ja weiter, das wäre super.

Folgendes Problem: wir brauchen ein LISP-Tool, das eine DWG öffnet, anschließend alles markiert und alles aufbricht (EXPLODE). Dann sollten alle Objekte, die nicht auf dem Zeichnungsblatt liegen gelöscht werden und zum Schluss soll die Datei in einem Unterordner abgespeichert und dann geschlossen werden. So dass die alte Datei eben nicht überschrieben wird. Das ganze wird vermutlich über 100e Zeichnungen laufen, also sollte der Prozess einigermaßen robust ablaufen.

Alles markieren mit Strg+A funktioniert leider nicht, da produziert unser AutoCAD Architecture 2009 irgendwie seltsame Fehler und erfindet Objekte hinzu. Wir benutzen übrigens den Advance Stahlbau Aufsatz 2009 von Graitec, falls das irgendwie weiterhilft.

Vielen herzlichen Dank schon mal im Voraus für Eure Hilfe!

Gruß,
Patrick

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: 09. Jan. 2012 10:44    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 fewoer 10 Unities + Antwort hilfreich

Auch wenns sicher nichts im Rahmen der Forenhilfe wird ... ne Beispielzeichnung wäre nicht schlecht, schon wegen evtl. nicht unterstützter Objekttypen usw. - so ein Aufsatz hat evtl auch noch seine Tücken....

------------------
  - 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

fewoer
Mitglied



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

Beiträge: 28
Registriert: 09.01.2012

AutoCAD Architecture 2011
Graitec Advance Steel 2012
Windows Vista 64 Bit

erstellt am: 09. Jan. 2012 11:03    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

Danke für die schnelle Antwort - ich versuche gleich mal eine Beispielzeichnung einzufügen, sobald ich verstanden habe, wie das funktioniert.

Kurz für zwischendurch eine andere Frage - gibt es einen LISP-Befehl, mit dem ich alle Objekte markieren kann? Ich hab hier ein Beispiel-Tool und versuche das ein bißchen für unsere Zwecke umzumodeln.

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: 09. Jan. 2012 11:07    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 fewoer 10 Unities + Antwort hilfreich

für 1. am besten zippen oder umbenennen in Beispiel.dwg.txt
für 2.

(sssetfirst nil(ssget "_x" (list(cons 410(getvar"CTAB")))))

------------------
      - 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

fewoer
Mitglied



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

Beiträge: 28
Registriert: 09.01.2012

AutoCAD Architecture 2011
Graitec Advance Steel 2012
Windows Vista 64 Bit

erstellt am: 09. Jan. 2012 11:41    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


Musterzeichnung.dwg.txt

 
Die Beispieldatei kommt gleich.

Ich hab jetzt von der Autodesk University ein Tool "Changing Hundreds of AutoCAD Drawings in a Hurry" runtergeladen und versuche das gerade abzuändern.

Es besteht aus 3 Dateien, einer BAT, einer SCR und einer LSP. Die BAT startet für alle DWGs im Verzeichnis eine Instanz von AutoCAD und führt daraufhin die SCR aus. Die SCR lädt die LSP ins AutoCAD, führt den in der Lisp definierten Befehl aus und schließt AutoCAD wieder. Mein Problem ist denke ich in der LISP Datei...

Der Code sieht bisher so aus, er soll alles markieren und dann in einem Unterordner Explode abspeichern - das aufbrechen fehlt hier noch:

(defun c:feexplode(/ nil dn pa pawbdn)
  (sssetfirst nil(ssget "_x" (list(cons 410(getvar"CTAB")))))
  (setq dn (getvar "dwgname"))
  (setq pa (getvar "dwgprefix"))
  (setq pawbdn (strcat pa "explode\\"dn))
  (command "qsave" pawbdn "*")
  )

AutoCAD gibt mir aber jetzt eine Fehlermeldung zurück, dass der Befehl feexplode unbekannt sei - dabei lade ich ihn doch über die Script Datei mit folgendem Inhalt:

(load "t:\\T-002_EXPLODE\\feexplode.lsp")
ZOOM All
FEEXPLODE
QUIT
J

Irgendwie ist der Fehler glaube ich in der LISP, aber ich hab gerade keine Ahnung, wo 

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: 09. Jan. 2012 11:51    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 fewoer 10 Unities + Antwort hilfreich

du mußt die lsp für jede Zeichnung laden .... also in der SCR oder über die acaddoc.lsp

------------------
  - 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

fewoer
Mitglied



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

Beiträge: 28
Registriert: 09.01.2012

AutoCAD Architecture 2011
Graitec Advance Steel 2012
Windows Vista 64 Bit

erstellt am: 09. Jan. 2012 12:09    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

Ich lade die LSP ja doch jedesmal neu - in der SCR steht ja folgende Zeile, die das macht, dachte ich:

(load "t:\\T-002_EXPLODE\\feexplode.lsp")

Die BAT lädt dann mit einer Schleife auch jedesmal die SCR Datei neu, die Schleife in der BAT sieht folgendermaßen aus:

FOR %%f in (t:\T-002_EXPLODE\DWG\*.dwg) do start /wait c:\"program files"\Graitec\AdvanceSteel\2009\Steel\Bin\AdvanceSteel8x64.exe "%%f" /b t:\T-002_EXPLODE\feexplode.scr

Das ist jetzt alles sehr verwirrend, ich weiß. LISP scheint schon ein bißchen Hexerei zu sein 

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

CADchup
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3329
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 09. Jan. 2012 12:10    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 fewoer 10 Unities + Antwort hilfreich

Hi,

du hast NIL bei den Variablen stehen, so kann die Funktion nicht laufen! NIL ist ein geschütztes AutoLISP-Symbol, ein besonderes noch dazu. Axel könnte das jetzt schön erklären...    

Außerdem gibt es den Befehl QSAVE in einem lokalisierten Acad nicht, allenfalls _QSAVE. Und der speichert einfach nur die aktuelle DWG. Du willst aber _SAVEAS verwenden.    


Gruß
CADchup

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

fewoer
Mitglied



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

Beiträge: 28
Registriert: 09.01.2012

AutoCAD Architecture 2011
Graitec Advance Steel 2012
Windows Vista 64 Bit

erstellt am: 09. Jan. 2012 13:23    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

Ah danke dir CADchup, damit bin ich jetzt schon einen großen Schritt weitergekommen. Das ist Magie 

Ich hab eure Vorschläge jetzt übernommen und meine LSP sieht mittlerweile so aus:

(defun c:feexplode(/ dn pa pawbdn flag fesel)
  (setq dn (getvar "dwgname"))
  (setq pa (getvar "dwgprefix"))
  (setq pawbdn (strcat pa "explode\\"dn))
  (setq flag (getvar "qaflags"))
  (setvar "qaflags" 5)
  (sssetfirst nil(setq fesel (ssget "_x" (list(cons 410(getvar"CTAB"))))))
  (command "_EXPLODE" fesel "")
  (setvar "qaflags" flag)
  (command "_SAVEAS" "2007" pawbdn)
  )

Öffnen, markieren, speichern scheint alles zu funktionieren - hab das ganze jetzt um die Funktion, dass er alles Ausgewählte aufbricht erweitert. Ich muss zwar noch jeden Aufbrechvorgang 2mal mit Ja bestätigen, weil Fenster aufpoppen (gibt's für _EXPLODE vielleicht auch irgendwelche Parameter, die automatisch immer mit Ja bestätigen?) - aber sonst scheint er das zu machen, was ich will. Nur am Ende des Aufbrechens hält er an und die AutoCAD Konsole spuckt mir folgende Fehlermeldung aus:

Befehl: <Auswahlsatz: 2>
QUIT
Wollen Sie wirklich alle Änderungen an der Zeichnung löschen? <N> _SAVEAS
Ja oder Nein, bitte.
Wollen Sie wirklich alle Änderungen an der Zeichnung löschen? <N>
Befehl:
Befehl:
Befehl: Funktion abgebrochen

Wieso fragt er, ob ich Änderungen löschen möchte?

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

CADchup
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3329
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 09. Jan. 2012 14:01    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 fewoer 10 Unities + Antwort hilfreich

Hi,

weil dein Tool nicht ordentlich durchläuft!
Lass' mal jede einzelne Zeile von Hand auf deine Zeichnung los.

Tipp: Dein (sssetfirst...) wählt Objekte gleich aus. Wenn du so vorgehen willst, brauchst du EXPLODE keine Variable zu übergeben, denn ab da holpert's. 

Gruß
CADchup

------------------
CADmaro.de

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: 09. Jan. 2012 14: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 Nur für fewoer 10 Unities + Antwort hilfreich

und explode und Auswahlsätze in Makros/Scripts ist da noch ne andere Sache .. wird da nicht nur das erste Objekt aufgelöst ? ( war früher jedenfalls so )

------------------
  - 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

spider_dd
Mitglied



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

Beiträge: 1111
Registriert: 27.11.2003

Win 10Pro
Intel(R) Core(TM) i7-7700
NVIDIA Quadro P1000
ACAD, Civil-3D 2018

erstellt am: 09. Jan. 2012 15:27    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 fewoer 10 Unities + Antwort hilfreich

Hallo fewoer

... und was wird mit verschachtelten Blöcken u. a. Objekten, Blöcken die als "nicht Auflösbar" gekennzeichnet sind, Attributen ... (nur mal so ein paar Gedanken)
Suche mal hier und im Rund um AutoCAD Brett nach alles auflösen, da finden sich so manche Diskussionen dazu (und weitere Lösungsansätze).

Gruß
Thomas

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

fewoer
Mitglied



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

Beiträge: 28
Registriert: 09.01.2012

AutoCAD Architecture 2011
Graitec Advance Steel 2012
Windows Vista 64 Bit

erstellt am: 13. Jan. 2012 10:07    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

Hey,

tut mir leid, dass ich ers jetzt antworte. Hab's mittlerweile mit ein bißchen Gefrickel hinbekommen, das gute Stück läuft jetzt problemlos durch und erspart uns Drölfzig Stunden Arbeit  )

Danke nochmal für eure Hilfe, hätt ich ohne Eure entscheidenden Hinweise nicht hinbekommen!

Liebe Grüße und noch eine schöne Zeit euch, tolle Arbeit leistet ihr hier  )

Patrick

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