(defun c:lcu (/ ActDoc LayList LayNameList)
; Erases all objects on frozen layers, then purges drawing.
(setq ActDoc (vla-get-ActiveDocument (vlax-get-Acad-Object)))
(vlax-for Lay (vla-get-Layers ActDoc)
(if
(or
(= (vla-get-Freeze Lay) ':vlax-true)
)
(progn
(vla-put-Lock Lay :vlax-false)
(setq LayList (cons Lay LayList)
LayNameList (cons (vla-get-Name Lay) LayNameList)
)
)
)
)
(vla-StartUndoMark ActDoc)
(if LayList
(progn
(vlax-for Layout (vla-get-Layouts ActDoc)
(vlax-for Obj (vla-get-Block Layout)
(if (member (vla-get-Layer Obj) LayNameList)
(vla-Delete Obj)
)
)
)
(vla-PurgeAll ActDoc)
)
)
(vla-EndUndoMark ActDoc)
(princ)
)
That seems to work. Thank you.Glad to help. FWIW, I edited the code above to exclude xref layers too.