Creación de matrices polares

AutoCAD ActiveX

 
Creación de matrices polares
 
 
 

Se pueden disponer en una matriz todos los objetos de dibujo. Para crear una matriz polar, utilice el método ArrayPolar del objeto. Este método requiere la entrada del número de objetos que se desean crear, los grados del ángulo y el punto central de la matriz. El número de objetos debe ser un entero positivo mayor que 1, y el ángulo a rellenar debe completarse en radianes. Un valor positivo precisa una rotación en sentido contrario a las agujas del reloj. Un valor negativo precisa una rotación en el sentido de las agujas del reloj. Un ángulo igual a 0 devuelve un error. El centro es una matriz de variantes que contiene tres dobles. Estos dobles representan las coordenadas 3D del SCU que indican el centro de la matriz polar

AutoCAD determina la distancia entre el centro de la matriz y un punto de referencia del objeto original. El punto de referencia utilizado depende del tipo de objeto. AutoCAD utiliza el centro de un círculo o arco, el punto de inserción de un bloque o forma, el punto inicial del texto y un punto final de una línea o trazo.

Este método no admite la opción Girar objetos a medida que se copian del comando MATRIZ de AutoCAD.

Creación de una matriz polar

Este ejemplo crea un círculo y después crea una matriz polar del círculo. De esta forma se crean cuatro círculos que rellenan 180 grados alrededor de un punto base de (4, 4, 0).

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