Very quickly written:
Code:(defun c:Solids2Layers ( / _padzeros a b e i l n p s ) (setq p "3d") (defun _padzeros ( s l ) (if (< (strlen s) l) (_padzeros (strcat "0" s) l) s) ) (if (setq s (ssget "_:L" '((0 . "*SOLID")))) (progn (setq i (sslength s) l (1+ (fix (/ (log i) (log 10)))) n 0 ) (repeat i (setq e (entget (ssname s (setq i (1- i))))) (entmod (subst (cons 8 (strcat p (_padzeros (itoa (setq n (1+ n))) l))) (assoc 8 e) e ) ) ) (setq n 0) (while (setq a (tblnext "LAYER" (null a))) (if (wcmatch (setq b (cdr (assoc 2 a))) (strcat p "*")) (entmod (setq b (entget (tblobjname "LAYER" b)) b (subst (cons 62 (setq n (1+ (rem n 254)))) (assoc 62 b) b) ) ) ) ) ) ) (princ) )




Reply With Quote
Bookmarks