1024x
004499
2020-07-10

RSTAB/RFEM in background tramite l'interfaccia COM

Come posso aprire e chiudere RFEM/RSTAB in background tramite l'interfaccia COM?


Risposta:

Inizializzando una variabile del tipo di applicazione (interfaccia) con "nuovo", RFEM/RSTAB viene avviato in background. Ü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

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.


Autore

Il signor Günthel fornisce supporto tecnico per i clienti di Dlubal Software e si prende cura delle loro richieste.

Download


;