(defun ARCH:DEL-LAY (layer_name / n ent acapp acsp adoc allrs layer_name TotalNumber CurrNumber)
(setq acapp (vlax-get-acad-object)
adoc (vla-get-activedocument acapp)
acsp (vla-get-block (vla-get-activelayout adoc))
allrs (vla-get-layers adoc)
)
(or (eq (vla-get-freeze (vla-item allrs layer_name)) :vlax-true)
(vla-put-freeze (vla-item allrs layer_name) :vlax-false)
)
(or (eq (vla-get-lock (vla-item allrs layer_name)) :vlax-true)
(vla-put-lock (vla-item allrs layer_name) :vlax-false)
)
(or (eq (vla-get-layeron (vla-item allrs layer_name)) :vlax-false)
(vla-put-layeron (vla-item allrs layer_name) :vlax-true)
)
(vlax-for lt (vla-get-layouts adoc)
(vlax-for ob (vla-get-block lt)
(if (eq (vla-get-layer ob) layer_name)
(progn
(vla-delete ob)
(vlax-release-object ob)
)
)
)
)
(princ)
)
;;;
(defun ARCH:DBX-LAY-DBX ( )
(if (tblsearch "layer" "A-REVS-SYMB")(ARCH:DEL-LAY "A-REVS-SYMB"))
)
;;;
(defun C:TEST ()
(ARCH:LOAD (strcat ARCH#UTIF "ObjectDBXBase.lsp"))
(LM:ODBX (ARCH:DBX-LAY-DBX) nil t)
)
Just tried out your modified "Instead, consider this variation" version.
It works beautifully. Thanks again.
I try to use the ObjectDBX Wrapper and code that Lee-Mac posted above to delete layers name "tekst" "markering" in DXF files, but it does not work.
The reporter has made the following comment:
Friend, can I DBX delete a layer? My English is not good!