概要 - 外部参照をアタッチする(VBA/ActiveX)

外部参照をアタッチすると、1 つの図面(参照ファイルまたは外部参照)が現在の図面にリンクされます。

図面が外部参照を参照すると、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
 
 ' Define external reference to be inserted
 InsertPoint(0) = 1
 InsertPoint(1) = 1
 InsertPoint(2) = 0
 PathName = "C:/Program Files/Autodesk/AutoCAD release/sample/3D House.dwg"
 
 ' Display current Block information for this drawing
 GoSub ListBlocks
 
 ' Add the external reference to the drawing
 Set insertedBlock = ThisDrawing.ModelSpace. _
 AttachExternalReference(PathName, "XREF_IMAGE", _
 InsertPoint, 1, 1, 1, 0, False)
 ZoomAll
 
 ' Display new Block information for this drawing
 GoSub ListBlocks
 Exit Sub
ListBlocks:
 msg = vbCrLf    ' Reset message
 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