Resposta:
Em primeiro lugar, uma barra resultante é criada exatamente como uma barra normal:
- código.vb#
- 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
Em seguida, a interface IMember tem de ser retirada da barra correspondente e utiliza-se o método GetExtraData para obter a interface para IResultMember. Agora, esta interface pode ser utilizada para ler ou escrever os dados do ResultMember. Tenha em atenção que é necessário um bloco Prepare-/Finishmodification ao escrever:
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
A macro EXCEL concluída e o correspondente ficheiro de teste estão anexados.