了解 AutoCAD 如何保存图层设置
From AutoCAD ActiveX/VBA
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 oLSMDictlayerstateNames = layerstateNames + XRec.Name + vbCrLfNext XRecMsgBox "The saved layer settings in this drawing are: " + _vbCrLf + layerstateNamesEnd Sub