먼저 리습을 제작하고 배포해주신 이름모를 분께 감사의 인사를 드립니다.
사용하고 있는 리습은 객체의 면적 및 길이를 텍스트화 시켜 표시를 해주는 리습입니다. 굉장히 만족스럽습니다.
다만… 텍스트의 크기가…. 어떨때는 너무 작고 어떨때는 너무 커서 텍스트 크기를 변경하여 표시를 하게 바꾸고 싶습니다.
아래는 사용중인 리습입니다.
(defun c:PLI ( / 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 1000))
(vla-put-alignment txtobj 10)
(vla-put-textalignmentpoint txtobj p)
(setq inspt (polar inspt (/ (* 270 pi) 180) 1000))
)
(list (rtos (/ area 1000000.) 2 3) (rtos (/ len 1000.) 2 3)) ‘(“m2” “m”)
)
)
)
(princ)
)
(vl-load-com)
(prompt “n[ PLI ]”)
(princ)
고수님들의 도움을 요청드립니다.
CATS에 면적 조회 기능이 있습니다.
한번 참고해보세요 ^^
https://cafe.naver.com/autocats/1248
면적은 이미 리습으로 조회가 가능합니다.
텍스트 크기 조절 기능이 탑제되어 있어서 추천드려봤습니다 🙂
(setq txtobj (vla-addtext space (strcat a b) p 1000))
여기에서 1000이 문자의 높이예요
어떤 방법으로 지정하고 싶은지를 정해야 코드를 수정할 수 있죠