| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: Lsp über Button starten (1746 mal gelesen)
|
Bauvermesser Mitglied Vermesser
Beiträge: 460 Registriert: 18.03.2006 AMD 2600, 2024RAM ,WIN XP PROF-SP3, ACAD 2005, Firmenrechner,
|
erstellt am: 10. Dez. 2006 13:22 <-- editieren / zitieren --> Unities abgeben:
Hallo, Ich will einige LSP über Buttons starten welche ich nur wenig brauche Frage: 1. was ist der Unterschied zwischen den beiden Befehlen oder welcher ist der bessere ^C^C^P(if (null F:/xx/LSP-TOOLS/(load"EDIT-SOLL"))(princ);EDIT-SOLL ^C^C(if (not f:/xx/lsp-tools/(load "fla-bere.lsp"));fla 2. sind die Befehle auch ohne Einschränkung anzuwenden wenn ich sie doch 3,4 mal in der selben Zeichnung starten muss,; wäre für Hinweise dankbar, -allen eine schöne Weihnachtszeit ------------------ Gruß vom Bauvermesser; Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Theodor Schoenwald Ehrenmitglied
Beiträge: 1672 Registriert: 16.04.2002
|
erstellt am: 10. Dez. 2006 13:43 <-- editieren / zitieren --> Unities abgeben: Nur für Bauvermesser
Hallo (if (null oder (if (not machen bei Deinem Beispiel das gleiche und zwar: wenn das Programm XX nicht geladen ist, laden. Wenn Du das (if ... nicht verwendest, wird das Programm XX nochmals geladen, auch wenn es schon geladen war. Gruß Theodor 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: 10. Dez. 2006 16:54 <-- editieren / zitieren --> Unities abgeben: Nur für Bauvermesser
|
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: 11. Dez. 2006 08:39 <-- editieren / zitieren --> Unities abgeben: Nur für Bauvermesser
Zitat: Original erstellt von Bauvermesser: Hallo, 1. was ist der Unterschied zwischen den beiden Befehlen oder welcher ist der bessere ^C^C^P(if (null F:/xx/LSP-TOOLS/(load"EDIT-SOLL"))(princ);EDIT-SOLL ^C^C(if (not f:/xx/lsp-tools/(load "fla-bere.lsp"));fla
Es gibt keinen, weil beide totaler Blödsinn sind. Entweder hat das Forum Dir den Text hier zerhauen, oder Du hast ihn nicht korrekt eingegeben... Die allgemeine Form des Lisp-Anteils der Menüanweisung lautet: Code:
(Wenn (nichtvorhanden Symbolname)(dann (lade Dateiname))(ansonsten))
Ein nichtvorhandener Symbolname läßt sich sowohl mit null als auch mit not überprüfen. Der Dateiname kann als Fullpath angegeben werden, oder aber wenn im Suchpfad vorhanden nur als Dateiname. Wobei es hier unerheblich ist ob man die Dateierweiterung ".lsp" mit angibt. Das princ am Ende der Lisp Anweisung soll verhindern, das die Rückgabe der If Anweisung in der Befehlszeile angezeigt wird. In folgender Form wären die Sachen lauffähig: Code:
(if (null C:EDIT-SOLL)(load "EDIT-SOLL"))(princ);EDIT-SOLL;(if (not C:FLA)(load "fla-bere.lsp"));fla;
Handelt es sich bei der Lisp Funktion nicht um ein "defun c:"; sprich Define Function Command; könnte die Anweisung so aussehen: Code:
(if (null my-fine-func)(load "my-fine-lisp-file"))(princ);(my-fine-func);
Oder auch so:
Code:
(if (null my-fine-func)(load "my-fine-lisp-file"))(my-fine-func);
Zu den Steuerzeichen in Menümakros mal in der Hilfe schauen unter: "Verwenden von Sonderzeichen und Steuerzeichen in Menümakros" Da findet sich die Bedeutung der folgenden und weiterer Steuercodes: ^c^c In Menümacros führt ein zweimaliges ESCAPE aus um jeden laufenden Befehl im Vorfeld abzubrechen. ^p Aktiviert oder deaktiviert MENUECHO ; Entspricht der EINGABETASTE ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 11. Dez. 2006 08:58 <-- editieren / zitieren --> Unities abgeben: Nur für Bauvermesser
ok, vielleicht ist es mit Kanonen auf Spatzen schießen, aber um ganz sicher zu gehen... (if(or(=(type(eval my-fine-func))'SUBR) (and(/=(load "my-fine-lisp-file" "ERROR")"ERROR") (=(type(eval my-fine-func))'SUBR) ) ) (my-fine-func) ) (=(type(eval my-fine-func))'SUBR) testet, ob Symbol im Speicher und eine aufrufbare Routine (/=(load "my-fine-lisp-file" "ERROR")"ERROR") ... gint 'T zurück, wenn Datei geladen werden konnte ..
------------------ - 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 |
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: 11. Dez. 2006 09:01 <-- editieren / zitieren --> Unities abgeben: Nur für Bauvermesser
|
Bauvermesser Mitglied Vermesser
Beiträge: 460 Registriert: 18.03.2006 AMD 2600, 2024RAM ,WIN XP PROF-SP3, ACAD 2005, Firmenrechner,
|
erstellt am: 11. Dez. 2006 10:17 <-- editieren / zitieren --> Unities abgeben:
Danke der ausführlichen Erläuterung, bei dem Reinkopieren der Befehle hat sich eine Klammer davon gemancht, aber die Erläuterung hilft mir sehr die Dinge zu verstehen, schöne Weihnachten ------------------ Gruß vom Bauvermesser; Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |