|
(defun c:lN()
(setvar "cmddia" 0)
(setvar "cmdecho" 0)
(setq perr 0)
(setq s (ssget))
(setq nu (sslength s))
(setq kc 0)
(while (< kc nu)
(setq en (ssname s kc))
(setq eni (entget en))
(setq xing (cdr (assoc 0 eni)))
(cond ((= xing "LWPOLYLINE")
(command "_list" en "")
(setq per (getvar "perimeter")))
((= xing "CIRCLE")
(setq per (cdr (assoc 40 eni)))
(setq per (* 2 (* per pi))))
((= xing "LINE")
(setq pointa (cdr (assoc 10 eni)))
(setq pointb (cdr (assoc 11 eni)))
(command "dist" pointa pointb)
(setq per (getvar "distance")))
((= xing "ELLIPSE")
(command "_list" en "")
(setq per (getvar "Perimeter")))
((= xing "ARC")
(setq r1 (cdr (assoc 50 eni)))
(setq r2 (cdr (assoc 51 eni)))
(setq per (cdr (assoc 40 eni)))
(setq cir (* 2 (* per pi)))
(cond ((<= r1 r2)
(setq per (* per (- r2 r1))))
((> r1 r2)
(setq per (- cir (* per (- r1 r2))))))
)
((= xing "SPLINE")
(command "_list" en "")
(setq per (getvar "Perimeter")))
)
(setq kc (+ kc 1))
(setq perr (+ perr per))
(print perr)
)
(setvar "cmddia" 1)
(setvar "cmdecho" 1)
(graphscr)
(princ)
) |
|