在函数前面加一个符号是什么意思的
例如在函数前加“_”是什么意思的。不好意思 是新人,,还有有时加"."是什么意思 比如你其它地方定义了copy ,(setq copy nil),那么copy就不起作用了。加后仍可调用系统的copy 加小数点是原始命令的意思,加下划线是“国际版”的意思,加减号的是对话框改进命令的无对话框原始版。 ll_j 发表于 2013-12-4 16:43 static/image/common/back.gif加小数点是原始命令的意思,加下划线是“国际版”的意思,加减号的是对话框改进命令的无对话框原始版。
国际版是什么意思,cad的版本吗? 自贡黄明儒 发表于 2013-12-4 14:27 static/image/common/back.gif
比如你其它地方定义了copy ,(setq copy nil),那么copy就不起作用了。加后仍可调用系统的copy
受教了,我一直都没注意这个问题 lostbalance 发表于 2013-12-4 20:35 static/image/common/back.gif
国际版是什么意思,cad的版本吗?
这个词也是许久以前看到的,不太记得清楚了,好像是不受ACAD版本语言限制的意思。 命令: -insert
输入块名或 [?]: *取消*
命令: _insert
命令: .insert
命令前缀"-"好理解。
前缀"."和"_"的区别不好理解啊。
意思是"."是内部命令,
"_"是所有版本通用的命令?
命令: (setq insert nil)
nil
命令: insert
命令: -insert
输入块名或 [?]: *取消*
也就是执行(setq insert nil)后,
insert和_insert,-insert都不能用了,但.insert仍然能使用?
不过很奇怪,我这执行了(setq insert nil)后,
insert、_insert、-insert、.insert都能使用?
求解惑.insert _insert区别,
求解惑(setq insert nil)无效原因。 机械工程师 发表于 2013-12-5 08:54 static/image/common/back.gif
命令: -insert
输入块名或 [?]: *取消*
命令: _insert
对ACAD命令重定义不是使用setq,也不是使用defun,而是使用undefine关闭(恢复定义使用redefine),再使用其它方法定义。所以,“(setq insert nil)”并不能使得命令insert无效。
这里有一个小知识,命令为insert但原来定义的函数并不是insert,比如Alisp中,定义外部命令使用前缀“c:”,随后解释器把有这样前缀的函数解释成命令,acad的命令也应该是这样,但他们未必是Lisp所写,所以前缀未必是“c:”。
你使用命令undefine禁止insert再试试,这时insert就不再能使用了,但-insert还是能用的,因为这是两个命令,但这两个命令是相关的,可以这样说,-insert是insert的前面的不带对话框版本,这种不带对话框的命令平时很少用到,但在二次开发(比如Alisp编程)时有时需要。
使用undefine禁止后,可以使用redefine来恢复,但我们有时会有意禁止有些不常用或容易带来不良后果的命令,这时,如果在程序中我们再使用这个命令,就会出现未知命令的提示,正确的解决办法不是恢复定义,而是在命令前加小数点,表示调用了原始命令,也就是说,undefine其实只是禁止了命令的表面。
_insert表示“国际版”,这里面涉及一个字符集代码页的问题,在我们平时不常用到,因为我们只用到中文版,偶尔会用到英文版,但ACAD面对的远不止这几个版本,而各个版本之间因为字符集的差异,命令也会相互不兼容,这就需要一个不受开发系统影响的“国际版”来统一。
关于这个问题,并不是我等普通用户所能说清楚的,但我想,问题的根本还是字符集的发展,很多程序可能是在有统一的Uniconde字符集出现前诞生的,所以,这种协调还是需要的。 本帖最后由 机械工程师 于 2013-12-6 08:48 编辑
感谢您详尽的答复。
比较清楚了。
命令: (command "undefine" "insert")
undefine 输入命令名: insert
命令: nil
命令: insert
未知命令“INSERT”。按 F1 查看帮助。
命令: _insert
未知命令“INSERT”。按 F1 查看帮助。
命令: -insert
输入块名或 [?]: *取消*
命令: .insert
命令: (command "redefine" "insert")
redefine 输入命令名: insert
命令: nil
命令: insert
命令: _insert
命令: -insert
输入块名或 [?]: *取消*
命令: .insert 直接_.insert呢
页:
[1]
2