581x
005367
2023-03-23

Leggi la deformazione del nodo con Python

Come posso leggere la deformazione in un determinato nodo con un programma Python?


Risposta:

Nel programma di esempio, viene prima creato un cantilever da un IPE 200. Questo viene caricato con un carico dell'asta di 3,5 kN e il calcolo viene eseguito.

Questa tabella è accessibile dalla riga 34:

Il metodo ResultTables.NodesDeformations () richiede 3 argomenti. In primo luogo, è determinato quale tipo di risultati devono essere letti. Risultati di

  • Casi di carico
  • Combinazioni di carico
  • Combinazioni di risultati
  • Situazioni di progetto
  • Fasi costruttive

essere.

Quindi viene fornito il numero del caso di carico, la combinazione di carico, ecc. Per la ripresa, il numero di nodo viene trasferito al metodo.

Il valore restituito d del metodo è un elenco che contiene un dictonary. Nella riga 37, d è visualizzato per intero. La riga 40 mostra come è possibile accedere a un valore specifico. [0] è l'indice della lista e [' displacement_z '] è la chiave del dizionario.


            

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



Autore

Il signor Faulstich è responsabile della garanzia della qualità del programma RFEM e fornisce assistenza ai clienti.