Astuce: créer un complément pour SOLIDWORKS qui réagit aux événements

Vous voulez écrire votre propre complément pour SOLIDWORKS qui réagit à certains événements ? Notre expert vous montre comment. En suivant ces 11 étapes, vous pouvez facilement ajouter une MessageBox vous-même ou créer d’autres compléments adaptés à vos besoins.

Pour commencer et créer un complément pour SOLIDWORKS, vous avez d’abord besoin d’un environnement de développement. Notre expert préfère Visual Studio, qui peut être téléchargé directement sur le site web de Microsoft (https://visualstudio.microsoft.com/fr/).

Etape 1

Une fois que vous avez fait ce téléchargement, nous pouvons créer un “Nouveau projet”. Pour cela, nous choisissons une bibliothèque de classe (.NET Framework).

Par la suite, tout nom est attribué au projet et le projet peut être créé.

Il nous faut maintenant attribuer les références SOLDIWORKS au projet. Pour ce faire, nous cliquons avec le bouton droit de la souris sur “Références” puis sur “Ajouter une référence”.

Etape 2

Dans la nouvelle fenêtre qui s’ouvre, nous cliquons sur “Parcourir”. Là, nous passons à notre répertoire SOLDIWORKS (pour moi c’est : C:\Program Files\SOLIDWORKS2020\SOLIDWORKS\SOLIDWORKS) et sélectionnons les fichiers suivants :

  1. Interop.sldworks.dll
  2. Interop.swconst.dll
  3. Interop.swpublished.dll

Pour terminer cette étape, on clique sur “ajouter”.

Etape 3

Dans les paramètres du projet (clic droit sur la solution -> paramètres), nous devons rendre notre COM- visible sous les informations de montage.

Maintenant, vous êtes prêt à y aller.

Etape 4

Nous devrions déjà avoir notre document Class1.cs ouvert. Nous pouvons bien sûr le renommer si nous le souhaitons.

Maintenant, nous ajoutons les 3 dll à notre zone d’utilisation en ajoutant ces 3 lignes tout en haut du document :

  • using SolidWorks.Interop.sldworks;
  • using SolidWorks.Interop.swconst;
  • using SolidWorks.Interop.swpublished;

En outre, nous ajoutons également l’utilisation suivante:

  • using System.Runtime.InteropServices;

et écrivez au-dessus de la classe:

  • [Guid(“B0E96179-3455-46CE-AFC4-EBD875A76446”), ComVisible(true)]

Le GUID peut être créé sous la rubrique Outils – “Créer un GUID” entre autres.

Etape 5

Ensuite, nous dérivons notre classe de «ISwAddin» et nous importons l’interface. Notre code ressemble alors à ceci :

Etape 6

L’objet “ThisSW”, qui contient l’instance de SOLIDWORKS, doit maintenant être converti en un objet SldWorks. Ensuite, nous pouvons attacher nos événements à cet objet.

Vous pouvez voir quels événements sont disponibles sous ce lien :

https://help.solidworks.com/2020/english/api/swconst/solidworks.interop.swconst~solidworks.interop.swconst.swappnotify_e.html?verRedirect=1

Etape 7

Maintenant que nous avons choisi l’événement requis, nous pouvons le relier à l’objet SldWorks en créant une nouvelle méthode et en l’associant à l’événement.

Dans mon exemple, j’ai choisi l’événement “FileOpenPostNotify” et j’ai affiché une “MessageBox”. Maintenant, notre programme devrait ressembler à ceci:

Etape 8

Pour que notre programme soit reconnu correctement, nous devons l’enregistrer.

Pour cela, nous ajoutons un autre Using:

  • using System.Runtime.InteropServices;

et ajouter les méthodes suivantes à notre code:

Ici aussi, nous devons adapter la description et le titre:

  • SetValue(“Description”, “DESCRIPTION ICI”);
  • SetValue(“Title”, “TITRE ICI”);

Etape 9

Ces méthodes ont déjà été configurées de sorte qu’il n’y a plus rien à définir ici.

Une fois que nous avons inséré ces méthodes, nous pouvons créer notre programme et ensuite l’enregistrer. Pour ce faire, nous ouvrons notre invite de commande (bouton de démarrage et tapez “cmd”. Des privilèges d’administrateur peuvent être exigés à cet effet).

Pour enregistrer notre complément, nous entrons la commande suivante et remplaçons le chemin de notre DLL créée (dans le répertoire du projet sous bin\Release ou bin\Debug) :

  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe “PFAD ZUR DLL” /tlb /codebase

Pour défaire cela, nous entrons dans cette commande :

  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe ” PFAD ZUR DLL” /U /tlb /codebase

Etape 10

Nous devrions maintenant avoir reçu cette sortie et il devrait y avoir un nouveau fichier avec l’extension tlb dans notre répertoire :

Etape 11

Si tout a fonctionné, la MessageBox souhaitée apparaîtra maintenant après l’ouverture d’un fichier:

Nous espérons que vous avez apprécié ce conseil technique et qu’il vous facilitera le travail quotidien avec SOLIDOWORKS.

Amusez-vous bien à utiliser et à créer un complément pour SOLIDWORKS.

Auteur de l'article

Martin Möllenhoff, R&D Developper chez Visiativ Solutions Switzerland