제목 그대로 polyline에서 arc의 속성 추출하는 방법이 궁금합니다.
직선과 호로 이루어진 polyline에서 호를 선택할때 그 호의 길이를 치수기입으로 하고자 합니다.
arc명령으로 그려진 호는 가능한데… polyline으로 되어 있는 호는 어찌 선택해야 하는지.. 모르겠네요.
물론 캐드 명령어인 dimarc로 하면 되지만… 치수보조선의 위치가 호의 중심으로 향하는게 아니더군요.
그래서 검색중 그와 관련된 lisp이 있어 일부 수정(1000단위 콤마(,) 구분)해서 사용합니다.
polyline에서 arc를 선택가능하게 하는 방법 부탁드립니다..
(defun c:dimarcc (/ cm arcel obj num lu txt lnum num1 num2)
(setq cm (getvar “cmdecho”))
(setvar”cmdecho” 0)
(setq arcel (entsel “nSelect an Arc: “))
(while
(if
(/= (cdr(assoc 0 (entget(car arcel)))) “ARC”)
(progn
(prompt “nSelected Object is not an ARC”)
(setq arcel (entsel “nSelect Arc: “))
)
)
)
(vl-load-com)
(setq objt (vlax-ename->vla-object(car arcel)))
(setq num (vla-get-ArcLength objt))
(if (< num 1000)
(progn
(setq lnum (rtos num 2 0))
)
)
(if (> num 1000)
(progn
(setq num1 (fix (/ num 1000)))
(setq ax7 (* num1 1000))
(setq num2 (- num ax7))
(setq lnum (strcat (itoa num1) “,” (rtos num2 2 0)))
)
)
(command “dimangular” arcel “t” lnum pause)
(setvar “cmdecho” cm)
(princ)
)