안녕하세요~
리습 질문이있어 이렇게 글을올립니다.
제가 간단하게 쓰는 폴리라인 길이 입력하는 리습 입니다.
조금 수정을 하고 싶은데 너무 어렵습니다.
길이표시위치 수정
현재리습 위치에서 위로 10mm
우측 10mm
길이 표시
예) 동축케이블 39m
부탁 드립니다.
(defun c:lp(/ ss n tx1 tx2 val p1 len o edp dst hfp TEXT TEXT2)(vl-load-com)
(defun Text (pt str)
(entmakex (list (cons 0 “TEXT”)
(cons 10 pt)
(cons 11 pt)
(cons 40 300.0)
(cons 1 (rtos (+ (/ str 1000.) 5) 2 0))
(cons 72 4))
)
)
(defun Text2 (pt str)
(entmakex (list (cons 0 “TEXT”)
(cons 10 pt)
(cons 40 300.0)
(cons 7 “TEXTSTYLE”)
(cons 1 str)
)
)
)
(setq ss(ssget) n 0 tx2 “” val 0)
; (setq p1 (getpoint “n문자 선택 점:”))
(setq len(sslength ss))
(repeat len
(setq o(vlax-ename->vla-object(ssname ss n)))
(setq edp(vlax-curve-Getendparam o))
(setq dst(vlax-curve-getdistatparam o edp))
(setq hfp(vlax-curve-getPointAtParam o ( / (- edp 0.0) 2)))
(Text hfp dst)
(if(= n 0)(setq tx2(strcat tx2(rtos dst 2 2)))(setq tx2(strcat tx2 “+” (rtos dst 2 2))))
(setq val(+ val dst))
(setq n(1+ n))
)
;(setq tx1(strcat “선택 객체수 = “(itoa len)” 길이 합계 = “(rtos val 2 2)” = “tx2))
;(Text2 p1 tx1)
(princ)
)
(princ “n :: 길이합계 (LP) ::”)(princ)
swrfLv.0
폴리라인길이구하기 수정좀 부탁드립니다.
공유
위 리습은 폴리라인의 중심점에 텍스트가 써지는 리습입니다
님께서 어떤방식으로 된 폴리 라인에 사용하느냐에 따라 결과가 틀려지기 때문에
위로 10미리 우측으로 10미리라는 개념을 적용 할 수 없는 리습입니다 ..
만약에 언제나 수평인 폴리라인만 선택해서 사용하신다면 뭐 문제 없겠지만 사선이거나 수직이거나 하면 원하는 결과를 벗어나게 됩니다 ..
아~예 알겠습니다. 감사 합니다. 어떻게던 해보려고 이틀동안 검색 했는데ㅠ.ㅠ 다른 리습을 찾아 봐야 겠네요 감사 합니다. 혹시 이 비슷한 리습 본 기억 있으시면 알려주시면 감사요 수고 하세요