IT 정보
autoCAD 여러 선의 길이 합계 구하는 리습 lisp 코드
엣올
2024. 1. 24. 14:55
728x90
반응형
인터넷에 떠돌아다니는 여러 리습 파일 실행해봤는데 제대로 된게 없어
외국 캐드 커뮤니티에서 제대로 된 코드 찾음.
메모장에 아래 코드를 붙여넣고
다름이름으로 저장
확장자 형식은 *.*
캐드에서
tleng 명령 입력 후
길이 구할 여러선들 클릭, 클릭, 클릭 후 엔터
그럼 요렇게 결과가 나옴
(defun C:TLENG (/ ss tl n ent itm obj l)
(setq ss (ssget)
tl 0
n (1- (sslength ss)))
(while (>= n 0)
(setq ent (entget (setq itm (ssname ss n)))
obj (cdr (assoc 0 ent))
l (cond
((= obj "LINE")
(distance (cdr (assoc 10 ent))(cdr (assoc 11 ent))))
((= obj "ARC")
(* (cdr (assoc 40 ent))
(if (minusp (setq l (- (cdr (assoc 51 ent))
(cdr (assoc 50 ent)))))
(+ pi pi l) l)))
((or (= obj "CIRCLE")(= obj "SPLINE")(= obj "POLYLINE")
(= obj "LWPOLYLINE")(= obj "ELLIPSE"))
(command "_.area" "_o" itm)
(getvar "perimeter"))
(T 0))
tl (+ tl l)
n (1- n)))
(alert (strcat "Total length of selected objects is " (rtos tl)))
(princ)
)
728x90
반응형