3824x
001769
Dlubal Software
26. Oktober 2022

Praktische Anwendungen mit Python und RFEM 6 | Generator für 2D-Fachwerkträger

Der kürzlich eingeführte Webservice bietet Anwendern die Möglichkeit, mit RFEM 6 in einer Programmiersprache ihrer Wahl zu kommunizieren. Zudem wird die Funktionalität durch unsere High-Level Functions (HLF)-Library erweitert. Die Bibliotheken sind für Python, JavaScript und C# verfügbar. Dieser Beitrag behandelt einen praktischen Anwendungsfall zur Programmierung eines 2D-Truss-Generators (Fachwerkträger in 2D) mit Python. Das ist "Learning by doing", wie es so schön heißt.

Überblick

Die Leistungsfähigkeit von RFEM 6 über die grafische Benutzeroberfläche (GUI) hinaus zu nutzen und den Modell- und Bemessungsprozess zu steuern bzw. zu automatisieren, ist ein erheblicher Vorteil. Die Möglichkeiten der Programmierung mit RFEM 6 gehen jedoch über die reine automatische Steuerung hinaus. Anwender können die HLF-Bibliothek in RFEM 6 mit anderen gängigen HLF-Bibliotheken kombinieren, um maßgeschneiderte Anwendungen zu entwickeln.

In diesem Beitrag wird ein Generator für 2D-Fachwerkträger vorgestellt. Der 2D-Fachwerkgenerator wurde in Python geschrieben und nutzt leistungsstarke Python-Bibliotheken wie PyQt und Numpy zusammen mit der RFEM-HLF. Das Endergebnis ist eine grafische Benutzeroberfläche, die eine flexible Erzeugung von Fachwerkträgern ermöglicht.

Grundlagen

In diesem Beitrag werden nur Teile des Codes hervorgehoben, der eigens für seine Anwendung bei der Entwicklung des 2D-Fachwerkgenerators geschrieben wurde. Die Grundlagen der Programmierung mit RFEM 6 und Python finden Sie in unserer kurzen 6-teiligen Videoreihe unter folgendem Link:

E-Learning Videos | Programmieren mit RFEM 6 und Python

Code

Der Code für das vorliegende Beispiel ist in der bereits erwähnten HLF-Bibliothek (RFEM_Python_Client/Examples/TrussGenerator_2D) zu finden. Der Code wird als Open Source bereitgestellt und soll den Nutzern hoffentlich Anregungen für eigene Projekte geben. Details zum Arbeiten mit der HLF in RFEM (z. B. Klonen des Repositorys) werden in der oben verlinkten Videoreihe erläutert.

Bestimmte Teile des Codes

Try and Except

Wie bereits erwähnt, werden in diesem Beispiel viele verschiedene Bibliotheken in Verbindung mit der RFEM-HLF verwendet (z. B. Numpy und PyQt5). Sollten Anwender keine bestimmte Bibliothek installiert haben, führt ein "Import"-Befehl zu einem Fehler. Um dieses potenzielle Problem zu umgehen, werden Try- und Except-Blöcke verwendet. Der "Import" fällt unter den try-Block und sollte dieser fehlschlagen, geht der Code in den except-Block, der den Anwender auffordert, die erforderlichen Bibliotheken mit pip zu installieren.

GUI mit PyQt5 erstellen

PQt5 ist eine Bibliothek zur Erstellung von GUIs. Ein Großteil des Codes besteht aus den Definitionen und Anweisungen, die PyQt5 zum Aufbau der 2D Truss Generator-GUI benötigt.

Eine Dokumentation zur Verwendung von PyQt5 finden Sie unter diesem Link:

PyQt5-Referenzhandbuch

Eine Fülle von Tutorials findet man auch auf YouTube.

Definition des Fachwerkträgers

Mit den RFEM-HLFs kann ein Fachwerkträger schnell definiert werden. Wenn Sie Unterstützung bei der Programmierung des Fachwerkträgers brauchen, dann schauen Sie sich das sechste Video in der oben genannten Videoreihe an.

Programmieren mit RFEM 6 und Python | 006 Beispiel | Ebenes Fachwerk

Variablen, die in den PyQt5-Definitionen initialisiert wurden, werden hier auch als Argumente für die RFEM-Fachwerkträgerdefinitionen integriert. Dadurch wird eine Interoperabilität zwischen den beiden Bibliotheken hergestellt.

Eine Reihe von try-, except- und if-Anweisungen werden implementiert, um die in der GUI bereitgestellten Informationen zu überprüfen.

Schlussbemerkungen

Dieser Beitrag soll einen kurzen Überblick darüber geben, wie die GUI eines parametrischen 2D-Truss Generators erstellt wurde. Sollten zusätzliche Informationen erforderlich sein, verwenden Sie bitte die Kommentarfunktion unten. Wir werden Ihnen gerne antworten.


Links