Objeto de aplicación de AutoCAD en Python

En esta publicación de blog , analizaré el objeto de la aplicación de AutoCAD y algunos de sus métodos y propiedades importantes. Mostraré cómo implementar el objeto de la aplicación de AutoCAD en pyautocad.

A partir de este ejemplo de codificación, importo clases y métodos relevantes de pyautocad. Creo un nuevo modelo en el siguiente código.

from pyautocad import Autocad, APoint, aDouble
acad = Autocad(create_if_not_exists=True)

Obtener el objeto de la aplicación de AutoCAD en Python

Para poder realizar cualquier acción en el objeto de la aplicación de AutoCAD, necesito buscar ese objeto. En pyautocad uso «acad.app» para esto.

Si quiero usar módulos de comunicación en lugar de pyautocad, puedo proceder como se indica a continuación. En ese caso, uso los módulos Python win32com y pythoncom.

from win32com.client import *
import pythoncom

acad1 = win32com.client.Dispatch("AutoCAD.Application")

En este caso, acad1 representa el objeto Aplicación.

Propiedades del objeto Aplicación de AutoCAD

Muchas propiedades de objetos de aplicaciones mejoran la automatización de los dibujos de AutoCAD. Discutiré algunas de las propiedades importantes, repasándolas una por una.

Para obtener diferentes tipos de información relacionada con el objeto de la aplicación de AutoCAD, como, por ejemplo, el nombre de la aplicación, el nombre completo de la aplicación o, por ejemplo, el nombre del documento, puedo usar el código.

print(acad.app.Application.Name)
print(acad.app.Caption)
print(acad.app.ActiveDocument.Name)

print(acad.app.Path)
print(acad.app.FullName)

O/p:
AutoCAD
Autodesk AutoCAD 2018 - [Drawing2.dwg]
Drawing2.dwg
C:\Program Files\Autodesk\AutoCAD 2018
C:\Program Files\Autodesk\AutoCAD 2018\acad.exe

Digamos que quiero verificar todos los documentos abiertos actualmente en la aplicación AutoCAD. Para esto, puedo, por ejemplo, usar la propiedad Documentos e iterar sobre esa propiedad.

Demostraré esto con un ejemplo simple en AutoCAD. En su ejemplo, tengo dos dibujos abiertos, Drawing1 y Drawing2. La siguiente captura de pantalla muestra esto.

Tutorial de objeto de aplicación de AutoCAD

El dibujo “Drawing2.dwg” está actualmente seleccionado. De mi salida anterior y la imagen de arriba, está claro que este dibujo se obtiene como ActiveDocuments. Pero déjame comprobar si también devuelve Drawing1.dwg. Este debería ser el caso, ya que ese archivo también está abierto.

print(acad.app.Documents)
for i in acad.app.Documents:
    print(i.Name)

O/p:
Drawing1.dwg
Drawing2.dwg

Atributos de MenuGroups y MenuBar

Ahora obtengo la barra de menús y los objetos del grupo de menús actualmente en uso. Lo hago en el siguiente código:

print(acad.app.MenuBar)

print(acad.app.MenuGroups)
for i in acad.app.MenuGroups:
    print(i.Name)

O/p:
<comtypes.client.lazybind.Dispatch object at 0x0000021BBCA23EB0>
ACAD
CUSTOM
MODELDOC
EXPRESS
AUTODESKSEEK

Aquí, puedo ver que el primer código de MenuBar devolvió un objeto de envío que es una barra de menú activa del dibujo de AutoCAD. Discutiré el objeto MenuBar en otro artículo.

Objeto de aplicación de AutoCAD Propiedad WindowState

Para ajustar o ver el estado de la aplicación de AutoCAD o la ventana del documento de AutoCAD, puedo usar el atributo WindowState. WindowState está codificado con valores enteros. En resumen, los números enteros representan estados de ventana, por ejemplo, de la siguiente manera:

  • acMín(1): La ventana se minimiza.
  • acmáx(2): La ventana está maximizada.
  • acnorm(3): La ventana es normal (no minimizada ni maximizada).
print(acad.app.WindowState)

O/p:
1

Métodos de objeto de la aplicación de AutoCAD

Ahora, discutiré algunos métodos importantes de pyautocad para manejar aplicaciones de AutoCAD. En realidad, todos deberían saberlo mientras realizan operaciones con el objeto de la aplicación AutoCAD.

Cada vez que escribo un código, debo verificar si la aplicación está en estado inactivo (inactivo) o no. Para comprobar que utilizo el método IsQuiescent. Aquí hay un ejemplo:

print(acad.app.GetAcadState().IsQuiescent)

O/p:
False

Como estaba usando la aplicación después de ejecutar este código, muestra la aplicación como activa (es decir, falsa).

Además, si quiero cerrar el documento actual, puedo usar el método Salir. Por supuesto, esto solo cierra el documento actualmente activo y no toda la aplicación que devuelve un valor nulo.

acad.app.Quit()

Finalmente, para actualizar la aplicación después de aplicar el código, puedo usar el método Actualizar que también devuelve nulo.

acad.app.Update()

Observaciones finales y contenido relacionado

Para otros artículos informativos que cubren  la automatización de AutoCAD , consulte mis otros artículos relacionados con pyautocad y pywin32. Por favor comente las preguntas que tenga en la sección de comentarios. No dude en ponerse en contacto conmigo para cualquier consulta técnica. Puede utilizar el formulario de contacto para el mismo.

Aquí hay algunos artículos relacionados que cubren la automatización de AutoCAD y las secuencias de comandos de AutoCAD en Python:

You May Also Like

Leave a Reply

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.