看看这个。。。。
- (defun c:TesT (/ l pl a ss i sn)(vl-load-com)
- ;; Tharwat 20 .Nov. 2011 ;;
- (if (setq l 0
- pl 0
- a 0
- ss (ssget '((0 . "LWPOLYLINE,POLYLINE,LINE")))
- )
- (progn
- (repeat (setq i (sslength ss))
- (setq sn (ssname ss (setq i (1- i))))
- (cond
- ((eq (cdr (assoc 0 (entget sn))) "LINE")
- (setq
- l (+ l
- (distance (cdr (assoc 10 (entget sn)))
- (cdr (assoc 11 (entget sn)))
- )
- )
- )
- )
- ((member (cdr (assoc 0 (entget sn)))
- '("LWPOLYLINE" "POLYLINE")
- )
- (progn
- (setq
- pl (+ pl (vla-get-length (vlax-ename->vla-object sn)))
- )
- (setq a (+ a (vla-get-area (vlax-ename->vla-object sn))))
- )
- )
- )
- )
- (alert (strcat "Total Length of Lines : < "
- (rtos l 2)
- " >"
- "\n"
- "Total Length of Polylines : < "
- (rtos pl 2)
- " >"
- "\n"
- "Total Area of Polylines : < "
- (rtos a 2)
- " >"
- )
- )
- )
- (princ)
- )
- (princ)
- )
|