嗯,这个问题用lisp比较好解决一点。调用cal命令这个问题可以解决
先手动加载(arxload (findfile "geomcal.arx"))即可。当然,应该先判断一下这个arx是不是已经加载。
在程序前加一句
(if (null cal) (arxload (findfile "geomcal.arx")))
然后,在程序中即可尽情调用
...
(cal "1+2*3)
...
上述代码测试通过
Command: (if (null cal) (arxload (findfile "geomcal.arx")))
"D:\\Program Files\\AutoCAD 2002\\geomcal.arx"
Command: (cal "1+2*3")
7
我的理解--
我不知道你的意思,是不是这样,你的H,A,L,G等变量是在程序运行中间由用户输入的吗?至少如果它们在用‘CAL 命令之前应该都有值了是不是?如果是这样子,或许可以采用这样的方法:'CAL命令的一个重要用法:
'cal:回车
A=XXX
A+2
XXX+2
这样,即实现了对A的互值,同理也可对其他变量付值,加上前面那位老兄的
( if(null cal) (arxload(findfile("geomcal.arx"))...
相信你可以写出程序来。
谢谢大家
非常感谢大家的热情帮忙,使我这个难题能得以解决.原先就是少了(if (null cal) (arxload (findfile "geomcal.arx")))所以运行程序时会出现找不到CAL命令,一定要先手动调用一次CAL命令程序才能继续,现在加上判断语句程序能正常运行了,谢谢大家.
页:
1
[2]