请阅读代码发布指南,并将您的代码包含在代码标签中。[NOPARSE]
- (defun C:AutoLayerChange ( / L _LayersList _Recapitalise lyrs SS i enx lyr tmp )
-
- (setq L ; Note: layer names are case insensitive - assoc list of: (<old layer> . <new layer>)
- '( ; Place your inputs here:
- ("obj2" . "obj1")
- ("dim" . "0")
- ); list
- ); setq L
-
- (defun _LayersList ( / d L )
- (while (setq d (tblnext "LAYER" (not d)))
- (setq L (cons (cdr (assoc 2 d)) L))
- )
- )
-
- (defun _Recapitalise ( itm L )
- (vl-some (function (lambda (x) (if (= (strcase itm) (strcase x)) x))) L)
- )
-
- (and
- (setq lyrs (_LayersList))
- (or
- (setq L (apply (function append) (mapcar (function (lambda (x / tmp) (if (setq tmp (_Recapitalise (car x) lyrs)) (list (cons tmp (cdr x)))))) L)))
- (prompt "\nNo valid layers were found.")
- ); or
- (or
- (prompt "\nSelect objects to change layers: ")
- (setq SS (ssget "_:L-I" (list (cons 8 (setq tmp (substr (apply (function strcat) (mapcar (function (lambda (x) (strcat "," (car x)))) L)) 2))))))
- (prompt (strcat "\nNo objects were found on "" tmp "" layers."))
- ); or
- (repeat (setq i (sslength SS))
- (setq enx (entget (ssname SS (setq i (1- i)))))
- (setq lyr (assoc 8 enx))
- (entmod (subst (cons 8 (cond ( (cdr (assoc (setq tmp (cdr lyr)) L)) ) ( tmp ) )) lyr enx))
- ); repeat
- ); and
- (princ)
- ); defun C:AutoLayerChange
=
|