Interpretación de matrices de variantes

AutoCAD ActiveX

 
Interpretación de matrices de variantes
 
 
 

La información matricial se transfiere de vuelta desde ActiveX Automation de AutoCAD como variante. Si conoce el tipo de datos de la matriz, puede acceder a la variante como a una matriz. Si no conoce el tipo de datos que contiene la variante, utilice las funciones VarType o Typename de VBA. Estas funciones devuelven el tipo de datos del variante. Si necesita iterar en la matriz, puede utilizar la declaración de VBA For Each.

Cálculo de la distancia entre dos puntos

El código siguiente muestra el método de cálculo de la distancia entre dos puntos especificados por el usuario. En este ejemplo, el tipo de datos se conoce porque todas las coordenadas son dobles. Las coordenadas 3D consisten en una matriz de tres elementos de números dobles, y las coordenadas 2D en una matriz de dos elementos de números dobles.

Sub Ch2_CalculateDistance()
    Dim point1 As Variant
    Dim point2 As Variant
      
    ' Get the points from the user
    point1 = ThisDrawing.Utility.GetPoint _
                (, vbCrLf & "First point: ")
    point2 = ThisDrawing.Utility.GetPoint _
                (point1, vbCrLf & "Second point: ")
      
    ' Calculate the distance between point1 and point2
    Dim x As Double, y As Double, z As Double
    Dim dist As Double
    x = point1(0) - point2(0)
    y = point1(1) - point2(1)
    z = point1(2) - point2(2)
    dist = Sqr((Sqr((x ^ 2) + (y ^ 2)) ^ 2) + (z ^ 2))
      
    'Display the resulting distance
    MsgBox "The distance between the points is: " _
                  & dist, , "Calculate Distance"
End Sub