599x
005367
2023-03-23

Ler a deformação do nó com o Python

Como é que posso ler a deformação num determinado nó com o programa Python?


Resposta:

No programa de exemplo, é primeiro criada uma consola a partir de um IPE 200. Esta é carregada com uma carga de barra de 3,5 kN e é executado o cálculo.

Esta tabela é acedida na linha 34:

O método ResultTables.NodesDeformations() requer 3 argumentos. Em primeiro lugar, é determinado que tipo de resultados devem ser lidos. Podem ser resultados de

  • Casos de carga
  • Combinações de cargas
  • Combinações de resultados
  • Situações de dimensionamento
  • Fases de construção

.

De seguida, é fornecido o número do caso de carga, da combinação de cargas etc. Por fim, o número do nó é transferido para o método.

O valor de retorno d do método é uma lista que contém um dicionário. Na linha 37, d é apresentado por completo. A linha 40 mostra como é possível aceder a um valor específico. [0]é o índice da lista e ['displacement_z']é a chave do dicionário.


            

from RFEM.enums import *
from RFEM.initModel import *
from RFEM.BasicObjects.material import Material
from RFEM.BasicObjects.section import Section
from RFEM.BasicObjects.node import Node
from RFEM.BasicObjects.member import Member
from RFEM.TypesForNodes.nodalSupport import NodalSupport
from RFEM.LoadCasesAndCombinations.staticAnalysisSettings import StaticAnalysisSettings
from RFEM.LoadCasesAndCombinations.loadCase import LoadCase
from RFEM.Loads.memberLoad import MemberLoad
from RFEM.Results.resultTables import ResultTables

Model(True, "Beam.rf6")
Model.clientModel.service.delete_all()
Model.clientModel.service.begin_modification()

Material(1, 'S235')
Section(1, 'IPE 200')

Node(1, 0.0, 0.0, 0.0)
Node(2, 5.0, 0.0, 0.0)

Member.Beam(1, 1, 2, start_section_no=1, end_section_no=1)

NodalSupport(1, '1', NodalSupportType.FIXED)

StaticAnalysisSettings.GeometricallyLinear(1, "Linear")
LoadCase(1, 'Load', [True, 0.0, 0.0, 1.0])

MemberLoad(1, 1, '1', magnitude=3500)

Calculate_all()

d = ResultTables.NodesDeformations(CaseObjectType.E_OBJECT_TYPE_LOAD_CASE, 1, 2)

# all:
print(d)

# displacement in Z
print(d[0]['displacement_z'])

Model.clientModel.service.finish_modification()



Autor

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