Hello everyone,
for error handling I use the following code:
(defun c:TEST (/ var msgg var_ORTHOMODE snapcorr var_INSUNITSDEFSOURCE var_INSUNITSDEFTARGET var_INSUNITS var_OSNAPZ OSNAPZ)
;*************************************
(setq var (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(setq old-error *error*)
(defun *error* (msg)
(setq msgg (strcat "Error: " msg))
(princ msgg)
(setq *error* old-error)
(command "_.undo" "_end" "_u")
(exit)
)
(command "_.undo" "_be")
(setq snapcorr (getvar "OSMODE"))
(setvar "OSMODE" 0)
(setq var_INSUNITSDEFSOURCE (getvar "INSUNITSDEFSOURCE"))
(setq var_INSUNITSDEFTARGET (getvar "INSUNITSDEFTARGET"))
(setq var_INSUNITS (getvar "INSUNITS"))
(setq var_OSNAPZ (getvar "OSNAPZ"))
(setvar "INSUNITSDEFSOURCE" 0)
(setvar "INSUNITSDEFTARGET" 0)
(setvar "INSUNITS" 0)
(setvar "OSNAPZ" 1)
;*************************************
....custom code....
....custom code....
....custom code....
....custom code....
;*************************************
(setvar "INSUNITSDEFSOURCE" var_INSUNITSDEFSOURCE)
(setvar "INSUNITSDEFTARGET" var_INSUNITSDEFTARGET)
(setvar "INSUNITS" var_INSUNITS)
(setvar "OSNAPZ" var_OSNAPZ)
(setvar "OSMODE" snapcorr)
(setq *error* old-error)
(command "_.undo" "_end")
(setvar "cmdecho" var)
(princ)
;*************************************
)
Unfortunately, if the user presses ESC when running object snaps are not recovered.
What am I doing wrong?