Вопрос:
Каким образом можно открыть и снова закрыть программу RFEM/RSTAB в фоновом режиме через интерфейс COM?
Ответ:
Запустить программу RFEM/RSTAB в фоновом режиме можно посредством инициализации переменной типа «Application (interface)» и параметра «new». При использовании данной переменной затем можно либо создать новую модель методом «CreateModel», либо с помощью команды «Close» закрыть программу.
В следующем примере потом хорошо показано, каким образом можно запустить программу RSTAB, создать в ней модель с узлом и наконец закрыть ее:
Sub RSTAB_open_close()
Dim filename As String
filename = Application.ActiveSheet.Cells(7, 3)
' start rfem
Dim iApp As RSTAB8.Application
Set iApp = New RSTAB8.Application
iApp.LockLicense
iApp.Show
On Error GoTo E
' создать модель
Dim iMod как RSTAB8.IModel2
Задать iMod = iApp.CreateModel(filename)
' добавить данные в модель
Dim nd As RSTAB8.Node
nd.no = 10
nd.X = 1
nd.Y = 2
nd.Z = 3
Dim iModdata As RSTAB8.iModelData
Установите iModdata = iMod.GetModelData
iModdata.PrepareModification
iModdata.SetNode nd
iModdata.FinishModification
iMod.Save имя файла
E: If Err.Number 0 Then MsgBox Err.description, , Err.Source
Set iModdata = Nothing
Set iMod = Nothing
iApp.UnlockLicense
iApp.Close
Set iApp = Nothing
End Sub
Команда «iApp.Show» необязательна, поскольку она обеспечивает стандартное отображение программы, т.е. не в фоновом режиме.
В разделе «Загрузки» затем находится макрос программы Excel со всеми соответствующими функциями для программы RFEM и RSTAB.
Не забудьте также учесть факт, что папка, в которой создается файл, должна уже существовать.