
PolyMech CAD Tools (pm-cad)
Automatisieren Sie Ihren SolidWorks-Workflow über die Kommandozeile. PolyMech CAD Tools (alias pm-cad) ist ein Windows-erstes CLI- und Node.js-Toolkit, das SolidWorks-Baugruppen, -Teile und -Zeichnungen stapelweise in nachgelagerte Formate konvertiert – STEP, PDF, JPG, interaktive HTML-Webansichten, XLSX-Stücklisten und JSON-Metadaten – ohne repetitives GUI-„Speichern unter“-Klicken.
Wenn Sie Produkte in SolidWorks konstruieren und wiederholbare Exporte für Fertigung, Angebotserstellung, Dokumentation, Freigabepakete oder CI/CD benötigen, verwandelt pm-cad CAD-Ergebnisse in eine skriptbare, prüfbare Pipeline.
Was früher zwei Stunden manuelles Klicken dauerte, läuft jetzt als 30-Sekunden-Skript – zuverlässig, jedes Mal.
Warum pm-cad?
Engineering-Teams verlieren Stunden mit manuellen Export-Routinen: Modelle öffnen, Konfigurationen wechseln, neu aufbauen, PDFs, STEP-Dateien und Stücklisten exportieren – und alles nach jeder Änderung wiederholen. pm-cad ersetzt diese gesamte Last durch einen Befehl, der Hunderte von Dateien konsistent verarbeiten kann.
| Problem | pm-cad Lösung |
|---|---|
| Manuelles „Speichern unter“ für jedes Dateiformat | Ein Befehl konvertiert ganze Ordner (Glob-Muster) in mehrere Ausgaben (z.B. step|pdf|jpg) |
| Keine einfache Möglichkeit, Stücklisten zu exportieren | Generiert XLSX-Stücklisten direkt aus Baugruppen |
| HTML-Vorschauen erfordern eDrawings-Lizenzen | Exportiert stapelweise interaktive HTML-Webansichten über die eDrawings-API (eDrawings ist kostenlos) |
| Konfigurationsvarianten sind mühsam | Iteriert alle Konfigurationen automatisch mit ${CONFIGURATION} |
| Schwer in Build-Pipelines zu integrieren | Nutzbar als CLI, Node.js-Bibliothek oder Grunt-Task |
Was Sie mit pm-cad tun können
1) Batch-CAD-Konvertierung (SolidWorks → STEP/PDF/JPG)
Exportieren Sie Fertigungs- und Dokumentationsunterlagen aus Teilen, Baugruppen und Zeichnungen – ein Befehl, fertig:
- STEP für CAM, CNC, Lieferanten und neutralen Datenaustausch
- PDF für Zeichnungen, Freigabepakete und Genehmigungen
- JPG für Vorschaubilder, Produktseiten und Kataloge
2) Interaktive HTML-Webansichten (via eDrawings)
Erstellen Sie leichte, teilbare HTML-Vorschauen für Baugruppen und Teile – keine SolidWorks-Lizenz zum Betrachten nötig:
- Interne Design-Reviews
- Vertrieb/Support-Übergaben
- Web-Portale und Produktseiten
- Lieferantenkommunikation
3) Excel-Stücklisten-Export (XLSX)
Erzeugen Sie strukturierte Stücklisten in Excel direkt aus Baugruppen, mit Unterstützung für:
- Stücklisten-Typ (Nur Teile / Oberste Ebene / Eingegliedert)
- Detailgrad
- Stücklisten-Vorlagen
- Optionale Komponentenbilder
4) Metadaten- & Konfigurations-Export (JSON)
Extrahieren Sie umfangreiche Baugruppen-Informationen für PLM, QA, Angebotserstellung und Analytik. Speisen Sie Massen- und Materialdaten direkt in Ihr Angebots-Tool ein, damit sich Anfragen von selbst erstellen:
- Benutzerdefinierte Eigenschaften (global + pro Konfiguration)
- Masseneigenschaften, Materialien, Begrenzungsrahmen
- Unterdrückungsstatus, Gleichungen und mehr
5) Pack & Go (Referenzen zusammenführen)
Anders als SolidWorks’ integriertes Pack & Go ist pm-cads Version skriptbar, wiederholbar und CI/CD-fähig. Sammeln Sie eine Baugruppe und alle referenzierten Dateien in einem sauberen Ordner für:
- Lieferantenpakete
- Archivierung
- Kontrollierte Übergabe
- Reproduzierbare Builds
Schnellstart
Zwei Befehle trennen Sie davon, nie wieder manuell „Speichern unter“ zu klicken:
# Global installieren
npm i @polymech/cad -g
# Baugruppe in STEP + PDF konvertieren
pm-cad sw --src="./cad/Global*.SLDASM" --dst="${SRC_DIR}/${SRC_NAME}.+(step|pdf)"
# Alle Optionen anzeigen
pm-cad --help
Installation
Via npm (empfohlen)
npm i @polymech/cad -g
Windows-Installer
Laden Sie PolyMechCAD-Setup.exe herunter und führen Sie es aus. Der Installer erkennt die Berechtigungen automatisch:
- Doppelklick → installiert pro Benutzer in
%LOCALAPPDATA%, keine Admin-Rechte erforderlich - Rechtsklick → Als Administrator ausführen → installiert systemweit in
Programme
Beide Modi fügen pm-cad automatisch Ihrem PATH hinzu.
Alle Export-Formate automatisieren
Format-Konvertierungen (Glob-Muster + Multi-Ausgabe)
Konvertieren Sie zwischen unterstützten Formaten mit Glob-Mustern und Multi-Erweiterungs-Ausgaben – kein manuelles Datei-für-Datei-Klicken:
# Baugruppe → STEP
pm-cad sw --src="./cad/**/*.SLDASM" --dst="${SRC_DIR}/${SRC_NAME}.step"
# Teile + Baugruppen → PDF + JPG (rekursiv)
pm-cad sw --src="./cad/**/*.+(SLDASM|SLDPRT)" --dst="${SRC_DIR}/${SRC_NAME}.+(pdf|jpg)"
# Baugruppe → Interaktive HTML-Webansicht (via eDrawings)
pm-cad sw --src="./cad/*.SLDASM" --dst="${SRC_DIR}/${SRC_NAME}.html"
# Draw.io Diagramme → PNG
pm-cad sw --src="./docs/**/*.drawio" --dst="${SRC_DIR}/${SRC_NAME}.png"
Stückliste (BOM) → Excel (XLSX)
Extrahieren Sie strukturierte Stücklisten direkt aus Baugruppen – kein manuelles Tabellenkopieren aus SolidWorks:
pm-cad sw --src="./cad/**/*.SLDASM" --dst="${SRC_DIR}/${SRC_NAME}.xlsx"
Metadaten- & Konfigurations-Export (JSON)
Verwandeln Sie SolidWorks-Modelle in Daten für Automatisierung, Dashboards und Audits:
# Benutzerdefinierte Eigenschaften → JSON
pm-cad sw --src="./cad/*.SLDASM" --dst="${SRC_DIR}/${SRC_NAME}.json"
# Alle Konfigurationen → JSON
pm-cad sw --src="./cad/*.SLDASM" --dst="${SRC_DIR}/${SRC_NAME}-configs.json"
# Pro-Konfiguration STEP + HTML Export
pm-cad sw --src="./cad/*.SLDASM" --dst="${SRC_DIR}/${SRC_NAME}-${CONFIGURATION}.+(step|html)"
Pack & Go (Baugruppen-Referenzen zusammenführen)
pm-cad pack --src="./cad/Global*.SLDASM" --dst="./packed"
Deterministische Ausgabepfade – nie wieder Dateien umbenennen
Erstellen Sie deterministische Ausgabepfade mit integrierten Variablen. Jede Ausgabedatei landet am richtigen Ort, mit dem richtigen Namen, jedes Mal:
| Variable | Beschreibung |
|---|---|
${SRC_DIR} |
Verzeichnis der aktuellen Quelldatei |
${SRC_NAME} |
Basisname ohne Erweiterung |
${SRC_FILE_EXT} |
Dateierweiterung der Quelldatei |
${CONFIGURATION} |
Name der aktuellen Modell-Konfiguration |
Damit können Sie Exporte neben Quelldateien ablegen, Ordnerstrukturen spiegeln oder konfigurationsspezifische Ergebnisse erzeugen.
Glob-Muster-Syntax
| Muster | Trifft auf |
|---|---|
*.SLDASM |
Alle Baugruppen im aktuellen Verzeichnis |
**/*.SLDPRT |
Alle Teile, rekursiv |
*.+(SLDASM|SLDPRT) |
Baugruppen und Teile |
*.+(step|pdf|jpg) |
Mehrere Ausgabeformate |
Integrations-Optionen
Dateimanager-Integration (Altap Salamander)
Registrieren Sie pm-cad als benutzerdefinierten Menübefehl (F9) für Rechtsklick-Konvertierungen:
Command: pm-cad
Arguments: sw --src="$(FullName)" --dst="&{SRC_DIR}/&{SRC_NAME}.+(step)"
Verwenden Sie
--alt=true, um das Variablen-Präfix von$auf&zu wechseln, wenn die Host-Anwendung$für eigene Variablen verwendet.
Batch-Droplets (Drag & Drop)
Erstellen Sie eine .bat-Datei und ziehen Sie Dateien darauf:
@echo off
pm-cad sw --src="%~1" --dst="${SRC_DIR}/${SRC_NAME}.+(html)"
Für Ordner:
@echo off
pm-cad sw --src="%~1/**/*.+(SLDASM|SLDPRT)" --dst="${SRC_DIR}/${SRC_NAME}.+(html)"
Node.js-Bibliothek (programmatische Automatisierung)
import { convert } from '@polymech/cad/cad/sw-lib';
await convert({
src: './cad/**/*.SLDASM',
dst: '${SRC_DIR}/${SRC_NAME}.+(step|pdf)',
verbose: true,
skip: true
});
Grunt-Task (Build-Pipeline)
const cad = require('@polymech/cad/cad/sw-lib');
grunt.registerMultiTask('cad-convert', 'SW-Dateien konvertieren', function () {
const done = this.async();
convert(this.data.items, { ...options }, this.data.output)
.then(() => done());
});
// Gruntfile-Konfiguration
'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)' }
}
Unterstützte Formate
Eingabeformate
| Format | Erweiterung |
|---|---|
| SolidWorks-Baugruppe | .SLDASM |
| SolidWorks-Teil | .SLDPRT |
| SolidWorks-Zeichnung | .SLDDRW |
| STEP | .step, .stp |
Ausgabeformate
| Format | Erweiterung | Quelle | Engine |
|---|---|---|---|
| STEP | .step |
Teile, Baugruppen | convert.exe |
.pdf |
Teile, Baugruppen, Zeichnungen | convert.exe |
|
| JPEG | .jpg |
Teile, Baugruppen, Zeichnungen | convert.exe |
| HTML (eDrawings) | .html |
Teile, Baugruppen | ExportHTML.exe |
| JSON (Metadaten) | .json |
Baugruppen | model-reader.exe |
| JSON (Konfigurationen) | -configs.json |
Baugruppen | getconfigs.exe |
| Excel-Stückliste | .xlsx |
Baugruppen | bom.exe |
Unter der Haube
pm-cad orchestriert eine native Toolchain, die in C# entwickelt wurde und direkt über COM Interop mit SolidWorks kommuniziert (mittels xCAD + SolidWorks Interop) und über die eDrawings-API mit eDrawings.
| Binary | Aufgabe |
|---|---|
convert.exe |
Öffnet Modelle via COM und ruft SaveAs für STEP/PDF/JPG auf. Unterstützt PhotoView 360 Raytracing und Pack & Go. |
model-reader.exe |
Durchläuft den Baugruppen-Baum und extrahiert komponentenbezogene Daten als Flat-JSON + hierarchisches .tree.json. |
bom.exe |
Fügt eine Stücklisten-Tabelle via xCAD ein und exportiert nach XLSX. Unterstützt Vorlagen, BOM-Typen und Komponentenbilder. |
ExportHTML.exe |
Headless eDrawings-API-Export – keine SolidWorks-Lizenz erforderlich. |
getconfigs.exe |
Enumeriert alle Konfigurationen und serialisiert als JSON. |
Extrahierte Daten (model-reader)
Für jede Komponente im Baugruppen-Baum extrahiert model-reader.exe:
| Kategorie | Felder |
|---|---|
| Benutzerdefinierte Eigenschaften | Alle konfigurationsspezifischen + globalen benutzerdefinierten Eigenschaften (ausgewertete Werte) |
| Masseneigenschaften | Masse, Dichte, Volumen, Oberfläche, Massenschwerpunkt (X/Y/Z) |
| Materialien | Materialname + Datenbank pro Teil |
| Begrenzungsrahmen | Min/Max X/Y/Z pro Komponente |
| Gleichungen | Alle Gleichungsnamen und ausgewertete Werte |
| Modellzustände | Fehlerzähler, Fehlercodes, Warnflags, betroffene Feature-Typen |
| Unterdrückung | Komponenten-Unterdrückungsstatus |
CLI-Optionen-Referenz
Rendering
| Flag | Standard | Beschreibung |
|---|---|---|
--renderer |
solidworks |
Render-Engine (solidworks oder photoview) |
--quality |
2 (Gut) |
Raytracing-Qualitätsstufe |
--width |
1024 |
Ausgabe-Bildbreite in Pixeln |
--height |
1024 |
Ausgabe-Bildhöhe in Pixeln |
--view |
Render |
Kameraansicht-Name |
--configuration |
Default |
Zu verwendende Modell-Konfiguration |
BOM-Optionen
| Flag | Standard | Beschreibung |
|---|---|---|
--bom-config |
Default |
BOM-Konfiguration |
--bom-type |
2 |
BOM-Typ |
--bom-detail |
1 |
Detailgrad |
--bom-template |
— | Benutzerdefinierte BOM-Tabellenvorlage |
--bom-images |
false |
Komponentenbilder einschließen |
Workflow
| Flag | Beschreibung |
|---|---|
--dry |
Vorschau der Operationen ohne Ausführung |
--cache |
Datei-Hash-Caching verwenden, um unveränderte Dateien zu überspringen |
--save |
Modell nach Verarbeitung speichern |
--rebuild |
Modell vor Export erzwungen neu aufbauen |
--pack |
Pack-and-Go-Modus |
--light |
Lightweight-Modus |
--close |
SolidWorks nach jeder Konvertierung schließen |
--alt |
& statt $ als Variablen-Präfix verwenden |
--logLevel |
Mindest-Log-Level (debug, info, warn, error) |
Voraussetzungen
- Node.js 18+
- SolidWorks 2020–2025 (automatisch erkannt)
- Windows (SolidWorks COM Interop)
Für wen pm-cad gemacht ist
- Fertigungsübergaben: STEP + Zeichnungs-PDFs für Lieferanten in einem wiederholbaren Schritt exportieren.
- Engineering-Freigabe: Ein „Freigabepaket“ mit konsistenter Benennung und Formaten erstellen.
- Vertrieb/Support: Interaktive HTML-Vorschauen erstellen, die jeder im Browser öffnen kann – ohne Installation.
- Automatisierung & CI: Nächtliche Exporte (STEP/PDF/BOM) bei CAD-Änderungen erstellen – in jede CI-Pipeline integrierbar.
- Datenextraktion: Benutzerdefinierte Eigenschaften und Massen-/Materialdaten als JSON für Angebotserstellung oder Audits extrahieren.
FAQ
Erfordert der HTML-Export eine SolidWorks-Lizenz?
Nein. Der HTML-Export nutzt die eDrawings-API, die kostenlos ist. pm-cad führt einen Headless-Host aus – kein GUI, keine Lizenz.
Kann ich alle Konfigurationen automatisch exportieren?
Ja. Verwenden Sie ${CONFIGURATION} im Zielmuster und pm-cad iteriert jede Konfiguration.
Kann ich Exporte neben Quelldateien mit passenden Namen ablegen?
Ja. Verwenden Sie ${SRC_DIR} und ${SRC_NAME} für deterministische Ausgabepfade.
Ist es sicher, auf großen Baugruppen auszuführen?
pm-cad ist für Stapelverarbeitung ausgelegt und unterstützt Workflow-Kontrollen wie Caching (--cache), Rebuild-Steuerung (--rebuild), Lightweight-Modus (--light) und das Schließen von SolidWorks zwischen Jobs (--close), je nach Ihren Stabilitäts- und Leistungsanforderungen.
Erste Schritte
PolyMech CAD Tools bringt moderne Automatisierung zu SolidWorks-Ergebnissen: Batch-Exporte, Stückliste zu Excel, interaktive HTML-Vorschauen, Metadaten-Extraktion und Pack & Go – alles über ein skriptbares CLI oder eine Node.js-API.
Aufhören mit Speichern-unter-Klicken. Zuverlässige Exporte liefern.
npm i @polymech/cad -g
pm-cad --help
Referenzen
- xCAD.net von Xarial – Das .NET-Framework, das von pm-cads nativer Toolchain für SolidWorks-COM-Interop verwendet wird.
- SolidWorks API-Hilfe – Offizielle SolidWorks-API-Dokumentation für COM-Automatisierung.
- eDrawings API – API-Referenz für eDrawings-Automatisierung.
- STEP (ISO 10303-21) – Das neutrale CAD-Austauschformat für Fertigungsübergaben.
- Node.js Glob Patterns (minimatch) – Die Glob-Syntax-Referenz für Datei-Matching.
- npm: @polymech/cad – Die npm-Paketseite für pm-cad.