580x
005367
23.03.2023

Lecture de la déformation nodale avec Python

Comment lire la déformation à un certain nœud avec le programme Python ?


Réponse:

Dans l'exemple de programme, un porte-à-faux est d'abord créé à partir d'un IPE 200. Celui-ci est chargé avec une charge de barre de 3,5 kN et le calcul est effectué.

Ce tableau est accessible à la ligne 34 :

La méthode ResultTables.NodesDeformations() requiert 3 arguments. Le type de résultats à lire doit d'abord être déterminé. Ces types de résultats peuvent être des :

  • Cas de charge
  • Combinaisons de charges
  • Combinaisons de résultats
  • Situations de projet
  • Phases de construction

sein.

Le numéro du cas de charge, de la combinaison de charges, etc. doit ensuite être indiqué. Enfin, le numéro de nœud doit être transféré à la méthode.

La valeur de retour d de la méthode est une liste contenant un dictionnaire. Sur la ligne 37, d est affiché en entier. La ligne 40 indique comment accéder à une valeur spécifique. [0] est l'index de la liste et ['displacement_z'] est la clé du dictionnaire.


            

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()



Auteur

M. Faulstich est responsable de l'assurance qualité du programme RFEM et fournit également une assistance technique.