ynhh 发表于 2016-4-18 12:40 
请教大师
能不能
根据CAD版本在2012以上时
很久不动Lisp了,就你的问题又测试了一下:
- 命令: (setq aaa command-s)
- #<SUBR @1b927438 COMMAND-S>
- 命令: (aaa "line" "0,0" "100,100" "")
- nil
- 命令: (setq bbb command)
- #<SUBR @1baa4b18 COMMAND>
- 命令: (bbb "line" "0,0" "100,100" "")
- error:无法应用特殊格式: COMMAND
这说明command函数是比较特殊的函数,只能直接写,不能用变量名替代,所以程序中判断版本然后用其它函数名直接替代是不行的。
但这并不能说明就不能“替代”,仅就程序效率来说,先判别版本,然后再分别使用函数这种分支方法也可以视作替代,就是把原本的语句(command...)改成(if v (command...) (command-s))这种形式,不过先要看值得否。
|