alanjt 发表于 2022-7-6 10:50:52

好了,现在清楚了。
 
但是,如果用户取消,在错误定义中恢复(setvar的osmode os)是否正确
运行时的例行程序?

Sweety 发表于 2022-7-6 10:51:43

是的,但我会先检查变量是否已定义。
如。
(defun c:Test (/ *error* p1 p2) (defun *error* (m))......(princ))

(if os (setvar 'osmode os))

alanjt 发表于 2022-7-6 10:57:27

现在你怎么想?
 
当然,如果我用了你的,希望你不要用我的。
 
(and os (setvar 'osmode os))
 
谢谢。

Sweety 发表于 2022-7-6 10:59:10

(defun *error* (msg os)
(if (and msg (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*QUIT*,"))
       (setvar 'osmode os)
            )
   (princ (strcat "\nError: " msg))
)
)
   

alanjt 发表于 2022-7-6 11:03:12

 
非常感谢您的大力帮助,艾伦先生。
 
你太棒了。
 
我的问候。

Sweety 发表于 2022-7-6 11:04:48

最重要的是:你了解这个函数以及它在做什么吗?

alanjt 发表于 2022-7-6 11:07:38

实际上是的。
 
通过使用错误函数,这将防止未知错误消息的任何交叉。
 
如果你是指我添加的系统变量,答案当然是肯定的,因为这就是我一直在寻找的重新设置
Cad的系统变量与以前一样。
 
你想补充点什么吗?或者请纠正我。
 
谢谢

Sweety 发表于 2022-7-6 11:11:23

我这样问是因为我给了你一个提示,你回来时发现你完全错了。看看我是如何构造错误处理程序的。

alanjt 发表于 2022-7-6 11:15:27

 
我想现在是对的。
 
(defun *error* (msg)
(and os (setvar 'osmode os))
(if (and msg (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*QUIT*,")))
   (princ (strcat "\nError: " msg))
)
)
 
请告诉我。
 
非常感谢

Sweety 发表于 2022-7-6 11:17:37

页: 1 [2]
查看完整版本: 什么';如果用户按