SolidWorks 2023 native Automatisierungsmodellierung (rezeptgesteuert · praxisgetestet)
Verpackt den Vorgang "Objekt beschreiben → JSON-Modellierrezept → SolidWorks zeichnet direkt" in einen einzigen Befehl, inklusive programmatischer Geometrieverifikation.
Repository-Struktur
| Pfad | Beschreibung |
|---|---|
sw_bridge.py | Kernbrücke: Rezeptgesteuert, ein Befehl für Modellieren→Speichern→Exportieren→Assertion |
stl_slicer.py | STL-ASCII-Schnittverifikation (programmatische Prüfung von Konturen/Löchern/Nuten, ohne Bildauswertung) |
recipes/ | Fertige Rezeptbeispiele (inkl. vollständigem Selbsttest recipe_best_practices_test.json) |
dfm_check.py + rules/ | Produktstruktur-DFM-Prüfer: Quantitatives Regelwerk für Spritzguss (16 Regeln) / 3D-Druck (14 Regeln) mit zwei Prozessen, Designparameter-Tabellen-Check + Rezept-Lint |
skills/sw-dfm-injection/ | Zweig-Skill: Spritzguss-DFM (DVT/Serienproduktion, quantitative Regeln für Wandstärke/Entformungsschrägen/Schnappverbindungen/Boss/Rippen/Hinterschnitte) |
skills/sw-dfm-proto/ | Zweig-Skill: 3D-Druck-Prototypen-DFM (EVT, quantitative Regeln für minimale Merkmale/Überhänge/Spalte/Entlüftungslöcher) |
references/api-pitfalls.md | Sämtliche schmerzhafte Erfahrungen: COM/Signaturen/VARIANT/EquationMgr/ROT-Fallstricke, vor dem Schreiben neuer Fähigkeiten lesen |
references/recipe-cookbook.md | Detaillierte Rezept-Syntax + Vorlagen + Multi-Spezifikationen/Assertion-Verwendung |
references/industry-best-practices.md | Branchen-Benchmark-Recherche + zukünftige Optimierungsliste |
docs/case_mcp1085_box.md | Praktischer Lieferfall: Zweischicht-Wasserrohr-Prüfbox |
config.example.json | Maschinenspezifische Konfigurationsvorlage (Vorlagenpfade/ProgID/Ausgabeverzeichnis) |
Umgebungsvoraussetzungen (keine darf fehlen)
- Windows + lizenzierte SolidWorks 2023 läuft. COM kann nur an interaktive Sitzungen anbinden (
GetObject), kein Headless-Betrieb, auch nicht per Skript startbar (durch Skript gestartete Instanzen können sich nicht in der ROT registrieren, siehe api-pitfalls §13). - Python 3.10+,
pip install -r requirements.txt(pywin32 / trimesh / manifold3d / numpy / pillow). - Die Pfade für die chinesische Standardvorlage sind bereits als Standardwerte hinterlegt; für englische Versionen oder benutzerdefinierte Vorlagen kopieren Sie
config.example.jsonzuconfig.jsonund passen Sie es an.
Schneller Selbsttest
python sw_bridge.py --demo block # Block erstellen + Export + Geometrie-Assertion aus einer Hand
python sw_bridge.py --demo vase # Spline-Rotationsfläche
python stl_slicer.py --stl demo_output/demo_block.STL --level 5 # Schnitt zur Profilansicht
Standard-Workflow
- JSON-Rezept schreiben (Syntax und Vorlagen in
references/recipe-cookbook.md) - Ausführen:
python sw_bridge.py --recipe-file recipes/xxx.json - Verifizieren: Eingebaute
verify-Assertionen (Wasserdichtheit/Volumen/Bounding Box/Golden IoU), Fehler führt zum Gesamtfehler; dann mitstl_slicer.pySchnitte ansehen - Bilder exportieren: Mehrere
view-Operationen exportieren PNGs aus verschiedenen Blickwinkeln;fmt: stepfür nachgelagerte Prozesse - Strukturprüfung (für produktionsreife Teile):
python dfm_check.py --design Parameter-Tabelle.json --process both– Spritzguss/3D-Druck-Zwei-Prozess-DFM-Check, Fehler bedeutet Gate nicht bestanden; Zweig-Skills inskills/
Rezept-Operationen im Überblick (vollständige Parameter im Cookbook)
| op | Beschreibung |
|---|---|
new_part / new_assembly / open | Dokumentenoperationen |
sketch / sketch_end / centerline / spline / line / rect / circle / arc | Skizzen (mm) |
extrude / revolve / cut / fillet / chamfer | Features (Fehler automatischer Rückfall mit Wiederholung) |
set_global_variable / add_equation | Globale Variablen/Gleichungen → Multi-Spezifikationen desselben Modells via GV-Variation |
view / save / export / add_component / import_mesh | Ansicht/Speichern/Export stl·png·step·iges/Baugruppe/Mesh-Import |
verify | trimesh-Assertionsschicht (Wasserdichtheit/Volumen/Bounding Box/Golden IoU) |
Während der Ausführung werden Grafikaktualisierung/Feature-Baum automatisch eingefroren (Performance-Hülle), abgeschlossen mit einheitlichem ForceRebuild3+ForceRebuildAll.
Harte Regeln Kurzübersicht (vollständige Version in references/api-pitfalls.md)
- API-Längeneinheiten sind grundsätzlich Meter, im Rezept in mm angeben (Brücke rechnet automatisch um).
FeatureRevolve2hat 20 Parameter; die vom Typbibliotheksgenerator erstellten 4/5/7-Parameter-Versionen sind alle falsch.- Bei Late Binding müssen Callout/ExportData als
VARIANT(VT_DISPATCH, None)übergeben werden; Punktarrays vonCreateSpline2müssenVT_ARRAY|VT_R8sein. - Skizzen betreten und verlassen mit
InsertSketch(True)(Toggle). - Lokalisierte chinesische Namen: Vordere Bezugsebene/Skizze1/*Isometrisch (config kann auf englische Umgebung umgestellt werden).
- Komplexe Features (>12 Parameter) schlagen fehl → Letzte Reserve: SW-Makro aufnehmen → mit
RunMacro2abspielen. GetEquationMgrist propget-only, muss per dispid als PROPERTYGET erzwungen werden (siehe api-pitfalls §12).- Komplexe API-Signaturen zuerst in der SW-installierten Typbibliothek (makepy) oder per Makroaufzeichnung prüfen, nicht aus dem Gedächtnis raten.
Versionskompatibilitätshinweise
Dieses Paket wurde mit SW2023 chinesischer Standardversion praxisgetestet (inkl. dispid 66286, ProgID .31, 20-Parameter-FeatureRevolve2 und andere versionsspezifische Details).
Die Kernlogik ist für andere SW-Versionen universell, aber versionsabhängige Konstanten müssen nach der Methode in api-pitfalls §12 erneut überprüft werden (makepy-Typbibliothek/Makroaufzeichnung).
Bereits getestete / nicht getestete Grenzen
- ✅ Extrusion, Rotation, Spline, Rechteck/Kreis/Bogen, Ausschnitt, Verrundung, Fase, Baugruppenkomponente hinzufügen, GV/Gleichungen, Export STL/STEP/IGS/PNG, Mesh-Import, Geometrie-Assertionen
- ❌ Sweeping/Lofting/Pattern/Mates nicht getestet (theoretisch gleiche Vorgehensweise, Signaturen zuerst in Typbibliothek oder Makroaufzeichnung prüfen)