36 lines
1.0 KiB
Common Lisp
36 lines
1.0 KiB
Common Lisp
;;POLYAREA.LSP
|
|
;; Adds the area of one or more closed polylines
|
|
;;
|
|
(defun C:POLYAREA (/ a ss n du)
|
|
(setq a 0
|
|
du (getvar "dimunit")
|
|
ss (ssget '((0 . "*POLYLINE"))))
|
|
(if ss
|
|
(progn
|
|
(setq n (1- (sslength ss)))
|
|
(while (>= n 0)
|
|
(command "_.area" "_o" (ssname ss n))
|
|
(setq a (+ a (getvar "area"))
|
|
n (1- n)))
|
|
(alert
|
|
(strcat "The total area of the selected\nobject(s) is "
|
|
(if (or (= du 3)(= du 4)(= du 6))
|
|
;
|
|
;The following 2 lines translate the area to square inches and feet
|
|
;for users using US engineering or architectural units:
|
|
;
|
|
(strcat (rtos a 2 2) " square inches,\nor "
|
|
(rtos (/ a 144.0) 2 3) " square feet.")
|
|
;
|
|
;In the following line, change the word "units" to whatever units
|
|
;you are using - meters, millimeters, feet, etc.
|
|
;
|
|
(strcat (rtos (/ a 10000) 2 3) " square meters.")))))
|
|
(alert "\nNo Polylines selected!"))
|
|
(princ)
|
|
)
|
|
(alert
|
|
(strcat "POLYAREA.LSP"
|
|
"\n\n Type POLYAREA to start"))
|
|
(princ)
|