我编写了一个非常简单的LISP:
- (defun c:TA (/ ss)
- ;; Total Area of Selected Polylines
- ;; Alan J. Thompson, 03.15.10 / 11.24.10
- (vl-load-com)
- (if (setq ss (ssget '((0 . "*POLYLINE"))))
- ((lambda (area leng)
- (vlax-for x (setq ss (vla-get-activeselectionset
- (cond (*AcadDoc*)
- ((setq *AcadDoc* (vla-get-activedocument
- (vlax-get-acad-object)
- )
- )
- )
- )
- )
- )
- (setq area (+ area (vla-get-area x))
- leng (+ leng (vla-get-length x))
- )
- )
- (vla-delete ss)
- (textscr)
- (princ (strcat "\nTotal area:\n-----------------\n"
- (rtos area 2 2)
- " SF\n"
- (rtos (/ area 9.) 2 2)
- " SY\n"
- (rtos (/ area 43560.) 2 2)
- " AC.±\n"
- (rtos leng 2 2)
- " LF"
- )
- )
- )
- 0.
- 0.
- )
- )
- (princ)
- )
|