I suppose you could also include coding to delete everything on that layer before deleting the layer...
- (defun DeleteLayer (Name / layCol dLay oVal) (vl-load-com) (if (and (/= Name "0") (/= (strcase Name) (getvar "CLAYER"))) (progn (setq layCol (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object)))) (if (vl-catch-all-error-p (setq dLay (vl-catch-all-apply 'vla-Item (list layCol (strcat Name))))) (princ "\nLayer does not exist! ") (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-Delete (list dLay))) (princ "\nCan't delete layer in use! ") (setq oVal T)))) (princ "\nCan't delete active layer or layer "0"! ")) oVal)(defun c:test (/ lay ss) (setq lay (getstring "\nType Name of Layer...")) (setq ss (mapcar 'cadr (ssnamex (ssget "X" (list (cons 8 lay)))))) (mapcar 'entdel ss) (DeleteLayer lay) (princ))
|