Téma:
Použití Webové služby API ve spojení s programy EXCEL a Python
Poznámky:
Tabulkové programy jako EXCEL jsou mezi inženýry velmi oblíbené, protože umožňují snadnou automatizaci výpočtů a rychlé získání výsledků. Propojení EXCELu jako grafického uživatelského rozhraní a Webové služby API je tak nasnadě. Pomocí volně dostupné knihovny xlwings pro Python můžete ovládat EXCEL, číst a zapisovat hodnoty. Tato funkce je proto níže vysvětlena na příkladu.
Popis:
Přípravy
Pro příklad a programování je potřeba:
- RFEM 6
- EXCEL
- Python
- Program Dlubal RFEM_Python_Client
- Knihovna xlwings v Pythonu
- Editor pro psaní programu
Za předpokladu, že již máme nainstalované programy RFEM 6, EXCEL a Python, je třeba nejprve nainstalovat knihovny RFEM_Python_Client. Nabízíme k tomu různá výuková videa a stránky nápovědy. Následující odkazy jsou pro instalaci zvláště důležité. Ukáže vám instalaci a první kroky při programová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
Ve videích se také mluví o editorech pro programování. Pro tento příklad není důležité, který editor se použije. Nakonec je třeba nainstalovat xlwings, informace k tomu najdete na webových stránkách knihovny:
Kompletní kód příkladu se nachází v RFEM_Python_Client na následující adrese:
- RFEM_Python_Client/tree/main/Examples/SteelDesign/
Soubor SteelDesignExcel.py je program (skript) v jazyce Python a soubor SteelDesignExcel.xlsm je příslušný soubor EXCEL.
Příklad programování
Knihovna xlwings nabízí několik možností, jak zkombinovat Python a EXCEL. Jednak je možné ovládat EXCEL z programu v Pythonu (známějšího jako Python skript) nebo lze také spustit Python skript z EXCELu. Při spouštění z EXCELu můžete buď použít vestavěný plugin, nebo vytvořit subroutinu, která pak spustí Python skript. Podrobnosti si můžete prohlédnout zde:
V příkladu je použita varianta, ve které se Python skript spouští pomocí vestavěného pluginu (viz obrázek). Pro toto použití jsou nutné dva předpoklady. Skript v Pythonu se musí jmenovat stejně jako soubor EXCEL a musí obsahovat funkci main, která se pak provádí prostřednictvím pluginu.
Zde je první část funkce main:
- code.de#
...
- Otevřete tabulku aplikace Excel
wb = xw.Book.caller()
- Načíst vstupy
inputSheet = wb.sheets('Inputs')
frame_number = 6
width = 10
frame_length = 4
console_height = 3
column_height = 4
gable_height = 2
- Geometrické vstupy
číslo_rámce = int (vstupní hodnota na listu ["G6"]) #počet rámců
width = inputSheet["G7"].value # Width of Frame
frame_length = inputSheet["G8"].value # Frame Length
console_height = inputSheet ["G9"]. hodnota # Výška konzoly
column_height = inputSheet["G10"].value # Height of Column
gable_height = inputSheet["G11"].value # Height of Gable
...
- /#
Pokud použijete xlwings přímo z Python skriptu (nikoli přes EXCEL), je třeba nejprve otevřít soubor:
- code.de#
wb = xw.Book('userSheet.xlsm')
- /#
Pokud se používá spuštění z EXCELu, naváže se pomocí následujícího příkazu:
- code.de#
wb = xw.Book.caller()
- /#
Proměnná wb obsahuje kompletní sešit (Workbook), ze kterého lze metodou sheets() extrahovat jednotlivé listy. V našem příkladu se otevře list "Inputs" a jednotlivé buňky jsou přístupné pomocí hranatých závorek. Hodnotu buňky lze načíst nebo upravit pomocí vlastnosti value. Tuto implementaci najdete na konci příkladu:
- code.de#
...
- Writing Výsledky do výstupních listů
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
...
- /#
V tomto konkrétním případě se načte kombinace zatížení 7. Na obrázku 2 jsou znázorněny deformace prutů v programu EXCEL a na obrázku 3 pro srovnání výsledky z programu RFEM 6.
Shrnutí
V příkladu...