510x
005368
2023-03-23

Crea un cardine di linea non lineare con Python

Come posso creare un cardine di linea non lineare con un programma Python?


Risposta:

Una funzione per i cardini di linee non lineari non è attualmente disponibile nella libreria Python di alto livello. Tuttavia, poiché i parametri definiti dall'utente possono essere utilizzati come al solito nel metodo per i cardini delle linee, non è un problema generare anche i cardini delle linee non lineari.

Nel programma di esempio, vengono prima create 2 superfici rettangolari con vincoli nodali, che sono collegate sulla linea 6.

La definizione del cardine della linea non lineare inizia dalla linea 39. Innanzitutto, viene creato un dizionario p con i parametri. Devono essere definiti 3 gradi di libertà di spostamento e un grado di libertà di rotazione. Il valore 0.0 significa che il Conteggio della libertà è libero. Se invece viene scritto un valore numerico, viene interpretato come una molla. Assicurarsi che le unità di base SI siano utilizzate qui. Con inf il grado di libertà è definito fisso.

La direzione y dovrebbe avere una non linearità. Questo è impostato con la chiave translational_release_u_y_nonlinearity. Questo articolo descrive come determinare i valori necessari come 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()

Autore

Il signor Faulstich è responsabile della garanzia della qualità del programma RFEM e fornisce assistenza ai clienti.

Link


;