덕트 물량산출할때 유용하게 쓰는 리습인데요.
선택된 라인 길이의 합을 내주는 리습이에요.
그런데 길이의 합을 내고 일일이 다시 선택된 라인을 지워조야..
안 헷갈려서요..
길이의 합을 내면 그 선택된 라인이 자동으로 삭제되게 수정할 수 없을까요?ㅜㅜ
고수님들 도와주세요..
—————————————————————————————–
(DEFUN C:ss(/ eg egl n l ne entname entn p1 p2 l2 radi l_ength)
(SETVAR “cmdecho” 0)
(setvar “BLIPMODE” 0)
(SETQ EG (SSGET))
(SETQ EGL (SSLENGTH EG))
(SETQ N 0)
(setq l 0)
(setq ne 0)
(WHILE (< N EGL)
(SETQ ENTN (SSNAME EG N))
(SETQ ENT (ENTGET ENTN))
(setq entname (assoc 0 ent))
(setq entname (cdr entname))
(if (= entname “LINE”)
(progn
(SETQ p1 (ASSOC 10 ENT))
(SETQ p2 (ASSOC 11 ENT))
(SETQ p1x (car (CDR p1)))
(SETQ p1y (CaDdR p1))
(SETQ p2x (car (CDR p2)))
(SETQ p2y (CaDdR p2))
(setq l2 (sqrt (+ (expt (- p1x p2x) 2) (expt (- p1y p2y) 2))))
(setq l (+ l l2))
(setq ne (+ ne 1))
)
)
(if (= entname “CIRCLE”)
(progn
(SETQ p1 (ASSOC 40 ENT))
(SETQ radi (cdr p1))
(setq l2 (* 2 (* pi radi)))
(setq l (+ l l2))
(setq ne (+ ne 1))
)
)
(if (= entname “ARC”)
(progn
(SETQ p1 (ASSOC 40 ENT))
(SETQ radi (cdr p1))
(SETQ p1 (ASSOC 50 ENT))
(SETQ p2 (ASSOC 51 ENT))
(SETQ p1R (CDR p1))
(SETQ p2R (CDR p2))
(SETQ TH (ABS (- P1R P2R)))
(setq l2 (* RADI TH))
(setq l (+ l l2))
(setq ne (+ ne 1))
)
)
(if (or (= entname “LWPOLYLINE”)(= entname “POLYLINE”))
(progn
(command “area” “e” entn)
(setq l2 (getvar “perimeter”))
(setq l (+ l l2))
(setq ne (+ ne 1))
)
)
(SETQ N (+ 1 N))
)
(princ “n >>>>> “)
(if (> egl ne)
(progn
(princ ne)(princ ” of “)(princ egl)
(princ ” objects are measured // “)
)
)
(princ ” Total length is “)
(setq l_ength (rtos (/ l 1000) 2 2))
(prin1 l_ength)
(setq pt (getpoint “nText Point: “))
(setq h (getvar “textsize”))
(prompt “nText Height: “)
(princ H)
(princ ” : “)
(setq z (getdist))
(if z
(setq h z)
)
(command “text”
(setq z pt)
(setq z h)
(setq z 0.0)
(setq z l_ength)
)
(setvar “cmdecho” 1)
(setvar “blipmode” 1)
(princ)
)
어떤 필터링을 하라고하시는건지..
라인만 지워지도록이요??
어찌하는지.. 가르쳐주세요 ㅠ
선택 구문에서 필터링을 해야합니다.
(command “erase” EG “”)
이렇게 해결했네요^^
다른카페에서 가르쳐주셨어요^^