Creación de matrices rectangulares

AutoCAD ActiveX

 
Creación de matrices rectangulares
 
 
 

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