Hi,
Add your list of layer names as indicated in the following routine and let me know how this works:
Code:
(defun c:frz (/ sel ref pfx lay frz get)
;; Tharwat - date: 28.Jun.2018 ;;
(and (princ "\nPick on Xref to freeze layers :")
(setq sel (ssget "_+.:S:E" '((0 . "INSERT"))))
(or (/= ""
(setq ref
(cdr
(assoc 1
(entget (tblobjname
"BLOCK"
(cdr (assoc 2 (entget (ssname sel 0))))
)
)
)
)
)
)
(alert "Pick object is not an Xref <!>")
)
(setq pfx (vl-filename-base ref))
(foreach lst '("Layer1" "Layer2" "Layer3") ;; Add your list of layer names here.
(and (tblsearch "LAYER" (setq lay (strcat pfx "|" lst)))
(not (= 1
(logand 1
(setq frz
(cdr
(assoc 70
(setq get (entget (tblobjname "LAYER" lay)))
)
)
)
)
)
)
(entmod (subst (cons 70 (+ frz 1)) (assoc 70 get) get))
)
)
)
(princ)
)