回复:
首先,像创建普通杆件一样创建结果梁:
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
Danach muss das Interface IMember vom entsprechenden Stab geholt werden und über die Methode GetExtraData erhält man das Interface zu IResultMember. Mit Hilfe dieses Interfaces kann nun die ResultMember-Daten gelesen oder geschrieben werden. Zu beachten ist, dass beim Schreiben ein Prepare-/Finishmodification-Block benötigt wird:
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
Im Anhang finden Sie das fertige EXCEL Makro und die zugehörige Testdatei.