求教函数取消后,如何继续执行后续程序
从社区里找了一个画双线后炸开的程序,很符合我的预期,只是画图时习惯用esc结束mline命令,这样炸双线的命令就无法进行,求教如何在结束和退出mline命令后,继续执行代码。[*](defun c:123()
[*] ;启动绘制双线命令
[*] (command "mline" "S" 400 )
[*] ;检测命令是否结束
[*] (while (= (getvar "CMDACTIVE") 1)
[*] ;没有结束,等待用户输入
[*] (command pause) )
[*] ;获取上面命令生成的多线
[*] (setq ent (entlast))
[*] ;执行分解命令
[*] (command "EXPLODE" ent)
[*] ;静默退出
[*] (princ) )
本帖最后由 tryhi 于 2024-12-13 11:54 编辑
(defun c:tt (/ *error*)
(defun *error* (MSG)
(setq ent (entlast))
(command "EXPLODE" ent)
)
(command "mline" "S" 400 )
(while (= (getvar "CMDACTIVE") 1)
(command pause))
(*error* "")
) 把炸双线放到*error*函数里面 tryhi 发表于 2024-12-13 10:27
把炸双线放到*error*函数里面
老师举例说明下嘛 本帖最后由 LIUYANG233 于 2024-12-13 18:31 编辑
小王在学lisp 发表于 2024-12-13 10:42
老师举例说明下嘛
我搜了一个,好使了。
LIUYANG233 发表于 2024-12-13 11:31
我搜了一个,好使了。
(defun C:TT2 ()
(setq olderr *error* *error* myerr)
谢谢,我也研究下 tryhi 发表于 2024-12-13 10:27
把炸双线放到*error*函数里面
谢谢大佬,已经解决 LIUYANG233 发表于 2024-12-13 11:31
我搜了一个,好使了。
(defun C:TT2 ()
(setq olderr *error* *error* myerr)
可以使用局部函数直接定义*error* tryhi 发表于 2024-12-13 11:55
可以使用局部函数直接定义*error*
感谢大佬指点(ˇˇ)
页:
[1]