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

2D または 3D の矩形状配列複写を作成するには、そのオブジェクトの ArrayRectangular メソッドを使用します。

このメソッドには、行数、列数、行間、列間を指定します。3D 配列複写を作成するときは、段数と段間の距離も指定します。

矩形状配列複写は、選択セット内のオブジェクトを何回か反復して複写することにより構築されます。つまり行を 1 つ定義したら、複数の列を指定するといった具合です。

元のオブジェクトは左下コーナーにあり、配列複写は右上方向に作られていきます。行間が負の値の場合、行は下方に追加されます。列の間隔が負数の場合、列は左向きに追加されます。



AutoCAD では、現在のスナップ回転角度によって定義されたベースラインに沿って、矩形状配列複写が作成されます。既定では、この角度は 0 です。 矩形状配列複写の行と列は、図面の X および Y 軸に従って、直角になります。この角度を変更してスナップ回転角度を 0 以外の値に設定すれば、回転した配列を作成できます。それには、SnapRotationAngle プロパティを使用します。

矩形状配列複写を作成する

次の例は、円を作成し、その円の矩形状に配列複写して 5 行と 5 列の円を作成します。

Sub Ch4_ArrayRectangularExample()
  ' 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 = 0.5
  Set circleObj = ThisDrawing.ModelSpace.AddCircle(center, radius)
  ZoomAll

  ' Define the rectangular array
  Dim numberOfRows As Long
  Dim numberOfColumns As Long
  Dim numberOfLevels As Long
  Dim distanceBwtnRows As Double
  Dim distanceBwtnColumns As Double
  Dim distanceBwtnLevels As Double
  numberOfRows = 5
  numberOfColumns = 5
  numberOfLevels = 2
  distanceBwtnRows = 1
  distanceBwtnColumns = 1
  distanceBwtnLevels = 1

  ' Create the array of objects
  Dim retObj As Variant
  retObj = circleObj.ArrayRectangular _
      (numberOfRows, numberOfColumns, numberOfLevels, _
      distanceBwtnRows, distanceBwtnColumns, distanceBwtnLevels)

  ZoomAll
End Sub