887x
004181
2019-11-25

Pregunta

¿Cómo puedo crear una viga de resultados usando la interfaz COM?


Respuesta:
Primero, se crea una viga de resultados como en el caso de una barra normal:

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

Luego, es necesario tomar la interfaz IMember del miembro correspondiente y usar el método GetExtraData para obtener la interfaz para IResultMember. Ahora, esta interfaz se puede usar para leer o escribir los datos de ResultMember. Tenga en cuenta que el bloque de modificación Prepare-/Finish se requiere al escribir:

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

Se adjunta el archivo EXCEL Macro completo y el archivo de prueba correspondiente.