
PolyMech CAD Tools (pm-cad)
Automatisez votre flux de travail SolidWorks depuis la ligne de commande. PolyMech CAD Tools (alias pm-cad) est un toolkit CLI et Node.js conçu pour Windows qui convertit par lots les assemblages, pièces et plans SolidWorks en formats prêts pour l'aval — STEP, PDF, JPG, vues web HTML interactives, nomenclatures XLSX et métadonnées JSON — sans clics répétitifs « Enregistrer sous ».
Si vous concevez des produits dans SolidWorks et avez besoin d'exports reproductibles pour la fabrication, les devis, la documentation, les packages de livraison ou le CI/CD, pm-cad transforme les livrables CAO en un pipeline scriptable et auditable.
Ce qui prenait deux heures de clics manuels s'exécute désormais en 30 secondes de script — de manière cohérente, à chaque fois.
Pourquoi pm-cad ?
Les équipes d'ingénierie perdent des heures dans des routines d'export manuelles : ouvrir des modèles, changer de configurations, reconstruire, exporter des PDF, des fichiers STEP et des nomenclatures — puis tout recommencer après chaque modification. pm-cad remplace toute cette charge par une seule commande capable de traiter des centaines de fichiers, de manière cohérente.
| Problème | Solution pm-cad |
|---|---|
| « Enregistrer sous » manuel pour chaque format | Une commande convertit des dossiers entiers (patterns glob) en sorties multiples (ex. `step |
| Pas de moyen simple d'exporter les nomenclatures | Génère des nomenclatures XLSX directement à partir des assemblages |
| Les aperçus HTML nécessitent des licences eDrawings | Exporte par lots des vues web HTML interactives via l'API eDrawings (eDrawings est gratuit) |
| Les variantes de configuration sont fastidieuses | Itère toutes les configurations automatiquement avec ${CONFIGURATION} |
| Difficile à intégrer dans les pipelines de build | Utilisez-le comme CLI, bibliothèque Node.js ou tâche Grunt |
Ce que vous pouvez faire avec pm-cad
1) Conversion CAO par lots (SolidWorks → STEP/PDF/JPG)
Exportez les livrables de fabrication et de documentation depuis pièces, assemblages et plans — une commande, c'est fait :
- STEP pour CAM, CNC, fournisseurs et échange neutre
- PDF pour les plans, les packages de livraison et les approbations
- JPG pour les miniatures, les pages produits et les catalogues
2) Vues web HTML interactives (via eDrawings)
Créez des aperçus HTML légers et partageables pour les assemblages et les pièces — aucune licence SolidWorks n'est nécessaire pour les visualiser :
- revues de conception internes
- transferts ventes/support
- portails web et pages produits
- communication fournisseur
3) Export de nomenclature Excel (XLSX)
Générez des nomenclatures structurées dans Excel directement à partir des assemblages, avec support pour :
- Type de nomenclature (Pièces uniquement / Niveau supérieur / Indenté)
- niveau de détail
- modèles de nomenclature
- images de composants optionnelles
4) Export de métadonnées et configurations (JSON)
Extrayez l'intelligence d'assemblage riche pour PLM, QA, devis et analyses. Alimentez les données de masse + matériau directement dans votre outil de devis pour que les demandes de prix se construisent toutes seules :
- propriétés personnalisées (globales + par configuration)
- propriétés de masse, matériaux, boîtes englobantes
- état de suppression, équations et plus encore
5) Pack & Go (aplatir les références)
Contrairement au Pack & Go intégré de SolidWorks, la version de pm-cad est scriptable, reproductible et compatible CI/CD. Rassemblez un assemblage et tous les fichiers référencés dans un dossier propre pour :
- packages fournisseur
- archivage
- transfert contrôlé
- builds reproductibles
Démarrage rapide
Vous êtes à deux commandes de ne plus jamais faire un « Enregistrer sous » manuel :
# Installation globale
npm i @polymech/cad -g
# Convertir un assemblage en STEP + PDF
pm-cad sw --src="./cad/Global*.SLDASM" --dst="${SRC_DIR}/${SRC_NAME}.+(step|pdf)"
# Voir toutes les options
pm-cad --help
Installation
Via npm (recommandé)
npm i @polymech/cad -g
Installeur Windows
Téléchargez et exécutez PolyMechCAD-Setup.exe. L'installeur détecte automatiquement les privilèges :
- Double-clic → installe par utilisateur dans
%LOCALAPPDATA%, aucun admin requis - Clic droit → Exécuter en tant qu'administrateur → installe pour tout le système dans
Program Files
Les deux modes ajoutent pm-cad à votre PATH automatiquement.
Automatisez chaque format d'export
Conversions de format (patterns glob + sorties multiples)
Convertissez entre les formats supportés en utilisant des patterns glob et des sorties multi-extensions — sans clic fichier par fichier :
# Assemblage → STEP
pm-cad sw --src="./cad/**/*.SLDASM" --dst="${SRC_DIR}/${SRC_NAME}.step"
# Pièces + Assemblages → PDF + JPG (récursif)
pm-cad sw --src="./cad/**/*.+(SLDASM|SLDPRT)" --dst="${SRC_DIR}/${SRC_NAME}.+(pdf|jpg)"
# Assemblage → Vue web HTML interactive (via eDrawings)
pm-cad sw --src="./cad/*.SLDASM" --dst="${SRC_DIR}/${SRC_NAME}.html"
# Diagrammes Draw.io → PNG
pm-cad sw --src="./docs/**/*.drawio" --dst="${SRC_DIR}/${SRC_NAME}.png"
Nomenclature (BOM) → Excel (XLSX)
Extrayez des nomenclatures structurées directement des assemblages — pas de copier-coller manuel de tableaux depuis SolidWorks :
pm-cad sw --src="./cad/**/*.SLDASM" --dst="${SRC_DIR}/${SRC_NAME}.xlsx"
Export de métadonnées et configurations (JSON)
Transformez les modèles SolidWorks en données utilisables dans l'automatisation, les tableaux de bord et les audits :
# Propriétés personnalisées → JSON
pm-cad sw --src="./cad/*.SLDASM" --dst="${SRC_DIR}/${SRC_NAME}.json"
# Toutes les configurations → JSON
pm-cad sw --src="./cad/*.SLDASM" --dst="${SRC_DIR}/${SRC_NAME}-configs.json"
# Export STEP + HTML par configuration
pm-cad sw --src="./cad/*.SLDASM" --dst="${SRC_DIR}/${SRC_NAME}-${CONFIGURATION}.+(step|html)"
Pack & Go (aplatir les références d'assemblage)
pm-cad pack --src="./cad/Global*.SLDASM" --dst="./packed"
Chemins de sortie déterministes — plus jamais de renommage de fichier
Construisez des chemins de sortie déterministes en utilisant les variables intégrées. Chaque fichier de sortie atterrit au bon endroit, avec le bon nom, à chaque fois :
| Variable | Description |
|---|---|
${SRC_DIR} |
Répertoire du fichier source courant |
${SRC_NAME} |
Nom de base sans extension |
${SRC_FILE_EXT} |
Extension du fichier source |
${CONFIGURATION} |
Nom de la configuration du modèle courant |
Cela facilite le maintien des exports à côté des sources, la reproduction de structures de dossiers ou la production de livrables spécifiques à la configuration.
Syntaxe des patterns glob
| Pattern | Correspond à |
|---|---|
*.SLDASM |
Tous les assemblages du répertoire courant |
**/*.SLDPRT |
Toutes les pièces, récursivement |
*.+(SLDASM|SLDPRT) |
Assemblages et pièces |
*.+(step|pdf|jpg) |
Formats de sortie multiples |
Options d'intégration
Intégration gestionnaire de fichiers (Altap Salamander)
Enregistrez pm-cad comme commande de menu personnalisée (F9) pour les conversions par clic droit :
Command: pm-cad
Arguments: sw --src="$(FullName)" --dst="&{SRC_DIR}/&{SRC_NAME}.+(step)"
Utilisez
--alt=truepour changer le préfixe de variable de$à&lorsque l'application hôte utilise$pour ses propres variables.
Droplets batch (glisser-déposer)
Créez un fichier .bat et glissez-déposez des fichiers dessus :
@echo off
pm-cad sw --src="%~1" --dst="${SRC_DIR}/${SRC_NAME}.+(html)"
Pour les dossiers :
@echo off
pm-cad sw --src="%~1/**/*.+(SLDASM|SLDPRT)" --dst="${SRC_DIR}/${SRC_NAME}.+(html)"
Bibliothèque Node.js (automatisation programmatique)
import { convert } from '@polymech/cad/cad/sw-lib';
await convert({
src: './cad/**/*.SLDASM',
dst: '${SRC_DIR}/${SRC_NAME}.+(step|pdf)',
verbose: true,
skip: true
});
Tâche Grunt (pipeline de build)
const cad = require('@polymech/cad/cad/sw-lib');
grunt.registerMultiTask('cad-convert', 'Convertir fichiers SW', function () {
const done = this.async();
convert(this.data.items, { ...options }, this.data.output)
.then(() => done());
});
// Configuration Gruntfile
'cad-convert': {
step: { items: products, output: '${SRC_DIR}/${SRC_NAME}.+(step)' },
html: { items: products, output: '${SRC_DIR}/../resources/${SRC_NAME}.+(html)' },
bom: { items: products, output: '${SRC_DIR}/../resources/${SRC_NAME}.+(xlsx)' }
}
Formats supportés
Formats d'entrée
| Format | Extension |
|---|---|
| Assemblage SolidWorks | .SLDASM |
| Pièce SolidWorks | .SLDPRT |
| Plan SolidWorks | .SLDDRW |
| STEP | .step, .stp |
Formats de sortie
| Format | Extension | Source | Moteur |
|---|---|---|---|
| STEP | .step |
Pièces, Assemblages | convert.exe |
.pdf |
Pièces, Assemblages, Plans | convert.exe |
|
| JPEG | .jpg |
Pièces, Assemblages, Plans | convert.exe |
| HTML (eDrawings) | .html |
Pièces, Assemblages | ExportHTML.exe |
| JSON (métadonnées) | .json |
Assemblages | model-reader.exe |
| JSON (configurations) | -configs.json |
Assemblages | getconfigs.exe |
| Nomenclature Excel | .xlsx |
Assemblages | bom.exe |
Sous le capot
pm-cad orchestre une chaîne d'outils native construite en C# qui communique directement avec SolidWorks via COM interop (utilisant xCAD + SolidWorks Interop) et avec eDrawings via l'API eDrawings.
| Binaire | Rôle |
|---|---|
convert.exe |
Ouvre les modèles via COM et appelle SaveAs pour STEP/PDF/JPG. Supporte le rendu PhotoView 360 ray-trace et Pack & Go. |
model-reader.exe |
Parcourt l'arborescence d'assemblage et extrait les données par composant en JSON plat + .tree.json hiérarchique. |
bom.exe |
Insère un tableau de nomenclature via xCAD et exporte en XLSX. Supporte modèles, types de BOM et images de composants. |
ExportHTML.exe |
Export headless de l'API eDrawings — aucune licence SolidWorks requise. |
getconfigs.exe |
Énumère toutes les configurations et sérialise en JSON. |
Données extraites (model-reader)
Pour chaque composant de l'arborescence d'assemblage, model-reader.exe extrait :
| Catégorie | Champs |
|---|---|
| Propriétés personnalisées | Toutes les propriétés personnalisées spécifiques à la configuration + globales (valeurs évaluées) |
| Propriétés de masse | Masse, Densité, Volume, Surface, Centre de masse (X/Y/Z) |
| Matériaux | Nom du matériau + base de données par pièce |
| Boîte englobante | Min/Max X/Y/Z par composant |
| Équations | Tous les noms d'équations et valeurs évaluées |
| États du modèle | Compteur What's Wrong, codes d'erreur, indicateurs d'avertissement, types de features affectés |
| Suppression | État de suppression du composant |
Référence des options CLI
Rendu
| Option | Défaut | Description |
|---|---|---|
--renderer |
solidworks |
Moteur de rendu (solidworks ou photoview) |
--quality |
2 (Bon) |
Niveau de qualité du ray trace |
--width |
1024 |
Largeur de l'image de sortie en pixels |
--height |
1024 |
Hauteur de l'image de sortie en pixels |
--view |
Render |
Nom de la vue caméra |
--configuration |
Default |
Configuration du modèle à utiliser |
Options de nomenclature
| Option | Défaut | Description |
|---|---|---|
--bom-config |
Default |
Configuration de la nomenclature |
--bom-type |
2 |
Type de nomenclature |
--bom-detail |
1 |
Niveau de détail |
--bom-template |
— | Modèle de tableau de nomenclature personnalisé |
--bom-images |
false |
Inclure les images des composants |
Flux de travail
| Option | Description |
|---|---|
--dry |
Aperçu des opérations sans exécution |
--cache |
Utiliser le cache de hash de fichier pour ignorer les fichiers inchangés |
--save |
Enregistrer le modèle après traitement |
--rebuild |
Forcer la reconstruction du modèle avant l'export |
--pack |
Mode Pack and Go |
--light |
Mode léger |
--close |
Fermer SolidWorks après chaque conversion |
--alt |
Utiliser & au lieu de $ pour le préfixe de variable |
--logLevel |
Niveau de log minimum (debug, info, warn, error) |
Prérequis
- Node.js 18+
- SolidWorks 2020–2025 (détecté automatiquement)
- Windows (COM interop SolidWorks)
À qui s'adresse pm-cad
- Transferts de fabrication : Exportez STEP + PDF de plans pour les fournisseurs en une étape reproductible.
- Release engineering : Générez un dossier « release pack » avec un nommage et des formats cohérents.
- Enablement ventes/support : Produisez des aperçus HTML interactifs que n'importe qui peut ouvrir dans un navigateur — zéro installation requise.
- Automatisation et CI : Créez des exports nocturnes (STEP/PDF/BOM) à chaque modification CAO — intégrable dans n'importe quel pipeline CI.
- Extraction de données : Extrayez les propriétés personnalisées et les données masse/matériau en JSON pour les devis ou les audits.
FAQ
L'export HTML nécessite-t-il une licence SolidWorks ?
Non. L'export HTML utilise l'API eDrawings, qui est gratuit. pm-cad exécute un hôte headless — pas d'interface graphique, pas de licence.
Puis-je exporter toutes les configurations automatiquement ?
Oui. Utilisez ${CONFIGURATION} dans le pattern de destination et pm-cad itère chaque configuration.
Puis-je garder les exports à côté des fichiers sources avec des noms correspondants ?
Oui. Utilisez ${SRC_DIR} et ${SRC_NAME} pour des chemins de sortie déterministes.
Est-ce sûr de lancer sur de grands assemblages ?
pm-cad est conçu pour le traitement par lots et supporte des contrôles de flux comme le cache (--cache), le contrôle de reconstruction (--rebuild), le mode léger (--light) et la fermeture de SolidWorks entre les jobs (--close) selon vos besoins de stabilité et de performance.
Commencer
PolyMech CAD Tools apporte l'automatisation moderne aux livrables SolidWorks : exports par lots, nomenclature vers Excel, aperçus HTML interactifs, extraction de métadonnées et Pack & Go — le tout depuis un CLI scriptable ou une API Node.js.
Arrêtez de cliquer sur Enregistrer sous. Commencez à livrer des exports fiables.
npm i @polymech/cad -g
pm-cad --help
Références
- xCAD.net par Xarial — Le framework .NET utilisé par la chaîne d'outils native de pm-cad pour le COM interop SolidWorks.
- Aide API SolidWorks — Documentation officielle de l'API SolidWorks pour l'automatisation COM.
- API eDrawings — Référence API pour l'automatisation eDrawings utilisée par
ExportHTML.exe. - STEP (ISO 10303-21) — Le format d'échange CAO neutre utilisé pour les transferts de fabrication.
- Patterns Glob Node.js (minimatch) — La référence de syntaxe glob utilisée par pm-cad.
- npm : @polymech/cad — La page npm de pm-cad.