425x
005368
23.3.2023

Vytvoření nelineárního liniového kloubu pomocí Pythonu

Jak mohu vytvořit nelineární liniový kloub pomocí programu Python?


Odpověď:

Funkce pro nelineární liniové klouby aktuálně není v Python High Level Library k dispozici. Protože však lze v metodě pro liniové klouby jako obvykle použít uživatelské parametry, není problém vytvořit také nelineární liniové klouby.

V příkladu programu se nejprve vytvoří 2 obdélníkové plochy s uzlovými podporami, které jsou spojeny v linii 6.

Definice nelineárního liniového kloubu začíná od řádku 39. Nejprve se vytvoří slovník p s parametry. Je třeba zadat tři stupně volnosti pro posun a jeden stupeň volnosti pro natočení. Hodnota 0.0 znamená, že stupeň volností je volný. Pokud se místo toho zadá číselná hodnota, je hodnota interpretováno jako tuhost pružiny. Ujistěte se, že jsou použity základní jednotky SI. Pomocí inf je stupeň volnosti definován jako zafixovaný.

Ve směru y by měla být nelinearita. To se nastavuje klíčem translational_release_u_y_nonlinearity. Tento článek popisuje, jak lze stanovit nezbytné hodnoty, například NONLINEARITY_TYPE_FAILURE_IF_POSITIVE.

Uživatelsky zadané parametry

            

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



Autor

Ing. Faulstich je zodpovědný za kvalitu programu RFEM a kromě toho se věnuje technické podpoře zákazníků.

Odkazy