510x
005368
23.03.2023

Création d'une articulation linéique non linéaire avec Python

Comment créer une articulation linéique non linéaire avec un programme Python ?


Réponse:

Il n'y a actuellement pas de fonction disponible dans la bibliothèque Python High Level Library pour les articulations linéiques. Cependant, étant donné que les paramètres définis par l'utilisateur peuvent être utilisés comme d'habitude dans la méthode pour les articulations linéiques, la génération d'articulations linéiques non linéaires n'est pas un problème.

Dans le programme d'exemple, deux surfaces rectangulaires avec des appuis nodaux sont d'abord créées, qui sont connectées sur la ligne 6.

La définition de l'articulation linéique non linéaire commence à partir de la ligne 39. Tout d'abord, un dictionnaire p est créé avec les paramètres. 3 degrés de liberté de déplacement et un degré de liberté de rotation doivent être définis. La valeur 0.0 signifie que le degré de liberté est libre. Si une valeur numérique est écrite à la place, elle est interprétée comme un ressort. Assurez-vous que les unités de base SI sont utilisées ici. Avec inf, le degré de liberté est défini comme fixe.

Il doit avoir une non-linéarité en direction y. Ceci est défini avec la clé translational_release_u_y_nonlinearity. Cet article explique comment déterminer les valeurs nécessaires telles que 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()

Auteur

M. Faulstich est responsable de l'assurance qualité du programme RFEM et fournit également une assistance technique.

Liens


;