查看单个帖子
旧 2009-04-26, 11:56 AM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 [求助]为什么输出有错

[求助]为什么输出有错
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
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)