hosyn 发表于 2022-7-6 06:15:40

为什么';t此代码r

我想做一个调用TORIENT的键并编写以下代码:
 

(DEFUN C:t () (COMMAND "TORIENT"))

为什么这段代码不运行??:

Commandobill 发表于 2022-7-6 06:20:02

 
因为“Torient”实际上是Lisp程序。因此,您的代码应为:
 
(DEFUN C:t () (C:TORIENT))

hosyn 发表于 2022-7-6 06:23:48

Thanxxxxxxxxxxxxxxxxxxxxxxx很多伴侣

David Bethel 发表于 2022-7-6 06:28:15

我不建议将命令命名为“t”
 
它将覆盖受保护的符号-大卫

Lee Mac 发表于 2022-7-6 06:30:08

 
仅当(defun t()…)使用,此处定义的符号为c:t

Commandobill 发表于 2022-7-6 06:35:33

无论如何,我总是做我的“tor”。个人

neophoible 发表于 2022-7-6 06:37:23

听起来它没有得到充分保护,不是吗?不过,你可能会认为是这样。

Lee Mac 发表于 2022-7-6 06:41:20

 
尽管在这种情况下,定义的符号是“c:t”,而不是“t”。

neophoible 发表于 2022-7-6 06:43:46

是的,你早就说过了,我也早就知道了,就像你一样。但这并没有改变这样一个事实,即大卫所指的符号t,是为了改变,如果有人足够粗心,做出这样的举动。虽然一个命令不会有这种风险,但正如您所指出的,一个简单的defun会有这种风险,因为符号并没有得到真正的保护。事实上,一个简单的setq可以完成/撤消它。有人提出其他建议吗?在这方面,为了清晰起见,我建议使用更长的名称命名命令,然后使用。pgp文件为其创建快捷方式。

Lee Mac 发表于 2022-7-6 06:47:02

 
您描述的行为取决于VLIDE中“常规选项”对话框(在“工具”>“环境选项”下)中的“设置受保护符号”。
 
当程序尝试重新定义受保护的符号(如t)时,将此设置为“Error”将导致AutoCAD引发错误。
页: [1] 2
查看完整版本: 为什么';t此代码r