问题:
如何使用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)。