늦었지만 새해 복 많이 받으시기 바랍니다.
아래 리습은 선택한 객체들의 길이 합을 구해주는 리습인데요…
이건 선택한 객체 합 구한후 도면에 텍스트를 써주는 리습이라서 혹시 기존에 텍스트가 있는데 이 텍스트를 수정할 수 가 있나요?????
즉
command : lll
객체 선택 : (선택후 엔터)
변경할 문자열 선택(이렇게 해서 선택한 문자에 객체 길이 합의 결과값이 들어갔으면 합니다.)
부탁드립니다..
(defun c:lll (/ ent n dis ent_l #a #ad #as )
(setvar “cmdecho” 0)
(setq ent (ssget ‘((0 . “LINE,CIRCLE,ARC,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE”))))
(setq n 0 dis 0)
(repeat (sslength ent)
(setq ent_l (ssname ent n))
(command “lengthen” ent_l “”)
(setq dis (+ dis (GETVAR “PERIMETER”)))
(setq n (1+ n))
)
(setq #a(strcat (rtos dis 2 2)))
(prompt (strcat “n” #a))
(vl-load-com)
(setq #ad(vla-get-activedocument(vlax-get-acad-object)))
(setq #as
(if (> (vla-get-activespace #ad) 0)
(vla-get-modelspace #ad)
(vla-get-paperspace #ad)
);;if
);;setq
(vla-addtext #as #a (vlax-3d-point(getpoint “n≫≫≫Pick text point:”))(* (getvar “textsize”)1.0))
(mapcar ‘vlax-release-object (list #as #ad))
(princ)
(setvar “cmdecho” 1)
)
상큼매론 90님 감사합니다.
길이합 구하는 리습을 찾다가 에러 없이 깔끔하게 나온듯하여, 급한대로 이걸로 쓰려고 합니다. 혹시 소수 셋째자리까지는 가능할런지요? 오토캐드 2012에서 테스트했는데 소숫점 빼고는 잘됩니다.