선택한 선의 합을 구해주는 리습을 받아서 유용히 잘 사용하고 있습니다.
욕심이라면 욕심일까 조금더 편할걸 생각하게 되어 글을 남기게 되네요.
길이를 구할 선들을 선택 -> 엔터 -> 클릭을 하면 선들을 길이가 구해지는데요..
길이를 구할 선들을 선택 -> 엔터 -> 높이입력 -> 엔터 -> 클릭으로 응용을 할 수 있으면 물량계산시 많은 도움이 될것 같아서요..
결론은 선들의 합 * 높이가 되겠죠..
판넬업체에서 일하다보니 판넬높이에따라 물량을 일일이 구해야하는데..일일이 하나하나 하려면 시간이 좀 걸리다보니..
도움좀 부탁드리겠습니다.
아래 사용하고 있는 리습 올리겠습니다.
;;선의 합 – tt
(defun c:tt(/ lh pob aob lob)
(setvar “cmdecho” 0)
(setq scal (getvar “dimscale”)) ;dimscale값 읽기 .
(setq sel(ssget))
(setq ea(sslength sel))
(setq count 1
lh 0
)
(while (<= count ea)
(setq obj (entget (ssname sel (- count 1))))
(setq ssel(ssname sel (- count 1)))
(setq lob (cdr (assoc 0 obj)))
(setq aob (cdr (assoc 0 obj)))
(setq pob (cdr (assoc 0 obj)))
;(cond
(if (= lob “LINE”)
(progn
(setq len (distance (cdr(assoc 10 obj))
(cdr(assoc 11 obj))))
(setq lh(+ lh len))
)
);end if
(if (= aob “ARC”)
(progn
(setq pad(cdr (assoc 50 obj))
ead(cdr (assoc 51 obj))
)
(if (> pad ead) (setq ead (+ ead 6.28319)))
(setq d (* (cdr (assoc 40 obj)) 2)
ag (RTD (- ead pad))
)
(setq cen (* (/ (* d pi) 360) ag))
(setq lh(+ lh cen))
)
);if end
(if (= pob “LWPOLYLINE”)
(progn
(command “list” ssel “”)
(setq ple(getvar “PERIMETER”))
(setq lh(+ lh ple))
)
);if end
;);
(setq count(+ count 1))
(setq lob nil
aob nil
pob nil
)
);while end
(setq lht (rtos (/ lh 1) 2 2))
(setq pt(getpoint “n 삽입 포인트를 입력하시오 :”)) ;
(command “text” pt “” “” lht) ;
(princ)
)