了解 AutoCAD 如何保存图层设置

AutoCAD ActiveX/VBA

 
了解 AutoCAD 如何保存图层设置
 
 
 

AutoCAD 将图层设置保存在图形的 Layers 集合的扩展词典中。用户首次保存图形中的图层设置时,AutoCAD 将执行以下操作:

  • 在 Layers 集合中创建扩展词典。
  • 在扩展词典中创建命名为 ACAD_LAYERSTATE 的 Dictionary 对象。
  • 将图形中每个图层的特性存储在 ACAD_LAYERSTATE 词典的 XRecord 对象中。AutoCAD 将所有图层设置存储在 XRecord 中,但会标明用户选择保存的特定设置。恢复图层设置时,AutoCAD 仅恢复用户选择保存的设置。

每次保存图形中另一图层设置时,AutoCAD 均将创建另一个描述保存设置的 XRecord 对象,并将 XRecord 存储在 ACAD_LAYERSTATE 词典中。下面的图表说明了这个过程。

用户使用 ActiveX 对图层设置进行操作时,不需要(也不应该)解释 XRecord,而应该使用 LayerStateManager 对象的功能访问保存的图层设置。

列出图形中保存的图层设置

如果图层设置已经保存在当前的图形中,则下面的代码列出所有已经保存的图层设置名称:

Sub Ch4_ListStates()
     On Error Resume Next
    Dim oLSMDict As AcadDictionary
    Dim XRec As Object
    Dim layerstateNames As String
      
    layerstateNames = ""
    ' 获取 ACAD_LAYERSTATES 词典,它保存在
    ' Layers 对象的扩展词典中
    Set oLSMDict = ThisDrawing.Layers. _
           GetExtensionDictionary.Item("ACAD_LAYERSTATES")
    ' 列出每个己保存的图层设置的名称。设置
    ' 保存为词典中的 XRecord。
    For Each XRec In oLSMDict
       layerstateNames = layerstateNames + XRec.Name + vbCrLf
    Next XRec
    MsgBox "The saved layer settings in this drawing are: " + _
            vbCrLf + layerstateNames
End Sub