概要 - ラスター イメージをアタッチ、尺度変更する(VBA/ActiveX)

イメージは図面ファイルに配置することができますが、実際には図面ファイルの一部ではありません。イメージは、パス名またはデータ管理ドキュメント ID によって、図面ファイルにリンクされます。

リンクされたイメージのパスは、いつでも変更したり削除することができます。イメージをアタッチするには、AddRaster メソッドを使用して図面に Raster オブジェクトを作成します。このメソッドでは、アタッチするイメージファイルの名前、図面にイメージを挿入する位置、イメージの尺度係数、イメージの回転角度という 4 つの値を指定します。Raster オブジェクトは、イメージへの独立したリンクを表し、イメージそのものではないことに注意してください。

イメージをアタッチした後は、新しく Raster オブジェクトを作成することで、イメージを繰り返しアタッチすることができます。アタッチごとに、専用のクリップ境界、明るさ、コントラスト、フェード、透過性が設定されます。1 つのイメージを複数の部分に分割し、個別に図面に配置することができます。

Raster オブジェクトを作成する際に、イメージの形状の尺度が AutoCAD の図面で作成された形状の尺度と一致するようにラスター イメージの尺度係数を設定することができます。アタッチするイメージを選択するとき、イメージの単位=AutoCAD の単位という尺度係数でイメージが挿入されます。イメージの尺度係数を設定するには、イメージのジオメトリの尺度と、AutoCAD の 1 単位を定義するために使用する尺度単位(インチ、フィートなど)を確認する必要があります。イメージ ファイルには、DPI を定義する解像度およびイメージ内のピクセル数の情報が含まれている必要があります。

イメージに解像度情報が含まれている場合は、AutoCAD はその情報と、尺度係数、および図面でのイメージの尺度を定義する AutoCAD 単位を組み合わせます。たとえば、ラスター イメージが青写真をスキャンしたもので、その尺度が 1 インチ=50 フィート(1:600)であり、AutoCAD の図面では 1 単位が 1 インチであると仮定します。イメージの尺度係数を設定するには、AddRaster メソッドの ScaleFactor パラメータに 600 と入力します。AutoCAD は、イメージ内のジオメトリが図面内のベクトル ジオメトリに位置合わせされる尺度でイメージを挿入します。

注: 解像度情報がアタッチしたイメージ ファイルで定義されていない場合、AutoCAD はイメージの元の幅を 1 単位として計算します。挿入後は、AutoCAD 単位でのイメージの幅が尺度係数と等しくなります。

ラスター イメージをアタッチする

次の例では、ラスター イメージをモデル空間に追加します。この例では、watch.jpg という名前のファイルを使用します。コード内の imageName 変数に割り当てられているイメージの名前と場所は、お使いのワークステーションで使用可能なイメージの名前と場所に置き換えてください。

Sub Ch10_AttachingARaster()
  Dim insertionPoint(0 To 2) As Double
  Dim scalefactor As Double
  Dim rotationAngle As Double
  Dim imageName As String
  Dim rasterObj As AcadRasterImage
  imageName = "C:/Program Files/AutoCAD Directory/sample/watch.jpg'
  insertionPoint(0) = 5
  insertionPoint(1) = 5
  insertionPoint(2) = 0
  scalefactor = 2
  rotationAngle = 0

  On Error GoTo ERRORHANDLER
  ' Attach the raster image in model space
  Set rasterObj = ThisDrawing.ModelSpace.AddRaster(imageName, insertionPoint, scalefactor, rotationAngle)
  ZoomAll
  Exit Sub

ERRORHANDLER:
  MsgBox Err.Description
End Sub