| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Layermanager LMAN per Lisp ablaufen lassen (654 mal gelesen)
|
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: 14. Jun. 2007 16:15 <-- editieren / zitieren --> Unities abgeben:
Ich möchte einen Layerstatus des Layermanagers (Expresstools) per Lisp laufen lassen. Aber der Ablauf Code: (command "lman" "import" "Lisp\\Standard.lay" "W" "test" "")
der in der Befehlszeile sehr gut geht, verweigert mit "unbekannter Befehl: -lman"cmddia und filedia habe ich auf 0 gesetzt, aber ohne Erfolg. Es ist mir auch klar, dass der layermanager kein "Command", sondern ein Programm ist. Aber wie kann ich das per Lisp steuern? Peter ------------------ 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 |
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: 14. Jun. 2007 16:34 <-- editieren / zitieren --> Unities abgeben: Nur für Peter2
Aufruf wäre (c:-lman) da kannst du aber keine Parameter übergeben. Also bleibt dir was eigenständiges oder eine Anpassung der E-Tools-Dateien.(lman.lsp) Die direkte Importfunktion kannst du z.B. mit (bns_c_import_lay) aufrufen und mit Weitersuchen im quelltext findet man dann (bns_lman_import "DATEINAME") Alles Klar? ------------------ - 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 |
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: 14. Jun. 2007 16:52 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von CADmium: ...(bns_lman_import "DATEINAME")...
Das sieht gut aus. Aber beim Wiederherstellen mit bns_c_restore_layerstate kann man nichts übergeben ... Peter ------------------ 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 |
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: 14. Jun. 2007 16:54 <-- editieren / zitieren --> Unities abgeben: Nur für Peter2
na zur Not mußt du die Xdatas eben selbst an die Layer pappen .. ist auch nicht sooo kompliziert. ------------------ - 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 |
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: 14. Jun. 2007 20:18 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von CADmium: na zur Not mußt du die Xdatas eben selbst an die Layer pappen .. ist auch nicht sooo kompliziert.
Nun ja - ein Einzeilen-Command wäre schon etwas einfacher. Aber in der ganzen Sache stellt sich mir nun die Systemfrage: - Layererzeugung und -änderung direkt per Lisp (programmtechnisch flexibel, sicher, aufwendig, nur für Programmierer) - oder nur Steuerung des Befehls (Verkürzung der Dialogversion) und Verwendung externer Steuerdateien, die auch Nicht-Programmierer lesen und ändern können ... Wie gesagt - mehr eine organisatorische als eine rein technische Frage .. Peter ------------------ 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 |
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: 14. Jun. 2007 20:29 <-- editieren / zitieren --> Unities abgeben: Nur für Peter2
Zitat: Original erstellt von Peter2: Aber beim Wiederherstellen mit bns_c_restore_layerstate kann man nichts übergeben ...
und.. ? haste dir mal die Funktion genauer angeguckt? Code:
(defun bns_c_restore_layerstate ( / lstate lst2) (bns_reg_it) (while (not lstate) (setq lstate (xstrcase (getstring T "\nNamen für wiederherzustellenden Layerzustand eingeben [?]:") ) );setq (if (not (equal "" lstate)) (progn...
da machste dann
Code:
(defun spezial_bns_c_restore_layerstate ( lstate / lst2) (bns_reg_it) (if (not (equal "" lstate)) (progn...
d'raus und fertig. Dann kannst du auch einen Namen übergeben.Ich denke der Weg ist klar?! Gehen mußte ihn alleine! ------------------ - 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 |
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: 15. Jun. 2007 06:51 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von CADmium: ...Ich denke der Weg ist klar?! Gehen mußte ihn alleine!...
Ja, soweit klar - technisch. Ich muss aber noch in mich gehen, ob und wie ich das technisch will: Den Original-Code umbauen möchte ich nicht (Eindeutigkeit, Updates, ..), den Teilcode herausnehmen kann ausarten (Namensähnlichkeit, Nebenfunktion sind abhängig von ET) usw. Peter ------------------ 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 |