1024x
004499
2020-07-10

RSTAB/RFEM em segundo plano através da interface COM

Como é que posso abrir e fechar o RFEM/RSTAB em segundo plano através da interface COM?


Resposta:

Ao iniciar uma variável do tipo Aplicação (interface) com "new", o RFEM/RSTAB é iniciado em segundo plano. Com esta variável, também pode criar um novo modelo utilizando o método "CreateModel" ou fechar o programa utilizando o comando "Close".

O exemplo a seguir mostra como iniciar o RSTAB, criar um modelo com um nó no programa e fechar, novamente, o programa:

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

O comando "iApp.Show" é opcional. Este permite apresentar o programa normalmente e não em segundo plano.

Em Downloads, pode encontrar uma macro do Excel com as sub-rotinas para o RFEM e o RSTAB.

Tenha em atenção que a pasta onde o ficheiro é criado tem de existir.


Autor

O Eng. Günthel opera na área do apoio técnico para clientes.

Downloads


;