887x
004181
25.11.2019

Dotaz

Jak mohu pomocí rozhraní COM vytvořit výsledkový prut?


Odpověď:
Nejdříve vytvoříme výsledkový prut přesně jako normální prut:

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

Poté musí být rozhraní IMember načteno od příslušného prutu a pomocí metody GetExtraData se dostane rozhraní k IResultMember. Pomocí tohoto rozhraní lze nyní přečíst nebo zapsat údaje pro ResultMember. Je nutné mít na zřeteli, že pro psaní je vyžadován blok Prepare-/Finishmodification:

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

V příloze najdete hotové makro v Excelu a příslušný zkušební soubor.