Praktické aplikace s využitím programů Python a RFEM 6 | Generátor 2D příhradových nosníků
Odborný článek
Webové služby, které jsme nedávno představili, umožňují uživatelům komunikovat s programem RFEM 6 pomocí zvoleného programovacího jazyka. Tyto služby jsou ještě rozšířeny o naši knihovnu vysokoúrovňových funkcí (HLF). K dispozici jsou knihovny pro Python, JavaScript a C#. V našem příspěvku se podíváme na praktický příklad programování generátoru 2D příhradových nosníků v Pythonu. Jak se říká, nejlepší je „učit se praxí“.
Přehled
Využití programu RFEM 6 mimo grafické uživatelské rozhraní (GUI) a řízení/zautomatizování procesu modelování a navrhování představují velkou výhodu. Rozsah programování v programu RFEM 6 však přesahuje pouhé automatické ovládání. Uživatelé mohou kombinovat knihovnu HLF programu RFEM 6 s jinými oblíbenými knihovnami HLF a vyvíjet aplikace na míru.
V našem příspěvku představíme Generátor 2D příhradových konstrukcí. Generátor 2D příhradových konstrukcí byl naprogramován v Pythonu a využívá výkonné knihovny Pythonu, jako jsou PyQt a Numpy v kombinaci s HLF knihovnou programu RFEM. Konečným výsledkem je GUI, které umožňuje flexibilní generování příhradové konstrukce.
Základy
V tomto příspěvku vysvětlíme pouze části kódu, které jsou použité pro vývoj generátoru 2D příhradových nosníků. Základy programování v programech RFEM 6 a Python najdete v naší krátké 6dílné sérii videí pod následujícím odkazem:
Použijte
Kód pro tento příklad najdete ve výše zmíněné knihovně HLF (RFEM_Python_Client/Examples/TrussGenerator_2D). Tento kód je k dispozici jako open-source a doufejme, že uživatelům poskytne inspiraci pro jejich vlastní projekty. Detaily o práci s knihovnami HLF v RFEMu (např. klonování úložiště) jsou vysvětleny ve výše uvedených video-školeních.
Specifické části kódu
Try a Except
Jak jsme již zmínili, tento příklad používá mnoho různých knihoven dohromady s knihovou HLF RFEMu (např. Numpy a PyQt5). Pokud by uživatel neměl nainstalovanou danou knihovnu, vyvolal by příkaz "import" chybu. Abychom předešli tomuto potenciálnímu problému, jsou použity bloky try a except. "Import" spadá pod blok try, a pokud selže, kód přejde do bloku except, který uživatele vyzve k instalaci požadovaných knihoven pomocí pip.
Vytvoření GUI pomocí PyQt5
PyQt5 je knihovna zaměřená na vytváření GUI. Velkou část kódu tvoří definice a příkazy, které PyQt5 vyžaduje pro vytvoření grafického uživatelského rozhraní generátoru 2D příhradových nosníků.
Dokumentaci k použití PyQt5 najdete pod příslušným odkazem:
Na YouTube lze najít také celou řadu tutoriálů.
Zadání příhradového nosníku
Pomocí knihoven HLF RFEMu lze příhradový nosník rychle definovat. Pro pomoc při programování příhradového nosníku slouží šesté video z výše uvedené série videí.
Proměnné inicializované v definicích PyQt5 jsou zde také integrovány jako argumenty pro definice příhradového nosníku v RFEMu. Vzniká tak interoperabilita mezi oběma knihovnami.
Pro ověření informací z GUI se používají série příkazů try, except a if.
Závěrečné poznámky
Cílem našeho příspěvku je poskytnout stručný přehled o tom, jak bylo vytvořeno parametrické GUI generátoru 2D příhradových nosníků. Pokud budete potřebovat další informace, využijte prosím komentáře k tomuto článku a my vám rádi odpovíme.
Autor

Björn Steinhagen, B.Sc.
Vývoj produktů
Pan Steinhagen se zabývá vývojem a zajištěním kvality programů společnosti Dlubal Software.
Klíčová slova
Python Webová služba GUI Programování
Odkazy
- Manuál pro PyQt5
- Programování v RFEMu 6 a Pythonu | 006 Příklad | Rovinná příhradová konstrukce
- E-learning | Programování v RFEMu 6 a Pythonu
Napište komentář...
Napište komentář...
- Navštíveno 764x
- Aktualizováno 24. ledna 2023
Kontakt
Máte další dotazy nebo potřebujete poradit? Kontaktujte nás prostřednictvím naší bezplatné e-mailové podpory, chatu nebo na fóru, případně využijte naše FAQ, které máte nepřetržitě k dispozici.
-
Rozložení zatížení na prutech vypadá jinak při použití plochy pro přenos zatížení a pomocí generátoru zatížení. Jaký je důvod?
- Můj nosník má spojitou příčnou podporu, a proto není problémem s klopením. Jak mohu zadat vzpěrnou délku?
- Během výpočtu se mi zobrazilo chybové hlášení "Plochy nekompatibilního typu... (Plocha v horní rovině podlaží musí být typu ‘Přenos zatížení’)”. Jaký je důvod?
- Jak mohu efektivně definovat liniové klouby na více plochách?
- Jak mohu do kombinací zatížení podle ASCE 7 zahrnout součinitele navýšení pevnosti Ωo?
- Jak mohu zahrnout součinitel(e) rezervy ro do kombinací zatížení podle ASCE 7?
- Moje užitné zatížení je menší nebo rovné 100 psf. Jak je možné zohlednit redukovaný součinitel zatížení v kombinacích zatížení podle ASCE 7?
- V generovaných kombinacích zatížení (KZ) podle ASCE 7 se mi nezobrazují seizmické zatěžovací stavy. Jak je mohu přidat?
- Jak mohu v programu RFEM 6 vytvořit imperfekci na základě vlastního tvaru?
- Můj nosník má spojitou příčnou podporu, a proto není problémem s klopením. Jak mohu zadat vzpěrnou délku?
Související produkty