일단 죄송합니다…어느분께서 만드셨는지 몰라도 제 맘대로 수정을 요구하고 있네요…ㅜㅜ
다시한번 죄송합니다.
암튼 리습은 여기서 얻은거구요
수치지도 등고선 좌표를 xyz파일 형식으로 변환해야되서요.
근데 등고선이 너무 많고 복잡해서 하나씩 찍기는 어려운 상황입니다.
그래서 바꿔야될부분은
객체선택을 다중 객체 선택 가능하도록 만드는 것입니다
무슨 등고선을 찍었는지 정보는 필요 없고요 찍은 선들의 좌표들만 다 나오면 됩니다.
도와주시면 감사하겠습니다.
—————————————————————————————————————————————–
(defun go_poly()
(setq name (cdr (car ent))
code (entnext name)
pl_list ‘()
as10 t
)
(while as10
(setq ent10 (entget code)
as10 (cdr (assoc 10 ent10))
pl_list (append pl_list (list as10))
code (entnext code)
)
)
(setq pl_list (reverse pl_list)
pl_list (cdr pl_list)
pl_list (reverse pl_list)
pl_list_len (length pl_list)
pwn 0
vn 1
)
(repeat pl_list_len
(if (= pwn 0)
(setq pl_op (open “c:\xyz.txt” “w”))
(setq pl_op (open “c:\xyz.txt” “a”))
)
(setq pl_text_xyz (strcat
(rtos (car (nth pwn pl_list)) 2 4)
” _ “
(rtos (cadr (nth pwn pl_list)) 2 4)
” _ ”
(rtos (caddr (nth pwn pl_list)) 2 4)
)
)
(write-line pl_text_xyz pl_op)
(setq pwn (+ pwn 1)
vn (+ vn 1)
)
)
(close pl_op)
)
(defun go_lwpoly()
(setq lw_list ‘()
lwn 0
lw_as10 t
)
(while lw_as10
(setq lw_as10 (car (nth lwn ent)))
(if (= lw_as10 10)
(progn
(setq xyz (cdr (nth lwn ent))
lw_list (append lw_list (list xyz))
)
)
)
(setq lwn (+ lwn 1))
)
(setq as38 (cdr (assoc 38 ent))
lw_list_len (length lw_list)
lwnn 0
vnn 1
)
(repeat lw_list_len
(if (= lwnn 0)
(setq pl_op (open “c:\xyz.txt” “w”))
(setq pl_op (open “c:\xyz.txt” “a”))
)
(setq lw_text_xyz (strcat
(rtos (car (nth lwnn lw_list)) 2 4)
” _ “
(rtos (cadr (nth lwnn lw_list)) 2 4)
” _ ”
(rtos as38 2 4)
)
)
(write-line lw_text_xyz pl_op)
(setq lwnn (+ lwnn 1)
vnn (+ vnn 1)
)
)
(close pl_op)
)
(defun c:ccc()
(setq ss (ssget))
(setq num (sslength ss))
(setq sel (ssname ss (if (eq 1 num) 0 (progn (alert “n객체를 한개만 선택하세요!”) (exit)))))
(setq ent (entget sel))
(setq as0 (cdr (assoc 0 ent)))
(if (= as0 “POLYLINE”)
(go_poly)
)
(if (= as0 “LWPOLYLINE”)
(go_lwpoly)
)
)
————————————————————————————————————————————-