绑定外部参照
From AutoCAD ActiveX/VBA
使用 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 AcadBlockDim xrefInserted As AcadExternalReferenceDim insertionPnt(0 To 2) As DoubleDim PathName As StringinsertionPnt(0) = 1insertionPnt(1) = 1insertionPnt(2) = 0PathName = "c:/AutoCAD 2008/sample/3D House.dwg"' 添加外部参照Set xrefInserted = ThisDrawing.ModelSpace. _AttachExternalReference(PathName, "XREF_IMAGE", _insertionPnt, 1, 1, 1, 0, False)ZoomAllMsgBox "The external reference is attached."' 绑定外部参照定义ThisDrawing.Blocks.Item(xrefInserted.name).Bind FalseMsgBox "The external reference is bound."Exit SubERRORHANDLER:MsgBox Err.DescriptionEnd Sub