특정위치 포인트로 부터 떨어진 곳에 위치한 dtext 의 내용을 가져오고 싶습니다.
예를들어
(setq p1 (getpoint))
(setq p2 (polar p1 (angtof “45”) 80))
???(entsel)
(setq obj (vlax-ename->vla-object (car (???))))
(setq text (VLA-GET-TextString obj))
라고 했을때 p1 포인트만 선택하면 그곳으로부터 떨어진 위치에 있는
text 객체를 entsel 을 사용하지 않고 p2를 이용하여
선택하여 그 아래 명령어들로 텍스트를 가져오고 싶습니다.
공유
;;;(GetStringByPoint (getpoint))
(defun GetStringByPoint (pt / obs minp maxp)
(vl-load-com)
(if (ssget “x” ‘((0 . “TEXT”)))
(progn
(vlax-for ob (vla-get-ActiveSelectionSet (vlax-get (vlax-get-acad-object) ‘activedocument))
(setq obs (cons ob obs))
)
(vl-some
‘(lambda (ob)
(if (not (vl-catch-all-error-p (vl-catch-all-apply ‘vla-getboundingbox (list ob ‘minp ‘maxp))))
(progn
(setq
minp (vlax-safearray->list minp)
maxp (vlax-safearray->list maxp)
)
(if (vl-every ‘<= (list (car minp) (cadr minp)) pt (list (car maxp) (cadr maxp)))
(vlax-get ob ‘textstring)
)
)
)
)
obs
)
)
)
)
매우 잘 작동합니다! 감사합니다.
혹시 해당 좌표에 텍스트가 없으면 “” 같은 빈공간을 리턴하여 명령어가 계속 진행되게 가능할까요?
텍스트가 없으면 명령어가 멈춰버려서요.