Astuce SOLIDWORKS Add-In

L’article suivant décrit comment créer, lire et modifier les options dans SOLIDWORKS à l’aide de Microsoft Visual Studio et du langage C#.

1. Introduction

Dans des TecTips précédents publiés, il était expliqué comment vous pouvez utiliser les fonctions de SOLIDWORKS dans des applications autonomes lancés et utilisés depuis SOLIDWORKS. En pratique, il arrive fréquemment que les utilisateurs utilisent des fichiers séparés pour exécuter diverses fonctions dans SOLIDWORKS parce qu’il est souvent plus facile ou plus rapide de l’écrire de cette façon. Néanmoins, en suivant les étapes énoncées dans ce TecTip vous pourrez programmer rapidement et facilement une application lancé directement depuis et dans SOLIDWORKS !

Ce TecTip va donc expliquer comment vous pouvez écrire un AddIn afin qu’une DLL soit chargée directement dans SOLIDWORKS.

2. Création de l'Add-In

2.1 Créer un projet

La première étape est de créer un nouveau projet dans Microsoft Visual Studio. Pour cela, aller dans l’onglet « Create a new Project »/« Créer un nouveau Projet » puis sélectionner « Class Library (.NET Framework) »/« Bibliothèque de classes (.NET Framework) ». Lors de la création, le nom du projet et de la solution peut librement être choisi à l’étape suivante.

Figure 1 : Création d’un nouveau projet dans Visual Studio

La gestion des paquets s’effectue directement dans Microsoft Visaul Studio, en sélectionnant dans l’onglet « Project »/« projet », la ligne « Manage Nuget Packages »/« “Gérer les packages Nuget…”.

Pour plus d’informations sur la gestion de paquet Nuget dans Visual Studio, voir la documentation officielle Microsoft au lien suivant : https://learn.microsoft.com/en-us/nuget/consume-packages/install-use-packages-visual-studio.

Dans le « NuGet Package Manager »/ »gestionnaire de paquets Nuget », vous pouvez ensuite rechercher les paquets publiés par Visiativ, en filtrant par nom, en haut à gauche, puis en sélectionnant le paquet concerné, ici « Visiativ SOLIDWORKS Interop », dans la fenêtre de sélection en bas à gauche, qui affiche dans la fenêtre de visualisation à droite, une description de ce paquet ainsi que le bouton « Install »/« Installer ».

Figure 2 : Ajout de l’API SOLIDWORKS

Télécharger et installer ainsi la version appropriée du paquet« Visiativ SOLIDWORKS Interop ».

2.2 Structure de la classe

Lorsqu’une classe implémente l’interface ‘SwAddin’, la structure de base de la classe devrait ressembler à ceci :

En principe, l’addin peut maintenant être chargé, mais il doit également bénéficier d’un contexte pour cela. Par exemple : donner une entrée de menu en contexte afin qu’une certaine fonction puisse être démarrée.

La classe se voit automatiquement attribuer un GUID et l’attribut ComVisible est défini comme vrai (‘true’).

Dans la méthode Connect, est stockée la référence à SOLIDWORKS et le cookie associé.

Le CallBack est également défini à cet endroit, de sorte que ce complément soit appelé dès que quelque chose est exécuté. Le gestionnaire de commandes SOLIDWORKS est également interrogé et un nouveau groupe de commandes est créé avec lui.

Plus de détails sur les paramètres individuels peuvent être trouvés à l’URL suivante : https://help.solidworks.com/2023/english/api/sldworksapiprogguide/OVERVIEW/CommandManager_and_CommandGroups.htm

Lors de l’appel de AddCommandItem2, il est important que les paramètres de chaîne avec les valeurs actuelles Main et EnableButton aient les mêmes noms que les méthodes de cette classe.

Ceux-ci seront appelés ainsi plus tard. La méthode EnableButton peut être utilisée pour définir quand la fonction peut être appelée. La méthode principale peut ensuite être utilisée pour spécifier ce que cet Add-in doit faire. Si le processus de connexion se passe correctement alors la valeur vrai (‘true’) est renvoyée. Une méthode DisconnectFromSW est également construite, afin de finir en libérant toutes les ressources.

3. 3 Enregistrement de l’Add-In

Afin de pouvoir charger correctement le complément dans SOLIDWORKS, il faut 2 étapes. Premièrement, le fichier DLL créé doit d’abord être enregistré sur le PC. Dans une console Windows démarrée avec les droits d’administrateur et la commande suivante doit être exécutée :

“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe”  /codebase “PATH_TO_DLL”

Le texte PATH_TO_DLL doit être remplacé par le chemin complet de la DLL à enregistrer.
Si la commande réussie, le texte ‘TTypes enregistrés avec succès’ est affiché dans la console.
La deuxième étape est que la DLL doit être enregistrée dans le registre SOLIDWORKS.
Pour cela, démarrez l’éditeur de registre Windows ‘regedit.exe’ depuis une console administrateur et enregistrer une nouvelle clé de registre dans le répertoire de registre suivant :

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\SolidWorks\AddIns

Ensuite, une nouvelle clé doit être créée avec le GUID de l’Addin. Cette clé a alors 2 valeurs pour Description et Titre, qui seront-celles affichées dans SOLIDWORKS.
Une fois terminé, l’entrée devrait ressembler à ceci :

Figure 3 : Entrée enregistrée dans l’éditeur de registre (Regedit.exe)

4. Résultat

Si toutes les étapes ont été effectuées avec succès, SOLIDWORKS peut être démarré. Maintenant, le complément que vous venez de créer doit être répertorié sous Outils-> Compléments et il doit également y avoir un bouton sous Outils qui appelle ce complément.

Figure 4 : Résultat

Le code dans son ensemble, peut être librement téléchargé depuis notre profil GitHub :

https://github.com/VisiativSwiss/TecTip_SOLIDWORKS_ADDIN

Auteur de l'article

Martin Bartolomé, Développeur R&D chez Visiativ Solutions Switzerland