1404073417 发表于 2022-3-21 11:35:51

在循环中如何按esc就返回到插件面板

程序介绍:
用户在面板中输入数据,然后点击绘制后面板隐藏 用户指定一个插入点;然后再输入数据,再指定插入点,直到用户点击确定或者取消退出该插件。现在遇到一个问题,用户点击完绘制后发现自己数据输入错误,想返回到输入数据的面板。



我的思路:

我想让程序在指定插入点的时候,按esc可以返回到面板重新输入数据。

纵横八方 发表于 2022-3-21 11:40:08

If null pt, 返回dcl不就完了

1404073417 发表于 2022-3-21 12:28:08

纵横八方 发表于 2022-3-21 11:40
If null pt, 返回dcl不就完了

pt是啥意思

wzg356 发表于 2022-3-21 14:52:38

本帖最后由 wzg356 于 2022-3-21 15:09 编辑

(defun c:tt (/ pt)
(initget 1 "E")
(setq pt (getpoint "\n点取点位置(E重来或回车/右键/空格退出):"))
(cond
      ((= (type pt) 'list)(alert "对话框")(C:TT));重复循环
      ((= pt "E")(C:TT));重复循环
      (t nil);回车/右键/空格退出
)
)

推荐http://bbs.mjtd.com/forum.php?mod=viewthread&tid=182450&highlight=%D1%A7%CF%B0%CA%D6%B2%E1&_dsign=b8d35ea3

qazxswk 发表于 2022-3-24 02:35:24

1404073417 发表于 2022-3-21 12:28
pt是啥意思

pt表示你的插入点呀

zj20190405 发表于 2025-3-28 23:48:30

wzg356 发表于 2022-3-21 14:52
(defun c:tt (/ pt)
(initget 1 "E")
(setq pt (getpoint "\n点取点位置(E重来或回车/右键/空格退出):" ...

大哥,秋枫打印的亮显,按esc返回到dcl是怎么做到的,能举个简单例子吗

zj20190405 发表于 2025-5-21 12:51:11

我习惯用vl-catch-all-error-p捕捉错误
(defun c:tt (/ ss)
(if (vl-catch-all-error-p
        (setq
          ss
           (vl-catch-all-apply 'ssget)
        )
      )
    (vl-cmdf "line" pause pause "");;;按了esc执行
    (prin1 "退出");;;执行了,命令显示退出
)
)
页: [1]
查看完整版本: 在循环中如何按esc就返回到插件面板