942x
004499
2020-07-10

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
    
Zakończ 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ć.