본문 바로가기
AutoCAD/AutoLisp

[XREF] Xref파일 Bind후에 Xref에서 off된 레이어 삭제

by Crony 2011. 5. 15.
AutoCAD 2007 이상버젼에서 구현이 됩니다.

;; ──────────────────────────────
;;          Xref Bind & Off Layer 삭제
;;          Date 2008.10.06
;; ──────────────────────────────

(defun c:xbd(/ lay_0 lay_1 lay_2 lay_off  lay_obj num_1 obj_num) 
   (setvar "cmdecho" 0) 
   (setvar "bindtype" 0)           ;;Bind 기능 필요 없을 경우 삭제
   (command "_.xref" "Bind" "*")   ;;Bind 기능 필요 없을 경우 삭제
   (setq lay_0 (tblnext "layer" t)) 
   (while lay_0 
      (setq lay_1 (cdr (assoc 2 lay_0))) 
      (setq lay_off (cdr (assoc 62 lay_0))) 
      (if (and (wcmatch lay_1 "*$0$*")(< lay_off 0)) 
         (setq lay_2 (append lay_2 (list lay_1))) 
      ) 
      (setq lay_0 (tblnext "layer")) 
   ) 
   (setq obj_num (length lay_2)) 
   (setq num_1 0) 
   (repeat obj_num 
      (setq lay_obj (nth num_1 lay_2)) 
      (command "laydel" "n" lay_obj "" "y") 
      (setq num_1 (1+ num_1)) 
   ) 
   (command "_.qsave")  ;;저장
   (princ) 
)


레이어 자체가 삭제되니 주의하여서 잘 사용하세요^^