436x
002341
2021-02-22

[ZH] FAQ 004951 | 如何使用 COM 接口读取全局或局部变形...

问题:
如何使用COM接口读取杆件的全局或局部变形?

答案:
杆件的变形可以读取,例如使用 "GetMemberDeformations() " 函数。 该功能需要一个编号、杆件计数方法的类型(杆件编号/列表中的编号)以及应使用的坐标系。 在操作时可以选择使用局部坐标系、主轴坐标系还是全局坐标系:

Sub ext_results_member_axis()

将 i App 灰度暗为 RFEM5.Application
Set i App = GetObject(, "RFEM5.Application")

i App.Lock许可证

将 iMod 调暗为 RFEM5.IModel3
设置 iMod = iapp.getactivemodel

错误时转到e

'获取计算接口
Dim iCalc As RFEM5.ICalculation2
设置 iCalc = iMod.GetCalculation

'获取结果接口
Dim iRes As RFEM5.IResults2
Set iRes = iCalc.GetResultsInFeNodes(LoadCaseType, 1)

'取得局部坐标系下的变形
Dim memDefs_L() As RFEM5.MemberDeformations
memDefs_L = iRes.GetMemberDeformations(1, 位置编号, LocalMemberAxes)

'得到全局坐标系下的变形
Dim memDefs_G() As RFEM5.MemberDeformations
memDefs_G = iRes.GetMemberDeformations(1, 位置编号, GlobalAxes)

'得到主坐标系下的变形
Dim memDefs_P() As RFEM5.MemberDeformations
memDefs_P = iRes.GetMemberDeformations(1, 位置编号, LocalPrincipalAxes)

e:

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

iMod.GetApplication.UnlockLicense
设置 iMod = Nothing

末端接头

该小程序会读取杆件轴和主轴上的局部变形 (memDefs_L) 以及杆件轴上的全局变形 (memDefs_G)。