425x
005368
2023-03-23

Tworzenie nieliniowego przegubu dla linii za pomocą Python

Jak utworzyć nieliniowy przegub dla linii za pomocą programu w języku Python?


Odpowiedź:

Funkcja dla nieliniowych przegubów dla linii nie jest obecnie dostępna w bibliotece wielopoziomowej Python. Ponieważ jednak parametry zdefiniowane przez użytkownika mogą być używane jak zwykle w metodzie dla przegubów liniowych, nie jest problemem wygenerowanie również nieliniowych przegubów dla linii.

W przykładowym programie najpierw tworzone są 2 prostokątne powierzchnie z podporami węzłowymi, które są połączone na linii 6.

Definicja nieliniowego przegubu dla linii rozpoczyna się od linii 39. Najpierw tworzony jest słownik p z parametrami. Należy zdefiniować 3 stopnie swobody przemieszczenia i jeden stopień swobody obrotu. Wartość 0.0 oznacza, że stopień swobody jest dowolny. Jeżeli zamiast tego zostanie zapisana wartość liczbowa, zostanie ona zinterpretowana jako sprężyna. Należy upewnić się, że zastosowano tutaj jednostki podstawowe SI. Poprzez zastosowanie inf stopień swobody jest zdefiniowany jako utwierdzony.

Kierunkowi y należy nadać nieliniowość. Jest to ustawiane za pomocą klucza translational_release_u_y_nonlinearity. W tym artykule opisano, w jaki sposób można określić niezbędne wartości, takie jak NONLINEARITY_TYPE_FAILURE_IF_POSITIVE.

Parametry niestandardowe

            

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

Pan Faulstich jest odpowiedzialny za zapewnienie jakości programu RFEM i zapewnia wsparcie klienta.

Odnośniki