438x
002341
22. Februar 2021

[EN] FAQ 004951 | Wie kann man mit Hilfe der COM-Schnittstelle die globalen oder lokalen Deformat...

Frage:
Wie kann man mit Hilfe der COM-Schnittstelle die globalen oder lokalen Deformationen von Stäben auslesen?

Antwort:
Die Verformungen von Stäben können z. B. mit der Funktion "GetMemberDeformations()" ausgelesen werden. Diese Funktion erwartet eine Nummer, die Art der Zählweise für Stäbe (Stabnummer/Nummer in der Liste) und welches Koordinatensystem verwendet werden soll. Es kann dabei ausgewählt werden, ob das lokale Achsensystem, das Hauptachsensystem oder das globale Koordinatensystem verwendet wird:

Sub test_results_member_axis()

Dim iApp As RFEM5.Application
Set iApp = GetObject(, "RFEM5.Application")

iApp.LockLicense

Dim iMod As RFEM5.IModel3
Set iMod = iApp.GetActiveModel

On Error GoTo e

'get interface for calculation
Dim iCalc As RFEM5.ICalculation2
Set iCalc = iMod.GetCalculation

'get interface for results
Dim iRes As RFEM5.IResults2
Set iRes = iCalc.GetResultsInFeNodes(LoadCaseType, 1)

'get deformations in local coordinate system
Dim memDefs_L() As RFEM5.MemberDeformations
memDefs_L = iRes.GetMemberDeformations(1, AtNo, LocalMemberAxes)

'get deformations in global coordinate system
Dim memDefs_G() As RFEM5.MemberDeformations
memDefs_G = iRes.GetMemberDeformations(1, AtNo, GlobalAxes)

'get deformations in principal coordinate system
Dim memDefs_P() As RFEM5.MemberDeformations
memDefs_P = iRes.GetMemberDeformations(1, AtNo, LocalPrincipalAxes)

e:

If Err.Number 0 Then MsgBox Err.description, vbCritical, Err.Source

iMod.GetApplication.UnlockLicense
Set iMod = Nothing

End Sub

Das kleine Programm liest für einen Stab die lokalen Verformungen (memDefs_L) in den Stabachsen und den Hauptachsen (memDefs_P) und die globalen Verformungen in den Stabachsen (memDefs_G) aus.