4.6Programmation : macros VBA & API SolidWorks
Au-delà des équations et configurateurs, SolidWorks est programmable : on peut lui faire exécuter des tâches par du code, via son API (Application Programming Interface — l'ensemble des commandes que des programmes externes peuvent appeler pour piloter SolidWorks). Le point d'entrée accessible est la macro : une petite automatisation que vous pouvez d'abord enregistrer (SolidWorks note vos actions et génère le code correspondant, exactement comme les macros d'Excel) puis rejouer, éditer, généraliser. Le langage historique des macros SolidWorks est VBA (Visual Basic for Applications, le même qu'Office) — accessible, bien documenté, parfait pour débuter. Pour aller plus loin, l'API se pilote aussi depuis des langages professionnels (VB.NET, C#) permettant de créer de véritables add-ins (modules intégrés à SolidWorks).
À quoi sert concrètement la programmation ? À automatiser les tâches répétitives et fastidieuses qui échappent aux outils standard : appliquer un même traitement à des centaines de fichiers (renommer, changer une propriété, exporter en PDF/STEP par lot), générer des rapports personnalisés, créer de la géométrie selon des règles complexes (une pièce entièrement pilotée par un calcul), remplir automatiquement des propriétés, contrôler la conformité à des standards, connecter SolidWorks à d'autres logiciels (une base de données, un ERP, un tableur). L'exemple typique : vous devez exporter 300 pièces en STEP et générer leur PDF — à la main, des heures ; par macro, quelques minutes une fois le script écrit. La bonne approche pour débuter : (1) enregistrez une macro en réalisant l'action une fois manuellement ; (2) examinez le code généré pour comprendre quelles commandes de l'API ont été appelées ; (3) généralisez (ajoutez une boucle pour traiter plusieurs fichiers, des conditions, des paramètres). La documentation de l'API SolidWorks (SolidWorks API Help) est la référence, et une large communauté partage des exemples. Deux mises en perspective. D'abord, la programmation n'est PAS indispensable pour la grande majorité des utilisateurs — on peut être un excellent concepteur sans écrire une ligne de code ; c'est un outil de productivité pour ceux qui font face à de la répétition à grande échelle. Ensuite, quand elle est justifiée, son retour est spectaculaire : un script qui automatise une tâche faite des centaines de fois se rentabilise instantanément, et libère du temps de conception à haute valeur. Savoir au moins enregistrer et adapter une macro est une compétence accessible et utile à tout utilisateur avancé — vous n'avez pas besoin d'être programmeur pour exploiter les macros les plus rentables (le traitement par lot), et c'est souvent la porte d'entrée vers des automatisations plus ambitieuses.
Vocabulaire de la section
- API SolidWorks
- Ensemble des commandes que des programmes externes peuvent appeler pour piloter SolidWorks ; base de toute automatisation par code.
- Macro
- Petite automatisation enregistrée (SolidWorks génère le code de vos actions) puis rejouable et éditable ; le point d'entrée accessible de la programmation.
- VBA
- Visual Basic for Applications, langage historique des macros SolidWorks (le même qu'Office) ; accessible et bien documenté, idéal pour débuter.
- Add-in
- Module programmé (VB.NET, C#) intégré à SolidWorks via l'API pour des automatisations avancées et durables (au-delà des macros ponctuelles).
- Traitement par lot
- Application automatique d'une même tâche à de nombreux fichiers (export, renommage, propriétés) ; l'usage le plus rentable et accessible des macros.
En pratique — Enregistrer et adapter une première macro
- Enregistrez une macro pendant que vous réalisez une action simple (exporter la pièce active en STEP, ou changer une propriété).
- Ouvrez l'éditeur (VBA) et examinez le code généré : repérez les commandes de l'API appelées.
- Généralisez : ajoutez une boucle pour appliquer l'action à tous les fichiers d'un dossier (traitement par lot).
- Testez sur quelques fichiers d'essai, puis mesurez le temps gagné par rapport au traitement manuel.
Points clés à retenir
- SolidWorks est PROGRAMMABLE via son API ; le point d'entrée accessible est la MACRO, qu'on peut d'abord ENREGISTRER (le code de vos actions est généré) puis éditer.
- Langage de départ : VBA (comme Office), accessible ; pour aller plus loin, add-ins en VB.NET/C#.
- Usage le plus rentable et accessible : le TRAITEMENT PAR LOT (exporter/renommer/modifier des centaines de fichiers) — des heures ramenées à des minutes.
- La programmation n'est PAS indispensable (on peut être excellent sans coder) mais son retour est spectaculaire face à la répétition à grande échelle ; enregistrer/adapter une macro est accessible à tout utilisateur avancé.
Questions fréquentes
Faut-il savoir programmer pour bien utiliser SolidWorks ?
Non, absolument pas — et il est important de le dire clairement pour ne pas décourager : la grande majorité des utilisateurs de SolidWorks, y compris des experts reconnus, ne programment jamais et n'en ont pas besoin. La compétence centrale en CAO est la conception (savoir modéliser des pièces robustes, structurer des assemblages, documenter, comprendre la mécanique et la fabrication) — et elle ne requiert aucune programmation. Vous pouvez atteindre un très haut niveau, obtenir toutes les certifications, mener des projets complexes, sans écrire une ligne de code. La programmation est un outil d'appoint, utile dans des situations spécifiques, pas une compétence fondamentale. Quand devient-elle intéressante ? Uniquement face à de la répétition à grande échelle ou à des besoins que les outils standard ne couvrent pas : traiter des centaines de fichiers de la même façon, générer automatiquement des documents en série, connecter SolidWorks à d'autres systèmes (ERP, bases de données), créer des outils sur mesure pour une entreprise. Ce sont des besoins réels dans certains contextes (grandes séries de fichiers, industrialisation, bureaux d'études avec des process répétitifs), mais absents du travail de conception courant. Une nuance utile : même sans « savoir programmer », il est très accessible et rentable d'apprendre à enregistrer et adapter une macro. C'est presque de la « programmation sans programmer » : vous réalisez une action, SolidWorks génère le code, vous l'ajustez un peu (surtout pour le répéter sur plusieurs fichiers). Cette compétence-là, à la portée de tout utilisateur avancé motivé, débloque les automatisations les plus rentables (le traitement par lot) sans exiger de devenir développeur. C'est un bon investissement d'appoint, pas un prérequis. En résumé : concentrez-vous sur la CONCEPTION (le cœur du métier) ; considérez la macro comme un outil pratique à découvrir quand la répétition vous pèse ; et n'envisagez la vraie programmation (add-ins, API en C#) que si votre contexte professionnel le justifie vraiment (industrialisation, intégration). Ne laissez jamais l'idée « je ne sais pas coder » vous freiner en SolidWorks — ce n'est pas de cela qu'il s'agit. Cela dit, dans un marché de l'emploi, une teinture de programmation/automatisation peut être un plus différenciant pour certains postes (méthodes, industrialisation, intégration CAO) — à considérer selon vos ambitions, mais toujours après avoir solidement maîtrisé la conception elle-même.
Comment démarrer concrètement avec les macros sans être développeur ?
La bonne nouvelle : on peut obtenir des résultats utiles très vite, sans formation de développeur, grâce à une approche « enregistrer puis adapter » — voici la démarche progressive. Étape 1 — Enregistrer. C'est le point de départ magique : SolidWorks peut ENREGISTRER vos actions et générer automatiquement le code correspondant, exactement comme les macros d'Excel. Lancez l'enregistrement (Outils → Macro → Enregistrer), réalisez manuellement l'action que vous voulez automatiser (par exemple : ouvrir une pièce, l'exporter en STEP, la fermer), arrêtez l'enregistrement. Vous avez maintenant une macro qui rejoue cette action. À ce stade, vous n'avez rien programmé — vous avez juste « capturé » vos gestes. Étape 2 — Rejouer et observer. Exécutez la macro : elle refait ce que vous avez enregistré. Puis ouvrez-la dans l'éditeur (VBA) et REGARDEZ le code généré. Ne soyez pas intimidé : vous n'avez pas besoin de tout comprendre. Repérez simplement les grandes lignes — vous verrez des commandes qui correspondent à vos actions (ouvrir un fichier, appeler une fonction d'export…). Cette lecture vous familiarise doucement avec la logique de l'API. Étape 3 — Adapter légèrement. C'est là que la vraie valeur apparaît. Le plus souvent, on veut appliquer l'action non pas à UN fichier mais à PLUSIEURS. On ajoute alors une boucle : « pour chaque fichier de ce dossier, faire l'action enregistrée ». C'est un ajout simple, dont on trouve des modèles tout faits partout (la structure « boucle sur les fichiers d'un dossier » est un grand classique, copiable). Vous insérez votre code enregistré à l'intérieur, et voilà un traitement par lot. Cette compétence « enregistrer + mettre en boucle » couvre déjà une immense part des besoins d'automatisation courants. Étape 4 — S'appuyer sur les ressources. Vous n'êtes jamais seul : la documentation de l'API SolidWorks (API Help, avec des exemples) est la référence officielle ; d'immenses communautés (forums SolidWorks, sites spécialisés, exemples partagés) proposent des macros toutes faites pour les besoins fréquents (export par lot, changement de propriétés, création de PDF en masse, etc.) — souvent, la macro que vous cherchez existe déjà et vous n'avez qu'à l'adapter. Copier, comprendre, ajuster un exemple existant est une façon parfaitement légitime et efficace de progresser. Conseils pour réussir sans galérer : (1) commencez PETIT (une action simple, un besoin réel et concret que vous avez) plutôt qu'un projet ambitieux ; (2) travaillez sur des COPIES de fichiers d'abord (une macro qui modifie/supprime peut faire des dégâts en masse si elle a un bug — testez sur des fichiers d'essai) ; (3) procédez par PETITS incréments (faites marcher une version simple, puis ajoutez une fonctionnalité à la fois) ; (4) n'hésitez pas à demander/chercher (la communauté est active et les besoins sont souvent communs). En quelques heures, un utilisateur non-développeur mais motivé peut créer sa première macro de traitement par lot utile — et le temps gagné sur les tâches répétitives est immédiat et durable. C'est l'une des compétences d'appoint au meilleur rapport effort/bénéfice pour un utilisateur avancé confronté à de la répétition.