580x
005367
23.3.2023

Načtení deformace uzlu pomocí Pythonu

Jak mohu pomocí programu Python načíst deformaci v určitém uzlu?


Odpověď:

V příkladu programu je nejprve vytvořena konzola z profilu IPE 200. Následně se na ní aplikuje zatížení na prut 3,5 kN a provede se výpočet.

Tato tabulka je dostupná na řádku 34:

Metoda ResultTables.NodesDeformations() vyžaduje 3 argumenty. Nejprve se určí, jaký typ výsledků se má načíst. Mohou to být výsledky pro

  • zatěžovací stavy
  • kombinace zatížení
  • kombinace výsledků
  • návrhové situace
  • fáze výstavby

.

Poté se zadá číslo zatěžovacího stavu, kombinace zatížení atd. Nakonec se do metody zadá číslo uzlu.

Vrácená hodnota d metody je seznam, který obsahuje slovník. V řádku 37 se zobrazí celé d. Řádek 40 ukazuje, jak lze přistupovat k určité hodnotě. [0] je přitom index seznamu a ['displacement_z'] je klíč slovníku.


            

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

Ing. Faulstich je zodpovědný za kvalitu programu RFEM a kromě toho se věnuje technické podpoře zákazníků.