1033x
004951
2021-02-22

Pergunta

Como é que posso ler as deformações globais ou locais das barras utilizando a interface COM?


Resposta:

As deformações das barras podem ser lidas através da função "GetMemberDeformations()", por exemplo. Esta função espera um número, o tipo de método de contagem para barras (número de barra/número na lista) e qual o sistema de coordenadas que deve ser utilizado. Pode selecionar se é utilizado o sistema de eixos local, o sistema de eixos principal ou o sistema de coordenadas global:

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


O programa pequeno lê as deformações locais (memDefs_L) nos eixos da barra e nos eixos principais (memDefs_P) e as deformações globais nos eixos da barra (memDefs_G).