Communitygithub.com

JRuiter/Schnittmuster-Generator

Erstellt nähbare, maßstabsgetreue, druckfertige Schnittmuster (1:1 Vektor-PDF) aus einer freien Beschreibung, einer Größe oder Körpermaßen und/oder Fotos eines Kleidungsstücks.

Was ist Schnittmuster-Generator?

Dieses Skill ermöglicht es einem KI-Agenten, parametrische Schnittmuster für Kleidung zu entwerfen. Es basiert auf echten Schnittkonstruktionsregeln, nicht auf Bildgenerierung. Der Agent kann aus Textbeschreibungen, Körpermaßen oder sogar Fotos von vorhandener Kleidung ein maßstabsgetreues, druckfertiges PDF-Schnittmuster erstellen. Es unterstützt eine Vielzahl von Kleidungsstücken (Hosen, T-Shirts, Hoodies, Röcke, Kleider, Beanies) und bietet detaillierte Anpassungsmöglichkeiten wie Passform, Stoffart, Nahtzugaben und Ausgabeformate (z. B. A4 zum Zusammensetzen, Rollenplotter). Der Skill ist für Claude Code, Cursor und andere KI-Entwicklungsumgebungen geeignet und enthält eine umfassende Dokumentation zur Arbeitsweise, zur Fotoanalyse und zum Umgang mit Größentabellen.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/JRuiter/sewing-pattern-generator/tree/HEAD

In Ihrer bevorzugten KI fragen

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

Dokumentation

Was macht Schnittmuster-Generator?

Erstellt Schnittmuster parametrisch (Konstruktionsregeln, keine Bildgenerierung), prüft, dass sie genäht werden können, und erzeugt Druckdateien, einen Zuschnittplan, Stoffverbrauch und Nähanleitungen. Alle generierten Dateien sind auf Englisch. Antworten Sie dem Benutzer in der Sprache, in der er schreibt.

Nur Eigenkonstruktionen: Niemals geschützte kommerzielle Schnittmuster nachbauen oder kopieren. Wenn der Benutzer ein Designerkleidungsstück zeigt, einen originellen Schnitt in ähnlichem Stil für den privaten Gebrauch entwerfen.

Einrichtung (einmalig)

pip install -r requirements.txt   # numpy scipy shapely opencv-contrib-python-headless reportlab matplotlib pillow pypdf

Alle Skripte befinden sich in scripts/ und werden von dort oder mit ihrem Pfad aufgerufen.

Arbeitsablauf

1. Anfrage verstehen

Herausarbeiten: Kleidungsstück und Varianten, Größe oder Maße, Stoff und Dehnbarkeit, Passform, Ausgabe- format. Fotos? → Schritt 3.

2. Fragen: GENAU EINE Runde, nur was wirklich fehlt

Die fehlenden Punkte gemeinsam in einer kurzen Nachricht erfragen, jeweils mit einem Standardwert ("Wenn Sie nichts anderes sagen, verwende ich …"). Typische Lücken:

  • Kleidungsstück und Varianten (Taschen, Bündchen, Länge, Kapuze …)
  • Größe (Kinder 86–176, Damen 34–56, Herren 44–60) oder Körpermaße (Größe, Brustumfang, Taillenumfang, Hüftumfang, Schrittlänge, Seitenlänge, Armlänge, Kopfumfang)
  • Stoff (Webware / Jersey / Jersey mit Elastan / Interlock / Sweat / Fleece) und Dehnbarkeit in %
  • Passform (schmal / normal / weit / übergroß; bei Hosen auch Pluderhose)
  • Ausgabe: Rolle (Breite in mm, Standard 610), A0, A1, A4 oder US Letter zum Zusammensetzen
  • Nähmaschinen: Mit welchen Maschinen genäht wird: Nähmaschine (Zickzack? Stretchstich? oder nur Geradstich), Zwillingsnadel, Overlock, Coverlock. Die Frage überspringen, wenn die Werkstatt- datei sie bereits enthält (python scripts/profiles.py machines show) oder der Benutzer sie bereits genannt hat. Standard, falls nicht angegeben: eine Haushaltsnähmaschine mit Zickzack.
  • Nahtzugabe nur, wenn sie dem Benutzer wichtig ist (Standard 1 cm, Säume 2–2,5 cm; mit Overlock bei Maschenware automatisch 7,5 mm, 1,5 cm bei Webware auf einer reinen Geradstichmaschine, oder "keine" zum Nachzeichnen und eigenen Hinzufügen)

Hinterher nicht noch einmal fragen; alles Unklare mit einem sinnvollen Standardwert lösen und im Ergebnis erwähnen.

Puppenkleidung (Stoffpuppe, Stofftier, Modepuppe; Höhe 20–100 cm): stattdessen nach der Puppenhöhe (Kopf bis Fuß) fragen und, mit einem Maßband oder einer Schnur um die Puppe gemessen: Brust, Taille, Hüfte, Kopf, Armlänge (Schulter bis Handgelenk), Schrittlänge und Seitenlänge (Taille bis Fußsohle). Nur die Höhe ist erforderlich; fehlende Werte folgen typischen Stoffpuppen-Proportionen. Dann generate.py --doll --garment dress --measures '{"height": 45, "chest": 30, …}' (Angabe "doll": true). Unterstützt: dress, skirt, pants_basic, tshirt_basic. Standardwerte für Puppen (jeweils überschreibbar): Nahtzugabe 6 mm (5 mm unter 30 cm), Säume 10 mm, Webware, weite Passform, Oberteile und Kleider auf der Rückseite vollständig geöffnet (Klett/Druckknöpfe, weil ein ausgestopfter Kopf selten durch einen Ausschnitt passt) mit einem Schrägband eingefasstem Ausschnitt, Hosen mit schmalem Gummizugband, keine Taschen/Bündchen. Empfehlen Sie dünnen Baumwollstoff, eine kurze Stichlänge und Nahtveredler. Eine Puppe erhält ein Profil mit profiles.py save rosa --measures '{…}' --kind doll. Details: scripts/doll.py, references/size_tables.md ("Doll clothes").

Maschinen: Diese mit --machines sewing,overlocker,coverstitch übergeben (Schlüssel: sewing = Geradstich

  • Zickzack, straight_only, stretch_stitch, twin_needle, overlocker, coverstitch; da auch deutsche Namen wie Overlock, Coverlock, Zwillingsnadel; Angabenfeld machines). Die Maschinen gehören zur nähenden Person, also beim ersten Nennen einmal für alle zukünftigen Schnittmuster speichern: python scripts/profiles.py machines set sewing,overlocker (Werkstattdatei profiles/_machines.json; ein Maßprofil kann eigene --machines mitführen, und --machines überschreibt beides). Auswirkungen: Nähte in Maschenware mit der Overlock erhalten 7,5 mm Zugabe (das Messer schneidet ab), Webwarenähte auf einer reinen Geradstichmaschine 15 mm für Französische Nähte (eine explizite --seam-allowance gewinnt immer; Puppenkleidung behält ihre 6 mm); jeder Naht- und Saumschritt nennt die Maschine und den Stich; die Anleitung erhält eine Tabelle "Ihre Maschinen" (Stich, Breite/Länge, Nadel pro Schrittart) und Tipps für das, was fehlt (z. B. eine Zwillingsnadel statt einer Coverlock). Ohne Overlock fehlt nichts: Maschenwarenähte verwenden einen schmalen Zickzack-/Stretchstich. Maschenware auf einer reinen Geradstichmaschine funktioniert, ist aber empfindlich: Webware oder die doppelte Reihe langer Geradstiche vorschlagen, die die Anleitung beschreibt. Gar keine Nähmaschine (nur eine Overlock): --machines overlocker,hand (oder overlocker_only; hand ohne einen Nähmaschinen- Schlüssel bedeutet "keine Nähmaschine"). Dann wird jede Naht mit der Overlock genäht (7,5 mm Zugabe, auch bei Webware) und jeder Geradstich-Schritt von Hand ausgeführt: Steppstiche → Rückstich, Säume/Einfassungen → Blindstich, Heften → Vorstich, Absteppungen von Hand, elastische Enden → eine Reihe von Handstichen; die Schritte fügen Overlock-Hinweise hinzu (Stecknadeln vor dem Messer entfernen, Kurven langsam, Fadenketten). In der Antwort in einem Satz erwähnen, wie das Schnittmuster an die Maschinen angepasst wurde.

Maßprofile: Wenn der Benutzer Körpermaße für eine Person angibt, einmal anbieten, diese zu speichern (python scripts/profiles.py save lena --measures '{…}' --kind child). Spätere Anfragen wie "Hose für Lena" benötigen dann keine Maßfragen mehr: generate.py --profile lena … (warnt, wenn die Maße eines Kindes älter als 6 Monate sind; siehe references/size_tables.md).

3. Fotos (optional)

Zuerst entscheiden, welcher Modus zutrifft (Details: references/photo_guide.md):

Modus A: Inspirationsfoto (getragen, Katalog, Pinterest). Das Foto ansehen und das Feature-JSON ausfüllen (Schema in scripts/photo_analyze.py, jedes Feature mit value und confidence 0–1). Dann:

python scripts/photo_analyze.py features.json        # Bestätigungstext + Modul/Optionen + "nicht abgedeckt"
python scripts/photo_analyze.py --image flatlay.jpg  # Hosen-Silhouette automatisch (Proportionen nur)

Die Feature-Liste mit Konfidenzen anzeigen und den Benutzer um Bestätigung bitten ("Ich kann … sehen, stimmt das?"). Features, die nicht abgedeckt sind, offen benennen und die vom Skript ausgegebene Alternative anbieten; nichts erfinden. Körpermaße kommen immer vom Benutzer, niemals von einem Inspirationsfoto.

Modus B: Kleidungsstück kopieren (flach ausgelegt, senkrecht von oben fotografiert, mit der Referenzkarte assets/reference-card.pdf oder einem Zollstock): Reverse Engineering.

cd scripts && python -m reverse.pipeline photo.jpg --type pants --out project/

Ergebnisse: overlay_measurement.png (erkannte Kontur und Maße; dem Benutzer zur Bestätigung zeigen), reverse_report.md (Teile-/Nahtgraph, Soll/Ist/Δ-Abweichungs- bericht, Nähbarkeitsprüfung) und project.json (aufbewahren für "wie letztes Mal, 2 Größen größer" → reverse.pipeline.regrade("project.json", 2)). Maßbandwerte vom Benutzer haben Vorrang: photo_measure.measure(..., tape={"inseam": 48}). Fehlt die Karte, sagt das Skill genau, was zu tun ist. Fehlende Fotos (z. B. für die Schrittkurve) werden von reverse.decompose.missing_photos aufgelistet. Toleranz: Längen ± 1 cm, Breiten ± 2 %. Dann die Druckdateien:

python scripts/generate.py --project project/project.json --format roll610,a4 --out out/copy

Puppenkleidung kann ebenfalls kopiert werden: --doll hinzufügen (reverse.pipeline.run(..., doll=True)); das Ergebnis hat Puppenzugaben und eine hintere Öffnung, und generate.py --project druckt es aus. Puppen- Oberteile messen am besten mit langen Ärmeln (sehr kurze, weite Puppenärmel: die Ärmelbreite mit einem Maßband messen). Modus B funktioniert für Hosen (--type pants) und für T-Shirts / Raglan-Oberteile (--type top, Modul tshirt_basic). Bei Oberteilen liefert das Foto Brust- und Saumweite, Länge, Armlochtiefe, den vorderen Halsausschnitt (Breite und Tiefe), hintere Ausschnitttiefe, den Schulterpunkt, die Ärmeloberkante, Oberarmweite, Ärmellänge und -öffnung; eingesetzt oder Raglan wird anhand des Halsausschnitts erkannt (eine Raglannaht lässt ihn an einer scharfen Ecke) und im Overlay dem Benutzer zur Bestätigung gezeigt (base_options={"sleeve_style": "raglan"} überschreibt die Erkennung). Die Passform entwirft Kandidatenschnitte, legt sie virtuell flach aus (flatlay.py: Vorder- ∪ Rückteil, Ärmel entlang der Oberkante gefaltet) und gleicht jedes Foto-Feature per kleinster Quadrate ab. Der Maßstab stammt von der 10 cm Karte; bei einem 1,5 m breiten Kleidungsstück (lang ausgebreitete Ärmel) kann eine leichte Kameraneigung ihn um bis zu 2 % verschieben: wenn möglich, den Benutzer bitten, die Brustweite flach mit einem Maßband zu messen und als tape={"chest_flat": 37.2} (cm) zu übergeben: jeder Foto-Wert wird dann darauf skaliert.

4. Maße

measurements.complete_measures(given_cm, size) ergänzt fehlende Maße aus der Größentabelle oder der Körpergröße und meldet Plausibilitätswarnungen. Gegebene Maße haben Vorrang vor der Tabelle. Tabellen und Quellen: references/size_tables.md. Wenn der Benutzer eine XML-Maßdatei aus einer CAD-Software hat (.smis / .vit), mit --measures-file übergeben; explizite --measures-Werte überschreiben sie. Mit --export-measures werden die verwendeten Maße als body_measurements.smis gespeichert, eine gute Möglichkeit, die Maße einer Person für das nächste Mal zu behalten.

5. Entwerfen, validieren, auslegen, rendern: ein Aufruf

python scripts/generate.py --garment pants_basic --style harem --size 122 \
    --fabric sweat --format roll610,a4 --out out/harem122
# weitere Beispiele
python scripts/generate.py --garment tshirt_basic --size 140 --options '{"sleeve_style":"raglan","sleeve_length":"long"}' --format a4
python scripts/generate.py --garment hoodie --size w38 --fabric sweat --format roll914,a0
python scripts/generate.py --garment skirt --size 128 --style circle --format a1
python scripts/generate.py --spec order.json          # alles als JSON (siehe Kopf von generate.py)

Größen: Kinder als Zahl (122), Damen als w38, Herren als m52; US/UK: us8 (US Damen), uk12 (UK Damen), us3t (US Kleinkind), usk8 (US Kinder), siehe references/size_tables.md. Mehrere Größen gleichzeitig (verschachtelt): --size 98,110,122 (oder einen Bereich 98-122 in Kinderschritten) entwirft und validiert jede Größe und überlagert sie an einem gemeinsamen Konstruktionspunkt, jede Größe in eigener Farbe/Linie, PDF-Ebene (Größen im Acrobat-Ebenen-Panel ein-/ausschaltbar) und SVG-Gruppe. Verwenden für Geschwister oder zum Mischen von Größen; alle Größen teilen dieselben Optionen. Imperiale Benutzer: --units imperial (Maße in Zoll, Berichte in Zoll/Yards).

Deutsche Ausgabe: --lang de (Angabe "language": "de") erzeugt jede Ausgabe auf Deutsch: Teileetiketten, Nähschritte, Heftchen, Zuschnittplan, Berichte und Diagramme, mit deutschen Dateinamen (naehanleitung.pdf, pruefbericht.md, zuschnittplan.png, schnitt.json, …_master_1zu1.svg, …_a4_kleben.pdf), Dezimalkommas und "Gr. 122". Alle Texte durchlaufen eine Zeichenkettentabelle (scripts/i18n.py, Deutsche Einträge in scripts/i18n_de.py); ein neuer Ausgabetext benötigt dort einen deutschen Eintrag. Optionsnamen und Konstruktionswertschlüssel bleiben Englisch.

Module und Hauptoptionen:

ModulStile/Optionen
pants_basicstyle: jogger, harem, leggings, trousers · fit · fabric · stretch · length (long, 7/8, knee, short) · waistband (casing, rib, yoga, tunnel) · cuffs · pockets ([side] = schräge Vordertasche mit Beutel, [back_patch], [cargo]) · leg_shape (straight, tapered, bootcut, flare + flare_cm; lange Beine ohne Bündchen) · turn_up (cm, shorts/knee length) · fake_fly (true oder {offset_mm, length_frac_R, radius_mm, side}) · back_pockets (1, 2) + back_pocket_side (right, left; getragen) · hem_finish (plain, elastic_casing + hem_elastic_mm, hem_elastic_len_cm) · pocket_bag_fabric (cotton, jersey, lining, main)
tshirt_basicfit · fabric · sleeve_style (set_in, raglan) · sleeve_length (short, 3/4, long) · neckline (round, v) · length (normal, tunic) · sleeve_cuffs · hem_band
hoodiewie das T-Shirt + hood, hood_lining, kangaroo (Standard: sweat, wide, rib cuffs) · front (closed, zip: Reißverschlussjacke mit geteilter Vorderseite, Seitentaschen, Reißverschluss-Abdeckung, Reißverschlusslänge in den Anmerkungen) · zip_guard
skirtstyle: gathered, a_line, circle · length (mini, knee, midi, maxi) · gather · flare_deg
dressstyle: waist_seam (T-Shirt-Oberteil + Rock: gathered, a_line, circle; gather 1.0–2.5; waist_elastic; pockets in der Seitennaht), shirt_dress (A-Linien-T-Shirt-Kleid, flare_cm) · length (mini, knee, midi, maxi) · alle T-Shirt-Ärmel-/Ausschnittoptionen
beaniebrim, slouch
loopwraps (1 = single, 2 = doppelt getragen), height

Stoffe: woven, corduroy, velvet, jersey, jersey_elastane, interlock, sweat, fleece, rib. Cord und Samt haben einen Flor (Option nap, auch nap: true für jeden anderen Stoff): jedes Hauptstoff- Teil wird mit der Oberseite zum gleichen Stoffende hin zugeschnitten, und der Bügelhinweis sagt, auf der linken Seite zu bügeln. Alle Module: title (z. B. "Kordhose") ersetzt den Kleidungsnamen auf den Teilen, in der Anleitung und in den Dateinamen. Passformen: slim, normal, wide, oversized, harem.

Nahtzugabe (alle Module): --seam-allowance 7.5 (mm, alle Nähte), --hem-allowance 30 (umgeschlagene Säume), --seam-allowance none (Schnitt ohne Zugaben: nur die Nahtlinie wird gezeichnet und jedes Teil listet auf, was hinzugefügt werden muss). Angabeoptionen: seam_allowance_mm, hem_allowance_mm, seam_allowance: "none". Bruchkanten bleiben bei 0; Einfassungen, Belege und der schmale Kreisrock-Saum behalten ihre Konstruktionszugabe.

Formate: rollNNN (Seitenbreite = Rolle − 10 mm, Hochformat; Teile breiter als die Rolle werden automatisch in Streifen mit Klebemarkierungen aufgeteilt), a0, a1 (Teile ganz, übergroße Teile gekachelt), a4, letter (Kacheln mit 10 mm Überlappung und einer Übersichtsseite), dxf / dxf14 (DXF für Zuschneidemaschinen und CAD, AAMA-Ebenen, siehe references/print_specs.md), projector / projector_dark (eine Seite 1:1 für Projektornähen, 10 cm Kalibrierungsgitter, dicke Linien). Immer auch geschrieben: SVG-Master 1:1, PNG-Vorschau, Zuschnittplan-PNG, Nähanleitung (PDF: illustriertes Heftchen: Titelseite mit der …

Verwandte Skills