941x
004499
10.07.2020

Question

Comment ouvrir et fermer RFEM/RSTAB en arrière-plan via l'interface COM ?


Réponse:

En initialisant une variable de type Application (interface) avec « new », RFEM/RSTAB est lancé en arrière-plan. Avec cette variable, vous pouvez également créer un nouveau modèle à l'aide de la méthode « CreateModel » ou fermer le logiciel à l'aide de la commande « Close ».

L'exemple suivant montre comment démarrer RSTAB, créer un modèle avec un nœud dans le logiciel et fermer le logiciel :


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


La commande « iApp.Show » est facultative. Cela permet d'afficher le logiciel normalement, pas en arrière-plan.

Sous Téléchargements, vous trouverez une macro Excel avec les sous-programmes pour RFEM et RSTAB.

Veuillez noter que le dossier dans lequel le fichier est créé doit exister.