Domanda:
Come posso aprire e chiudere RFEM/RSTAB in background tramite l'interfaccia COM?
Risposta:
Inizializzando una variabile di tipo Applicazione (interfaccia) con "nuovo", RFEM/RSTAB viene avviato in background. Con questa variabile, è anche possibile creare un nuovo modello utilizzando il metodo "Crea modello" o chiudere il programma utilizzando il comando "Chiudi".
Il seguente esempio mostra come avviare RSTAB, creare un modello con un nodo nel programma e chiudere il programma:
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
Il comando "iApp.Show" è opzionale. Ciò consente di visualizzare il programma normalmente, e non in background.
Nei download troverai una macro Excel con sottoprogrammi per RFEM e RSTAB.
Si noti che la cartella in cui è stato creato il file deve esistere.