Files
claude-skills/skills/solidcraft-mcp/SKILL.md
T

8.2 KiB
Raw Blame History

name, description
name description
solidcraft-mcp parametrische 3D-Teile über den SolidCraft-MCP-Server bauen, ändern, messen und als .solidcraft, STEP, STL oder 3MF ausgeben. Verwenden, wenn SolidCraft-Werkzeuge verbunden sind oder der Nutzer SolidCraft nennt; typisch für Laschen, Platten, Gehäuse, Bohrbilder. Nicht für 2D-DXF (VectorCraft) und nicht für native SOLIDWORKS-Dateien.

Parametrische Teile mit SolidCraft (MCP)

SolidCraft ist ein Open-Source-CAD (Rust) für parametrische Volumenkörper. Getestet mit Version 0.16.2.

Voraussetzung

Die Werkzeuge list_commands, execute, batch, inspect_design, measure, screenshot, export, open, save … müssen verbunden sein. Ihr Präfix hängt vom Client und vom Namen der Erweiterung bzw. des Servers ab. Fehlen sie, dem Nutzer sagen, dass der Server nicht verbunden ist (Einrichtung siehe README).

Dateizugriff nur in den erlaubten Ordnern (Lese- und Schreib-Ordner). Der Server läuft ohne Fenster.

Werkzeuge

Tool Zweck
list_commands {filter} Befehlskatalog (id, Bezeichnung, Parameter). Nur mit Filter
execute {command, params, verbose} ein Befehl; ein Fehler lässt den Entwurf unverändert
batch {commands, verbose} Schritte der Reihe nach; beim ersten Fehler wird der Stapel zurückgenommen
inspect_design Parameter, Zeitachse (Fehler, Warnung), Körper, Skizzen
measure Volumen (mm³), Fläche, Schwerpunkt, Hüllbox, Zählungen
body_topology {body} Kanten (Mittelpunkt) und Flächen (Name, Punkt) eines Körpers
set_parameter {name, value} Parameter anlegen oder ändern und neu rechnen
screenshot PNG; immer source: "model"
export {path, format} step, 3mf, stl, urdf
open {path} / save {path} .solidcraft, STEP; STL und 3MF als Netz
new_design leerer Entwurf
undo / redo ein Schritt zurück oder wieder vor

Arbeitsweise

  1. Zuerst rechnen: Parameter, Lage (Teil um den Ursprung legen, damit Muster und Spiegel an den Ebenen hängen), für jede Kante oder Fläche den Weltpunkt, erwartetes Volumen und die Hüllbox.
  2. Wenige große batch-Aufrufe: (1) Parameter und erster Körper, (2) Verrundung und Schale, (3) Bohrungen und Schnitte. Ein Stapel ist alles oder nichts (failed.index, failed.error). Einen riskanten Schritt allein schicken.
  3. Danach measure gegen die eigene Rechnung. Volumen, Hüllbox und Flächenzahl (faces, nicht kernel.faces). Eine Lücke von etwa 0,001–0,01 % gilt als Treffer; lange flache Bögen etwa 0,1 %.
  4. Kanten über den exakten Mittelpunkt wählen, als nackte Zahlen. Die senkrechte Eckkante eines zentrierten Quaders liegt bei [w/2, d/2, h/2].
  5. list_commands nur mit filter. Ohne Filter ist die Liste über 100 KB.
  6. In großen Entwürfen "verbose": false an batch und execute.

Längen sind mm. Winkel in Ausdrücken brauchen eine Einheit, z. B. "30 deg".

Fallen

  • Ein Schnitt kann Erfolg melden und das Volumen unverändert lassen. Im Test mit 0.16.2 bestätigt: solid.box mit length 40, width 30, height 20 ergab 24000 mm³ (Hüllbox 0–40 × 0–30 × 0–20, 6 Flächen). Ein solid.cylinder mit operation: "cut" außerhalb des Quaders meldete keinen Fehler und ließ das Volumen bei 24000 mm³. Nur ein measure, das zur Rechnung passt, zählt. Die Doku beschreibt dasselbe für eine Bohrung, deren Skizze unter dem Teil in der Luft liegt: die Skizze auf die Deckfläche legen (offset der Höhe).
  • Die Kantenwahl schnappt ohne Fehler an die nächste Kante. Keine Abstandsschranke. Den Mittelpunkt aus der Geometrie rechnen und danach prüfen, ob sich die Flächenzahl geändert hat. Eine Wahl ist eine nackte Zahl, wird einmal aufgelöst und folgt danach ihrer Kante.
  • Außen verrunden, bevor geschält wird, damit die Schale den Rundungen folgt. Ausnahme: eine Kante der Fläche, die die Schale entfernt (der Rand eines offenen Kastens). Diese Kante erst nach der Schale runden, sonst kann die Schale scheitern.
  • Eine nackte Zahl folgt keinem Parameter. Was mitziehen soll, steht in einer Skizzenbemaßung oder einem Ausdruck ("w/2 - wall"). solid.cylinder nimmt Ausdrücke in base; solid.hole mit position ebenfalls.
  • new_design und open verwerfen ungespeicherte Arbeit. Hat der Entwurf schon Features auf der Zeitachse, vorher fragen. Sonst in den offenen Entwurf weiterbauen.
  • Screenshot mit source: "model". width und height gelten nur für Modellbilder. Ohne source liefert ein mit der App verbundener Server das Fenster, und view dreht dessen Kamera. Für Features in Wänden "view": "top".
  • Nut vor dem Einstieg, gleiche Startebene und gleicher Außenradius: der zweite solid.revolve mit cut meldet boolean Cut: the operation failed: no result, obwohl jeder Schnitt allein geht. Einstieg zuerst; die Nut danach ein Stück in den Einstieg hinein und etwas flacher.
  • sketch.circle.center nimmt im Feld diameter keinen Ausdruck. Meldung: needs radius or diameter. Der Kreis bekommt eine Zahl, der Ausdruck steht in sketch.dimension mit type: diameter. solid.cylinder nimmt Ausdrücke in diameter, height und base.
  • solid.revolve mit angle dreht von der Skizzierebene in die negative Winkelrichtung (von +X nach −Y). Ein Prüfkörper bei −20° lag im Schnitt, der bei +20° im Material. direction: symmetric legt den Winkel um die Ebene.
  • Ein Kreismuster solcher Schnitte kann Boolean retry: tool displacement um etwa 4e-4 mm warnen. error bleibt leer. Das Volumen blieb in der Toleranz; die Warnung nennen, nicht als Fehler behandeln.
  • Überdeckung: solid.combine mit intersect auf leerer Überdeckung löscht den Zielkörper und meldet trotzdem Erfolg. Zum Prüfen inspect.interference.
  • Eine Zylinderschale trifft πr²h nicht bis auf 0,001 %. Ob ein Schnitt getroffen hat, zeigt die Volumendifferenz.

Rezepte

  1. Grundplatte mit Bohrbild und Parameteränderung:
    1. Parameter für Länge, Breite, Dicke und Randabstand.
    2. Ein batch: Skizze auf XY, Rechteck über den Ursprung, Extrusion, Verrundung der Außenecken über ihre Mittelpunkte, Bohrung auf der Deckfläche, rechteckiges Muster mit Abständen als Ausdrücke.
    3. measure gegen das gerechnete Volumen.
    4. set_parameter der Länge, erneut measure: die Bohrungen bleiben in den Ecken, Schwerpunkt und Hüllbox verschieben sich um den gerechneten Betrag.
    5. save als .solidcraft, export als STEP.
  2. Kleines Gehäuse (Deckel offen):
    1. Kasten (solid.box oder Extrusion).
    2. Außenkanten verrunden.
    3. Schale: die Deckfläche entfernen (solid.shell, Punkt oder Flächenname), Wandstärke als Parameter.
    4. Den Rand der Öffnung danach runden.
    5. measure nach Verrundung und nach der Schale. Speichern, STEP für die Weitergabe.
  3. Vorhandenes STEP öffnen, messen, Iso-Bild: open nur mit Zustimmung (siehe Datenschutz). measure (Volumen, Hüllbox, Körperszahl). Ein Bild mit screenshot {source: "model", view: "iso"}. Nichts ändern, solange der Nutzer nur messen und ansehen will.

Abschlussprüfung

  • measure passt zum selbst gerechneten Volumen, zur Hüllbox und zur Flächenzahl.
  • inspect_design mit measure: false und sketches: false: kein error in der Zeitachse. Eine Boolean-Warnung ist harmlos, wenn das Volumen trotzdem stimmt; stimmt es nicht, kann die Geometrie falsch sein, ohne dass ein Fehler gemeldet wurde.
  • Ein screenshot mit source: "model" angesehen.
  • Pfade von .solidcraft und Export dem Nutzer genannt.

Datenschutz

Ampel:

  • 🟢 Allgemeine und technische Inhalte ohne Kundenbezug.
  • 🟡 Projekt- und Geschäftsinfos: nur nach Abwägung oder anonymisiert.
  • 🔴 Personenbezogene Daten und NDA-Inhalte gehören nicht in die Cloud-KI.

Ein Kunden-STEP mit Kundenname oder NDA-Vermerk ist 🔴: nur mit Zustimmung des Nutzers öffnen.

Grenzen

  • Kein SLDPRT und kein SLDASM. Native SOLIDWORKS-Dateien werden nicht geöffnet.
  • Kein Ersatz für eine freigegebene Fertigungszeichnung. STEP und STL sind Geometrie, keine Zeichnung mit Toleranzen.
  • Baugruppen mit Gelenken nur am Rand. export kann URDF schreiben; Gelenke, Kontakte und Bewegungsstudien gehören nicht in diesen Ablauf.
  • 2D-DXF für Laser bleibt bei VectorCraft.