Answer:
First, a result beam is created as in the case of a normal member:
Dim model As RFEM5.model Set model = GetObject(, "RFEM5.Model") model.GetApplication.LockLicense
On Error GoTo e
Dim data As IModelData Set data = model.GetModelData
Dim members(0) As RFEM5.Member members(0).No = 3 members(0).LineNo = 12 members(0).Type = ResultBeamType members(0).StartCrossSectionNo = 1 members(0).EndCrossSectionNo = 1 members(0).Comment = "result beam 1"
data.PrepareModification data.SetMembers members data.FinishModification
Then, it is necessary to take the IMember interface from the corresponding member, and use the GetExtraData method to get the interface to IResultMember. Now, this interface can be used to read or write the ResultMember data. Please note that the Prepare-/Finishmodification block is required when writing:
Dim iMem As IMember Set iMem = data.GetMember(3, AtNo) Dim iRMem As IResultBeam Set iRMem = iMem.GetExtraData Dim RMem As ResultBeam RMem = iRMem.GetData RMem.IncludeSurfaces = "1" RMem.IncludeSolids = "all" RMem.Integrate = WithinCuboidGeneral Dim params(0 To 3) As Double RMem.Parameters = params RMem.Parameters(0) = 0.5 RMem.Parameters(1) = 0.5 RMem.Parameters(2) = 0.1 RMem.Parameters(3) = 0.1 data.PrepareModification iRMem.SetData RMem data.FinishModification
The completed EXCEL macro and the corresponding test file are attached.