430x
005368
2023-03-23

Criar uma articulação de linha não linear com Python

Como é que posso criar uma articulação de linha não linear com o programa Python?


Resposta:

Uma função para articulações de linha não lineares não está atualmente disponível na Python High Level Library. No entanto, uma vez que os parâmetros definidos pelo utilizador podem ser utilizados como habitualmente no método para as articulações de linha, não existe qualquer problema em gerar também articulações de linha não lineares.

No programa de exemplo, são criadas primeiro duas superfícies retangulares com apoios de nó que se encontram ligadas na linha 6.

A definição da articulação de linha não linear começa na linha 39. Primeiro, é criado um dicionário p com os parâmetros. É necessário definir três graus de liberdade de deslocamento e um grau de liberdade de torção. O valor 0.0 significa que o grau de liberdade é livre. Se em vez disso for escrito um valor numérico, este será interpretado como uma mola. Certifique-se de que as unidades de base do SI são utilizadas aqui. Utilizando inf, o grau de liberdade é definido como fixo.

Deve ser dada uma não linearidade na direção y. Esta é definida com a chave translational_release_u_y_nonlinearity. Este artigo descreve como determinar os valores necessários, tais como NONLINEARITY_TYPE_FAILURE_IF_POSITIVE.

Parâmetros personalizados

            

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

O Eng. Faulstich é responsável pela garantia de qualidade do programa RFEM e também fornece apoio técnico aos clientes.

Ligações