Salida de la otra aplicación

AutoCAD ActiveX

 
Salida de la otra aplicación
 
 
 

Cuando se inicia una aplicación mediante programación, se utiliza memoria del ordenador. Salga de la aplicación en cuanto termine de utilizarla para que queden libres los recursos del sistema.

Aunque cada Modelo de objetos es distinto, casi todos tienen un método Quit para el objeto Application, que se puede utilizar para cerrar la aplicación correctamente. Por ejemplo, si se utilizan las declaraciones de variable de la sección anterior, la siguiente línea de código ejecuta la salida de Excel:

ExcelAppObj.Application.Quit
NotaNi destruir ni superar el alcance de la variable del objeto originan obligatoriamente el fin de la aplicación. La total limpieza de la memoria sólo se asegura utilizando el método apropiado para salir de la aplicación.

Enumeración de atributos de AutoCAD en una hoja de cálculo de Excel

Esta subrutina localiza todas las referencias de bloque del dibujo actual. A continuación, encuentra los atributos enlazados a dichas referencias de bloque y los presenta en una hoja de cálculo de Excel. Para ejecutar este ejemplo, siga estos pasos:

  1. Abra un dibujo que contenga referencias a bloque con atributos (el dibujo de ejemplo sample/activeX/attrib.dwg contiene referencias a bloque de este tipo).
  2. Abra el IDE de VBA utilizando el comando VBAIDE de AutoCAD.
  3. En el IDE de VBA, elija Herramientas Referencias y seleccione Microsoft Excel 8.0 Object Model.
  4. Copie esta subrutina en una ventana de código de VBA y ejecútela.
Sub Ch12_Extract()
    Dim Excel As Excel.Application
    Dim ExcelSheet As Object
    Dim ExcelWorkbook As Object
      
    Dim RowNum As Integer
    Dim Header As Boolean
    Dim elem As AcadEntity
    Dim Array1 As Variant
    Dim Count As Integer
      
    ' Launch Excel.
    Set Excel = New Excel.Application
      
    ' Create a new workbook and find the active sheet.
    Set ExcelWorkbook = Excel.Workbooks.Add
    Set ExcelSheet = Excel.ActiveSheet
    ExcelWorkbook.SaveAs "Attribute.xls"
      
    RowNum = 1
    Header = False
    ' Iterate through model space finding
    ' all block references.
    For Each elem In ThisDrawing.ModelSpace
        With elem
            ' When a block reference has been found,
            ' check it for attributes
            If StrComp(.EntityName, "AcDbBlockReference", 1) _
                = 0 Then
                If .HasAttributes Then
                    ' Get the attributes
                    Array1 = .GetAttributes
                    ' Copy the Tagstrings for the
                    ' Attributes into Excel
                    For Count = LBound(Array1) To UBound(Array1)
                        If Header = False Then
                            If StrComp(Array1(Count).EntityName, _
                                  "AcDbAttribute", 1) = 0 Then
                                ExcelSheet.Cells(RowNum, _
                                    Count + 1).value = _
                                    Array1(Count).TagString
                            End If
                        End If
                    Next Count
                    RowNum = RowNum + 1
                    For Count = LBound(Array1) To UBound(Array1)
                        ExcelSheet.Cells(RowNum, Count + 1).value _
                                    = Array1(Count).textString
                    Next Count
                    Header = True
                End If
            End If
        End With
    Next elem
    Excel.Application.Quit
End Sub