| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Lisp-Routine - Daten automatisiert speichern (1458 / mal gelesen)
|
proEbauer Mitglied Konstrukteur
Beiträge: 49 Registriert: 10.09.2009 Creo 4.0 M080 Windows 10 64bit
|
erstellt am: 17. Jun. 2019 14:32 <-- editieren / zitieren --> Unities abgeben:
Hallo an alle, Autocad ist eine Weile her bei mir. Habe momentan einen Anwendungsfall und ich erinnere mich dunkel an LISP. Folgende Thematik: Meine Hauptzeichnung enthält mehrere hundert Einzelgeometrien die als separate DXF benötigt werden. Wunsch: Geometrie markieren, LISP-Befehl ausführen... a. Routine kopiert in die Zwischenablage, b. erstellt neue Zeichnung und fügt Daten dort auf 0,0 ein c. speichert diese als DXF2000 ab (und fragt nach dem Dateinamen...) (d. alternativ: DXF-Dateinamenvergabe erfolgt nach Namensvorgabe in LISP-Skript ) Geht sowas mit LISP!? Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 17. Jun. 2019 14:56 <-- editieren / zitieren --> Unities abgeben: Nur für proEbauer
|
proEbauer Mitglied Konstrukteur
Beiträge: 49 Registriert: 10.09.2009 Creo 4.0 M080 Windows 10 64bit
|
erstellt am: 17. Jun. 2019 15:06 <-- editieren / zitieren --> Unities abgeben:
Servus, zu Fuß geht das auf jeden Fall: 1. Markieren 2. kopieren: STRG + C 3. neue Datei: STRG + N 4. einfügen: STRG + V 5. einfügen auf Null: 0,0 6. STRG + S Wie kann ich das sinnvoll in eine LISP-Routine unterbringen? Kann diese überhaupt Dokument übergreifend agieren (nach Neuerstellung per STRG + N)? Gruß
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3701 Registriert: 15.10.2003 Win 10/64 Pro AutoCAD MAP 3D 2018 / 2023 BricsCAD 22
|
erstellt am: 17. Jun. 2019 21:33 <-- editieren / zitieren --> Unities abgeben: Nur für proEbauer
Ein Lisp arbeitet an sich nicht über mehrere Dateien. Aber warum Copy&Paste? Wie schaut es mit WBlock aus? ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 18. Jun. 2019 12:30 <-- editieren / zitieren --> Unities abgeben: Nur für proEbauer
|
CADuceus Mitglied LWL-Netzplaner GIS
Beiträge: 358 Registriert: 20.01.2005 LWL Netzplanung AutoCAD Map 3D 2020 Win10 64bit / Chrome Intel® Core™ i7-4770K 3.50GHz / 32GB NVidia Quadro P400 HP DesignJet T795
|
erstellt am: 18. Jun. 2019 14:44 <-- editieren / zitieren --> Unities abgeben: Nur für proEbauer
Also ich finde die Idee mit Wblock am sinnvollsten. @CADwiesel Bei bei meinen Lisp-Kenntnissen würde die Routine auch nur bis zum Öffnen einer neuen Datei kommen. Danach wird die neue Datei aktuell gesetzt und Lisp abgebrochen. Falls Du weißt, wie man den Code in einer neuen Zeichnung fortsetzt: Meine Ohren sind gespitzt.
------------------ Du kannst in anderen nur entzünden, was in Dir selber brennt! Wollte noch ein File anhängen, aber habe die Kiste schon heruntergefahren. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 18. Jun. 2019 15:09 <-- editieren / zitieren --> Unities abgeben: Nur für proEbauer
|
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 18. Jun. 2019 15:12 <-- editieren / zitieren --> Unities abgeben: Nur für proEbauer
Zu spät, aber als Ergänzung: @CADuceus passend für deine Kenntnisstand würde man mit SDI arbeiten, dabei ist immer genau nur eine Datei offen und man kann von einer Datei in die nächsten wechseln (wobei die vorherige geschlossen wird/werden muss, da ja immer nur genau eine Datei pro Programminstanz offen ist. Stichwort: SDI und Lispinit Möchtest du noch weiter gehen so mußt du das (offenbar bekannte) AutoLISP verlassen und dir die VisualLISP Erweiterungen ansehen, in dem Fall anstatt des DXF Modellobjektes (falls ich das so als synonym für AutoLISP schreiben darf) das ActiveX-Objektmodell ansehen. Du kannst Dateien öffnen und bearbeiten ohne diese im Programm "aktuell" zu setzen, man könnte dann auch noch weiter gehen und die Dateien über eine noch weiter eingeschränkte Schnittstelle öffnen, welche dann superschnell ist, aber einige liebgewonnen Funktionen nicht unterschützt. ActiveX - Modell Mache mal zwei,drei Dateien auf (mit nicht so vielen Layouts) und gebe dieses ein: (vlax-for FILE (setq CDS (vla-get-documents(vlax-get-acad-object))) (if (setq FILENAME (vla-get-Name FILE)) (vlax-for LAYOUT (vla-get-Layouts FILE) (alert (strcat (vl-filename-base FILENAME) " - " (vla-get-Name LAYOUT))) ) ) )
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3701 Registriert: 15.10.2003 Win 10/64 Pro AutoCAD MAP 3D 2018 / 2023 BricsCAD 22
|
erstellt am: 18. Jun. 2019 17:35 <-- editieren / zitieren --> Unities abgeben: Nur für proEbauer
Zitat: Original erstellt von CADwiesel:
Wo bist du abgebogen? Oder hab' ich was verpasst?Kann mich nicht anschließen
"An sich" war gemeint in dem Sinne, dass - wie auch cadffm dann erläuterte - bei der aktuellen Fragestellung bzw. Wissenstand die Problemlösung für Einsteiger schon ein paar Minuten Aufwand verursacht. Aber ohne "an sich" gelten natürlich die obigen Hinweise. ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
proEbauer Mitglied Konstrukteur
Beiträge: 49 Registriert: 10.09.2009 Creo 4.0 M080 Windows 10 64bit
|
erstellt am: 19. Jun. 2019 09:13 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 19. Jun. 2019 09:23 <-- editieren / zitieren --> Unities abgeben: Nur für proEbauer
|
proEbauer Mitglied Konstrukteur
Beiträge: 49 Registriert: 10.09.2009 Creo 4.0 M080 Windows 10 64bit
|
erstellt am: 19. Jun. 2019 12:00 <-- editieren / zitieren --> Unities abgeben:
Ein Workaround ist gebastelt: Code:
(defun c:x () (setvar "cmdecho" 0) (prompt "\nBitte Element auswählen") (command "cutclip") (command "newdocument" "paste" "0,0,0") (command "_.saveas") (command "closedocument") )
Läuft soweit, Dateiname eingeben, Enter und nächste Geometrie wählen... (läuffähig im AutoCAD-Klon "NanoCA") Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |