| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Abfangen von Fehlern beim Setzen von Systemvariablen (1179 mal gelesen)
|
tappenbeck Mitglied Vermessungsingenieur
Beiträge: 1217 Registriert: 30.05.2002 AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net
|
erstellt am: 29. Sep. 2015 14:41 <-- editieren / zitieren --> Unities abgeben:
Moin ! es geht darum, dass ich Systemvariablen via Lisp setzen lassen möchte. Nun kann es aber sein, dass in der Definition ein Fehler ist. Ich möchte nun aber vermeiden das die gesamte Funktion dann abbricht wie es mit dem bekannten *ERROR* der Fall ist. Gefunden habe ich dazu schon vl-catch-all-apply - aber das ist für mich ein Buch mit den berühmten "Sieben Siegeln". Nächerungsweise habe ich auch Beispiel (u.a. http://forums.augi.com/showthread.php?136198-System-Variables) gefunden, aber auch nicht verstanden. Kann mir einer weiterhelfen ? Gruß Jan ------------------ jan :-) 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: 29. Sep. 2015 14:50 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
|
tappenbeck Mitglied Vermessungsingenieur
Beiträge: 1217 Registriert: 30.05.2002 AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net
|
erstellt am: 29. Sep. 2015 15:10 <-- editieren / zitieren --> Unities abgeben:
|
CADwiesel Moderator CAD4FM UG
Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 29. Sep. 2015 15:27 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
Mensch, Jan- bei Augi bin ich leider nicht Mitglied. Aber veruch doch mal was über setvariable zu finden, da ist meißt auch dein geliebtes 7-Siegel Buch mit dabei, aber das dürfte mit nur einer codezeile abgehandelt werden. ------------------ Gruß CADwiesel Besucht uns im CHAT
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: 29. Sep. 2015 16:12 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
Hallo Jan, ein kleines Beispiel, hilft aber nur, wenn Du mit dem VLIDE mal selbst durch-debuggst, dann müßte es eigentlich "Click" machen: Code:
(defun c:test ( / VARILIST X) (setq variList '(("DIMZIN" 3) ("OSNAPZ" 1) ("GEHTNICHT" "egal"))) (mapcar '(lambda(X) (if (vl-catch-all-error-p (vl-catch-all-apply 'test:Setvar (list (car X)(cadr X)))) (alert (strcat "Bei der Variablen \"" (car X) "\" ist was schief gegangen.")) )) variList) (princ) ) (defun test:Setvar (Name Wert / ) (setvar Name Wert))
Bei Axel's Seiten solltest Du dann auch gleich mal vorbei schauen: http://www.activex.autolisp.info/catch.html ------------------ viele Grüße Jörn http://www.bosse-engineering.com Liniensignaturen Youtube Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 30. Sep. 2015 09:37 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
Hallo Jan, was genau meinst du mit Zitat: dass in der Definition ein Fehler ist
? Ich geh mal davon aus dass du z.B. vermeiden willst dass statt einer Zahl eine Zeichkette übergeben wird oder sowas. Vielleicht hilft es ja schon wenn du die Variable abfragst, den Typ feststellst und ggf. den zu übergebenden Wert anpasst. Sowas wie: (setvar "CLAYER" 0) wird zu (setvar "CLAYER" "0") ------------------ Geht nicht, gibts nicht Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |