468x
001185
2020-02-07

[EN] FAQ 004337 | Как с помощью команды интерфейса COM рассчитать только определенные загружения ...

Вопрос:
Как с помощью команды интерфейса 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