Para crear una matriz rectangular 2D o 3D, utilice el método ArrayRectangular del objeto. Este método requiere que se especifique el número de filas y columnas, la distancia entre filas y la distancia entre columnas. Al crear una matriz 3D también hay que precisar el número de niveles y la distancia entre ellos.
Las matrices rectangulares se construyen reproduciendo el objeto del conjunto de selección el número de veces necesario. La definición de una fila implica la especificación de más de una columna, y viceversa.
Se supone que el objeto original se encuentra en la esquina inferior izquierda, por lo que la matriz se genera arriba y a la derecha. Cuando la distancia entre filas es un número negativo, las filas se añaden hacia abajo. Si la distancia entre columnas es un número negativo, las columnas se añaden hacia la izquierda.
AutoCAD construye la matriz rectangular a lo largo de la línea base definida por el ángulo de rotación de resolución actual. Por defecto, dicho ángulo viene definido con el valor 0, lo que supone que las filas y columnas de una matriz rectangular sean ortogonales con respecto a los ejes X e Y del dibujo. Puede cambiar este ángulo y crear una matriz rotada si define el ángulo de rotación de Forzcursor con un valor distinto de cero. Para ello, utilice la propiedad SnapRotationAngle.
Creación de una matriz rectangular
En este ejemplo se crea un círculo y, a continuación, una matriz rectangular del círculo con cinco filas y cinco columnas de círculos.
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