1226x
004337
2020-02-07

Pergunta

Como é que calculo apenas casos de carga muito específicos, combinações de carga ou combinações de resultados utilizando um comando com a interface COM?


Resposta:

Para calcular apenas determinados casos de carga, combinações de carga ou combinações de resultados, tal como o comando "Para calcular..." (ver Figura 01), pode utilizar o método CalculateBatch da interface ICalculation. Ao transferir dados, o método espera um campo com a carga do tipo Loading. Loading inclui o número e o tipo da carga (por exemplo, combinação de carga):

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