各位兄弟,你们好! 帮我看看这个土方计算程序为什么不能用啊,我加载这个程序后,选择闭合线及高程时, 出现什么除数为0,什么错误。望各位测绘兄弟帮我看看,兄弟感谢了(defun c:tf (/ a nb np hr n i ai b la h hi s p p1)
(princ "选择高程及面积:")
(setq a (ssget '((0 . "text"))))
(setq na 0)
(setq nb 0)
(setq hp 0)
(setq hr 0)
(setq n (sslength a))
(setq i 0)
(repeat n
(setq ai (ssname a i))
(setq i (+ i 1))
(setq b (entget ai))
(setq la (cdr (assoc 8 b)))
(setq h (cdr (assoc 1 b)))
(setq hi (atof h))
(if (or
(= la "YGC")
(= la "ygc")
)
(progn
(setq na (+ na 1))
(setq hp (+ hp hi))
)
)
(if (or
(= la "XGC")
(= la "xgc")
)
(progn
(setq nb (+ nb 1))
(setq hr (+ hr hi))
)
)
(if (or
(= la "MJ")
(= la "mj")
)
(progn
(setq s (substr h 3))
(setq s (atof s))
(setq p (cdr (assoc 10 b)))
(setq p1 (polar p 2 2))
)
)
)
(setq hp (/ hp na))
;(setq hp 11)
(setq hr (/ hr nb))
(setq v 0)
(setq v (* s (- hr hp)))
(setq v (rtos v 2 2))
(setq s (strcat "V=" v))
(setq pt1 (mapcar
'+
pt1
'(0.8 0 0)
)
)
(setq e (list (cons 0 "text") (cons 1 s) (cons 10 p1) (cons 40 0.8)))
(entmake e)
)
(defun c:v ()
(setq a (ssget '((0 . "TEXT"))))
(setq n (sslength a))
(setq i 0)
(setq s 0)
(repeat n
(setq ai (ssname a i))
(setq i (+ i 1))
(setq b (entget ai))
(setq attr (cdr (assoc 0 b)))
(if (= attr "TEXT")
(progn
(setq t (cdr (assoc 1 b)))
(if (