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; Angabenfeldmachines). 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(Werkstattdateiprofiles/_machines.json; ein Maßprofil kann eigene--machinesmitfü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-allowancegewinnt 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(oderoverlocker_only;handohne 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:
| Modul | Stile/Optionen |
|---|---|
pants_basic | style: 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_basic | fit · fabric · sleeve_style (set_in, raglan) · sleeve_length (short, 3/4, long) · neckline (round, v) · length (normal, tunic) · sleeve_cuffs · hem_band |
hoodie | wie 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 |
skirt | style: gathered, a_line, circle · length (mini, knee, midi, maxi) · gather · flare_deg |
dress | style: 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 |
beanie | brim, slouch |
loop | wraps (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 …