Pytanie:
Jak mogę otwierać i zamykać program RFEM/RSTAB w tle za pomocą interfejsu COM?
Odpowiedź:
Inicjalizacja zmiennej typu Aplikacja (interfejs) przy użyciu opcji „Nowa” powoduje, że program RFEM/RSTAB jest uruchamiany w tle. Przy pomocy tej zmiennej można również utworzyć nowy model metodą „CreateModel”, lub zamknąć program za pomocą polecenia „Zamknij”.
Poniższy przykład pokazuje, jak uruchomić program RSTAB, w programie utworzyć model z węzłem i zamknąć program:
Sub RSTAB_open_close ()
Dim nazwa pliku As String
nazwa pliku = Application.ActiveSheet.Cells (7, 3)
' uruchom program RFEM
Dim iApp As RSTAB8.Application
Ustaw iApp = Nowy RSTAB8.Application
iApp.LockLicense
iApp.Show
W przypadku błędu Idź do E
' utwórz model
Dim iMod As RSTAB8.IModel2
Ustaw iMod = iApp.CreateModel(nazwa pliku)
' dodaj dane do modelu
Dim nd As RSTAB8.Node
nd.no = 10
nd.X = 1
nd.Y = 2
nd.Z = 3
Dim iModdata As RSTAB8.iModelData
Ustaw iModdata = iMod.GetModelData
iModdata.PrepareModification
iModdata.SetNode nd
iModdata.FinishModification
Nazwa pliku iMod.Save
E: Jeżeli Err.Number 0 to MsgBox Err.description, , Err.Source
Ustaw iModdata = Nic
Ustaw iMod = Nic
iApp.UnlockLicense
iApp.Zamknij
Ustaw iApp = Nic
End Sub
Polecenie "iApp.Show" jest opcjonalne. Pozwala to na wyświetlanie programu w zwykły sposób, a nie w tle.
W sekcji Pobrane znajduje się makro Excela z podprogramami dla programów RFEM i RSTAB.
Należy pamiętać, że folder, w którym został utworzony plik, musi istnieć.