要创建二维或三维矩形阵列,请使用该对象的 ArrayRectangular 方法。这个方法需要输入四个值:行数、列数、行间距和列间距。在创建三维数组时,还需要指定层数以及层间距。
矩形阵列是通过将选择集中的对象复制适当的次数来构造的。如果行数为 1,则列数必须大于 1,反之亦然。
假设原始对象位于左下角,向右上生成阵列。如果行间距是负数,则会向下添加行。如果列间距是负数,则会向左添加列。
AutoCAD 沿当前捕捉旋转角度定义的基线生成矩形阵列。当前捕捉旋转角的默认值是 0,所以矩形阵列的行和列分别与 X 和 Y 图形轴正交。通过将捕捉旋转角设置为非零值,用户可以更改该角度并创建旋转的阵列。要完成此任务,请使用 SnapRotationAngle 特性。
本例创建一个圆,然后对该圆执行矩形阵列操作,创建 5 行 5 列的圆。
Sub Ch4_ArrayRectangularExample()
' 创建圆
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
' 定义矩形阵列
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
' 创建对象的阵列
Dim retObj As Variant
retObj = circleObj.ArrayRectangular _
(numberOfRows, numberOfColumns, numberOfLevels, _
distanceBwtnRows, distanceBwtnColumns, distanceBwtnLevels)
ZoomAll
End Sub