Un petit logiciel pour convertir tout un répertoire de Catpart et de Catproduct en Step, 3DXML, Vrml, IGES ou encore STL.

Vous en aviez rêvé ?

Apprendre-la-CAO la fait pour vous !

Oui mais comment ?
En VB. Net avec une interface Windows Form.
Bien sûr il faut que Catia soit installé sur le PC mais ce petit logiciel fera travailler Catia en tâche de fond pour faire de très nombreuses conversions sans que vous ayez à les ouvrir une à une.

Une application VB.Net pour convertir en masse des documents 3D Catia V5 vers des formats standards.

Je voulais me faire plaisir en apprenant à programmer en VB.Net.
Alors pourquoi ne pas faire une application qui vous serait également utile ?

Peut être avez vous comme moi quelque fois le besoin de transformer tout un répertoire de modèle Catia V5 en Step ou en STL ?
Pour imprimer plein de petites pièces en 3D par exemple ??

Appli Conversion format Catia V5 VB.net

Que fait ce petit programme ?

Un a un, il ouvre les documents CatPart et Catproduct du répertoire d’origine et les enregistre sous le répertoire de destination sous un autre format (celui choisi).

Rassurez-vous, il ne modifie pas vos documents d’origine.
Il ne fait que les ouvrir et les fermer.

Avant propos

Mon but étant de partager avec vous mes avancées en programmation et en pilotage de Catia, vous comprendrez qu’il n’y a évidemment pas de cochonnerie à l’intérieur (virus et compagnie).
Votre antivirus le regardera peut être de travers au premier abord mais faites lui examiner et vous verrez qu’il n’y a rien de méchant dedans.

Aussi, je ne suis pas développeur informatique. Cette application est gratuite et est données telle quelle.
Si vous n’êtes pas confiant, ne l’utilisez pas ou faites des essais sur des modèles sans valeur.

En tout cas, de mon côté, il fonctionne et me rend service.

La vidéo de l’article

Comment s’en servir ?

Lancement

Il suffit de lancer l’application “Conversion CV5.exe” que vous aurez téléchargée en bas de cette page.
Celle-ci a été faite par mes soins à l’aide de Visual Basic Express 2010.
Cela lance l’application et lance Catia en même temps mais vous ne le voyez pas car j’ai mis dans le code une ligne qui fait que la fenêtre graphique de Catia ne s’affiche pas.

CATIA.Visible = False

Si Catia est déjà lancé, elle l’utilise et laisse l’affichage de sa fenêtre dans Windows.

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

       'essaie d'appeler l'application Catia et si ça ne marche pas alors la lance

       Try
           Dim CATIA As INFITF.Application = GetObject(, "CATIA.Application")
           CATIA.Visible = True

       Catch ex As Exception

           Dim CATIA As INFITF.Application
           CATIA = CreateObject("CATIA.Application")
           CATIA.Visible = False

       End Try

  End Sub

Mode d’emploi

Tout d’abord, on choisit le répertoire d’origine, celui où se trouvent les modèles à convertir. Il peut y avoir d’autres fichiers ou répertoires dedans, le programme n’en tiendra pas compte.

Appli Conversion format Catia V5 VB.net repertoire d'origine

Cela ouvre une boite de dialogue dans laquelle vous choisissez ce répertoire.

Appli Conversion format Catia V5 VB.net choix du repertoire d'origine

Validez alors avec Ok. Le programme donne le nombre de documents de type Catpart et Catproduct trouvés et le deuxième bouton devient actif.

Appli Conversion format Catia V5 VB.net repertoire de destination

Cliquez sur le bouton “Répertoire de Destination” et sélectionnez le répertoire dans lequel vous voulez placer vos nouveaux fichiers convertis.
Vous pouvez d’ailleurs à ce niveau créer un nouveau répertoire.

Validez par Ok et le bouton “Exécuter” s’active.

Choisissez le format standard de conversion parmi ceux affichés à cotés des boutons Radio.

Vous pouvez lancer le traitement et une barre d’avancement vous montre où vous en êtes.

Appli Conversion format Catia V5 VB.net avancement

Le bouton Quitter pour quitter l’application et Catia en même temps.

Mise en garde

Donc attention, si vous aviez déjà un travail en cours dans Catia, il sera perdu si vous ne l’avez pas enregistré avant de lancer le traitement de masse.

Il y a dans le code cette ligne:

CATIA.DisplayFileAlerts = False

Cela permet de supprimer les alertes de Catia pour éviter les messages d’erreur du type « Ce fichier existe déjà, voulez vous l’écraser ? ».

Cela permet de faire du traitement de masse sans vous demander à chaque fois si vous voulez ou non écraser votre fichier Step du même nom.

En même temps cela fera que Catia ne vous demandera pas si vous voulez vraiment quitter sans avoir enregistré votre travail en cours !!

Le bout de code qui pilote Catia

Je vous épargne les longues lignes de code purement VB.Net qui permettent de gérer l’interface WindowsForm.

La partie intéressante est celle-ci.
Le document Actif est exporté dans le format souhaité et non enregistré sous.
Il faut lui donner ceci (Méthode ExportData)

DocumentActif.ExportData(CheminCompletDuDocument , FormatDuDoc)

avec “FormatDuDoc” étant au format String:
« stl », « igs », « stp », « 3dxml », ….

et CheminCompletDuDocument au frormat String également quelque chose du genre
« C:/MonRepertoire/MonFichier.stp ».

Il faut noter ici le nom complet avec l’extension, même si l’on spécifie le format après la virgule.
Il faut s’arranger pour que ce soit cohérent tout de même.

Dans mon code c’est cette partie qui fait vraiment le travail:

partDocument1 = CATIA.Documents.Open(CheminCompletInput)

partDocument1.ExportData(PathDestination & "\" & shortfilename & ChoixExtension, Extension)

partDocument1.Close()

Avec “PathDestination” (format string) le chemin jusqu’au répertoire de destination
”shortfilename” (format string) le nom de la Catpart sans l’extension
”ChoixExtension” (Format String) l’extension. Quelque chose du genre “.stp” avec le point.
”Extension” (format string) comme expliqué plus haut le format d’export du genre “stp” (sans le point).

Quelque part dans le code, je regarde quel bouton Radio est actif et je donne la valeur correspondante aux deux variables de ExportData.

par exemple:

If RadioButtonSTEP.Checked = True Then
            ChoixExtension = ".stp"
            Extension = "stp"
End If

Une autre moulinette va scanner le répertoire d’origine et compter les Catpart et Catproduct pour en faire une liste.
Enfin une boucle va, un à un, prendre chaque élément de la liste (les docs  Catpart et Catproduct), va les ouvrir et, avec ExportData, va les exporter sous le format souhaité et enfin les fermer.

Conclusion

Voici un petit programme simple à réaliser permettant de gagner du temps sur un traitement de masse.
J’espère que cela vous rendra service.
Si vous avez d’autres idées de moulinette simple, lancez-vous avec VisualBasic.Net ou mettez le en commentaire ci-dessous.

L’application à télécharger gratuitement

2 Responses

  1. Bonjour,

    J’adore vraiment vos tutos et votre site. Il est d’une qualité sans équivalent sur la toile.
    Je côtoie depuis 10 ans Catia V5 R19 et pourtant je n’en finis jamais d’apprendre, notamment grâce à vous.

    J’ai une question à poser. (en fait plein mais je me retiens).
    L’astuce qui consiste à écrire du texte dans un Catdrawing, sauver en DXF, importer puis projeter en surfacique est tellement pénible…
    Tout cela est d’un autre temps…
    Donc ma question est: Comment faire une macro ou du VB.net pour prévisualiser puis écrire du texte 3D sur une surface gauche et/ou le long d’une spline avec Catia V5 ?

    Voila un manque qui enquiquine bien des utilisateurs de Catia depuis longtemps. A relever ce défi, je crois que vous feriez bien des heureux (à commencer par moi).
    A minima, si vous pouviez apporter des éléments de réponse à cet épineux problème…

    Que vous releviez le défi ou pas, quoi qu’il en soit, merci pour votre site et la qualité de vos explications. C’est top !

    Christophe Scherg

    • Bonjour Christophe,
      Oui, nous sommes d’accord, ce genre de chose devrait être natif sur V5.
      Vous n’êtes pas le premier à m’en soumettre l’idée.
      Il existe une solution logiciel (un greffon) pour catia qui fait ça super bien.
      C’est Type3. Bon, c’est pas donné c’est sûr mais pour une entreprise qui fait des pneus ou des objets qui sont bardés d’écritures en relief, c’est plus que nécessaire.

      Pour en revenir au sujet, on pourrait, en effet en macro, faire une partie de ce que fait Type3 mais cela demanderait des heures de programmation. Il faudrait donc en avoir régulièrement l’utilité pour que cela soit rentable (je ne parle pas d’argent mais juste de temps).
      Le faire à la main est fastidieux certes mais cela dépanne une fois de temps en temps. Je m’en tiens là, désolé.

      Mais si vous vous lancez dans l’aventure scripturale, nous pouvons alors gamberger tous les deux.

      En tout cas, merci pour ce commentaire, ça me fait plaisir.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.