887x
004181
2019-11-25

Domanda

Come posso creare una trave risultante utilizzando l'interfaccia COM?


Risposta:
Innanzitutto, viene creata una trave risultante come nel caso di un'asta normale:

Dim modello Come RFEM5.model
Set model = GetObject(, "RFEM5.Model")
model.GetApplication.LockLicense

On Error GoTo e

Dim data As IModelData
Imposta dati = modello.GetModelData

Aste dim(0) As RFEM5.Member
    
aste (0).No = 3
aste (0).LineNo = 12
aste (0).Type = ResultBeamType
    
aste(0).StartCrossSectionNo = 1
aste(0).EndCrossSectionNo = 1
    
aste(0).Comment = "trave risultante 1"

data.PrepareModification
aste data.SetMembers
data.FinishModification

Quindi, è necessario prendere l'interfaccia IMember dal membro corrispondente e utilizzare il metodo GetExtraData per ottenere l'interfaccia a IResultMember. Ora, questa interfaccia può essere utilizzata per leggere o scrivere i dati di ResultMember. Si prega di notare che il blocco Prepare-/Finishmodification è richiesto durante la scrittura:

Dim iMem As IMember
Imposta iMem = data.GetMember(3, AtNo)
    
Dim iRMem As IResultBeam
Imposta iRMem = iMem.GetExtraData
    
Dim RMem As ResultBeam
RMem = iRMem.GetData
    
RMem.IncludeSurfaces = "1"
RMem.IncludeSolids = "tutti"
    
RMem.Integrate = WithinCuboidGeneral
    
Dim parametri (da 0 a 3) As Double
    
RMem.Parameters = params
RMem.Parametri(0) = 0.5
RMem.Parametri(1) = 0.5
RMem.Parametri(2) = 0.1
RMem.Parametri(3) = 0.1
    
data.PrepareModification
iRMem.SetData RMem
data.FinishModification

La macro EXCEL completata e il file di test corrispondente sono allegati.