Trabajar con AutoCAD en Excel y Python

En este artículo, demostraré cómo se pueden usar los datos de las hojas de Excel para dibujar objetos en AutoCAD usando Python.

Bibliotecas para trabajar con Excel y AutoCAD en Python

Para esta demostración en particular, estoy usando pyautocad y las bibliotecas de Python openpyxl. El módulo openpyxl de Python me ayuda a obtener datos de archivos de Excel existentes.

from pyautocad import Autocad, APoint, aDouble
import openpyxl as oex

Obtener datos de archivos de Excel para AutoCAD en Python

Para obtener datos de archivos de Excel, necesito dos variables. El primero se utiliza para almacenar el libro de trabajo. La segunda variable se utiliza para almacenar la hoja de trabajo actualmente activa. Consulte el código a continuación para obtener una aclaración.

wbook = oex.load_workbook("Test.xlsx")
sh = wbook.active

En este ejemplo básico, solo conectaré algunos puntos aleatorios usando el método AddPolyline de pyautocad. Los puntos se especifican en mi archivo de Excel. El archivo de Excel toma la forma de una tabla. Lo muestro en la captura de pantalla que se muestra a continuación.

Hoja de Excel para polilínea de AutoCAD con pyautocad en Python

Por los artículos que publiqué anteriormente, sé que para crear una polilínea de AutoCAD necesito una matriz de 3 elementos de tipo de datos double. Es por eso que necesito iterar sobre cada fila en mi tabla mientras la agrego a una lista. Aclaro esto en el siguiente código.

l1 = []
for i in range(2, sh.max_row+1):
    for j in range(2, sh.max_column+1):
        cell = sh.cell(row=i, column=j)
        l1.append(cell.value)
print(l1)

O/p:
[125, 235, 0, 670, 217, 0, 105, 756, 0, 654, 789, 0, 125, 235, 0]

Ahora que he creado la lista, puedo usarla para crear una polilínea de AutoCAD personalizada .

Crear polilínea de AutoCAD con pyautocad

Finalmente, necesito convertir la lista en un objeto aDouble (Array of doubles). Esto me permite usarlo como parámetro de entrada al llamar al método pyautocad AddPolyline. Este es el método que realmente dibujará la polilínea de AutoCAD . El código se muestra a continuación.

polygon = aDouble(l1)
acad.model.AddPolyline(polygon)

Y esto es lo que se dibujó en AutoCAD después de ejecutar el código Python anterior.

Línea poligonal de AutoCAD dibujada con datos de Excel en Python

Como se puede ver en la imagen de arriba, se creó una polilínea, de acuerdo con los datos especificados en mi archivo de Excel.

Observaciones finales

Llegando al final, puedo decir que al usar el concepto que describí en este artículo, los usuarios de AutoCAD pueden usar datos de Excel para la creación de objetos de AutoCAD en Python. Además de openpyxl, los desarrolladores de Python también pueden considerar usar pandas . pandas es una de las bibliotecas de Python de tendencia para manejar archivos de Excel. También admite análisis.

En una de mis futuras publicaciones de blog de AutoCAD, hablaré sobre cómo trabajar con el objeto Tabla de AutoCAD usando Python. Para obtener más información sobre estas técnicas de automatización de AutoCAD, le recomiendo que consulte mis artículos anteriores. Además, estamos abiertos a consultas técnicas si se contacta a través de nuestro formulario de contacto . En caso de cualquier pregunta, no dude en utilizar nuestro cuadro de comentarios.

Leave a Reply

Deja una respuesta

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.

Close

Meta