면적 한번에 찍는 리습인데요~
컨텐츠 정보
- 152 조회
- 2 댓글
- 0 추천
- 0 비추천
-
목록
본문
(defun c:aaa ( / doc space ss index obj mi mx minpt maxpt inspt area txtobj )
(setvar "cmdecho" 0)
(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 (or (setq ts (getreal (strcat "n텍스트 높이 입력 <" (vl-princ-to-string (getvar "textsize")) ">:"))) (setq ts (getvar "textsize")))
(progn
(setvar "textsize" ts)
(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)))
)
'("") (list (rtos (/ area 1000000.) 2 3) (rtos len 2 2))
)
(setq index (1+ index))
)
(command "chprop" (ssget "x" '((0 . "TEXT") (1 . "평*"))) "" "c" "7″ "")
)
)
)
(princ)
)
(vl-load-com)
(prompt "n[ AAA ]")
(princ)
현재 사용중인 면적 리습입니다. 소수점 3째짜리로 나오는데 2째자리까지 나오게 하고싶습니다.
소수점 관련해서 수정을 해보았는데, 바뀌질 않네요..ㅠ 어디를 바까야하나요?
도와주세요ㅜ!