Nichtlineares Liniengelenk mit Python erzeugen

Fragen & Antworten, die Ihnen weiterhelfen

  • Häufig gestellte Fragen (FAQs)

23. März 2023

005368

Frank Faulstich

API & Webservice

Wie kann ich mit einem Python-Programm ein nichtlineares Liniengelenk erzeugen?

Antwort

Eine Funktion für nichtlineares Liniengelenke ist momentan in der Python High Level Library nicht vorhanden. Da in der Methode für Liniengelenke aber wie üblich benutzerdefinierte Parameter verwendet werden können, ist es kein Problem, auch nichtlineare Liniengelenke zu erzeugen.

Im Beispielprogramm werden zunächst 2 Rechteckflächen mit Knotenlagern erzeugt, die an der Linie 6 verbunden sind.

Ab der Zeile 39 beginnt die Definition des nichtlinearen Liniengelenks. Zunächst wird ein Dictionary p mit den Parametern erzeugt. Es müssen 3 Verschiebungsfreiheitsgrade und ein Verdrehungsfreiheitsgrad definiert werden. Der Wert 0.0 bedeutet, dass der Freiheitsgraf frei ist. Wird statt dessen ein Zahlenwert geschrieben, dann wird dieser als Feder interpretiert. Achten Sie darauf, dass hier SI-Grundeinheiten verwendet werden. Mit inf wird der Freiheitsgrad als fest definiert.

Die y-Richtung soll eine Nichtlinearität erhalten. Diese wird mit dem Key translational_release_u_y_nonlinearity festgelegt. In diesem Artikel ist beschrieben, wie notwendigen Werte wie NONLINEARITY_TYPE_FAILURE_IF_POSITIVE ermittelt werden können.

        
from RFEM.enums import *
from RFEM.initModel import *
from RFEM.BasicObjects.node import Node
from RFEM.BasicObjects.line import Line
from RFEM.BasicObjects.material import Material
from RFEM.BasicObjects.thickness import Thickness
from RFEM.BasicObjects.surface import Surface
from RFEM.TypesForNodes.nodalSupport import NodalSupport
from RFEM.TypesForLines.lineHinge import LineHinge
from RFEM.dataTypes import inf

Model(True, "Line Hinge ")
Model.clientModel.service.begin_modification()

Node(1, 0.0, 0.0, 0.0)
Node(2, 5.0, 0.0, 0.0)
Node(3, 10.0, 0.0, 0.0)
Node(4, 0.0, 4.0, 0.0)
Node(5, 5.0, 4.0, 0.0)
Node(6, 10.0, 4.0, 0.0)

Line(1, '1 2')
Line(2, '2 3')
Line(3, '4 5')
Line(4, '5 6')
Line(5, '1 4')
Line(6, '2 5')
Line(7, '3 6')

Material(1, 'S235')

Thickness(1, material_no=1, uniform_thickness_d=0.050)

Surface(1, '1 6 3 5')
Surface(2, '2 7 4 6')

NodalSupport(1, '1-3 4-6')

p = {
   'translational_release_u_x':0.0,
   'translational_release_u_y':0.0,
   'translational_release_u_y_nonlinearity':'NONLINEARITY_TYPE_FAILURE_IF_POSITIVE',
   'translational_release_u_z':inf,
   'rotational_release_phi_x':inf
}
LineHinge(1, '1/6', params=p)

Model.clientModel.service.finish_modification()
Model.clientModel.service.close_connection()

        
    

Schlüsselwörter

Webservice Python Programmieren Schnittstelle

Links

Schreiben Sie einen Kommentar...

Schreiben Sie einen Kommentar...