Tema:
Uso del Servicio web y API junto con Excel y Python
Por favor, tenga en cuenta:
Los programas de hojas de cálculo como Excel son populares entre los ingenieros y calculistas porque pueden automatizar fácilmente los cálculos y obtener resultados rápidamente. Por lo tanto, combinando MS Excel usado como interfaz gráfica de usuario con Servicio web, la API de Dlubal, es una opción obvia. Al usar la biblioteca gratuita xlwings para Python, puede controlar Excel y leer y escribir valores. La funcionalidad se describe a continuación, utilizando un ejemplo.
Descripción:
Preparativos
Para el ejemplo y para la programación se requiere lo siguiente:
- RFEM 6
- EXCEL
- Python
- Dlubal RFEM_Python_Client
- Biblioteca de Python xlwings
- Un editor para escribir el programa
Suponiendo que RFEM 6, EXCEL y Python ya están instalados, primero debe instalar las bibliotecas RFEM_Python_Client. Ofrecemos varios vídeos de aprendizaje y páginas de ayuda que describen la instalación. Los siguientes enlaces son especialmente importantes para la instalación. Te muestran la instalación y los primeros pasos en la programación:
- https://dlubal-software.github.io/.github/guide/
- https://www.dlubal.com/de/support-und-schulungen/schulungen/videos/003477
- https://www.dlubal.com/de/support-und-schulungen/schulungen/videos/003478
- https://www.dlubal.com/de/support-und-schulungen/schulungen/videos/003479
Los editores de programas también se analizan en estos vídeos. Para el presente ejemplo, el editor utilizado es irrelevante. Luego se debe instalar xlwings. Puede encontrar la información correspondiente en el sitio web de la biblioteca:
El código completo, por ejemplo, se encuentra en RFEM_Python_Client en la siguiente ruta:
- RFEM_Python_Client/tree/main/Examples/SteelDesign/
El archivo SteelDesignExcel.py es el programa Python (secuencia de comandos) y el archivo SteelDesignExcel.xlsm es el archivo EXCEL asociado.
Ejemplo de programación
La biblioteca xlwings ofrece varias opciones para combinar Python y EXCEL. Por un lado, es posible controlar Excel desde un programa de Python (más conocido como una secuencia de comandos (script) de Python) y también iniciar un script de Python desde Excel. Al comenzar con Excel, puede usar el complemento incorporado o crear una subrutina que luego inicie el script de Python. Los detalles se muestran aquí:
En nuestro ejemplo, el script de Python se inicia a través del complemento incorporado (ver imagen). Hay dos requisitos. El script de Python debe tener el mismo nombre que el archivo Excel y debe incluir una función principal porque esta función se ejecuta a través del complemento.
Aquí está la primera parte de la función principal:
- code.de#
...
- Abrir la hoja de Excel
wb = xw.Book.caller()
- Leer entradas
inputSheet = wb.sheets('Inputs')
frame_number = 6
width = 10
frame_length = 4
console_height = 3
column_height = 4
gable_height = 2
- Entradas geométricas
frame_number = int (inputSheet ["G6"]. value) #number of frames
width = inputSheet["G7"].value # Width of Frame
frame_length = inputSheet["G8"].value # Frame Length
console_height = inputSheet["G9"].value # Height of Console
column_height = inputSheet["G10"].value # Height of Column
gable_height = inputSheet["G11"].value # Height of Gable
...
- /#
Si xlwings se usa directamente desde un script de Python (no a través de Excel), primero se debe abrir un archivo:
- code.de#
wb = xw.Book('userSheet.xlsm')
- /#
Si se usa xlwings fuera de Excel, la conexión se establece usando el siguiente comando:
- code.de#
wb = xw.Book.caller()
- /#
La variable wb incluye el libro (workbook) completo, del cual se pueden extraer hojas de cálculo individuales utilizando el método sheet(). En el ejemplo, se abre la hoja de cálculo "Inputs" y se accede a las celdas individuales mediante corchetes. El valor de una celda se puede leer o modificar mediante la propiedad 'value'. Esta implementación se puede encontrar al final del ejemplo:
- code.de#
...
- Escritura de resultados en hojas de salida
nodaldeformation["A2"].value = node_number
nodaldeformation["B2"].value = nodeSupportType
nodaldeformation["C2"].value = nodeDisp_abs
nodaldeformation["D2"].value = nodeDisp_x
nodaldeformation["E2"].value = nodeDisp_y
nodaldeformation["F2"].value = nodeDisp_z
nodaldeformation["G2"].value = nodeRotation_x
nodaldeformation["H2"].value = nodeRotation_y
nodaldeformation["I2"].value = nodeRotation_z
...
- /#
En el caso presente, se lee la combinación de cargas 7. La imagen 2 muestra las deformaciones de las barras en Excel y, a modo de comparación, los resultados de RFEM 6 en la imagen 3.
Resumen
En el ejemplo ...