本帖最后由 edata 于 2014-6-25 14:34 编辑
建议getreal=nil 都改成实数
 - (defun c:asph1(/ A B C D E F G H HE HE1 K N P PT_BASE R Z)
- (setq r (getreal "R 值:<1>"))
- (if (= r nil)
- (setq r 1.0)
- )
- (setq he (getreal "半径 :<1.0>"))
- (if (= he nil)
- (setq he 1.0)
- )
- (setq n (getint "等分数:<50>"))
- (if (= n nil)
- (setq n 50.0)
- )
- (setq k (getreal "K 值 :<1>"))
- (if (= k nil)
- (setq k 1.0)
- )
- (setq A (getreal "A :<0>"))
- (if (= A nil)
- (setq A 0.0)
- )
- (setq B (getreal "B :<0>"))
- (if (= B nil)
- (setq B 0.0)
- )
- (setq C (getreal "C :<0>"))
- (if (= C nil)
- (setq C 0.0)
- )
- (setq D (getreal "D :<0>"))
- (if (= D nil)
- (setq D 0.0)
- )
- (setq E (getreal "E :<0>"))
- (if (= E nil)
- (setq E 0.0)
- )
- (setq F (getreal "F :<0>"))
- (if (= F nil)
- (setq F 0.0)
- )
- (setq G (getreal "G :<0>"))
- (if (= G nil)
- (setq G 0.0)
- )
- (setq H (getreal "H :<0>"))
- (if (= H nil)
- (setq H 0.0)
- )
- (setq pt_base '(0 0))
- (setq he1 (/ he n))
- (while (<= he1 he)
- (setq z (+ (/ (* r he1 he1) (1+ (sqrt (abs(1- (* (1+ k) (expt r 2) (expt he1 2)))))))
- (* A (expt he1 2))
- (* B (expt he1 4))
- (* C (expt he1 6))
- (* D (expt he1 8))
- (* E (expt he1 10))
- (* F (expt he1 12))
- (* G (expt he1 14))
- (* H (expt he1 16))
- ))
- (setq p (list he1 z))
- (command "line" "non" pt_base "non" p "")
- (setq pt_base p)
- (setq he1 (+ he1 (/ he n)))
-
- )
- )
|