ich denke du meinst sowas in der Art
(setq tmpOSMODE (getvar "OSMODE"))
(setvar "OSMODE" 0)
; irgendeine Benutzereingabe z.B.: punkt oder Objektwahl
(setvar "OSMODE" tmpOSMODE)
wird jetzt bei der Benutzereingabe mit esc abgebrochen, wird natürlich der (in diesem Beispiel) der Objektfang nicht auf den ursprünglichen Wert zurückgesetzt (Lisp ist ja abgebrochen worden)
Da gibts im Prinzip zwei Möglichkeiten das abzufangen
1.) eine saubere ERROR Routine , ein Lisp Abbruch mit ESC startet automatisch eine Funktion die mit (defun *ERROR* definiert ist.
da kann man die vorher gespeicherten Benutzereinstellungen zurückstellen
2.) Lösung mittels sogenannter Reaktoren (das habe ich in Verwendung)
erster Reaktor vor jedem Lispaufruf (:vlr-lispWillStart) -> Benutzereinstellungen speichern
zweiter Reaktor nach jedem Lispaufruf (:vlr-LispEnded UND :vlr-lispCancelled) -> gespeicherte Benutzereinstellung zurückstellen
Die Lösung mittels Reaktor ist für mich einfacher, wenn es einmal eingestellt ist, und funktioniert, braucht man sich nie wieder um solche Dinge Kopf zerbrechen. Es würde aber hier den Rahmen sprengen die genaue Vorgehensweise zu erklären.
------------------
Ing. Anton Fuchs
WWW.FFZELL.AT.TC
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP