| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Von Lisp zu Lisp (874 mal gelesen)
|
RoyCAD Mitglied Dipl-Ing Energietechnik
Beiträge: 206 Registriert: 24.05.2004 Win XP AutoCAD2008-2010 Inventor 2008-2010 Productstream Compass P4 3,0GHz 512MB Ram
|
erstellt am: 01. Apr. 2005 08:31 <-- editieren / zitieren --> Unities abgeben:
Hallo Da habe ich wieder eine Anfänger Frage. Wie kann den Code beibringen das er innerhalb einer Lisp-Datei in die andere geht. z.B. (if (< Breite 70.0) (progn „soll er in die Profi.lsp gehen);;end progn (progen „sol in die Profi_plus.lsp gehen“) ;;end progn );;end if
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gmk Mitglied Dipl.-Ing.(FH) Vermessung
Beiträge: 669 Registriert: 23.10.2002 Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM
|
erstellt am: 01. Apr. 2005 08:38 <-- editieren / zitieren --> Unities abgeben: Nur für RoyCAD
(if (< Breite 70.0) (profi) (profil_plus) ;else ) ;if profi und profi_plus müssen geladen sein und auch unter diesen namen z.v. stehen (defun profi bzw. defun profi_plus). dabei ist es egal ob sich die beiden funktionen in einer oder zwei dateien befinden. ciao georg
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 01. Apr. 2005 08:40 <-- editieren / zitieren --> Unities abgeben: Nur für RoyCAD
1. in eine lsp geht man nicht, man läd sie mit z.B. (load .. 2. nach dem Laden passiert je nach aufbau der Lisp aber gar nix, sonder man hat meistens nur ein paar mehr definierte Funktionen (defun .. 3. dies ruft man mit ihrem Namen und den Parametern auf (FUNCNAME PARAMETER1 PARAMETER2 ..) ..denke das ist hinsichtlich der Fragestelleung erstmal ne Antwort, für mehr, brauch man auch mehr Infos! ------------------ - 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 |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 01. Apr. 2005 08:42 <-- editieren / zitieren --> Unities abgeben: Nur für RoyCAD
Hallo (if (< Breite 70.0) (progn (load "Profi.lsp")(Funktionsname aus Profi.lsp));;end progn (progen(load "Profi_plus.lsp")(Funktionsname aus Profi_plus.lsp)) ;;end progn );;end if Und bei der Load-Funktion mußt Du die Pfadangaben mit angeben, wenn die *.lsp-Dateien nicht in einem Acad-Supportpfad liegen
------------------ viele Grüße Jörn 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: 01. Apr. 2005 10:15 <-- editieren / zitieren --> Unities abgeben: Nur für RoyCAD
Zitat: Original erstellt von joern bosse: Hallo(if (< Breite 70.0) (progn (load "Profi.lsp")(Funktionsname aus Profi.lsp));;end progn (progen(load "Profi_plus.lsp")(Funktionsname aus Profi_plus.lsp)) ;;end progn );;end if Und bei der Load-Funktion mußt Du die Pfadangaben mit angeben, wenn die *.lsp-Dateien nicht in einem Acad-Supportpfad liegen
Halte ich aber für Quatsch so etwas in den Funktionscode zu bringen. Ich halte da zwei Ansätze für sinnvoller: 1. Jede Lisp die Funktionen aus 'ner anderen Datei benötigt hat am Anfang Anweisungen zum Laden der externen Datei, wenn die Funktion nicht bekannt ist. z.B. bei mir steht in einer Datei folgendes am Anfang:
Code:
;;; Active-X Extensions laden (vl-load-com);;; Globale VLisp-Routinen laden... (if (not VLAX*GET-PROPERTY) (load "globalvl") ) ;_ end of if (if (null STARTERRORHANDLER) (load "$StandardError") )
2. Ich schreibe mir 'n eigenen Loader für zu ladende Ressourcen und lade den via acaddoc.lsp automatisch bei jedem neuen Dokument. Damit ist der Loader dann für jedes Lisp verfügbar und man braucht an den Anfang einer Lisp nur noch z.B. schreiben: Code:
;; Funktion zum Laden externer Lisp-Files ;; wenn der abgefragte Funktionsname nicht existiert. ;; Argument ist eine Liste mit SubListen ;; Aufbau der Sublisten: ;; ("[DateiName.lsp]" ABZUFRAGENDERFUNKTIONSNAME) (LOADEXTERNALFILES '(("set_lay.lsp" VORSCHRIFT) ("plotten.lsp" DONTPLOT) ("adv-plot.lsp" GETPLOTDEVICES) ) )
Die Ladefunktion kümmert sich dann um das ganze Errorhandling und das andere Geschrumpel wie Fehlermeldungen, was passiert wenn nicht blablabla, wo sind die Files zu suchen usw. ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 01. Apr. 2005 12:10 <-- editieren / zitieren --> Unities abgeben: Nur für RoyCAD
Moin Marc, da hast Du sicherlich recht, ich selber arbeite mit der acaddoc.lsp wenn ich mir im Vorfelde Anwendungen laden will. Und wenn ich mir LISP's während einer Funktion mal eben lade, dann muß ich eben wissen, daß die Lisp-Datei existiert und nicht fehlerbehaftet ist. Aber die Fragestellung ging meiner Meinung nach auch mehr in die Richtung Grundverständnis, daß letztendlich alles zu perfektionieren ist, ist klar. Schönes Wochenende ------------------ viele Grüße Jörn 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: 01. Apr. 2005 12:13 <-- editieren / zitieren --> Unities abgeben: Nur für RoyCAD
|