I having been messing around with this lisp, trying to get it to remove all layers with a prefix (DEMO_*) to be replaced with (EX_*).
DEMO_PAVEMENT
to
EX_PAVEMENT
Thanks guys for any help!
(defun c:demo (/ _ss->list e el l pre ss)
(defun _ss->list (ss / n out)
(repeat (setq n (sslength ss)) (setq out (cons (ssname ss (setq n (1- n))) out)))
)
(if (and (setq pre (getstring t "\nEnter prefix: ")) (setq ss (ssget)))
(progn (foreach e (_ss->list ss)
(setq l (cdr (assoc 8 (entget e))))
(setq el (entget (tblobjname "layer" l)))
(if (wcmatch (strcase l) (strcat (strcase pre) "*"))
(progn (princ "\nObject already has that layer prefix..."))
(progn (if (not (tblobjname "layer" (strcat pre l)))
(entmakex (subst (cons 2 (strcat pre l)) (assoc 2 el) el))
)
(entmod (subst (cons 8 (strcat pre l)) (assoc 8 (entget e)) (entget e)))
)
)
)
)
)
(princ)
)