| |
| 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: Lisp in Lisp :-) (853 mal gelesen)
|
CAD-Tötti Mitglied
Beiträge: 116 Registriert: 27.09.2003 ACAD 2009
|
erstellt am: 30. Jan. 2004 18:16 <-- editieren / zitieren --> Unities abgeben:
|
Proxy Ehrenmitglied Stateless-DHCP v6-Paketfragmentierer
Beiträge: 1629 Registriert: 13.11.2003 Tastaturen, Mäuse, Pladden, ..., AutoCADs 200X, SWX 2kX
|
erstellt am: 30. Jan. 2004 19:57 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Dazu sag ich Nix ! Code:
(defun varget () (setq lis '("HIGHLIGHT" "BLIPMODE" "CMDECHO" "BLIPMODE" "OSMODE")) ;store names of system variables (setq var (mapcar 'getvar lis)) ;get the value of the system variables and ;store them as a list (setq var1 '(0 0 0 0 517)) ;store the new values of the system variables (setq no 0) ;set counter to zero (repeat (length lis) ;get the number of variables in the list ;to use as the counter control number (setvar (nth no lis) (nth no var1)) ;set the variables to their new values (setq no (1+ no)) ;move up one in the list );repeat (princ);finish quietly );defun
Code:
(defun varset () (setq no 0) ;set counter to zero (repeat (length lis) ;get the number of variables in the list (setvar (nth no lis) (nth no var)) ;reset the variables to their original values (setq no (1+ no)) ;move up one in the list );repeat (princ);finish quietly );defun (princ);load quietly
Code:
(defun c:example () (varget) ;store system variables and then reset them Programme statements............. ................................. (varset) ;restore system variables (princ) );defun
------------------ "Lisp?!?! Why the Hell did you pick the most arcane, obscure, and hopelessly-rooted-in-the-computer-science-department language in the world for an AutoCAD programming language?" Read the whole story: The Autodesk File ca. 890 Seiten | 7500 KB PDF 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: 30. Jan. 2004 20:17 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Hi, das kommt darauf an, ob Deine Lisp Function ein "defun" oder ein "defun C:" ist und ob Deine Funktion Argumente zum Aufruf definiert. Code:
(defun plus (x y /) (+ x y) ) -> rufst Du mit (plus 1 1) auf.(defun C:plus (/) (+ (getreal)(getreal)) ) -> rufst Du mit (C:plus) aus Lisp heraus auf und mit Plus von der Befehlszeile Außerdem ginge auch noch dies hier: (defun plus (x y /) (+ x y) ) (defun C:plus (/) (plus (getreal)(getreal)) )
. ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Tötti Mitglied
Beiträge: 116 Registriert: 27.09.2003 ACAD 2009
|
erstellt am: 31. Jan. 2004 23:26 <-- editieren / zitieren --> Unities abgeben:
|
m-troeger Mitglied gel. Bauzeichner; Vermessungszeichner, Vermesser im Außendienst, GIS-Erfassung in PARIS
Beiträge: 295 Registriert: .. ACAD14 und 2005; MAP4; GeoCAD; PARIS; ( Vermessung )
|
erstellt am: 01. Feb. 2004 21:55 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Hi, Ist deine LISP eine (Defun C:Lispname), dann (C:Lispname) Lispname ohne .lsp/.vlx, muß aber vorher geladen sein. Ist deine LISP eine (Defun Lispname), dann (Lispname) Lispname ohne .lsp/.vlx, muß aber vorher geladen sein. Aber beachten, wenn du noch Werte an die zu startende LISP übergeben mußt. wenn diese Zeile vorher eingefügt wird, so wird geprüft ob die LSP geladen ist. Wenn nicht, dann wird sie geladen. (if (not C:Lispname)(load "C:/...../Lispname.LSP")) oder (if (not Lispname)(load "C:/...../Lispname.LSP")) oder Schau dich doch hier mal um: www.autolisp-tutorial.mapcar.net Servus Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cad4fun Ehrenmitglied
Beiträge: 1846 Registriert: 06.12.2004 privat ACAD 2013 deutsch, Windows 7 64Bit HP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM
|
erstellt am: 31. Mai. 2006 10:21 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
mein startbefehl wäre "DT:startbefehl", definiert in einer geladenen "NAME.vlx". daher steht in meiner LISP-Routine die Zeile (DT:startbefehl) aber ohne irgendeiner fehlermeldung wird abgebrochen. kann mir jemand weiter helfen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 31. Mai. 2006 10:25 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Zitat: Original erstellt von cad4fun: mein startbefehl wäre "DT:startbefehl", definiert in einer geladenen "NAME.vlx". daher steht in meiner LISP-Routine die Zeile (DT:startbefehl) aber ohne irgendeiner fehlermeldung wird abgebrochen. kann mir jemand weiter helfen?
.. ich denke, der Ersteller der "NAME.vlx" ------------------ - 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 |
cad4fun Ehrenmitglied
Beiträge: 1846 Registriert: 06.12.2004 privat ACAD 2013 deutsch, Windows 7 64Bit HP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM
|
erstellt am: 31. Mai. 2006 11:28 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 31. Mai. 2006 11:34 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
naja .. ohne Routinen und vlx-Dateinamen ist es ein bißchen kompliziert.. der Prefix "DT:" kommt mir bloß sehr bekannt vor, und daher wäre es durchaus möglich, das ich den Quelltext bei mir auf der Platte hab .... ------------------ - 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 |
cad4fun Ehrenmitglied
Beiträge: 1846 Registriert: 06.12.2004 privat ACAD 2013 deutsch, Windows 7 64Bit HP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM
|
erstellt am: 31. Mai. 2006 13:41 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Das ist mir schon klar, aber nachdem ich jetzt noch Deine alte Block_New_Basispunkt_auto.lsp auf meiner Platte gefunden habe, habe ich jetzt eine kleine LISP geschrieben, welche vom BKS ins WKS wechselt, Deine Routine mit (c:bnb) abarbeitet und dann wieder ins BKS zurückwechselt. Funkt super! Aber danke für Dein Hilfsangebot, ich hätte nur gerne verstanden, warum DT:xxx im Normalbetrieb funktioniert und in Klammer gesetzt in einer LISP-Routine nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 31. Mai. 2006 13:44 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
|
cad4fun Ehrenmitglied
Beiträge: 1846 Registriert: 06.12.2004 privat ACAD 2013 deutsch, Windows 7 64Bit HP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM
|
erstellt am: 31. Mai. 2006 13:59 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
|