아래 리습은 각 객체별로 면적이 산출되는 리습이구요,
객체 면적의 합계가 나오면 하는데… 객체의 면적을 일일히 덧셈하려니 힘드네요.
객체 전체의 면적합계가 나오도록 수정하고 싶어요. 도움 부탁드려봅니다.
(defun c:aaa ( / doc space ss index obj mi mx minpt maxpt inspt area txtobj )
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(cond
((= (vla-get-activespace doc) 1) (setq space (vla-get-modelspace doc)))
((= (vla-get-activespace doc) 0) (setq space (vla-get-paperspace doc)))
)
(if (setq ss (ssget (list (cons 0 “CIRCLE,ARC,*POLYLINE,ELLIPSE,SPLINE”))))
(if (setq ts (getreal “n텍스트 높이 입력:”))
(progn
(setq index 0)
(repeat (sslength ss)
(setq obj (vlax-ename->vla-object (ssname ss index)))
(vla-getboundingbox obj ‘mi ‘mx)
(setq minpt (vlax-safearray->list mi))
(setq maxpt (vlax-safearray->list mx))
(setq inspt (polar minpt (angle minpt maxpt) (/ (distance minpt maxpt) 2)))
(setq area (vla-get-area obj))
(setq txtobj (vla-addtext space (rtos (/ area 1.) 2 4) (vlax-3d-point inspt) ts))
(vla-put-alignment txtobj 4)
(vla-put-textalignmentpoint txtobj (vlax-3d-point inspt))
(setq index (1+ index))
)
)
)
)
(princ)
)
(vl-load-com)
(prompt “n[ AAA ]”)
(princ)
공유