;;图层锁定状态转变
;;单选图元,若图元所在层锁定将解锁,若解锁则锁定
(defun c:txtt (/ AcadObject AcadDocument mSpace
layers layer layerObj lockstatus loop
ent Obj
)
(VL-LOAD-COM)
(setq AcadObject (vlax-get-acad-object)
AcadDocument (vla-get-ActiveDocument Acadobject)
mSpace (vla-get-ModelSpace Acaddocument)
layers (vla-get-layers AcadDocument)
)
(setq loop t)
(while loop
(setq ent (entsel "\n选取循环锁定层上的一个图元:"))
(if (null ent)
(princ "\n无效选择!")
(setq loop nil)
)
)
(setq Obj (vlax-ename->vla-object (car ent)))
(setq layer (vla-get-layer Obj))
(setq layerObj (vla-item layers layer))
(setq lockstatus (vla-get-lock layerObj))
(cond
((= lockstatus :vlax-true)
(vla-put-lock layerObj :vlax-false)
(prompt "\n图层已解锁")
)
((= lockstatus :vlax-false)
(vla-put-lock layerObj :vlax-true)
(prompt "\n图层已锁定")
)
)
)