CATIA VBA – Von CATVBA zu CATVBA

Bestimmt haben sich einige schon gefragt, wie man die CATMain Prozedure aus verschieden CATVBA aufrufen kann.

Beispiel:

Ihr habt zwei CATVBA-Dateien

1. meineErsteCatVBADatei.CATVBA
2. meineZeiteCatVBADatei.CATVBA

 

Jetzt wollt Ihr einen Aufruf von der ersten meineErsteCatVBADatei.CATVBA zur zweiten meineZeiteCatVBADatei.CATVBA machen.

Und das geht so.

 

Public Function startArbeitsinhalteUpdate()

Dim sFilePath As String
Dim sFileName As String
Dim sModule As String
Dim sProcedure As String
Dim sFilePathAndName As String
Dim CatSysServ As Variant
Dim Params(5) As Variant
Dim vRetVal As Variant
'Everything here is Case-Sensitive
sFilePath = "C:\Temp\CATVBA-VERZEICHNIS\"
sFileName = "meineZeiteCatVBADatei.CATVBA"
'Euer Modulname in dem sich die Prozedure CATMain befindet
sModule = "Module1"
sProcedure = "CatMain" 'CatMain ist übrigens die einzige Prozedur die Ihr aufrufen könnt.

'Zusammen führen des Pfades und des Dateinamens
sFilePathAndName = sFilePath & "" & sFileName
'Wichtig: Deklariert zuvor ein Objekt und dann weist Ihr mit SET den Service zu. Ansonsten hat es zumindest bei mir Probleme gegeben.
Set CatSysServ = CATIA.SystemService
'Ausführen
vRetVal = CatSysServ.ExecuteScript(sFilePathAndName, catScriptLibraryTypeVBAProject, sModule, "CATMain", Params)
'Rückgabewert wird dem Funktionsaufruf übergeben.
startArbeitsinhalteUpdate = vRetVal

End Function