使用 Bind 方法将外部参照绑定到图形,可以使外部参照成为图形的永久部分,而不再是外部参照文件。外部参照信息将成为块。更新外部参照图形时,不会更新绑定的外部参照。此过程将绑定整个图形的数据库,包括所有依赖符号。
依赖符号指命名的对象,例如块、标注样式、图层、线型和文字样式。通过绑定外部参照,可以在当前图形中使用外部参照中的命名对象。
Bind 方法只需要一个参数: bPrefixName。如果将 bPrefixName 设置为 TRUE,当前图形中外部参照图形的符号名将以 <blockname>$x$ 作为前缀,其中 x 是自动递增的整数,用于避免替代现有的块定义。如果将 bPrefixName 参数设置为 FALSE,外部参照图形的符号名会合并到当前图形中,且不包含前缀。如果存在重复的名称,AutoCAD 会使用已在本地图形中定义的符号。如果不确定图形中是否包含重复的符号名,建议将 bPrefixName 设置为 TRUE。
有关绑定外部参照的详细信息,请参见《用户手册》中的“归档包含外部参照的图形(绑定)”。
本例附着外部参照,然后将外部参照绑定到图形。本例使用位于“Sample”目录中的“3D House.dwg”文件。如果没有此图像,或者此图像位于其他目录中,请为 PathName 变量插入有效的路径和文件名。
Sub Ch10_BindingExternalReference()
On Error GoTo ERRORHANDLER
' 定义要插入的外部参照
Dim xrefHome As AcadBlock
Dim xrefInserted As AcadExternalReference
Dim insertionPnt(0 To 2) As Double
Dim PathName As String
insertionPnt(0) = 1
insertionPnt(1) = 1
insertionPnt(2) = 0
PathName = "c:/AutoCAD 2008/sample/3D House.dwg"
' 添加外部参照
Set xrefInserted = ThisDrawing.ModelSpace. _
AttachExternalReference(PathName, "XREF_IMAGE", _
insertionPnt, 1, 1, 1, 0, False)
ZoomAll
MsgBox "The external reference is attached."
' 绑定外部参照定义
ThisDrawing.Blocks.Item(xrefInserted.name).Bind False
MsgBox "The external reference is bound."
Exit Sub
ERRORHANDLER:
MsgBox Err.Description
End Sub