几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   ObjectARX(AutoLISP) (http://www.dimcax.com/hust/forumdisplay.php?f=178)
-   -   [求助]为什么输出有错 (http://www.dimcax.com/hust/showthread.php?t=10983)

yang686526 2009-04-26 11:56 AM

[求助]为什么输出有错
 
[求助]为什么输出有错
www.dimcax.com
[求助]为什么输出有错
请各位高手指教,程序怎么修改,先谢过了。
(defun c:mdnum()
(setq num1 (getreal "\n enter first number:"))
(setq num2 (getreal "\n enter second number:"))
(setq ans(strcase (getstring "enter m or d:")))
(if (= ans "m")
(setq x (* num1 num2))
)
(if (= ans "d")
(setq x (/ num1 num2))
)
(if (and (/= ans "d") (/= ans "m"))
(prompt "sorry!wrong entry, try again")
)
(princ x)
(princ)
)
以下是运行结果,错误出现在第三个方式:
命令:
mdnum
enter first number:10
enter second number:2
enter m or d:m
20.0
命令:(**********请教这行能否去掉啊)
命令:
mdnum
enter first number:10
enter second number:2
enter m or d:d
5.0
命令:(***********请教这行能否去掉啊)
命令:
mdnum
enter first number:10
enter second number:2
enter m or d:h
sorry!wrong entry, try again5.0(******这个5.0怎么去掉啊)
d
getstring用getkword替换会好点
要把5.0去掉,可以把
(if (and (/= ans "d") (/= ans "m"))
(prompt "sorry!wrong entry, try again")
)
(princ x)
改成
(if (and (/= ans "d") (/= ans "m"))
(prompt "sorry!wrong entry, try again")
(princ x)
)

做二次开发前先打好cad基础
不要尝试用二次开发来弥补你错误的操作
d
谢谢水手,已经试过了,第2个问题解决,第一个用getkword基本没有变化。
d


所有的时间均为北京时间。 现在的时间是 02:44 AM.