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()