;;圖層鎖定狀態轉變
;;單選圖元,若圖元所在層鎖定將解鎖,若解鎖則鎖定
(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圖層已鎖定")
)
)
)