概要 - 外部参照をバインドする(VBA/ActiveX)

Bind メソッドを使用して外部参照を図面にバインドすると、外部参照は図面の永久的な部分となり、外部参照ファイルではなくなります。

外部参照情報はブロックになります。外部参照図面が更新されても、バインドした外部参照は更新されません。この処理により、従属する全シンボルを含む図面のデータベース全体がバインドされます。

従属するシンボルとは、ブロック、寸法スタイル、画層、線種、および文字スタイルなどの、名前の付いたオブジェクトです。外部参照をバインドすると、外部参照からの名前の付いたオブジェクトが現在の図面で使用できるようになります。

Bind メソッドには、bPrefixName という 1 つのパラメータのみが必要です。bPrefixName パラメータを TRUE に設定した場合は、外部参照図面のシンボル名は、現在の図面内で接頭語 <blockname>$x$ が付きます。ここで x は、既存のブロック定義の変更を避けるために自動的にインクリメントされる整数です。bPrefixName パラメータを FALSE に設定した場合は、外部参照図面のシンボル名は、接頭語なしで現在の図面に結合されます。重複する名前が存在する場合は、AutoCAD ではローカル図面内で既に定義されているシンボルが使用されます。図面に重複するシンボル名が存在するかどうか不明な場合は、bPrefixName を TRUE に設定することをお勧めします。

外部参照定義をバインドする

次の例では、外部参照をアタッチしてから図面にバインドします。この例では、Sample フォルダにある 3D House.dwg ファイルを使用します。このイメージが存在しない場合や、別のフォルダにある場合は、変数 PathName に有効なパスおよびファイル名を指定してください。

Sub Ch10_BindingExternalReference()
 On Error GoTo ERRORHANDLER

 ' Define external reference to be inserted
 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:/Program Files/Autodesk/AutoCAD release/3D House.dwg"
 
 ' Add the external reference
 Set xrefInserted = ThisDrawing.ModelSpace. _
 AttachExternalReference(PathName, "XREF_IMAGE", _
 insertionPnt, 1, 1, 1, 0, False)
 ZoomAll
 MsgBox "The external reference is attached."
 
 ' Bind the external reference definition
 ThisDrawing.Blocks.Item(xrefInserted.name).Bind False
 MsgBox "The external reference is bound."
 Exit Sub
ERRORHANDLER:
 MsgBox Err.Description
End Sub