425x
005368
2023-03-23

使用 Python 创建非线性线铰

如何使用 Python 程序创建非线性线铰?


回复:

Python 高级库中目前没有用于非线性线铰的函数。 但是,由于在线铰的方法中可以像往常一样使用用户定义的参数,所以也可以生成非线性的线铰。

在示例程序中,首先创建两个带节点支座的矩形面,它们在线6上连接。

非线性线铰的定义从线 39 开始。 首先,使用参数创建一个字典p 。 必须定义 3 个位移自由度和 1 个旋转自由度。 值为0.0表示自由计数是自由的。 如果写入数值,则解释为弹簧。 请确保这里使用的是 SI 基本单位。 使用inf时,自由度定义为固定的。

y 方向应该是非线性的。 这是通过键translational_release_u_y_nonlinearity设置的。 本文介绍如何确定必要的值,例如NONLINEARITY_TYPE_FAILURE_IF_POSITIVE

自定义参数

            

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



作者

Faulstich 先生负责 RFEM 的质量保证和客户支持。

链接