朱天豪 发表于 2007-3-31 14:13:00

斑竹兄弟帮我看看土方计算程序为什么不能用?

各位兄弟,你们好!       帮我看看这个土方计算程序为什么不能用啊,我加载这个程序后,选择闭合线及高程时,      出现什么除数为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 (
页: [1]
查看完整版本: 斑竹兄弟帮我看看土方计算程序为什么不能用?