秋枫 发表于 2002-8-27 17:25:00

嗯,这个问题用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

fango 发表于 2002-8-27 20:35:00

我的理解--

我不知道你的意思,是不是这样,你的H,A,L,G等变量是在程序运行中间由用户输入的吗?至少如果它们在用‘CAL 命令之前应该都有值了是不是?如果是这样子,或许可以采用这样的方法:
   'CAL命令的一个重要用法:
   'cal:回车
   A=XXX
   A+2
   XXX+2
这样,即实现了对A的互值,同理也可对其他变量付值,加上前面那位老兄的
( if(null cal) (arxload(findfile("geomcal.arx"))...
相信你可以写出程序来。

Hart 发表于 2002-8-28 08:55:00

谢谢大家

非常感谢大家的热情帮忙,使我这个难题能得以解决.
原先就是少了(if (null cal) (arxload (findfile "geomcal.arx")))所以运行程序时会出现找不到CAL命令,一定要先手动调用一次CAL命令程序才能继续,现在加上判断语句程序能正常运行了,谢谢大家.
页: 1 [2]
查看完整版本: [求助]如何用VBA进行求值-->mccad转移