Option Explicit
Public varLay() As Variant
Public i As Integer
Public blnlayerstate As Boolean
Sub ToggleLayers()
On Error Resume Next
Dim objLayer As AcadLayer
Dim intJ As Integer
If blnlayerstate = False Then
i = 0
For Each objLayer In ThisDrawing.Layers
If objLayer.Name <> "0" Then
ReDim Preserve varLay(0 To 3, i)
varLay(0, i) = objLayer.Name
varLay(1, i) = objLayer.Freeze
varLay(2, i) = objLayer.LayerOn
varLay(3, i) = objLayer.Lock
objLayer.Freeze = False
objLayer.LayerOn = True
objLayer.Lock = False
i = i + 1
End If
Next
ThisDrawing.Utility.Prompt vbCrLf & "All layers are on, thawed & unlocked."
Else
For intJ = 0 To i - 1
ThisDrawing.Layers.Item(varLay(0, intJ)).Freeze = varLay(1, intJ)
ThisDrawing.Layers.Item(varLay(0, intJ)).LayerOn = varLay(2, intJ)
ThisDrawing.Layers.Item(varLay(0, intJ)).Lock = varLay(3, intJ)
Next intJ
ThisDrawing.Utility.Prompt vbCrLf & "All layers are restored to previous state."
End If
If blnlayerstate = False Then blnlayerstate = True Else blnlayerstate = False
ThisDrawing.Regen acAllViewports
End Sub
|