;;;XLS.LSP V1.0 Copyright 10/5/07 Bill DeShawn (defun xlserr (msg) (if msg (princ msg)) (if olderr (setq *error* olderr)) (command "_.undo" "_end") (princ) ) (defun c:xls (/ nent nelist nlayr nlayrlen dgnamlen lnam resp colr ltyp ltyplen ltnam) (command "_.undo" "_g") (setq olderr *error* *error* xlserr) (setq nent nil); for debugging purposes only. (while (null nent) (setq nent (nentsel "\nSelect nested object: "))) (setq nelist (entget (car nent))) (setq nlayr (cdr (assoc 8 nelist))) (if (= nlayr "0")(progn (alert "Layer 0 disallowed.") (quit))) (setq nlayrlen (strlen nlayr)) (setq dgnamlen (- (strlen (getvar "dwgname")) 4)); so .dwg doesn't get counted. (setq lnam (substr nlayr (+ dgnamlen 2) nlayrlen)) (if (= nlayr "0") (setq lnam "0")) (if (tblsearch "layer" lnam) (command "_.-layer" "s" lnam "") (progn (alert (strcat "Layer " lnam " does not exist in base drawing. Read command line.")) (setq resp (strcase (getstring (strcat "\nDo you want to create layer " lnam "? Y/N : ")))) (if (= resp "") (progn (setq resp "N") (princ "\nNo layer was created. Done. "))) (if (= resp "Y") (progn (setq colr (cdr (assoc 62 (cdr (tblsearch "layer" nlayr))))) (setq ltyp (cdr (assoc 6 (cdr (tblsearch "layer" nlayr))))) (setq ltyplen (strlen ltyp)) (setq ltnam (substr ltyp (+ dgnamlen 2) ltyplen)) (command "_.-layer" "_m" lnam "_c" colr lnam "L" ltnam lnam "") (alert (strcat "Created new layer: " lnam)) ) ) ) ) (setq *error* olderr) (command "_.undo" "_end") (princ "\nDone.") (princ) ) (princ "\nXLS.LSP V.1.0 (C) 10/5/07 Bill DeShawn")