| |
 | 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: Abfangen von Fehlern beim Setzen von Systemvariablen (1276 mal gelesen)
|
tappenbeck Mitglied Vermessungsingenieur
   
 Beiträge: 1221 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: 1998 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: 1221 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: 1998 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: 1776 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 Ehrenmitglied Elektrotechniker
    
 Beiträge: 1500 Registriert: 11.01.2006 WIN 11 ACAD 2022 BricsCAD V25.1.07
|
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 |