(defun c: zt (/)
(setq D0 (getreal "\n输入值1:"))
(setq ES0 (getreal "\n输入值2:"))
(setq EI0 (getreal "\n输入值3:"))
(setq IT0 (- ES0 EI0))
(setq D D0 ES ES0 EI EI0 IT IT0))
(if
(<= D 3)
(cond
((< IT 0.01)
(setq T0 0.001 Z0 0.001))
((and (>= IT 0.01)(< IT 0.014))
(setq T0 0.0012 Z0 0.0016))
)
)
(SETQ Dz (+ D ES))
(setq Dt (+ D EI )(+ (/ T0 2) Z0)))
(princ DZ)(princ " 0/")(princ (- T0))(princ " ")
(princ Dt)(princ " 0/")(princ (- T0))
(princ)
)
这是一个计算用的小程序,由于有很多的数据输入,所以只略举一点数据 在上面了。下面是例子:
值1:2.5
值2:+0.06
值3:+0.05
返回的正确结果因该是 2.56 0/-0.0012 2.5515 0/-0.0012
但是计算结果是 2.56 0/-0.001 2.5515 0/-0.001
我试着赋值后对每句求返回值,觉得是(< IT 0.01)这句有问题,输入以上值后,IT的返回值是0.01,那么这句(< IT 0.01)的返回值因该是“nil”,但是这是返回的是“T” ,所以使后面在选择程序内的数据时出了问题,导致结果错误。
这是我的理解,不知道对不对,拜谢各位帮忙指点一下,再给出点解决的意见,方法最好了,拜谢先!!!!谢谢了~~~~~~~~ |