CommunityBildgithub.com

AryaVora621/agentcad

Entwerfe, prüfe und exportiere 3D-Teile in Code mit CadQuery und agentcad – messe die erstellte Geometrie, anstatt Parametern zu vertrauen. Ideal für jede Aufgabe, die ein 3D-Teil, eine Baugruppe oder einen Druck in Code entwirft, modifiziert, prüft oder exportiert (CadQuery, STEP, STL, 3MF), einschließlich „Erstelle eine Halterung/ein Gehäuse/eine Montage/ein Case“, Zusammenfügen von Teilen, Prüfen der Druckbarkeit oder Überprüfung von CAD-Dateien, die ein anderer Agent erstellt hat.

Was ist agentcad?

agentcad ist ein leistungsstarkes Werkzeug für das codebasierte 3D-Design, das auf dem Prinzip basiert, die tatsächlich erstellte Geometrie zu messen, anstatt sich auf Parameterangaben zu verlassen. Es integriert sich nahtlos mit CadQuery und ermöglicht es dir, 3D-Teile und Baugruppen zu entwerfen, zu modifizieren, zu prüfen und zu exportieren. Der Kernworkflow folgt einer Schleife: Erstelle oder bearbeite ein Modell, führe agentcad check aus, um die Geometrie zu messen und zu validieren, rendere das Modell zur visuellen Inspektion und wiederhole den Vorgang, bis alle Anforderungen erfüllt sind. Dabei werden funktionale Anforderungen (z. B. Passung, Spiel, Überhang) in überprüfbare Checks übersetzt, die mit Sondenkörpern (Probe Solids) arbeiten – dabei handelt es sich um vereinfachte CAD-Repräsentationen der umgebenden Teile. agentcad vermeidet typische Fallstricke wie das blinde Vertrauen auf Parameter, das Ignorieren von Überhängen in der Druckausrichtung oder das Übersehen von Interferenzen zwischen Teilen. Es unterstützt die Formate STEP, STL und 3MF und bietet eine detaillierte Berichterstattung mit Exit-Codes, um fehlgeschlagene Checks von Konfigurationsfehlern zu unterscheiden.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/AryaVora621/agentcad/tree/HEAD/skills/agentcad

Installed? Explore more Bild skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht agentcad?

1. Die Kernregel

Gib niemals ein Maß, ein Spiel oder ein BESTANDEN (PASS) an, das du nicht an der erstellten Geometrie mit agentcad gemessen hast. Parameter sind Absicht, kein Beweis. Ein Wert, den du in model.py eingegeben hast, sagt dir, was du wolltest, nicht was existiert.

2. Die Schleife

agentcad new my-part --template blank      # oder bracket, box-with-lid
# bearbeite my-part/model.py und my-part/agentcad.toml
agentcad check my-part --json              # baut, dann misst
agentcad render my-part                    # build/renders/: ein PNG pro Ansicht plus sheet.png
agentcad view my-part                      # Live-Viewer für den Menschen
  1. Schreibe zuerst die Prüfungen für die Anforderungen (Abschnitt 3) oder während der Modellierung.
  2. Führe agentcad check --json aus. Lies jedes FEHLGESCHLAGEN (FAIL): summary, measured, limit, where.
  3. Behebe die Geometrie an der Stelle, die where angibt. Führe erneut aus. Bearbeite keinen Grenzwert, um ein FAIL verschwinden zu lassen, es sei denn, die Anforderung selbst hat sich geändert.
  4. Führe agentcad render aus und öffne sheet.png mit einem bildfähigen Werkzeug. Sieh es dir an, bevor du sagst, es sieht richtig aus. Renderings finden grobe Fehler (fehlendes Merkmal, falsche Seite); sie beweisen niemals Dicke, Spiel oder Überlappung nach.
  5. Wiederhole, bis alle Bedingungen (Gates) bestanden sind. Führe agentcad check nach der letzten Bearbeitung erneut aus.

Das overhang-Gate ignoriert Flächen auf der Bauplatte und nach unten gerichtete Flächen, die unterhalb von first_layer_mm (Standard 0,3) zentriert sind, sodass eine Fase an der Unterkante nicht zählt; der ausgenommene Bereich wird als first_layer_area_mm2 gemeldet.

Verwende --only ID,ID, um ausgewählte Gates erneut auszuführen, und --no-build nur, wenn build/ aktuell ist.

3. Anforderungen in Prüfungen umwandeln

Jede funktionale Anforderung in der Aufgabenstellung wird zu einer Prüfung in checks(ctx). Sondenkörper (Abschnitt 4) stehen für das Gegenstück. Alle folgenden Namen sind die echte API.

Eine Passung wird zu einer Spielmessung:

def checks(ctx):
    play = ctx.play("lid", "box", direction=(1, 0, 0), max_mm=2.0)
    ctx.expect("lid_side_play", play if play is not None else 2.0, min=0.15, max=0.4, part="lid")

„Der Deckel geht ab“ wird zu einem Gleittest:

    sweep = ctx.slide("lid", "box", direction=(0, 0, 1), distance=15.0, steps=40)
    ctx.expect("lid_lifts_free", max(s["overlap_mm3"] for s in sweep), max=0.01, unit="mm3", part="lid")

„Eine M4-Schraube geht durch“ wird zu einem Sondenzylinder, der nicht kollidieren darf und nahe an der Wand sein muss:

    import cadquery as cq
    screw = cq.Workplane("XY").circle(2.0).extrude(30).translate((10, 0, -5))  # 4.0 mm Schaft
    ctx.expect("screw_interference", ctx.interference("bracket", screw), max=0.01, unit="mm3", part="bracket")
    ctx.expect("screw_wall_gap", ctx.distance("bracket", screw), min=0.0, max=0.5, part="bracket")

Das Distanzband beweist, dass die Schraube tatsächlich nahe am Loch ist, nicht 14 mm entfernt mit null Überlappung.

„Passt auf den Drucker“ ist das integrierte bed_fit-Gate: setze [printer] in agentcad.toml auf die reale Maschine (profile oder bed = [X, Y, Z]). „Wände stark genug“ ist min_wall_mm unter [checks].

4. Sondenkörper (Probe Solids)

Erstelle den Stellvertreter für das Gegenstück aus der Anforderung, niemals aus den eigenen Parametern des Modells. Eine M4-Schraube ist ein 4,0 mm Zylinder. Eine 54 mm Kugel ist eine 54 mm Kugel. Ein Kabel ist ein Zylinder entlang seines Verlaufs. Eine Hand ist ein Quader in der Größe der Hand. Wenn die Sonde dieselbe Variable liest, aus der das Loch erstellt wurde, kann die Prüfung niemals fehlschlagen.

Sonden sind cq.Workplane- oder cq.Shape-Objekte, die sich bereits im Verwendungskoordinatensystem (use frame) befinden. Platziere sie mit .translate und übergib sie überall dort, wo ein Teilname akzeptiert wird (ctx.interference, ctx.distance, ctx.slide, ctx.play).

5. Beweise, dass eine Prüfung fehlschlagen kann

Eine Prüfung, die du noch nie fehlschlagen gesehen hast, ist eine Vermutung. Gehe nach dem Schreiben wie folgt vor:

  1. Verändere die Geometrie (oder die Sonde) so, dass sie die Prüfung auslösen muss: verschiebe das Loch um 3 mm, verkleinere das Spiel auf 0, vergrößere die Sonde um 1 mm.
  2. Führe agentcad check aus. Bestätige, dass diese Prüfung FEHLGESCHLAGEN ist, basierend auf ihrer eigenen Behauptung, mit der von dir erwarteten Zahl.
  3. Stelle die Geometrie wieder her und bestätige BESTANDEN.

Wenn sie trotz Veränderung bestanden wird, misst die Prüfung das Falsche. Korrigiere die Prüfung, bevor du einem anderen Ergebnis vertraust.

6. Koordinatensysteme (Frames)

KoordinatensystemBedeutungVerwendet von
modelDas Teil in seinen eigenen Koordinatenbuild/step/<part>.step
useDie zusammengebaute Position, Part.useinterference, Sonden, ctx.slide, ctx.play, build/assembly/
printAuf der Bauplatte, z = 0 unten, XY zentriert, Part.print Rotationbed_fit, bed_contact, overhang, min_wall, watertight, build/stl/

Setze Part.print = Pose(rx=180) (oder eine beliebige Rotation), damit jedes Teil stützenfrei druckt und die Schichten entlang der Last verlaufen. Wähle zuerst die Fläche auf der Bauplatte aus und überprüfe dann overhang in diesem Koordinatensystem. Gekaufte Teile erhalten printed=False. Modelliere Teile in einem bequemen lokalen Koordinatensystem und platziere sie mit Part.use.

7. Berichte, Exit-Codes, Diff und lose Dateien

Exit-Codes: 0 alle bestanden (WARN erlaubt), 1 mindestens ein FEHLGESCHLAGEN, 2 Nutzungs- oder Konfigurationsfehler (einschließlich unbekannter Schlüssel in agentcad.toml), 3 der Modellcode hat eine Ausnahme verursacht oder keinen gültigen Festkörper erzeugt. Behandle 2 und 3 als „kein Ergebnis“, nicht als Bestanden.

agentcad check --json gibt ein Dokument mit "schema": "agentcad.report/1" und einer checks-Liste aus. Jede Prüfung hat id, part, status (PASS, WARN, FAIL, SKIP, ERROR), summary, measured, limit, where. Eine Projektprüfung, die eine Ausnahme auslöst, wird zu ERROR, und die Ausführung wird fortgesetzt.

Vergleiche Bauausgaben mit agentcad diff OLD NEW (zwei manifest.json-Dateien oder zwei Build-Ordner; Volumen, Bounding-Box, Teilesatz), um unbeabsichtigte Änderungen nach einer Bearbeitung zu erkennen. Kopiere build/manifest.json vor einer riskanten Änderung zur Seite.

Um CAD-Dateien zu überprüfen, die du nicht geschrieben hast, messe die Dateien direkt:

agentcad measure part.step --json
agentcad interfere a.stl b.stl --json
agentcad overhang part.stl --max-deg 45 --json
agentcad wall part.stl --thin 1.2 --json
agentcad fit part.stl --printer generic-220 --json

8. Wann aufhören

Höre erst auf, wenn alle folgenden Bedingungen erfüllt sind:

  • Alle Bedingungen (Gates) sind im letzten agentcad check-Durchlauf bestanden, der nach deiner letzten Bearbeitung durchgeführt wurde;
  • Jede Anforderung in der Aufgabenstellung hat eine Prüfung, und du hast jede dieser Prüfungen einmal fehlschlagen sehen (Abschnitt 5);
  • Du hast dir die Renderings angesehen;
  • Deine Zusammenfassung zitiert die gemessenen Zahlen mit Einheiten (Spiel, Wandstärke p1, Überhangfläche, Druckbett-Passung);
  • Du gibst die Teileanzahl an und alles, was als manuelle Prüfung übrig bleibt (eine Schnappkraft, eine Toleranz des realen Druckers, Materialverhalten).

9. Anti-Patterns und die dadurch verursachten Fehler

  • Lesen von Parametern anstatt der erstellten Form. Ein Arbeiter meldete BESTANDEN für ein Gleitschwalbenschwanzspiel, während das Teil 14 mm außerhalb seiner Nut saß, weil seine Prüfung die Parameter las.
  • Überspringen des Druckkoordinatensystems. Eine Platte wurde so modelliert, dass sie mit der bedruckten Seite nach unten gedruckt wird, mit etwa 6100 mm2 ungestützter Decke, weil der Überhang nie in der Druckausrichtung überprüft wurde.
  • Überspringen der paarweisen Interferenz. Zwei Teile überlappten sich in der Baugruppe um 50 cm3, weil niemand die Interferenz in der Gebrauchsposition überprüft hat.
  • Grobe Exporttoleranz. Ein grober STL-Export eines rotationssymmetrischen Teils erzeugte eine Facette, die eine 2,0 mm dicke Wand auf 1,5 mm schnitt. Behebung: Exporttoleranz 0,02 mm, Winkeltoleranz 0,05 rad (die Standardwerte in [export]).
  • Ungemessene Prosa. Ein Konstruktionsdokument gab einen Außendurchmesser von 29 bis 33,5 mm an, während das Modell 19 mm maß. Messe jede Zahl, die du in Prosa schreibst.
  • Nur auf „es baut“ prüfen. Ein Neubau bestand sein einziges Gate, während alle internen Kanäle versiegelt und ein Ausguss massiv war. Verfolge den funktionalen Pfad: Führe eine Sonde entlang des Wasser-, Kabel- oder Luftwegs.
  • Nur das Ganze prüfen. Eine Baugruppe war insgesamt stabil, während eine einzelne lose Stufe allein bei 6 Grad kippte. Überprüfe jede lose Unterstapel.
  • Vertrauen auf einen veralteten Bericht. Ein Gate-Bericht war veraltet, weil der Bau nach dem Schreiben des alten Berichts abgestürzt ist. agentcad baut atomar, aber vergleiche dennoch die Zeitstempel der Berichte mit deiner letzten Bearbeitung und führe sie nach jeder Bearbeitung erneut aus.
  • Vertrauen auf das Bild. Ein sauberes Rendering verbarg alle oben genannten Probleme.

10. Referenzen

  • references/design-for-printing.md: Lies dies, bevor du die Ausrichtung, Wandstärke, Passungen, Schraubenlöcher oder Schnappverbindungen für ein FDM-Teil auswählst.
  • references/cadquery-patterns.md: Lies dies, wenn eine CadQuery-Operation fehlschlägt, eine unerwartete Form zurückgibt oder du Selektoren, Schalen, Verrundungen oder Sondenkörper benötigst.
  • references/verification-playbook.md: Lies dies, wenn du Prüfungen für eine Aufgabenstellung planst, Bewegung oder Funktion testest oder das CAD eines anderen Agenten überprüfst.

Verwandte Skills