Automatisation de la conception avec les macros SolidWorks : guide VBA
La macro SolidWorks est un outil puissant qui automatise les opérations de conception répétitives et démultiplie la productivité des ingénieurs. Si vous répétez chaque jour les mêmes étapes, vous pouvez écrire une macro SolidWorks et accomplir ce processus en quelques secondes. Dans ce guide, nous détaillons les fondamentaux de la programmation de macros VBA dans SolidWorks ainsi que des exemples pratiques dans le domaine de la tôlerie.
Qu’est-ce qu’une macro SolidWorks et à quoi sert-elle ?
Cet outil désigne des scripts d’automatisation écrits à l’aide de l’API SolidWorks. Ils sont rédigés en VBA (Visual Basic for Applications) et enregistrés avec l’extension .swp. Les macros peuvent être enregistrées via Tools > Macro > Record dans la barre de menus, ou écrites de zéro.
Le plus grand avantage des macros est d’automatiser les opérations répétitives. Imaginez que vous répétiez les mêmes 15 étapes dans chaque conception. Si cette opération est effectuée 10 fois par jour, vous y consacrez environ 625 heures par an sur la base de 250 jours ouvrés. Avec une macro, vous pouvez ramener ce temps à moins de 50 heures.
L’API SolidWorks offre une bibliothèque de fonctions très étendue. Presque toutes les opérations peuvent être programmées : ouverture, modification et enregistrement des fichiers Part, Assembly et Drawing, ajout de propriétés personnalisées, création de nomenclatures (BOM) ou encore export PDF.
Fondamentaux de l’automatisation par macro SolidWorks avec VBA
Vous accédez à l’éditeur VBA de SolidWorks via Tools > Macro > New. Une macro SolidWorks de base commence par la structure suivante : les lignes Dim swApp As SldWorks.SldWorks et Set swApp = Application.SldWorks établissent l’accès à l’application SolidWorks.
Pour accéder au document actif, on utilise les lignes Dim swModel As ModelDoc2 et Set swModel = swApp.ActiveDoc. Ces deux lignes constituent la base de presque toutes les macros. Vous pouvez ensuite accéder à la géométrie, aux fonctions et aux configurations via swModel.
Pour intercepter les erreurs, il est important d’ajouter une gestion d’erreurs avec une ligne On Error GoTo. Si aucun fichier n’est ouvert ou si aucune sélection n’a été faite pendant l’exécution de la macro, le programme ne doit pas planter, mais afficher un message explicite à l’utilisateur.
Utilisation de l’API SolidWorks
L’API SolidWorks repose sur quatre modèles d’objets principaux. L’objet SldWorks représente l’application. ModelDoc2 représente le document ouvert. PartDoc, AssemblyDoc et DrawingDoc offrent des fonctions propres à chaque type de document. Les objets Feature, Body et Face donnent accès au niveau de la géométrie.
Le fichier SolidWorks API Help est votre principale source de référence. L’API Help livrée avec l’installation de SolidWorks documente tous les objets, méthodes et propriétés avec des explications détaillées et des exemples de code.
Toutes les fonctions Sheet Metal décrites dans notre guide de conception de tôlerie SolidWorks sont également accessibles via l’API. Vous pouvez ainsi automatiser les opérations de tôlerie par macro.
Exemples de macros pour la tôlerie
L’un des exemples de macro SolidWorks les plus utilisés est la macro d’export DXF en série. Cette macro enregistre automatiquement au format DXF les développés de toutes les pièces de tôlerie d’un fichier Assembly. Un fichier DXF distinct est créé pour chaque pièce, et le nom du fichier reprend le numéro de pièce.
Le deuxième exemple populaire est la macro de mise à plat automatique. Elle ouvre la fonction Flat Pattern de la pièce de tôlerie active, lit les dimensions du développé et les inscrit dans les propriétés personnalisées (Custom Properties). Ces informations sont utilisées dans la nomenclature (BOM) et le plan de découpe.
Le troisième exemple est la macro de création automatique de nomenclature (BOM). Elle lit toutes les pièces du fichier Assembly, collecte la matière, l’épaisseur, la quantité et les dimensions, puis les exporte vers un fichier Excel. Cette macro fait gagner un temps considérable, notamment lors de l’envoi de commandes à un sous-traitant.
Astuces avancées et performances des macros SolidWorks
Pour améliorer les performances d’une macro, utilisez les lignes swModel.SetAddToPart = False et swApp.CommandInProgress = True. Ces réglages désactivent le rafraîchissement de l’écran et l’enregistrement de l’historique des commandes, ce qui accélère nettement l’exécution de la macro.
Pour les opérations basées sur les configurations, vous pouvez passer d’une configuration à l’autre avec la méthode swModel.ShowConfiguration2. En générant un DXF ou un PDF distinct pour chaque configuration, vous automatisez la gestion multi-variantes.
En compilant vos macros en Add-In plutôt qu’en .swp, vous pouvez ajouter un bouton à la barre d’outils SolidWorks. La macro devient ainsi accessible en un seul clic. Dans notre article dessin technique et nomenclature (BOM), nous avons également abordé l’automatisation de la documentation.
Calcul du gain de temps avec les macros SolidWorks
Dans un bureau d’études de tôlerie typique, les gains de temps obtenus grâce à l’automatisation par macro sont les suivants : l’export DXF en série passe de 45 minutes en manuel à 2 minutes avec une macro. La préparation de la nomenclature (BOM) passe de 30 minutes en manuel à 1 minute avec une macro.
L’application du gabarit de dessin technique passe de 20 minutes en manuel à 30 secondes avec une macro. La mise à jour du numéro de révision passe de 15 minutes en manuel à 10 secondes avec une macro. Le gain quotidien total est en moyenne de 2-3 heures.
Sur une base annuelle, ce gain représente 500-750 heures. En prenant un coût horaire de 200 TL pour un ingénieur, l’avantage économique annuel atteint 100.000-150.000 TL. L’investissement dans le développement de macros s’amortit généralement en 1-2 mois.
Conclusion : développement de macros SolidWorks par Burak Engineering
La programmation de macros SolidWorks est l’un des moyens les plus efficaces d’augmenter la productivité en ingénierie. Vous pouvez commencer par VBA pour créer des automatisations de base, puis développer des solutions plus complexes au fil du temps. Grâce à la vaste bibliothèque de fonctions offerte par l’API SolidWorks, vous pouvez tout automatiser dans les limites de votre imagination.
Chez Burak Engineering, nous proposons le développement d’automatisations, la formation VBA et des solutions d’automatisation sur mesure. Nous accélérons votre processus de conception en développant des macros adaptées à votre entreprise.
Contactez-nous via notre page de contact pour obtenir une pré-évaluation gratuite en développement de macros SolidWorks et en conseil en automatisation.
Architecture de l’API SolidWorks : comment les macros SolidWorks atteignent le modèle
Toutes les macros SolidWorks fiables reposent sur la même chaîne d’objets. Un code écrit sans comprendre cette chaîne se casse dès la première montée de version, ou dès qu’il rencontre un autre type de document. Bien construire cette chaîne, c’est ce qui fait vivre des macros SolidWorks pendant dix ans.
La chaîne part de l’objet application et descend jusqu’à la fonction élémentaire : la couche application représente la session, la couche document le fichier ouvert, le gestionnaire de fonctions chaque nœud de l’arbre. Le gestionnaire de sélection retient ce que l’utilisateur ou le code a désigné, tandis que l’extension de document regroupe les méthodes modernes.
- Couche application — ouvre la session, gère l’ouverture et la fermeture des documents ainsi que les préférences.
- Couche document — expose des interfaces distinctes pour la pièce, l’assemblage et la mise en plan ; les opérations communes passent par une interface partagée.
- Gestionnaire de fonctions — parcourt l’arbre de création, ajoute et supprime des fonctions, modifie leur ordre.
- Gestionnaire de sélection — donne le type, le nombre et le marquage de la sélection courante et doit être vidé avant chaque opération.
- Extension de document — contient la sélection par identifiant persistant, l’exécution de commandes et les méthodes d’enregistrement avancées.
Liaison précoce ou liaison tardive ?
La liaison précoce référence la bibliothèque de types : elle apporte la complétion de code et le contrôle à la compilation, au prix d’une dépendance forte à la version référencée. La liaison tardive résout les objets à l’exécution ; le code circule librement entre versions, mais les fautes de frappe n’apparaissent qu’à l’usage.
En pratique nous combinons les deux : développement rapide en liaison précoce, puis conversion des appels critiques en liaison tardive avant la mise en service.
| Critère | Macro VBA | Complément .NET |
|---|---|---|
| Vitesse de développement | Très élevée, éditeur intégré | Moyenne, compilation séparée |
| Déploiement | Copie de fichier | Installation et enregistrement |
| Intégration à l’interface | Limitée, bouton assignable | Onglets, menus et volets |
| Gestion de versions | Difficile, format binaire | Simple, source en texte clair |
| Coût de maintenance | Faible pour de petits outils | Faible pour de grands projets |
| Usage recommandé | Gains rapides dans un bureau | Flux d’entreprise multi-utilisateurs |
À quoi ressemblent des macros SolidWorks de qualité production
La différence entre un code qui fonctionne et un code auquel on peut se fier se joue au moment de l’erreur. Des macros SolidWorks qui produisent silencieusement un mauvais résultat sur des centaines de fichiers pendant la nuit coûte bien plus cher qu’une qui refuse de démarrer.
Validation des entrées et sélection sûre
Les macros SolidWorks vérifient d’abord qu’un document est ouvert, qu’il est du type attendu et que la configuration nécessaire existe. Avant toute sélection, la sélection courante est vidée, et la valeur booléenne renvoyée par l’appel de sélection est systématiquement contrôlée.
Rien qui dépende des coordonnées écran, d’indices figés ou de ce que l’utilisateur a cliqué par hasard n’atteint la production. Les objets sont résolus par leurs identifiants persistants.
Le piège des unités
L’interface de programmation travaille toujours en mètres et en radians, alors que l’interface graphique affiche des millimètres et des degrés. Mélanger les deux produit des erreurs d’un facteur mille. Regrouper la conversion dans une seule fonction utilitaire supprime toute cette famille de défauts.
Reconstruction, annulation et gestion des avertissements
Après une série de modifications, les macros SolidWorks déclenchent une reconstruction forcée et son résultat analysé. Envelopper l’ensemble de l’opération dans un seul groupe d’annulation permet à l’utilisateur de revenir en arrière en une seule action.
Les boîtes de dialogue sont supprimées pour un fonctionnement silencieux, mais les préférences doivent être rétablies à la fin comme en cas d’échec. Sinon l’utilisateur continue de travailler dans une session sans avertissements.
Une règle venue de l’atelier
Chaque exécution de macros SolidWorks devrait laisser une ligne de journal : nom de fichier, opération, durée, résultat et message d’erreur. Cette seule habitude fait passer le diagnostic de plusieurs heures à quelques minutes.
Traitement par lot : des centaines de fichiers pendant la nuit
Écrire des macros SolidWorks pour une opération isolée est simple. Le gain réel apparaît lorsque cette opération s’applique en toute sécurité à tous les fichiers d’un dossier. Trois points doivent être réglés avant d’écrire la boucle : le parcours, l’ouverture et la reprise.
- Parcours — l’arborescence est explorée récursivement, filtrée par extension et par motif de nom, et la liste de travail est construite en mémoire au préalable.
- Ordre — d’abord les pièces, puis les sous-assemblages, enfin l’assemblage principal. L’ordre inverse provoque des erreurs de référence.
- Ouverture silencieuse — le document est ouvert en récupérant les indicateurs d’avertissement et d’erreur ; le mode lecture seule raccourcit nettement le chargement des grands assemblages.
- Opération — le travail réel se fait ici, et la valeur de retour de chaque étape est contrôlée.
- Fermeture — les documents sont fermés sans enregistrement ; seuls les fichiers réellement modifiés sont réécrits.
- Reprise — si un fichier échoue, la boucle ne s’arrête pas. L’erreur est journalisée et le fichier suivant est traité.
Grâce à ce schéma, les mises à plat et les fichiers de découpe d’un fonds de mille pièces se régénèrent en une seule session hors des heures ouvrées. Le matin, seul le journal d’erreurs reste à consulter.
Références manquantes et problèmes de chemin
Les références non résolues à l’ouverture des assemblages constituent le point de rupture le plus fréquent du traitement par lot. Définir les dossiers de recherche au début des macros SolidWorks et les rétablir à la fin élimine la majeure partie de ces erreurs.
Automatisation de la tôlerie et des mises en plan
Les macros SolidWorks se rentabilisent le plus vite sur les sorties répétitives. Pour les pièces de tôlerie, il s’agit des mises à plat et des fichiers de découpe ; pour les mises en plan, de la disposition des vues et de la nomenclature.
Qualité de la mise à plat et du fichier de découpe
Qu’un fichier de découpe passe proprement sur la machine dépend moins de la géométrie que de la structure des calques. Contour extérieur, contours intérieurs, lignes de pliage et géométrie de marquage appartiennent à des calques distincts, qui doivent correspondre à la table technologique côté machine.
- Le contour extérieur doit être une courbe fermée unique, sans arêtes en double.
- Séparer les contours intérieurs par diamètre de perçage permet d’affecter une vitesse de coupe différente aux petits trous.
- Les lignes de pliage sont conservées sur leur propre calque, avec le sens et l’angle.
- La mise à plat provient de la configuration calculée avec la table de pliage et le coefficient K réellement utilisés en production.
- Les noms de fichiers sont générés par le code afin que numéro de pièce, indice et épaisseur soient toujours présents.
Génération des mises en plan
L’écriture de macros SolidWorks pour les mises en plan commence par un modèle de document. Les macros SolidWorks placent les vues, choisissent une échelle adaptée au format, relie la nomenclature et met à jour le tableau des révisions. Comme la dénomination passe par une fonction de règle unique, l’archive reste cohérente.
Ce flux donne le meilleur résultat lorsque des macros SolidWorks et un modèle paramétrique sont construits ensemble : une cote change, le modèle se reconstruit, la mise en plan et le fichier de découpe se régénèrent seuls.
Réglages de performance et de fiabilité
Le temps d’exécution des macros SolidWorks vient le plus souvent de l’ouverture et de la reconstruction des modèles, non du code lui-même. Quelques réglages raccourcissent nettement la durée totale.
- Les composants allégés et le mode grand assemblage réduisent les temps de chargement.
- Ne charger que la configuration nécessaire diminue la consommation mémoire.
- Différer la reconstruction entre les étapes intermédiaires est rentable dès que de nombreuses cotes changent en même temps.
- Désactiver le rafraîchissement de l’écran accélère sensiblement les boucles longues.
- Journaliser la durée par fichier rend les modèles problématiques immédiatement visibles.
Sécurité, gestion de versions et déploiement des macros SolidWorks
Des macros SolidWorks ne sont pas des fichiers que l’on écrit puis oublie : c’est un actif logiciel qui se maintient. Dès que plusieurs personnes du bureau utilisent les mêmes outils, la discipline de déploiement et de version devient obligatoire.
- Niveau de sécurité — en entreprise, les macros SolidWorks ne devraient démarrer que depuis des emplacements approuvés.
- Source unique — les outils résident dans un seul dossier réseau ; les copies locales sont proscrites.
- Estampille de version — chaque macro SolidWorks inscrit son numéro de version dans le journal, si bien qu’un signalement identifie toujours la version exécutée.
- Gestion de versions — le source est conservé en texte clair dans un dépôt et les modifications sont relues avant fusion.
- Test de montée de version — avant de changer de millésime, les outils sont éprouvés sur un jeu de fichiers représentatif.
Quand passer à un complément ?
À mesure que le nombre d’outils augmente, les mêmes routines utilitaires se répètent dans plusieurs fichiers. C’est le moment de déplacer la bibliothèque commune dans un complément unique : la maintenance baisse et l’utilisateur dispose d’une interface cohérente. Au-delà de cinq outils environ, la migration s’autofinance.
Défaillances courantes et corrections
| Symptôme | Cause probable | Correction |
|---|---|---|
| Les macros SolidWorks ne font rien sur certains fichiers | Un appel de sélection échoue sans que la valeur de retour soit contrôlée | Contrôler le booléen après chaque sélection et journaliser les échecs |
| Les cotes sortent mille fois trop grandes ou trop petites | Une valeur en millimètres est passée directement à une méthode | Faire passer toute conversion par une fonction utilitaire unique |
| Le traitement par lot s’arrête à la première erreur | Aucune gestion d’erreur dans la boucle | Traiter chaque fichier dans son propre bloc d’erreur |
| Des pièces sont introuvables à l’ouverture d’un assemblage | Les dossiers de recherche ne sont pas définis | Ajouter les chemins au début et les rétablir à la fin |
| Les avertissements restent désactivés chez l’utilisateur | Les préférences ne sont pas rétablies en cas d’échec | Déplacer le rétablissement dans la sortie du bloc d’erreur |
| Le code casse après une montée de version | Liaison précoce vers une ancienne bibliothèque de types | Convertir les appels critiques en liaison tardive et tester |
| Le même outil se comporte différemment selon les postes | Des copies obsolètes subsistent | Imposer un emplacement central et une estampille de version |
Liste de contrôle avant mise en service
- Le document actif et son type sont-ils validés ?
- La sélection est-elle vidée avant chaque opération et la valeur de retour contrôlée ?
- Toute conversion d’unités passe-t-elle par un point unique ?
- L’opération complète est-elle enfermée dans un seul groupe d’annulation ?
- Les préférences d’avertissement sont-elles rétablies aussi en cas d’échec ?
- Chaque exécution produit-elle une ligne de journal ?
- L’outil est-il centralisé et estampillé en version ?
- A-t-il été testé sur un jeu de référence avant le changement de version ?
Des macros SolidWorks qui satisfont ces huit points peuvent passer en usage quotidien sans réserve. Les autres restent chez un utilisateur pilote jusqu’à ce qu’elles y parviennent.


FAQ
Questions fréquentes
Qu’est-ce que macros solidworks ?
Macros SolidWorks en VBA : enregistrer et modifier une macro, piloter des modèles paramétriques, automatiser les mises en plan et l’export DXF.
Qu’est-ce qu’une macro SolidWorks et à quoi sert-elle ?
Cet outil désigne des scripts d’automatisation écrits à l’aide de l’API SolidWorks. Ils sont rédigés en VBA (Visual Basic for Applications) et enregistrés avec l’extension .swp. Les macros peuvent être enregistrées via Tools > Macro > Record dans la barre de menus, ou écrites de zéro.
Fondamentaux de l’automatisation par macro SolidWorks avec VBA : que faut-il savoir ?
Vous accédez à l’éditeur VBA de SolidWorks via Tools > Macro > New. Une macro SolidWorks de base commence par la structure suivante : les lignes Dim swApp As SldWorks.SldWorks et Set swApp = Application.SldWorks établissent l’accès à l’application SolidWorks.
Utilisation de l’API SolidWorks : que faut-il savoir ?
L’API SolidWorks repose sur quatre modèles d’objets principaux. L’objet SldWorks représente l’application. ModelDoc2 représente le document ouvert. PartDoc, AssemblyDoc et DrawingDoc offrent des fonctions propres à chaque type de document.
Comment travailler avec Burak Engineering sur macros solidworks ?
Partagez vos plans et vos objectifs ; nous étudions vos besoins en macros solidworks et proposons un modèle de collaboration adapté. Écrivez-nous via la page de contact.
