Lock Property (ActiveX)

Locks or unlocks a layer.

Supported platforms: Windows only

Signature

VBA:

object.Lock
object

Type: Layer

The object this property applies to.

Property Value

Read-only: No

Type: Boolean

Remarks

You cannot edit objects on a locked layer; however, they are still visible if the layer is on and thawed. You can make a locked layer active and you can add objects to it. You can also apply object snap modes to objects on locked layers. You can freeze and turn off locked layers and change their associated colors.

Locking is useful when you want to edit objects that are associated with particular layers but also want to view objects on other layers.

Examples

VBA:

Sub Example_Lock()
    ' This example creates a new layer called "Lock".
    ' It then displays the status of the Lock property
    ' for the new layer, toggles the status of the
    ' Lock property, and again displays its status.
    ' After running this example, you can check the layer
    ' control on the Object Properties tool bar. It will
    ' show the new layer and the latest Lock status.
    
    Dim layerObj As AcadLayer
    
    ' Create the new layer
    Set layerObj = ThisDrawing.Layers.Add("Lock")
    
    ' Display the Lock status of the new layer
    GoSub DISPLAYSTATUS
    
    ' Toggle the status of the Lock property for the layer
    layerObj.Lock = Not (layerObj.Lock)
    
    ' Display the Lock status of the new layer
    GoSub DISPLAYSTATUS
    Exit Sub
    
DISPLAYSTATUS:
    If layerObj.Lock Then
        MsgBox "Layer " & layerObj.Name & " is locked.", , "Lock Example"
    Else
        MsgBox "Layer " & layerObj.Name & " is unlocked.", , "Lock Example"
    End If
    Return
        
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_Lock()
    ;; This example creates a new layer called "Lock".
    ;; It then displays the status of the Lock property
    ;; for the new layer, toggles the status of the
    ;; Lock property, and again displays its status.
    ;; After running this example, you can check the layer
    ;; control on the Object Properties tool bar. It will
    ;; show the new layer and the latest Lock status.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))

    ;; Create the new layer
    (setq layerObj (vla-Add (vla-get-Layers doc) "Lock"))
    
    ;; Display the Lock status of the new layer
    (if (= (vla-get-Lock layerObj) :vlax-true)
        (alert (strcat "Layer " (vla-get-Name layerObj) " is locked."))
        (alert (strcat "Layer " (vla-get-Name layerObj) " is unlocked."))
    )
    
    ;; Toggle the status of the Lock property for the layer
    (vla-put-Lock layerObj (if (= (vla-get-Lock layerObj) :vlax-true) :vlax-false :vlax-true))
    
    ;; Display the Lock status of the new layer
    (if (= (vla-get-Lock layerObj) :vlax-true)
        (alert (strcat "Layer " (vla-get-Name layerObj) " is locked."))
        (alert (strcat "Layer " (vla-get-Name layerObj) " is unlocked."))
    )
)