(defun c:ar2 (/ arRegionCenter arRtos arSta arEnd acDoc acSpc ss m2 py textHeigth iPt iPt1 iPt2 tObj)
(defun arRegionCenter (obj / closed regObj cenPt)
(setq closed (if (= (vla-get-closed obj) :vlax-true) 0 1))
(and (= closed 1)(vla-put-closed obj :vlax-true))
(setq regObj (car (vlax-invoke acSpc ‘addRegion (list obj))))
(and (= closed 1)(vla-put-closed obj :vlax-false))
(setq cenPt (vla-get-Centroid regObj))
(vla-delete regObj)
(vlax-safearray->list (vlax-variant-value cenPt))
)
(defun arRtos (n d / re ls m L s r)
(defun re (L n / r)
(if L (cons (reverse (repeat (if (> (length L) (1- n)) n (length L))
(setq r (cons (car L) r) L (cdr L)) r))(re L n)))
)
(defun ls (L d)(if (cdr L)(strcat (car L) d (ls (cdr L) d))(car L)))
(and (= (type n) ‘STR)(setq n (atof n)))
(and (minusp n)(setq m t n (abs n)))
(setq L (re (reverse (mapcar ‘chr (vl-string->list (itoa (fix n))))) 3))
(setq s (ls (reverse (mapcar ‘(lambda (x) (apply ‘strcat (reverse x))) L)) “,”))
(if m (setq s (strcat “-” s)))
(if (> d 0)
(progn
(setq r (apply ‘strcat (cddr (mapcar ‘chr (vl-string->list (rtos (abs (- n (fix n))) 2 d))))))
(if (> (setq i (- d (strlen r))) 0)(repeat i (setq r (strcat r “0”))))
(strcat s “.” r)
) s
)
)
(defun *error* (msg)(arEnd)
(if (not (wcmatch (strcase msg) “*BREAK,*CANCEL*,*EXIT*”))
(princ (strcat “n** Error: ” msg ” **”)))(princ)
)
(defun arSta (/ lst o)(arEnd)
(setq gv (mapcar ‘getvar (setq gvL ‘(“OSMODE” “CMDECHO”))))
(mapcar ‘setvar gvL ‘(0 0))(vla-startundomark acDoc)
)
(defun arEnd ()
(if (and gvL gv)(mapcar ‘setvar gvL gv))
(if (= 8 (logand 8 (getvar ‘UNDOCTL)))(vla-endundomark acDoc))
)
(vl-load-com)
(setq acDoc (vla-get-activedocument (vlax-get-acad-object)))
(setq acSpc (vlax-get-property acDoc (if (= 1 (getvar ‘CVPORT)) ‘paperspace ‘modelspace)))
(arSta)
(if (setq ss (ssget “:S” ‘((0 . “LWPOLYLINE”))))
(progn
(setq obj (vlax-ename->vla-object (ssname ss 0)))
(setq m2 (arRtos (vla-get-Area obj) 0)) ;면적(M2)
(setq py (arRtos (* (vla-get-Area obj) 0.3025) 0)) ;면적(PY)
(prompt “nArea (M2): “)(princ m2)
(prompt “nArea (Py): “)(princ py)(princ)
(setq textHeigth (* (getvar “dimscale”) 2)) ;문자크기
(setq iPt (arRegionCenter obj)) ;선택한 객체의 중심점
(setq iPt1 (vlax-3d-point (list (car iPt) (+ (cadr iPt) (* textHeigth 1.0)) 0.0)))
(setq iPt2 (vlax-3d-point (list (car iPt) (- (cadr iPt) (* textHeigth 1.0)) 0.0)))
(setq tObj (vla-addtext acSpc (strcat “면적(M2) : ” m2) iPt1 textHeigth))
(vla-put-Alignment tObj acAlignmentMiddleCenter)(vla-put-TextAlignmentPoint tObj iPt1)
(setq tObj (vla-addtext acSpc (strcat “면적(PY) : ” py) iPt2 textHeigth))
(vla-put-Alignment tObj acAlignmentMiddleCenter)(vla-put-TextAlignmentPoint tObj iPt2)
)
)(arEnd)(princ)
)
면적 계산하는건데요..
이거 면 선택하면 자동으로 면적이랑 평수 나와서 아주 유용하게 쓰고 있어요.
근데 단위가…..
만약에 27평이면 27,000.000 이런식으로….0이 많이 붙어요.
0을 좀 떼어주실 수 있으신가요?
너무 기초적인 질문이라 성가시다면….어느 쪽을 고치라고 한줄 답변만이라도…ㅜㅜ
제가 기본도 안된 사람이라ㅠㅠ
공유