明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 253|回复: 8

求教函数取消后,如何继续执行后续程序

[复制链接]
发表于 6 天前 | 显示全部楼层 |阅读模式
从社区里找了一个画双线后炸开的程序,很符合我的预期,只是画图时习惯用esc结束mline命令,这样炸双线的命令就无法进行,求教如何在结束和退出mline命令后,继续执行代码。

  •   (defun c:123()   
  •     ;启动绘制双线命令  
  •     (command "mline" "S" 400 )   
  •     ;检测命令是否结束   
  •     (while (= (getvar "CMDACTIVE") 1)
  •       ;没有结束,等待用户输入      
  •       (command pause)            )   
  •     ;获取上面命令生成的多线   
  •     (setq ent (entlast))   
  •     ;执行分解命令   
  •     (command "EXPLODE" ent)   
  •     ;静默退出   
  •     (princ)    )

回复

使用道具 举报

发表于 6 天前 | 显示全部楼层
本帖最后由 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* "")
)
回复 支持 1 反对 0

使用道具 举报

发表于 6 天前 | 显示全部楼层
把炸双线放到*error*函数里面
回复 支持 反对

使用道具 举报

发表于 6 天前 | 显示全部楼层
tryhi 发表于 2024-12-13 10:27
把炸双线放到*error*函数里面

老师举例说明下嘛
回复 支持 反对

使用道具 举报

 楼主| 发表于 6 天前 | 显示全部楼层
本帖最后由 LIUYANG233 于 2024-12-13 18:31 编辑

我搜了一个,好使了。

回复 支持 反对

使用道具 举报

发表于 6 天前 | 显示全部楼层
LIUYANG233 发表于 2024-12-13 11:31
我搜了一个,好使了。
(defun C:TT2 ()
(setq olderr *error* *error* myerr)

谢谢,我也研究下
回复 支持 反对

使用道具 举报

 楼主| 发表于 6 天前 来自手机 | 显示全部楼层
tryhi 发表于 2024-12-13 10:27
把炸双线放到*error*函数里面

谢谢大佬,已经解决
回复 支持 反对

使用道具 举报

发表于 6 天前 | 显示全部楼层
LIUYANG233 发表于 2024-12-13 11:31
我搜了一个,好使了。
(defun C:TT2 ()
(setq olderr *error* *error* myerr)

可以使用局部函数直接定义*error*
回复 支持 反对

使用道具 举报

 楼主| 发表于 6 天前 来自手机 | 显示全部楼层
tryhi 发表于 2024-12-13 11:55
可以使用局部函数直接定义*error*

感谢大佬指点(ˇˇ)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-19 04:48 , Processed in 0.153397 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表