1216x
004337
7. Februar 2020

Frage

Wie kann man nur ganz bestimmte Lastfälle, Lastkombinationen oder Ergebniskombinationen mit Hilfe eines Befehls mit der COM Schnittstelle berechnen?


Antwort:

Um nur bestimmte Lastfälle, Lastkombinationen oder Ergebniskombinationen zu berechnen, genau wie der Befehl "Zu berechnen..." (siehe Abbildung 01), kann die Methode CalculateBatch der Schnittstelle ICalculation verwendet werden. Bei der Übergabe erwartet die Methode ein Feld mit der Belastung vom Typ Loading. Loading beinhaltet dabei die Nummer der Belastung und den Typ (z. B. Lastkombination):

Sub batch_test()
    
'   get interface from the opened model and lock the licence/program
    Dim iModel As RFEM5.IModel3
    Set iModel = GetObject(, "RFEM5.Model")
    iModel.GetApplication.LockLicense
    

On Error GoTo e
    
    '   get interface for calculation
    Dim iCalc As ICalculation2
    Set iCalc = iModel.GetCalculation
    
    '   create array with loading types
    Dim loadings(3) As Loading
    loadings(0).no = 1
    loadings(0).Type = LoadCaseType
    
    loadings(1).no = 4
    loadings(1).Type = LoadCaseType
    
    loadings(2).no = 4
    loadings(2).Type = LoadCombinationType
    
    '   calculate all loadings from the array at once
    iCalc.CalculateBatch loadings

e:  If Err.Number <> 0 Then MsgBox Err.description, , Err.Source
    
    Set iModelData = Nothing
    iModel.GetApplication.UnlockLicense
    Set iModel = Nothing

End Sub