2015-12-07 3 views
0

J'ai créé une classe VB pour manipuler un projet CATIA. Le code VB est compilé dans une DLL chargée dans un projet C#.Exécution de la macro CATIA VBA en mode de traitement par lots à partir de Visual Studio

Imports ProductStructureTypeLib 
Imports INFITF 
Imports MECMOD 

Public Class MyCATIAClass 
    Private catia As INFITF.Application 

    Public Sub New() 
     catia = GetObject(, "CATIA.Application") 
    End Sub 

    Public Sub doStuff() 
     ' do stuff 
    End Sub 

End Class 

Et en C#:

MyCATIAClass catOb = new MyCATIAClass(); 
catOb.doStuff(); 

Cela fonctionne très bien. Ma question est: Est-il possible d'exécuter la méthode en mode batch? Cela augmenterait significativement la performance au moment de l'exécution.

Répondre

0

vous feriez mieux de créer un fichier de commandes (et appelez le vbfile de l'intérieur) et l'exécuter à partir du code C# par le code suivant Process.Start (« chemin de votre fichier batch \ nameOfBatchFile.bat »)

Avant cela pour créer un fichier de commandes dans un bloc-notes écrire les commandes suivantes et l'enregistrer comme fileName.bat

@echo on 
cd path of vbfileName  
start vbfileName 
0

pour exécuter des tâches sans visualisation, il suffisait de définir la propriété visible faux.

Imports ProductStructureTypeLib 
Imports INFITF 
Imports MECMOD 

Public Class MyCATIAClass 
Private catia As INFITF.Application 

Public Sub New() 
    catia = GetObject(, "CATIA.Application") 
End Sub 

Public Sub doStuff() 
    catia.Visible = False 
    ' do stuff 
End Sub 

End Class

0

début CATIA dans le lot: « C: \ cv5 \ B20 \ win_b64 \ Code \ bin \ CNEXT.exe -batch -env CATIA.V5R20.B20 -direnv C: \ cv5env \ CATEnv "