

(defun c:ec(/ ss OS en ent obj col color layobj sss smemeber color2 ssno num sslen sss )
(defun *error* (msg)(princ "error: ")(princ msg)
(setvar "osmode" os) (command "clayer" "0") (princ) )
(setq os (getvar "osmode"))
;(vl-load-com)
(sssetfirst)
(setq sss nil sss (ssadd))
(setq en (car (entsel "\컬러필터링 삭제 - 기준컬러 객체를 선택")))
(WHILE ( = EN NIL)
(setq en (car (entsel "\n 컬러필터링 삭제 - 기준컬러 객체를 선택")))
) ;WHILE END
(setq ent (entget en) color (cdr (assoc 62 ent)) layer (cdr (assoc 8 ent)))
(if (= nil color)
(progn ;;;;;;; bylayer 인 경우의 처리
(setq obj(vlax-ename->vla-object en))
(setq col (vla-get-TrueColor obj))
(setq color(vlax-get col 'Colorindex))
(if (= color 256)
(progn
(setq layobj (vlax-ename->vla-object (tblobjname "LAYER" (vlax-get obj 'LAYER))))
(setq layobj (vla-get-TrueColor layobj))
(setq color (vla-get-ColorIndex layobj))
(PRINC "\n ColorIndex = ")
(PRINC COLOR)
)
);if end
);progn end
;;-------------------------
(progn ;;;;;;; bylayer가 아닌경우의 처리
(PRINC "\n ColorIndex = ")
(PRINC COLOR)
);progn end
); if end
;;;;;;;;;;;;;;;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;;;;;;;;;;;;;;;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;;;;;;;;;;;;;;;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
(prompt "\n객체범위를 선택")
(while (/= (setq ss (ssget)) nil)
(progn
(if ( = ss nil)
(exit)
)
(setq sslen (sslength ss)
ssno 0
num 0)
(while (/= sslen ssno) ;while bbb
(progn
(setq smember (ssname ss ssno))
(setq ssno (+ ssno 1))
(setq color2 (cdr (assoc 62 (entget smember))))
(if (= nil color2)
(progn ;;;;;;; bylayer 인 경우의 처리
(setq obj (vlax-ename->vla-object smember))
(setq col (vla-get-TrueColor obj))
(setq color2 (vlax-get col 'Colorindex))
(if (= color2 256)
(progn
(setq layobj (vlax-ename->vla-object (tblobjname "LAYER" (vlax-get obj 'LAYER))))
(setq layobj (vla-get-TrueColor layobj))
(setq color2 (vla-get-ColorIndex layobj))
);progn end
);if end
) ;progn end
) ; if end
(if (= color color2)
;(command "erase" smember "" )
(ssadd smember sss)
) ; if end
);progn end
);while-bbb end
(command "erase" sss "")
);progn end
);while end
) ;defun end
==> (sssetfirst nil sss)
함수를 사용하면 될 것 같긴한데....