1027x
004951
2021-02-22

Вопрос

Как можно с помощью интерфейса COM считать общие или местные деформации стержней?


Ответ:

Деформации стержней можно считать, например, с помощью функции "GetMemberDeformations()". Однако эта функция ожидает указание номера, типа метода подсчета стержней (номер стержня/номер в списке) и то, какую систему координат следует использовать. Пользователь так может выбрать, будет ли использоваться местная система координат, система главных осей или общая система координат:

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


Эта небольшая программа способна считать местные деформации (memDefs_L) в осях стержня и главных осях (memDefs_P), а также общие деформации в осях стержня (memDefs_G).