914x
004181
2019-11-25

Tworzenie belki wynikowej za pomocą interfejsu COM

Jak utworzyć belkę wynikową za pomocą interfejsu COM?


Odpowiedź:

Najpierw tworzona jest belka wynikowa, podobnie jak w przypadku zwykłego pręta:

    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.


Autor

Pan Günthel zapewnia wsparcie techniczne klientom firmy Dlubal Software i zajmuje się ich zapytaniami.

Pobrane


;