输出和输入保存的图层设置

AutoCAD ActiveX/VBA

 
输出和输入保存的图层设置
 
 
 

用户可以输出和输入图层的设置,以便在其他图形中使用这些设置。使用 LayerStateManager 的 Export 方法可以将图层设置保存到文件;使用 Import 方法可以将已保存的图层设置输入到图形中。

注意输入图层设置并不会恢复这些设置。必须使用 Restore 方法将图形中的图层设置为输入的设置。

Export 方法接受两个参数。第一个参数是一个字符串,标识用户输出的保存的图层设置;第二个参数是接受输出设置的文件名称。如果用户不指定文件的路径,文件将保存到 AutoCAD 的安装目录中。如果用户指定的文件名称已经存在,则现有的文件将被替换。命名文件时请使用 ..las 扩展名,这是 AutoCAD 能够识别的输出图层设置文件的扩展名。

Import 方法接受一个参数:一个字符串,用于命名包含用户输入的图层设置的文件。

在输入图层设置时,如果已保存设置中引用的任何特性不存在于要输入设置的图形中,将出现错误。但输入会使用默认的特性完成。例如,如果输出的图层设置为使用未在要输入该图层的图形中加载的线型,将产生错误,并将使用图形的默认线型对其进行替换。用户的代码应该记录这种错误条件,以便在产生错误时能够继续处理。

如果当前图形中不存在输入文件定义的图层设置,将在当前图形中创建这些图层。使用 Restore 方法时,在保存设置时指定的特性将被指定到新图层,而新图层的其他所有特性都使用默认设置。

输出保存的图层设置

以下代码将保存的图层设置输出到名为 Colortype.las 的文件中。

Sub Ch4_ExportLayerSettings()
    Dim oLSM As AcadLayerStateManager
    Set oLSM = ThisDrawing.Application. _
       GetInterfaceObject("AutoCAD.AcadLayerStateManager.17")
    oLSM.SetDatabase ThisDrawing.Database
    oLSM.Export "ColorLinetype", "c:\my documents\ColorLType.las"
End Sub

输入保存的图层设置

以下代码从名为 Colortype.las 文件输入图层设置。

Sub Ch4_ImportLayerSettings()
    Dim oLSM As AcadLayerStateManager
    Set oLSM = ThisDrawing.Application. _
       GetInterfaceObject("AutoCAD.AcadLayerStateManager.17")
    oLSM.SetDatabase ThisDrawing.Database
      
    ' 如果要输入的图形未包含
    ' 保存的设置中引用的所有线型,
    ' 将返回错误。虽然完成了输入,
    ' 但使用的是默认线型。
    On Error Resume Next
    oLSM.Import "c:\my documents\ColorLType.las"
    If Err.Number = -2145386359 Then
       ' 错误指出线型没有定义
       MsgBox ("One or more linetypes specified in the imported " + _
              "settings is not defined in your drawing")
    End If
    On Error GoTo 0
      
End Sub