;加个执行完后自动回原变量
(defun c:dng ( / *error* s p var val )
(defun *error* ( msg )
(mapcar '(lambda ( a b ) (if b (setvar a b))) var val)
(if (and msg (not (wcmatch (strcase msg t) "*break,*cancel*,*exit*")))
(princ (strcat "\nError: " msg))
)
(princ)
)
(if (setq s (ssget))
(if (setq p (getpoint "\n指定点"))
(progn
(setq var '(osmode snapang) val (mapcar 'getvar var))
(mapcar '(lambda ( a b c ) (if a (setvar b c))) val var (list 0 (* 45 (/ pi 180))))
(command "mirror" s "" p pause pause)
)
)
)
(*error* nil)
)