Frage:
Wie kann man über die COM-Schnittstelle RSTAB/RFEM im Hintergrund öffnen und wieder schließen?
Antwort:
Durch das Initialisieren einer Variable vom Typ Application (Interface) mit "new" wird RFEM/RSTAB im Hintergrund gestartet. Über diese Variable kann dann ebenfalls ein neues Modell mit der Methode "CreateModel" angelegt oder das Programm über den Befehl "Close" beendet werden
Das folgende Beispiel zeigt, wie RSTAB gestartet wird, dann das Programm ein Modell mit einem Knoten erzeugt und das Programm wieder beendet wird:
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
' create model
Dim iMod As RSTAB8.IModel2
Set iMod = iApp.CreateModel(filename)
' add data to model
Dim nd As RSTAB8.Node
nd.no = 10
nd.X = 1
nd.Y = 2
nd.Z = 3
Dim iModdata As RSTAB8.iModelData
Set iModdata = iMod.GetModelData
iModdata.PrepareModification
iModdata.SetNode nd
iModdata.FinishModification
iMod.Save filename
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
Der Befehl "iApp.Show" ist optional. Dieser sorgt dafür, dass das Programm nicht im Hintergrund läuft, sondern normal angezeigt wird.
Im den Downloads finden Sie ein Excel-Makro mit Sub-Routinen für RFEM und RSTAB.
Bitte beachten Sie, dass der Ordner, in dem die Datei erstellt wird, existieren muss.