在循环体中按ESC键,*error*函数到底能不能搞定
本帖最后由 xhq1954425 于 2011-1-31 13:31 编辑下面的程序在执行过程中按ESC键是不执行出错函数的,可有办法解决它?谢谢!
(defun C:tt ()
(setq error_bak *error*)
(setq *error* ke_jian)
(repeat 10000
(command "line" '(0 0) '(100 0) "")
)
)
(defun ke_jian (msg)
(setq *error* error_bak)
(alert "看执行没有")
)
这样试试
(defun ke_jian (msg)
(alert "看执行没有")
(setq *error* error_bak)
)
本帖最后由 caoyin 于 2011-1-31 21:20 编辑
(defun C:tt ()
(setq error_bak *error*)
(setq *error* ke_jian)
(repeat 10000
(command "line" "_non" '(0 0)"_non" '(100 0) "")
)
)
(defun ke_jian (msg)
(alert "看执行没有")
(setq *error* error_bak)
(while (/= (getvar 'CMDACTIVE) 0)
(command "")
)
)
为了确保*error*没有被覆盖,测试前建议重新打开个dwg图档
本帖最后由 xhq1954425 于 2011-2-1 06:48 编辑
谢谢两位版主的关注,我试了一下都没行,在循环体中按ESC键时直接中断了,根本不执行出错函数。这个问题困扰我很久了。实在是想不出别的办法了……
再次谢谢两位版主 为什么我测试成功? 在04版本测试可以弹出出alert对话框,在08版本上不能弹出alert对话框,改成(princ "看执行没有")就可以!把出错函数改为
(defun ke_jian (msg)
(alert "看执行没有")
(setq *error* error_bak)
(princ "可以执行了")
)
在08上运行中按esc键,命令行出现:"可以执行了"
说明出错函数正确运行到最后了,只是不能弹出alert对话框而已!所以在08版上的出错函数中不能使用alert! 本帖最后由 xhq1954425 于 2011-2-1 11:45 编辑
试了,好使!向各位版主致谢! 本帖最后由 AMTONNY 于 2011-2-8 21:11 编辑
学习了,这个功能有用,多谢几位版主指点了 08版测试可以 不行啊,运行时命令行显示 TT NIL
页:
[1]