599x
001545
2020-07-10

[IT] FAQ 004499 | Come posso aprire e chiudere RFEM/RSTAB in background tramite COM...

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.