您是否尝试过此处给出的值以外的值(即b=40 c=35’)?它们如何影响结果?
我怀疑在解释你在b和c的距离值时有些问题。单位转换后的数据看起来如何?作为一个测试例程,我可能会尝试以下内容:
- (defun c:sr2 ( / A B C D E Z Y X W)
- (SETQ
- a "20";(GETSTRING "16/20 for wind: ")
- b 485.25;(GETDIST "\nClick on 2 points to specify mean roof height: ")
- c 550;(GETDIST "\nClick on 2 points to specify building length: ")
- z (CVUNIT c "INCHES" "FEET")
- y (CVUNIT b "INCHES" "FEET")
- );SETQ
-
- (PRINC "\nMean Roof Height: ")
- (PRINC y)
- (PRINC "\NBuilding Length: ")
- (PRINC z)
-
- (SETQ x (* z y))
- (PRINC "\nfirst multiplication: ")
- (PRINC x)
-
- (SETQ d (FIX x))
- (PRINC "\nAfter rounding: ")
- (PRINC d)
- (if (= a "20")
- (progn
- (setq e (* 20 d))
- (command "text" pause "6" "0" e)
- (princ)))
- (if (= a "16")
- (progn
- (setq e (* 16 d))
- (command "text" pause "6" "0" e)
- (princ)
- );PROGN
- );IF
- );DEFUN
注意,我已经本地化了我的变量,正如本线程中其他地方提到的那样,以至少避免这种可能性。
有趣的是,这给了我37060的结果,而不是你预测的37040。
希望这些能有所帮助,
dJE |