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
반응형