概要 - 円形状配列複写を作成する(VBA/ActiveX)

どの図形オブジェクトも、円形状パターンに配列複写することができます。

円形状に配列複写するには、そのオブジェクトの ArrayPolar メソッドを使用します。このメソッドでは、作成するオブジェクトの数、配列する角度、配列の中心点を指定する必要があります。オブジェクト数は、1 より大きな正の整数となります。配列する角度は、ラジアン単位でなければなりません。正の値は反時計回りの回転を意味します。負の値は時計回りの回転を意味します。角度を 0 とするとエラーが返されます。中心点は、3 対の座標値を含むバリアント型配列です。これらの座標値が、円形状配列の中心点を指定する 3D WCS 座標を示します。



AutoCAD は、配列の中心点から元のオブジェクト上の参照点までの距離を判断します。使用する参照点は、オブジェクトのタイプに依存します。円または円弧の場合は中心点、ブロックまたはシェイプの場合は挿入点、文字の場合は開始位置、線分または太線の場合は端点の 1 つが使用されます。

このメソッドは AutoCAD の ARRAY[配列複写]コマンドの[回転させながら複写]オプションをサポートしません。

作成, 円形状配列複写<so>さくせい, えんけいじょうはいれつふくしゃ

次の例は、円を作成し、その円を円形状に配列複写します。基点(4, 4, 0)を中心に 180 度の間に 4 つの円を作成します。

Sub Ch4_ArrayingACircle()
  ' Create the circle
  Dim circleObj As AcadCircle
  Dim center(0 To 2) As Double
  Dim radius As Double
  center(0) = 2#: center(1) = 2#: center(2) = 0#
  radius = 1
  Set circleObj = ThisDrawing.ModelSpace.AddCircle(center, radius)
  ZoomAll

  ' Define the polar array
  Dim noOfObjects As Integer
  Dim angleToFill As Double
  Dim basePnt(0 To 2) As Double
  noOfObjects = 4
  angleToFill = 3.14          ' 180 degrees
  basePnt(0) = 4#: basePnt(1) = 4#: basePnt(2) = 0#

  ' The following example will create 4 copies
  ' of an object by rotating and copying it about
  ' the point (3,3,0).
  Dim retObj As Variant
  retObj = circleObj.ArrayPolar(noOfObjects, angleToFill, basePnt)

  ZoomAll
End Sub