| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: Externe Lisp in Repeat starten möglich? (1606 mal gelesen)
|
cadking Mitglied CAD-Zeichendiensleistung
Beiträge: 242 Registriert: 26.10.2004 Intel Quadcore i7,W7-64bit, Quadro FX 3800 MEP/ACA2018; MEP/ACA2018; MEP/ACA2021; MEP/ACA2021
|
erstellt am: 26. Okt. 2004 10:44 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, kann mir jemand sagen, ob es in Autolisp möglich ist, innerhalb einer Repeat-Schleife eine externe Lisp-Datei auszuführen und anschließend wieder in die Schleife zurückzukehren? hier ein Auszug aus meiner Lisp. In der vorletzten Zeile soll die externe Lisproutine "PVERB.LSP" ausgeführt werden und dann soll es in der Repeat-Schleife weitergehen. (command ".-layer" "_th" "*" "_on" "*" "" "") (setq allobj (ssget "X" (list '(-4 . "<AND")(cons 8 "*")'(-4 . "AND>")))) (Setq objanz (sslength allobj)) (repeat objanz (setq laakt (ssget "l")) (print laakt) (setq las (ssname laakt 0)) (print las) (setq elist (entget las)) (print elist) (setq lalist (assoc 8 elist)) (print lalist) (setq aktla (cdr lalist)) (print aktla) (command ".-layer" "_se" aktla "_off" "*" "_on" aktla "" "") (if (setq lst (acet-overkill-ui nil)) (acet-overkill2 lst) );if (acet-error-restore) (command ".-layer" "_on" "*" "_se" "0" "_fr" aktla "" "") (hier extene Lisp [PVERB.LSP] starten und dann weiter mit repeat) );end repeat Gruß Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 26. Okt. 2004 11:15 <-- editieren / zitieren --> Unities abgeben: Nur für cadking
müsste so gehen (command ".-layer" "_th" "*" "_on" "*" "" "") (setq allobj (ssget "X" (list '(-4 . "<AND")(cons 8 "*")'(-4 . "AND>")))) (Setq objanz (sslength allobj)) (repeat objanz (setq laakt (ssget "l")) (print laakt) (setq las (ssname laakt 0)) (print las) (setq elist (entget las)) (print elist) (setq lalist (assoc 8 elist)) (print lalist) (setq aktla (cdr lalist)) (print aktla) (command ".-layer" "_se" aktla "_off" "*" "_on" aktla "" "") (if (setq lst (acet-overkill-ui nil)) (acet-overkill2 lst) );if (acet-error-restore) (command ".-layer" "_on" "*" "_se" "0" "_fr" aktla "" "") (load "PVERB")(pverb) );end repeat
------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 26. Okt. 2004 11:19 <-- editieren / zitieren --> Unities abgeben: Nur für cadking
eine Lispdatei kann man laden : (load "PVERB.LSP") auch in einer Repeatschleife .. da werden dann jedesmal die gleichen Funktionen definiert .. ob das sinn macht? .. ruf doch besser die in der "PVERB.LSP" definierte Funktion (defun ...???) in deiner Routine auf z.B. (c verb) ------------------ - 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 |
cadking Mitglied CAD-Zeichendiensleistung
Beiträge: 242 Registriert: 26.10.2004 Intel Quadcore i7,W7-64bit, Quadro FX 3800 MEP/ACA2018; MEP/ACA2018; MEP/ACA2021; MEP/ACA2021
|
erstellt am: 26. Okt. 2004 13:32 <-- editieren / zitieren --> Unities abgeben:
So funktioniert es leider nicht. Ich habe es versucht mit (load "PVERB")(pverb) und (load "PVERB.LSP")(pverb) aber immer, wenn ich an diesen Stelle bin erhalte ich die Fehlermeldung "no function definition: PVERB". Gruß Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 26. Okt. 2004 13:46 <-- editieren / zitieren --> Unities abgeben: Nur für cadking
..gaaanz ruhig : guck erstmal hiersuch nach nem defun in der Lisp und gucke, welche mit defun definierte Funktion du brauchst. Guck die überhaupt mal in der Hilfe im Vlispeditor den Text zur funktion defun an ------------------ - 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 |
cadking Mitglied CAD-Zeichendiensleistung
Beiträge: 242 Registriert: 26.10.2004 Intel Quadcore i7,W7-64bit, Quadro FX 3800 MEP/ACA2018; MEP/ACA2018; MEP/ACA2021; MEP/ACA2021
|
erstellt am: 26. Okt. 2004 14:15 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, noch bin ich ganz ruhig. Natürlich habe ich nach dem defun in der "pverb.lsp" gesucht. Da steht zum Starten (defun C verb (/.... geladen wird die routine auch, aber ausgeführt wird sie nicht. Wenn ich in der Befehlszeile nach erscheinen der Fehlermeldung "no function definition: PVERB" pverb eingebe, läuft die routine 1a ab. noch ganz ruhig - Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 26. Okt. 2004 14:19 <-- editieren / zitieren --> Unities abgeben: Nur für cadking
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 26. Okt. 2004 14:20 <-- editieren / zitieren --> Unities abgeben: Nur für cadking
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 26. Okt. 2004 14:20 <-- editieren / zitieren --> Unities abgeben: Nur für cadking
na dann mußt du es auch so aufrufen: (load "PVERB.LSP")(c verb) ------------------ - 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 |
cadking Mitglied CAD-Zeichendiensleistung
Beiträge: 242 Registriert: 26.10.2004 Intel Quadcore i7,W7-64bit, Quadro FX 3800 MEP/ACA2018; MEP/ACA2018; MEP/ACA2021; MEP/ACA2021
|
erstellt am: 26. Okt. 2004 14:40 <-- editieren / zitieren --> Unities abgeben:
Hallo Holger und Thomas, jetzt bin ich noch ruhiger, denn es funzt jetzt. Was so ei : doch bewirken kann. Noch ne Frage: kann es sein, dass in einer Lisp folgendes nicht funktioiert? (command "_explode" "_all") um alle Objekt aufzulösen. Wie muss es richtig heissen? Danke Stefan
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 26. Okt. 2004 14:46 <-- editieren / zitieren --> Unities abgeben: Nur für cadking
|
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 27. Okt. 2004 09:50 <-- editieren / zitieren --> Unities abgeben: Nur für cadking
|
cadking Mitglied CAD-Zeichendiensleistung
Beiträge: 242 Registriert: 26.10.2004 Intel Quadcore i7,W7-64bit, Quadro FX 3800 MEP/ACA2018; MEP/ACA2018; MEP/ACA2021; MEP/ACA2021
|
erstellt am: 27. Okt. 2004 10:17 <-- editieren / zitieren --> Unities abgeben:
Danke für Eure Hilfe, ich habe die Lösung gefunden: ;explodieren aller (LW)POLYLINIEN (defun C:expl ( / expausw expanz expallobj lastexp) (setq expausw (ssget "X" '((0 . "*POLY*")))) (Setq expanz (sslength expausw)) (repeat expanz (setq expallobj (ssget "X" '((0 . "*POLY*")))) (setq lastexp (ssname expallobj 0)) (command "_.explode" lastexp) ) ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 27. Okt. 2004 10:27 <-- editieren / zitieren --> Unities abgeben: Nur für cadking
wenn dann so : (defun c:EXPL(/ AUSWAHL INDEX) (if(setq Auswahl(ssget "_X" '((0 . "*POLYLINE")))) (progn (setq INDEX -1) (repeat (sslength AUSWAHL) (command "_.explode" (ssname AUSWAHL(setq INDEX(1+ INDEX)))) ) ) ) )
------------------ - 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 |