다운 받은건데 어디서 받은건진 잊어 버렸네요..(만드신 분께 죄송)
; TOTLEN.LSP c.2000 Rob Herr robherr@hotmail.com
; ‘Add selected lines, plines, splines, and arcs for total length’
; v 1.0 10 Feb 2000
;
; ___________________________________________________________________
; | PERMISSION HEREBY GRANTED BLA, BLA, BLA, TO MODIFY ETC. |
; | As long as name and email remain with the original program |
; | unaltered. However I would like to know of any bugs or problems |
; | that arise with the actual program. And of course I take no |
; | responsibility for lost limbs, auto repair bills, mechanical |
; | or electronic difficulties, or snake venom. |
; ——————————————————————-
(defun tlines ()
(setq lbeg (cdr (assoc ’10 ent)))
(setq lend (cdr (assoc ’11 ent)))
(setq llen (distance lbeg lend))
(setq tlen (+ tlen llen))
(ssdel sn ss1)
)
(defun tarcs ()
(setq cen (cdr (assoc ’10 ent)))
(setq rad (cdr (assoc ’40 ent)))
(setq dia (* rad 2.0))
(setq circ (* (* rad pi) 2.0))
(setq sang (cdr (assoc ’50 ent)))
(setq eang (cdr (assoc ’51 ent)))
(if (< eang sang)
(setq eang (+ eang (* pi 2.0)))
)
(setq tang (- eang sang))
(setq tang2 (* (/ tang pi) 180.0))
(setq circ2 (/ tang2 360.0))
(setq alen (* circ2 circ))
(setq tlen (+ tlen alen))
(princ)
(ssdel sn ss1)
)
(defun tplines ()
(command “area” “e” sn)
(setq tlen (+ tlen (getvar “perimeter”)))
(ssdel sn ss1)
)
(defun tsplines ()
(command “area” “e” sn)
(setq tlen (+ tlen (getvar “perimeter”)))
(ssdel sn ss1)
)
(DEFUN C:TL (/ tlen ss1 sn sn2 et)
(setq cmdecho (getvar “cmdecho”))
(setvar “cmdecho” 0)
(setq txt_sz (getvar “textsize”)) ; 추가 – 글쓰기 위한 TEXT SIZE 추출
(setq tlen 0)
(prompt “n길이 구하고자 하는 객체를 선택하면 길이의 총합을 써준다! “)
(setq ss1 (ssget))
(while (> (sslength ss1) 0)
(setq sn (ssname ss1 0))
(setq ent (entget sn))
(setq et (cdr (assoc ‘0 ent)))
(cond
((= et “LINE”) (tlines))
((= et “ARC”) (tarcs))
((= et “LWPOLYLINE”) (tplines))
((= et “POLYLINE”) (tplines))
((= et “SPLINE”) (tsplines))
((or
(/= et “LINE”)
(/= et “ARC”)
(/= et “LWPOLYLINE”)
(/= et “POLYLINE”)
(/= et “SPLINE”)
)
(ssdel sn ss1)
)
)
)
(setq pnt1 (getpoint “n>> Pick text point : “))
;메세지창으로만 보려면 바로 아래줄 맨앞에 이줄처럼 세미콜론 ; 을 추가하면 시행되지 않습니다.
(command “text” “j” “mr” pnt1 txt_sz “0” (rtos tlen 2 3)) ;; 추가 – 찍은곳에 글씨 써주기, 소수이하 자리수를 변경하려면 맨뒤의 3자를 원하는자리수로 바꾸세요
;메세지창이 뜨는 것이 귀찮으면 아래줄 맨앞에 이줄처럼 세미콜론 ; 을 추가하면 시행되지 않습니다.
;(alert (strcat “nThe Total Length of Selected Lines, Polylines, and Arcs is: ” (rtos tlen 2 3))) ;; 소수이하 자리수를 변경하려면 맨뒤의 3자를 원하는자리수로 바꾸세요
(setvar “cmdecho” cmdecho)
(prompt “n길이–> 1M=1 “)
(princ)
)
길이 구하는 리습인데…1000mm를 1로 나타나게 하고싶은데…수정 부탁 드립니다…