Actualización del código existente

AutoCAD ActiveX

 
Actualización del código existente
 
 
 

Ahora que ha creado un cuadro de diálogo, puede añadir o modificar código.

Para modificar el código existente

  1. Abra el código correspondiente a ThisDrawing, si todavía no está abierto.
  2. Actualice las siguientes líneas de la sección Declaraciones:
    Public trad As Double ' Actualizado
    Public tspac As Double ' Actualizado
    Public tsides As Integer ' Adición
    Public tshape As String ' Adición

    Puesto que el código del formulario accede a trad y tspac, ha actualizado sus definiciones para hacerlas públicas. Las variables privadas sólo están disponibles en el módulo en el que se han definido, por lo que las variables deben convertirse en públicas. Además, ha añadido tsides para el número de lados de las losetas poligonales y tshape para que el usuario seleccione la forma de las losetas, que puede ser un círculo o un polígono.

  3. Vaya a la subrutina gpuser. Elimine las dos líneas que obtienen el radio de las losetas y el espacio entre ellas, puesto que esta información se obtiene ahora a través del formulario. En concreto, elimine lo siguiente:
    trad = ThisDrawing.Utility. _
         GetDistance(sp, "Radio de las losetas: ")
    tspac = ThisDrawing.Utility. _
         GetDistance(sp, "Espacio entre losetas: ")
  4. Añada las líneas que cargan y muestran el formulario. Añada las siguientes líneas en el lugar de las líneas eliminadas en el paso 3:
    Load gpDialog 
    gpDialog.Show 
  5. Añada una subrutina al final del archivo de código que dibuja tanto las losetas circulares como las losetas poligonales:
    'Dibuja la loseta con la forma seleccionada
    Sub DrawShape(pltile)
        Dim angleSegment As Double
        Dim currentAngle As Double
        Dim angleInRadians As Double
        Dim currentSide As Integer
        Dim varRet As Variant
        Dim aCircle As AcadCircle
        Dim aPolygon As AcadLWPolyline
        ReDim points(1 To tsides * 2) As Double
        'Rama basada en el tipo de forma a dibujar
        Select Case tshape
        Case "Círculo"
            Set aCircle = ThisDrawing.ModelSpace. _
                          AddCircle(pltile, trad)
        Case "Polígono"
            angleSegment = 360 / tsides
            currentAngle = 0
            For currentSide = 0 To (tsides - 1)
                angleInRadians = dtr(currentAngle)
                varRet = ThisDrawing.Utility.PolarPoint(pltile, _
                         angleInRadians, trad)
                points((currentSide * 2) + 1) = varRet(0)
                points((currentSide * 2) + 2) = varRet(1)
                currentAngle = currentAngle + angleSegment
            Next currentSide
            Set aPolygon = ThisDrawing.ModelSpace. _
                            AddLightWeightPolyline(points)
            aPolygon.Closed = True
        End Select
    End Sub

    Esta subrutina utiliza la instrucción Select Case para ramificar el control del programa según el tipo de forma que se deba dibujar. La variable tshape se utiliza para determinar el tipo de forma.

  6. A continuación, vaya a la subrutina drow. Encuentre los dos casos en los que aparece la siguiente línea:
    Set cir = ThisDrawing.ModelSpace.AddCircle(pltile, trad)

    Cambie estas líneas para que dibujen la forma correspondiente de losetas, como se muestra a continuación:

    DrawShape (pltile) ' Actualizado