调用(*push-error-using-command*)前无法从 *error* 调用(command)问题解决方法
本帖最后由 tianying307 于 2020-8-9 14:18 编辑在使用插件时,按esc经常出现调用(*push-error-using-command*)前无法从 *error* 调用(command)提示,这是因为高版本cad(大概从2014或者2015版本有所变化吧,本人未考证,所以不确定)函数变化导致,高版本cad的error函数不允许使用command命令,但是可以用command-s命令代替
(defun c:tt ()(setq sysvarlst (mapcar (function (lambda (n) (list 'setvar n (getvar n)))) ;;先取改变前的变量名和值保存
'("osmode" "cmdecho" "orthomode" "osnapcoord" "textsize" "clayer")
)
)
(clerrr)
(setvar "osmode" 0) ;改变变量值
(alert "11")
(getpoint "\n输入")
)
(mapcar 'eval sysvarlst) ;;恢复变量值
(setq *error* olderr)
)
(defun clerrr()
(defun *myerr* (msg)
(mapcar 'eval sysvarlst) ;;恢复变量值
(alert "\n错误处理成功!")
(princ msg)
(setvar "qaflags" 0)
(command-s "undo" "e");用command-s代替了command
(setq *error* olderr)
)
(setq olderr *error*
*error* *myerr*
)
);感谢wen1235提供的解答
;借鉴于明经http://bbs.mjtd.com/forum.php?mod=viewthread&tid=180544&highlight=error
学习了~~~~@
页:
[1]