510x
005368
2023-03-23

Creación de articulaciones lineales de comportamiento no lineal con Python

¿Cómo puedo crear una articulación lineal con propiedades no lineales con el programa Python?


Respuesta:

Una función para articulaciones lineales de comportamiento no lineal no está disponible actualmente en la biblioteca de alto nivel de Python. Sin embargo, dado que es posible usar parámetros definidos por el usuario como es habitual en el método para articulaciones lineal, tampoco es un problema generar articulaciones lineales de comportamiento no lineal.

En el programa de ejemplo, se crean primero dos superficies rectangulares con apoyos en nudo, que son las conectadas en la Línea 6.

La definición de la articulación lineal de comportamiento no lineal comienza a partir de la Línea 39. Primero, se crea un diccionario (dictionary) p con los parámetros. Es necesario definir tres grados de libertad de desplazamiento y un grado de libertad de giro. El valor 0.0 significa que el grado de libertad es libre. Si en su lugar se escribe un valor numérico, se interpreta como un muelle. Asegúrese de que se utilicen aquí las unidades básicas del SI. Al usar inf , el grado de libertad se define como fijo.

Debe haber una no linealidad en la dirección y. Esto se establece con la clave (key) translational_release_u_y_nonlinearity. Este artículo describe cómo determinar los valores necesarios, como 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()

Autor

El Sr. Faulstich es responsable del control de calidad del programa RFEM y proporciona soporte al cliente.

Enlaces


;