附着外部参照

AutoCAD ActiveX/VBA

 
附着外部参照
 
 
 

附着外部参照可以将某个图形(参照文件或外部参照)链接到当前图形。当图形参照外部参照时,AutoCAD 仅将外部参照定义附着到图形;而在常规块中,块定义以及块的内容都与当前图形一同存储。AutoCAD 读取参照图形,以确定要在当前图形中显示的内容。如果参照文件丢失或损坏,其数据就不会显示在当前图形中。每次打开图形时,AutoCAD 都会从参照文件中加载所有图形对象和非图形对象(例如:图层、线型和文字样式)。如果 VISRETAIN 处于打开状态,AutoCAD 会将所有更新的依赖于外部参照的图层信息存储在当前图形中。

可以附着数目不限的外部参照副本,每个副本都可以具有不同的位置、比例和旋转。也可以控制在外部参照中定义的从属图层和线型特性。

要附着外部参照,请使用 AttachExternalReference 方法。此方法需要输入要参照图形的路径和文件名、要在当前图形中使用的外部参照的名称、外部参照的插入点、比例和旋转信息。AttachExternalReference 方法将返回新创建的 ExternalReference 对象。

有关附着外部参照的详细信息,请参见《用户手册》中的“附着外部参照”。

将外部参照附着到图形中

本例显示在添加外部参照之前和添加外部参照之后当前图形中所有的块。本例使用位于“Sample”目录中的“3D House.dwg”文件。如果没有此图像,或者此图像位于其他目录中,请为 PathName 变量插入有效的路径和文件名。

Sub Ch10_AttachingExternalReference()
    On Error GoTo ERRORHANDLER
    Dim InsertPoint(0 To 2) As Double
    Dim insertedBlock As AcadExternalReference
    Dim tempBlock As AcadBlock
    Dim msg As String, PathName As String
      
    ' 定义要插入的外部参照
    InsertPoint(0) = 1
    InsertPoint(1) = 1
    InsertPoint(2) = 0
    PathName = "C:/Program Files/AutoCAD 2008/sample/3D House.dwg"
      
    ' 显示此图形当前的 Block 信息
    GoSub ListBlocks
      
    ' 向图形添加外部参照
    Set insertedBlock = ThisDrawing.ModelSpace. _
            AttachExternalReference(PathName, "XREF_IMAGE", _
            InsertPoint, 1, 1, 1, 0, False)
    ZoomAll
      
    ' 显示此图形新的 Block 信息
    GoSub ListBlocks
    Exit Sub
ListBlocks:
    msg = vbCrLf ' 重置消息
    For Each tempBlock In ThisDrawing.Blocks
        msg = msg & tempBlock.Name & vbCrLf
    Next
    MsgBox "The current blocks in this drawing are: " & msg
    Return
      
ERRORHANDLER:
    MsgBox Err.Description
End Sub