概要 - オブジェクトをオフセットする(VBA/ActiveX)

オブジェクトをオフセット処理すると、新規オブジェクトは元のオブジェクトから指定されたオフセット距離に作成されます。

円弧、円、楕円、線分、最適化ポリライン、ポリライン、スプライン、構築線をオフセットできます。

オブジェクトをオフセットするには、そのオブジェクトの Offset メソッドを使用します。このメソッドへの入力は、オブジェクトをオフセットする距離のみです。この距離を負にすると、AutoCAD はこれを「小さな」カーブを作成する(つまり円弧の場合は、初期のカーブ半径よりも短い半径が指定された)と解釈します。もし「小さな」ということが当てはまらない場合は、AutoCAD はより小さな XYZ WCS 座標の方向にオフセットします。このオフセット距離が有効でない場合は、エラーが返されます。



この処理の結果、ほとんどのオブジェクト対して、新しい曲線が作成されます(元の曲線と必ずしも同タイプとは限りません)。たとえば楕円をオフセットすると、スプラインになります。 結果は楕円近似に一致するからです。オフセットの結果が、いくつかの曲線となる場合があります。そのために、このメソッドはバリアントとして新規オブジェクト、またはオブジェクトの配列を戻します。

ポリラインをオフセットする

次の例は、最適化ポリラインを作成し、ポリラインをオフセットします。

Sub Ch4_OffsetPolyline()
  ' Create the polyline
  Dim plineObj As AcadLWPolyline
  Dim points(0 To 11) As Double
  points(0) = 1: points(1) = 1
  points(2) = 1: points(3) = 2
  points(4) = 2: points(5) = 2
  points(6) = 3: points(7) = 2
  points(8) = 4: points(9) = 4
  points(10) = 4: points(11) = 1
  Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
  plineObj.Closed = True
  ZoomAll

  ' Offset the polyline
  Dim offsetObj As Variant
  offsetObj = plineObj.Offset(0.25)

  ZoomAll
End Sub