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

Fachbeitrag zum Thema Statik und Anwendung von Dlubal Software

  • Knowledge Base

Fachbeitrag

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:

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:

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.

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.

Autor

Björn Steinhagen, B.Sc.

Björn Steinhagen, B.Sc.

Product Engineering

Herr Steinhagen unterstützt die Entwicklung und Qualitätssicherung der Dlubal-Programme.

Schlüsselwörter

Python Webservice GUI Programmierung

Links

Schreiben Sie einen Kommentar...

Schreiben Sie einen Kommentar...

  • Aufrufe 764x
  • Aktualisiert 24. Januar 2023

Kontakt

Kontakt zu Dlubal

Haben Sie Fragen oder brauchen Sie einen Rat? Kontaktieren Sie uns über unseren kostenlosen E-Mail-, Chat- bzw. Forum-Support oder nutzen Sie die häufig gestellten Fragen (FAQs) rund um die Uhr.

+49 9673 9203 0

[email protected]

Online Training | German

Eurocode 3 | Stahltragwerke nach DIN EN 1993-1-1

Online-Schulung 28. Februar 2023 8:30 - 12:30 CET

Online-Schulung | Englisch

Eurocode 3 | Stahltragwerke nach DIN EN 1993-1-1

Online-Schulung 2. März 2023 9:00 - 13:00 CET

Online Training | German

Eurocode 5 | Holztragwerke nach DIN EN 1995-1-1

Online-Schulung 14. März 2023 8:30 - 12:30 CET

Online-Schulung | Englisch

Eurocode 5 | Holztragwerke nach DIN EN 1995-1-1

Online-Schulung 16. März 2023 9:00 - 13:00 CET

Online Training | German

RFEM 6 | Baudynamik und Erdbebenbemessung nach EC 8

Online-Schulung 28. März 2023 8:30 - 12:30 CEST

Online-Schulung | Englisch

RFEM 6 | Dynamische Analyse und Erdbebenbemessung nach EC 8

Online-Schulung 30. März 2023 9:00 - 13:00 CEST

BAU 2023 | München

BAU 2023

Messe 17. April 2023 - 22. April 2023

Online-Schulung | Englisch

Eurocode 2 | Betonbauten nach DIN EN 1992-1-1

Online-Schulung 26. Januar 2023 9:00 - 13:00 CET

Online Training | German

Eurocode 2 | Stahlbetontragwerke nach DIN EN 1992-1-1

Online-Schulung 24. Januar 2023 8:30 - 12:30 CET

Bemessung eines Stahlbetonbehälters \n in RFEM 6

Bemessung eines Stahlbetonbehälters in RFEM 6 (USA)

Webinar 19. Januar 2023 14:00 - 15:00 EDT

RFEM 6
Halle mit Bogendach

Basisprogramm

Die Statik-Software RFEM 6 ist die Basis einer modular aufgebauten Programmfamilie. Das Hauptprogramm RFEM 6 dient zur Definition der Strukturen, Materialien und Einwirkungen ebener und räumlicher Platten-, Scheiben-, Schalen- und Stabtragwerke. Mit dem Programm können auch Mischsysteme sowie Volumen- und Kontaktelemente bemessen werden.

Erstlizenzpreis
4.450,00 EUR