580x
005367
2023-03-23

Leyendo la deformación de nudos con Python

¿Cómo puedo leer la deformación en un determinado nudo usando el programa Python?


Respuesta:

En el programa de ejemplo, se crea inicialmente un voladizo a partir de una barra con perfil IPE 200. Esta se somete a una carga en barra de 3,5 kN y se realiza el cálculo.

Se accede a esta tabla en la línea 34:

El método ResultTables.NodesDeformations() requiere tres argumentos. Primero, determine qué tipo de resultados se van a leer. Estos pueden ser los resultados de

  • Casos de carga
  • Combinaciones de carga
  • Combinaciones de resultados
  • Situaciones de proyecto
  • Fases de construcción

sein.

En segundo lugar, especifique el número del caso de carga, la combinación de carga, etc. Finalmente, transfiera el número de nudo al método.

El valor de retorno d del método está una lista incluida en el diccionario. En la línea 37, se muestra d completamente. La línea 40 muestra cómo acceder a un valor específico. [0] es el índice de la lista y ['displacement_z'] es la clave del diccionario (dictionary).


            

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

El Sr. Faulstich es responsable del control de calidad del programa RFEM y proporciona soporte al cliente.