Mise en place d'un plugin Inventor


La création d’un plugin permet d’avoir un point d’entrée pour tout traitement automatisé au sein d’une application, ici Inventor.

Présentation globale  
Au démarrage d’Inventor, le plugin est chargé et les fonctionnalités mises à la disposition de l’utilisateur sont disponibles depuis un onglet personnalisé dans le ruban. Nous allons créer un plugin pour Inventor 2021, ajouter un bouton dans un nouvel onglet du ruban et ouvrir un panneau ancrable à l’appui sur ce bouton. 

Création d’un plugin Inventor 

  • Créez un nouveau projet .Net de Bibliothèque de classes?: 

Dans cet exemple, le projet se nomme «?MyInventorPlugin?». 

  • Ajouter la librairie suivante à vos références?: 

C:\Program Files\Autodesk\Inventor 2022\Bin\Public Assemblies\Autodesk.Inventor.Interop.dll 

  • Passez cette classe en public et implémentez l’interface « ApplicationAddInServer?» à la classe de notre projet?: 

Dans cet exemple, la classe s’appelle «?AddInServer?», ce sera le point d’entrée de notre plugin. 

Les deux méthodes qui nous intéressent sont?:  

  • «?Activate?» qui représente les actions exécutées par Inventor lorsque le plugin est chargé. 
  •  «?Deactivate?» qui représente les actions exécutées par Inventor lorsque le plugin est déchargé. C’est ici qu’il faut libérer en mémoire les différents objets du programme. 
  • Afin qu’un plugin soit reconnu par Inventor, il faut impérativement renseigner certaines informations. Ajoutez les attributs ProgId et GuidAttribute à notre classe, comme ci-dessous?: 
  • Ajoutez également un constructeur par défaut à notre classe?: 
  • Dans le répertoire du projet, créez un fichier «?MyInventorPlugin » avec l’extension .addin 
  • Ouvrez ce fichier et remplissez le contenu comme ci-dessous?: 
  • Le contenu des balises «?ClassId?» et «?ClientId?» doivent correspondre au Guid renseigné dans notre classe précédemment. 
  • Le contenu de la balise «?Assembly?» doit correspondre au nom de notre dll. 
  • Rendez-vous ensuite dans les propriétés du projet, plus précisément dans la section «?Application?», cliquez sur «?Informations de l’assembly…?»?et cochez la case «?Rendre l’assembly visible par COM?» : 
  • Le plugin est prêt à démarrer dans Inventor. Pour cela, lancez la génération de votre projet dans Visual Studio, copiez la librairie générée, ainsi que le fichier addin dans un nouveau répertoire que vous créerez à l’emplacement suivant?: 

C:\ProgramData\Autodesk\Inventor Addins 

Dans cet exemple, nous avons créé le répertoire «?MyInventorPlugin?»?: 

Vous pouvez maintenant lancer Inventor. Au démarrage de l’application, la fenêtre suivante apparait?: 

Il s’agit d’une sécurité car l’application Inventor vient de détecter que notre plugin n’est pas signé. 

  • Cliquez sur «?Lancer le Gestionaire de complements », la fenêtre suivante apparait?: 
  • Décochez «?Bloquer?», puis cochez «?Charger?» et cliquez sur «?OK?». 
    Le plugin est chargé bien qu’il ne fasse encore rien. Nous allons maintenant ajouter un bouton dans un nouvel onglet du ruban. 

Création d’un bouton dans le ruban 

  • Pour commencer, ajoutez les instructions suivantes dans la méthode Activate() de notre classe?: 

Le code ci-dessus récupère l’instance courante de l’application Inventor, le GUID associé à notre plugin et lance la méthode?où nous allons ajouter un bouton au ruban. 

  • Ajoutez ensuite la nouvelle méthode appelée «?AddButtonToInventor?»?et ajoutez-y les lignes suivantes?: 
  • Le ruban Inventor dispose maintenant, dans le cas d’une pièce Inventor, d’un onglet «?Test Tab?» avec un bouton. Pour le moment, rien ne se passe si on appui sur ce bouton. 
    Nous allons y ajouter un évènement et une action. Pour se faire, on ajoute, à la suite, un évènement au clique sur notre bouton?: 
  • On ajoute également la méthode qui représente le code exécuté par cet évènement?: 
  • Cette fenêtre est vide mais vous pouvez y ajouter un user control, aussi bien en WPF qu’en WinForm. 
  • Afin de pouvoir utiliser un user control en WPF, ajoutez un contrôle utilisateur WPF au projet?: 

Ajoutez au moins un contrôle à votre formulaire WPF. 

  • Ajoutez également un contrôle utilisateur WinForm. 
  • Après la création de la fenêtre ancrable,?Remplacez le code précédent comme suit : 
  • Lancez Inventor, créez ou ouvrez une pièce et vous pourrez voir que notre bouton a bien été ajouté à l’onglet «?Test Tab?»?: 
  • En cliquant sur ce bouton, la fenêtre ancrable apparait?: 

Notez qu’en cliquant de nouveau sur le bouton, la visibilité de la fenêtre s’inverse. 

Félicitations, nous avons créé un plugin Inventor permettant d’afficher un formulaire ancrable via un bouton dans le ruban?!