(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,LINE,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) maxpt (vlax-safearray->list mx))
(setq inspt (polar minpt (angle minpt maxpt) (/ (distance minpt maxpt) 2)))
(setq inspt (list (car inspt) (+ (cadr inspt) (* ts 2))))
(setq area (vla-get-area obj) len (vlax-curve-getdistatparam obj (vlax-curve-getendparam obj)))
(mapcar ‘(lambda (a b)
(setq p (vlax-3d-point inspt))
(setq txtobj (vla-addtext space (strcat a b) p ts))
(vla-put-alignment txtobj 4)
(vla-put-textalignmentpoint txtobj p)
(setq inspt (polar inspt (/ (* 270 pi) 180) (* ts 2)))
)
‘(“평 : “ “면적(㎡) : ” “길이(m) : ” ) (list (rtos (/ area 3305796.) 2 3) (rtos (/ area 1000000.) 2 3) (rtos (/ len 1000.) 2 3))
)
(setq index (1+ index))
)
(command “chprop” (ssget “x” ‘((0 . “TEXT”) (1 . “평*”))) “” “c” “7” “”)
)
)
)
(princ)
)
(vl-load-com)
(prompt “n[ AAA ]”)
(princ)
평값을 표기 안하려면 어느 부분을 지우는 지요?(노란색부분 지우면 안나오고 문제는 없는데 맞는지?)
표기되는 글자 자리맞춤을 수정하고 싶은데 어느 부분인지요?
(rtos (/ area 1000000.) 2 3) (rtos (/ len 1000.) 2 3))
뒤에 3숫자가 자리수
노란색 지우시면 됩니다.