다수의 바운다리가 있을때
map-tool-boundary-break 기능을 리습으로 할려고 하는데요
첨부캐드파일을 첨부리습으로 돌리면 리습이 돌아가다가. 제컴퓨터 기준으로
바운다리 115번까지는 제대로 실행이되다가
116번째부터
error: can’t fill resbuf with killed selset: <Selection set: 0*>
이라고 에러가뜨면서 중단이되거든요
이렇게 중단된 상태에서 객체를 선택하면
properties창에보면 no selection 이라고 뜨면서 객체선택도 안되고
map-tool-boundary-break 기능을 수동으로해도 기능이 먹지도 않거든요
다시 캐드를 껐다가 켜야만 캐드기능이 제대로 먹더라구요…
map6버전에서도 map2011버전에서도 똑같은 증상이 일어나는데요…
왜 이런증상이 일어나는지….해결할수있는 방법이 있는지 궁금합니다.
(defun c:a1( / )
(setvar “osmode” 0)
(setvar “cmdecho” 0)
(setq ly_name (getstring “바운다리레이어명입력 : “))(print)
(setq ent (ssget “x” (list (cons 8 ly_name) (cons 0 “lwpolyline”))))
(setq ent_num (sslength ent))
(setq i 0 err 0 )
(while (< i ent_num)
(setq ent_name (ssname ent i))
(setq ent_list (entget ent_name))
(setq ent_10 (send_xy ent_list 10) 10_len (length ent_10) 1_10 (nth 0 ent_10) e_10 (nth (- 10_len 1) ent_10))
(if (not(equal (distance 1_10 e_10) 0.0 0.000001)) ;처음과 끝점 같지않으면 처음점 추가
(setq ent_10 (append ent_10 (list(car ent_10))))
(setq 10_len (- 10_len 1))
);if
(setq f_ent (ssget “f” ent_10 (list (cons 0 “LWPOLYLINE”))))
(if (/= nil f_ent)
(progn
(setq result (map_dwgbreakobj f_ent ent_name 0 0))
(setq status (ade_ssfree result))
);progn
);if
(setq i (+ i 1))
);while
)
(defun send_xy (s_list attr_num / s_len i gn_list j i)
(setq s_len (length s_list)) //리스트 속성갯수
(setq i 0 j 0)
(setq gn_list (list )) //좌표담을 리스트 초기화
(while (< i s_len)
(if (= attr_num (car (nth i s_list)))
(progn
(setq gn_list (cons (cdr (nth i s_list)) gn_list))
(setq j (+ j 1))
)
)
(setq i (+ i 1))
)
(setq gn_list (reverse gn_list))
)