안녕하세요
라인 따서 면적이랑 둘레 나오는 리습입니다
(defun c:aR ( / 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 (and (setq ss (car (entsel “n객체 선택 : “))) (setq inspt (getpoint “n텍스트 삽입점 지정 : “)))
(progn
(setq obj (vlax-ename->vla-object ss))
(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 300))
(vla-put-alignment txtobj 4)
(vla-put-textalignmentpoint txtobj p)
(setq inspt (polar inspt (/ (* 270 pi) 180) 600))
)
(list (rtos (/ area 1000000.) 2 2) (rtos (/ len 1000.) 2 2)) ‘(“m2 (면적)” “m (길이)”)
)
)
)
(princ)
)
(vl-load-com)
(prompt “n[ AR ]”)
(princ)
이 리습은 폰트 사이즈가 고정되어 있어서요
캐드자체에서 textsize 를 설정해서 도면 사이즈에 맞게 입력하고 싶은데
( 위에 리습은 입력해서
텍스트 사이즈 수정하면 행간의 문제가 있어서 여러번의 수정해야함)
어떻게 수정을 해야할지 전혀 모르겠습니다ㅠㅠ
참고로 면적만 나오는 리습인데 이렇게 폰트 사이즈를 그때 도면 스케일에 맞게 조정하고 싶어요
(defun c:qw (/ ar pyung ar1 sc ds)
(setvar “cmdecho” 0)
(prompt “nArea Check! >>> “)
(setq sc (getvar “ltscale”))
(setq ds (* sc 8.0))
(setq pt1 (getpoint “nPick a point ->”))
(setq pt2 (list (car pt1) (- (cadr pt1) ds)))
(command “-boundary” pt1 “” )
; (command “bpoly” pt1 “” )
(command “area” “e” “l”)
(setq ar (getvar “area”))
(setq ar1 (/ ar 1000000))
(setq pyung (/ (/ ar 1) 3305800))
(setq pyung (rtos pyung 2 2))
(setq ar1 (rtos ar1 2 2))
(princ “n Area : “)
(princ ar1)
(princ ” M^2″)
(princ “n Area : “)
(princ Pyung)
(princ ” Pyung”)
(setq disp (strcat “(“(strcat Pyung “py” )”)”))
(setq ar1 (strcat ar1 “mu+00b2”))
(setq Z (getdist))
(if Z
(setq dsh Z)
)
(setq dsh (getvar “textsize”))
(COMMAND “TEXT”
(SETQ Z PT1)
(SETQ Z dsh)
(SETQ Z 0.0)
(SETQ Z (strcat ar1))
)
(COMMAND “TEXT” “” disp)
(prin1)
)
죄송합니다
제가 리습을 잘 몰라 수정을 여러번 시도했는데 계속 에러가나서 올렸습니다ㅠ
지금 사용하는 리습에 폰트사이즈가 픽스가 되어 있어서 자유롭게 변경을 원해서
링크보고 수정하였는데 에러가나네요ㅠㅠ
(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 2) (rtos (/ len 1000.) 2 2)) ‘(“m2 (면적)” “m (길이)”)
)
)