1215x
004337
2020-02-07

Вопрос

Как с помощью команды интерфейса COM рассчитать только определенные загружения, сочетания нагрузок или расчетные сочетания?


Ответ:

Чтобы рассчитать только определенные загружения, сочетания нагрузок или расчетные сочетания таким же способом, как и с командой «К расчету ...» (см. Рисунок 01), рекомендуем воспользоваться методом CalculateBatch, доступном в интерфейсе ICalculation. Но помните, что для передачи метод ожидает поле с типом нагрузки Loading, в котором указан номер нагрузки и ее тип (например, сочетание нагрузок):

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