CreateObject avec l'application Catia V6

3dflix Messages postés 43 Date d'inscription dimanche 9 mars 2003 Statut Membre Dernière intervention 20 février 2013 - 7 févr. 2013 à 17:48
3dflix Messages postés 43 Date d'inscription dimanche 9 mars 2003 Statut Membre Dernière intervention 20 février 2013 - 10 févr. 2013 à 21:28
Bonjour à la communoté

Nombreux d'entre vous connaissent la ligne de commande Set Excel=CreateObject("Excel.Application") qui permet de piloter Excel depuis un vbs par exemple.
J'ai longtemps piloté catia V5 grâce à ça CreateObject("Catia.application")

Maintenant je souhaite l'utiliser pour Catia V6 mais je n'y arrive pas.

Connaissez-vous le nom de l'objet COM de Catia V6?
Comment récupérer la liste complète des objets COM disponibles sur ma machine?


Merci!

3dflix

9 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 févr. 2013 à 18:01
Bonjour,
1) j'ignore tout de Catia
2) si tu nous dis que CreateObject("Catia.application") fonctionnait avec la V5 de Catia, il est probable que cela fonctionne également avec sa version V6
J'appelle toutefois ton attention sur le fait qu'il s'agit là d'une liaison tardive (late Binding). Les liaisons tardives ne nécessitent aucune référence cochée à l'application. Si, dans ton appli, tu as coché une référence à Catia, décoche-la car elle vient jouer au trouble-fête et qu'elle n'a aucune raison d'être là !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 févr. 2013 à 19:06
Salut

Tu es vraiment dans VB6 ou bien dans VBA - ça peut changer les réponses/méthodes.

Comme le dis ucfoutu, les liaisons tardives n'ont pas besoin de référencer les objets, mais pour le développement initial, ça peut donner des infos précieuses :
VB6 ou VBA : Ajoute la bibliothèque de ton Catia6 dans ton projet - Tu la supprimeras ultérieurement si tu le veux.
Appuie sur F2 qui ouvrira l'explorateur d'objet.
En sélectionnant la bibliothèque Catia6, tu découvrira tous les objets. Je pense que tu trouveras ta réponse dedans.

En faisant un CreateObject, tu crées une liaison avec un serveur COM de ton programme. Ton application devenant un client COM.
Entre la version 5 et 6, je pense que la technique n'a pas changée.
Malgré tout, renseigne toi, car les objets COM vont disparaitre d'ici quelques années; ne seront plus supportés par les OS.
Si le moteur/server fonctionne toujours en COM, il est possible qu'ils aient changés le nom du serveur, histoire de pouvoir continuer à faire fonctionner plusieurs versions sur une même machine; peut-être est-ce
CreateObject("Catia6.Application")
Qui sait ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
0
3dflix Messages postés 43 Date d'inscription dimanche 9 mars 2003 Statut Membre Dernière intervention 20 février 2013
8 févr. 2013 à 22:05
Je ne connais pas ce concept de liaison tardive (Je vais d'ailleurs aller me documenter car je n'ai pas très bien compris)

Je n'ai aucune référence liée à Catia de cochée dans mon appli. A vrai dire, il existe tellement de référence pour Catia que je n'est pas trouvé les bonnes.

Je code avec VBA Excel.

Qu'elle alternative existe t'il aux objets COM si ils tendent à disparaitre?

3dflix
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
8 févr. 2013 à 22:17
Je ne connais pas ce concept de liaison tardive

Ah ?
Et c'est pourtant bel et bien une liaison tardive que tu utilises dans ton code
Tu "fonctionnes" comment, quand tu développes ?


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
9 févr. 2013 à 02:30
Les liaisons tardives consistent à dimensionner un objet "As Object" au lieu de lui associer un véritable type.
L'avantage de ce premier choix est que ton programme ne fait pas référence à une bibliothèque, donc est relativement indifférent aux changements de versions de la DLL visée.
L'inconvénient majeur, c'est que pour programmer, c'est la galère puisque l'éditeur VB ne connait pas les propriétés et méthodes de l'objet et donc, ne peut pas te les proposer lorsque tu tapes le point derrière un nom d'objet.

Une des solutions qui tire avantage de chaque méthode est :
- de déclarer la bibliothèque (DLL ou TLB) en référence dans ton projet
- de dimensionner le serveur COM avec le type défini dans la bibliothèque.
Tu auras ainsi, durant la phase de développement, tous les accès aux détails de chaque objet (y compris l'explorateur F2).
Une fois que ton programme est au point, il te suffit de remplacer la déclaration de ton objet par un beau "As Object" puis de supprimer la référence du projet.
0
3dflix Messages postés 43 Date d'inscription dimanche 9 mars 2003 Statut Membre Dernière intervention 20 février 2013
10 févr. 2013 à 01:31
Ok, je comprend.

Effectivement, vb ne m'aide pas à l'écriture. Du coup j'utilise l'espion ainsi que l'aide de dév Catia.

Connaissez-vous une technique pour récupérer la liste des objets COM disponibles sur ma machine?


3dflix
0
Utilisateur anonyme
10 févr. 2013 à 02:10
Bonjour,

Connaissez-vous une technique pour récupérer la liste des objets COM disponibles sur ma machine?



En Windows 7, il y a OLEView qui vient avec le SDK de Windows 7 et disponible à quelque part sur le le site de Microsoft.

Il y a aussi COM REGISTRY BROWSERchez Code Plex

Pour les programmeurs VB.net, il y a Type Library Browser.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 févr. 2013 à 07:46
Effectivement, vb ne m'aide pas à l'écriture. Du coup j'utilise l'espion ainsi que l'aide de dév Catia.

Il faut aller encore plus loin dans ce sens-là, lorsque l'on "pilote" une application tierce qui supporte l'automation.
Ne pas hésiter, bien au contraire, à traiter d'abord chaque problème DEPUIS cette application à piloter elle-même. Cette méthode de travail permet généralement de favoriser l'optimisation. Une fois cette question réglée à notre meilleure satisfaction, il devient très simple d'utiliser le code ainsi "arrêté" depuis l'appli pilote. Il suffit généralement de faire précéder par les objets créés pour "piloter" cette application externe.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
3dflix Messages postés 43 Date d'inscription dimanche 9 mars 2003 Statut Membre Dernière intervention 20 février 2013
10 févr. 2013 à 21:28
En Windows 7, il y a OLEView qui vient avec le SDK de Windows 7 et disponible à quelque part sur le le site de Microsoft.

Il y a aussi COM REGISTRY BROWSER chez Code Plex


Problème, je n'ai pas les droits admin sur cette machine. donc pas d'installation possible de compléments.

Un autre solution avec les dll standards?

3dflix
0
Rejoignez-nous