Communitygithub.com

Generador de Patrones de Costura

Crea patrones de costura cosibles, a tamaño real y listos para imprimir (PDF vectorial 1:1) a partir de una descripción libre, medidas corporales o fotos de una prenda. Útil para 'hacer/crear/generar un patrón de costura', 'patrón a partir de mis medidas', 'patrón a partir de una foto', 'copiar mis pantalones favoritos', 'calcar una prenda', impresión en plotter/rollo, A0/A1 o páginas A4 para unir. También responde a solicitudes en alemán como 'Schnittmuster erstellen/konstruieren', 'Nähmuster nach Maßen', 'Schnitt nach...'

¿Qué es Generador de Patrones de Costura?

Esta habilidad está diseñada para que asistentes de IA como Claude Code, Cursor o Codex generen patrones de costura paramétricos completos a partir de descripciones, medidas o fotografías. A diferencia de herramientas de generación de imágenes, esta skill aplica reglas de patronaje reales para producir archivos listos para imprimir (PDF 1:1) que incluyen diseño de corte, consumo de tela e instrucciones de confección detalladas. El usuario puede especificar el tipo de prenda (pantalones, camisetas, sudaderas, faldas, vestidos, etc.), la talla o las medidas corporales, el tipo de tela, el ajuste deseado y el formato de salida (rollo, A0, A1, A4, carta, DXF para máquinas de corte, o proyector). También permite copiar prendas existentes a partir de fotos, gestionar perfiles de medidas para diferentes personas y configurar el parque de máquinas de coser del usuario para adaptar los márgenes de costura y las instrucciones. La salida incluye capas PDF para múltiples tallas, etiquetas en varios idiomas (inglés por defecto, alemán con `--lang de`) y diagramas de montaje. Su arquitectura se basa en scripts de Python (`scripts/`) que realizan análisis de fotos, cálculo de medidas, generación del patrón, validación de cosibilidad y renderizado final.

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace Generador de Patrones de Costura?

Diseña patrones de costura paramétricamente (reglas de patronaje, sin generación de imágenes), verifica que se puedan coser y produce archivos de impresión, un diseño de corte, consumo de tela e instrucciones de costura. Todos los archivos generados están en inglés. Responde al usuario en el idioma en que escribe.

Construcciones propias únicamente: nunca reconstruyas ni copies patrones comerciales protegidos. Cuando el usuario muestre una prenda de diseñador, diseña un patrón original de estilo similar para uso privado.

Configuración (una vez)

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

Todos los scripts residen en scripts/ y se llaman desde allí o con su ruta.

Flujo de trabajo

1. Comprender la solicitud

Identifica: prenda y variantes, talla o medidas, tela y elasticidad, ajuste, formato de salida. ¿Fotos? → paso 3.

2. Preguntas: exactamente UNA ronda, solo lo que realmente falta

Pregunta los puntos faltantes juntos en un mensaje corto, cada uno con un valor por defecto ("Si no dices lo contrario, usaré …"). Huecos típicos:

  • Prenda y variantes (bolsillos, puños, largo, capucha …)
  • Talla (niños 86–176, mujer 34–56, hombre 44–60) o medidas corporales (altura, pecho, cintura, cadera, entrepierna, largo lateral, largo de brazo, cabeza)
  • Tela (tejido plano / jersey / jersey con elastano / interlock / sudadera / fleece) y elasticidad en %
  • Ajuste (ceñido / normal / holgado / extragrande; para pantalones también harén)
  • Salida: rollo (ancho en mm, por defecto 610), A0, A1, A4 o US Letter para unir
  • Máquinas: qué máquinas de coser usan (máquina de coser: ¿zigzag? ¿punto elástico? ¿o solo puntada recta?); aguja doble, overlock, recubridora. Omite la pregunta cuando el archivo del taller ya las tenga (python scripts/profiles.py machines show) o las hayan nombrado antes. Valor por defecto si no lo dicen: una máquina de coser doméstica con zigzag.
  • Margen de costura solo si les importa (por defecto 1 cm, dobladillos 2–2.5 cm; con overlock en punto 7.5 mm automáticamente, 1.5 cm para tejido plano en máquina de solo puntada recta, o "ninguno" para calcar y añadir el suyo)

No preguntes de nuevo después; resuelve cualquier ambigüedad con un valor por defecto sensato y menciónalo en el resultado.

Ropa de muñecas (muñeca de tela, peluche, muñeca fashion; altura 20–100 cm): pregunta en su lugar la altura de la muñeca (cabeza a pies) y, medida con cinta o cordón alrededor de la muñeca: pecho, cintura, cadera, cabeza, largo de brazo (hombro a muñeca), entrepierna y largo lateral (cintura a plantas de los pies). Solo la altura es obligatoria; los valores faltantes siguen proporciones típicas de muñecas de tela. Luego generate.py --doll --garment dress --measures '{"height": 45, "chest": 30, …}' (especificación "doll": true). Compatibles: dress, skirt, pants_basic, tshirt_basic. Valores por defecto para muñecas (cada uno se puede anular): margen de costura 6 mm (5 mm bajo 30 cm), dobladillos 10 mm, tela de tejido plano, ajuste holgado, parte superior y vestidos completamente abiertos por detrás (velcro/broches, porque una cabeza de peluche rara vez cabe por un escote) con escote al bies, pantalones con cintura elástica estrecha, sin bolsillos/puños. Recomienda algodón fino, puntada corta y sellador de hilos. Una muñeca obtiene un perfil con profiles.py save rosa --measures '{…}' --kind doll. Detalles: scripts/doll.py, references/size_tables.md ("Ropa de muñecas").

Máquinas: pásalas con --machines sewing,overlocker,coverstitch (claves: sewing = puntada recta

  • zigzag, straight_only, stretch_stitch, twin_needle, overlocker, coverstitch; los nombres en alemán como Overlock, Coverlock, Zwillingsnadel también funcionan; campo de especificación machines). Las máquinas pertenecen a la persona que cose, así que la primera vez que las nombren, guárdalas una vez para todos los patrones futuros: python scripts/profiles.py machines set sewing,overlocker (archivo del taller profiles/_machines.json; un perfil de medidas puede llevar sus propias --machines, y --machines tiene prioridad sobre ambas). Efectos: las costuras de punto en la overlock obtienen 7.5 mm de margen (la cuchilla recorta), las costuras de tejido plano en una máquina de solo puntada recta 15 mm para costuras francesas (un --seam-allowance explícito siempre gana; la ropa de muñecas mantiene sus 6 mm); cada paso de costura y dobladillo nombra la máquina y la puntada; las instrucciones obtienen una tabla "Tus máquinas" (puntada, ancho/largo, aguja por tipo de paso) y consejos para lo que falta (p. ej., una aguja doble en lugar de una recubridora). Sin overlock no falta nada: las costuras de punto usan un zigzag estrecho/punto elástico. Un punto en una máquina de solo puntada recta funciona pero es frágil: sugiere una tela de tejido plano o la doble fila de puntadas rectas largas que describen las instrucciones. Ninguna máquina de coser (solo una overlock): --machines overlocker,hand (o overlocker_only; hand sin ninguna clave de máquina de coser significa "sin máquina de coser"). Entonces cada costura se overlockea (7.5 mm de margen, también tejido plano) y cada paso de puntada recta se hace a mano: pespuntes → punto atrás, dobladillos/cintas → punto invisible, hilvanado → punto de hilván, remates a mano, extremos de elástico → una caja de puntadas a mano; los pasos añaden consejos de overlock (alfileres fuera antes de la cuchilla, curvas lentamente, cadenetas de hilo). En la respuesta, menciona en una línea cómo se adaptó el patrón a sus máquinas.

Perfiles de medidas: cuando el usuario dé medidas corporales de una persona, ofrécele una vez guardarlas (python scripts/profiles.py save lena --measures '{…}' --kind child). Solicitudes posteriores como "pantalones para Lena" no necesitarán preguntas de medidas: generate.py --profile lena … (advierte si las medidas de un niño tienen más de 6 meses; consulta references/size_tables.md).

3. Fotos (opcional)

Primero decide qué modo aplica (detalles: references/photo_guide.md):

Modo A: foto de inspiración (usada, catálogo, Pinterest). Mira la foto y completa el JSON de características (esquema en scripts/photo_analyze.py, cada característica con value y confidence 0–1). Luego:

python scripts/photo_analyze.py features.json        # texto de confirmación + módulo/opciones + "no cubierto"
python scripts/photo_analyze.py --image flatlay.jpg  # silueta de pantalones automáticamente (solo proporciones)

Muestra la lista de características con confianzas y pide al usuario que confirme ("Puedo ver … ¿es correcto?"). Nombra las características no cubiertas abiertamente y ofrece la alternativa que el script imprime; no improvises. Las medidas corporales siempre provienen del usuario, nunca de una foto de inspiración.

Modo B: copiar una prenda (extendida plana, fotografiada directamente desde arriba, con la tarjeta de referencia assets/reference-card.pdf o una regla plegable): ingeniería inversa.

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

Resultados: overlay_measurement.png (contorno y medidas detectados; muéstralo al usuario para confirmar), reverse_report.md (gráfico de piezas/costuras, informe de desviación objetivo/real/Δ, verificación de cosibilidad) y project.json (guárdalo para "como la última vez, 2 tallas más grande" → reverse.pipeline.regrade("project.json", 2)). Los valores de cinta métrica del usuario tienen prioridad: photo_measure.measure(..., tape={"inseam": 48}). Si faltan la tarjeta, la habilidad dice exactamente qué hacer. Las fotos faltantes (p. ej., para la curva de la entrepierna) son listadas por reverse.decompose.missing_photos. Tolerancia: largos ± 1 cm, anchos ± 2 %. Luego los archivos de impresión:

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

La ropa de muñecas también se puede copiar: añade --doll (reverse.pipeline.run(..., doll=True)); el resultado tiene márgenes de muñeca y abertura trasera, y generate.py --project lo imprime. Las partes superiores de muñecas se miden mejor con mangas largas (mangas de muñeca muy cortas y anchas: toma el ancho de la manga con una cinta). El modo B funciona para pantalones (--type pants) y para camisetas / tops raglán (--type top, módulo tshirt_basic). Para tops, la foto da ancho de pecho y dobladillo, largo, profundidad de sisa, ancho y profundidad del escote delantero, profundidad del escote trasero, punto del hombro, línea superior de la manga, ancho de la parte superior del brazo, alcance y abertura de la manga; la manga montada o raglán se detecta a partir del escote (una costura raglán lo deja en una esquina pronunciada) y se muestra en la superposición para que el usuario confirme (base_options={"sleeve_style": "raglan"} lo anula). El ajuste diseña patrones candidatos, los coloca planos virtualmente (flatlay.py: delantero ∪ trasero, manga doblada a lo largo de su línea superior) y empareja cada característica de la foto por mínimos cuadrados. La escala proviene de la tarjeta de 10 cm; para una prenda de 1.5 m de ancho (mangas largas extendidas) una ligera inclinación de la cámara puede cambiarla hasta un 2%: si el usuario puede, pídele que mida el ancho del pecho plano con una cinta métrica y pásalo como tape={"chest_flat": 37.2} (cm): cada valor de la foto se reescala entonces a ella.

4. Medidas

measurements.complete_measures(given_cm, size) completa las medidas faltantes a partir de la tabla de tallas o la altura corporal e informa advertencias de plausibilidad. Las medidas dadas tienen prioridad sobre la tabla. Tablas y fuentes: references/size_tables.md. Si el usuario tiene un archivo de medidas XML de software CAD de patrones (.smis / .vit), pásalo con --measures-file; los valores explícitos de --measures lo anulan. Con --export-measures las medidas utilizadas se guardan como body_measurements.smis, una buena forma de conservar las medidas de una persona para la próxima vez.

5. Diseñar, validar, distribuir, renderizar: una llamada

python scripts/generate.py --garment pants_basic --style harem --size 122 \
    --fabric sweat --format roll610,a4 --out out/harem122
# más ejemplos
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          # todo como JSON (ver el encabezado de generate.py)

Tallas: niños como un número (122), mujer como w38, hombre como m52; US/UK: us8 (US mujer), uk12 (UK mujer), us3t (US niño pequeño), usk8 (US niños), consulta references/size_tables.md. Varias tallas a la vez (anidadas): --size 98,110,122 (o un rango 98-122 en pasos de niños) diseña y valida cada talla y las superpone en un punto de construcción compartido, cada talla en su propio color/línea, capa PDF (activa/desactiva tallas en el panel Capas de Acrobat) y grupo SVG. Útil para hermanos o para mezclar tallas; todas las tallas comparten las mismas opciones. Usuarios imperiales: --units imperial (medidas en pulgadas, informes en pulgadas/yardas).

Salida en alemán: --lang de (especificación "language": "de") escribe toda la salida en alemán: etiquetas de piezas, pasos de costura, folleto, diseño de corte, informes y diagramas, con nombres de archivo en alemán (naehanleitung.pdf, pruefbericht.md, zuschnittplan.png, schnitt.json, …_master_1zu1.svg, …_a4_kleben.pdf), comas decimales y "Gr. 122". Todos los textos pasan por una tabla de cadenas (scripts/i18n.py, entradas en alemán en scripts/i18n_de.py); un nuevo texto de salida necesita una entrada en alemán allí. Los nombres de opciones y las claves de valores de construcción permanecen en inglés.

Módulos y opciones principales:

MóduloEstilos/opciones
pants_basicestilo: jogger, harén, leggins, pantalón · ajuste · tela · elasticidad · largo (largo, 7/8, rodilla, corto) · cintura (cinturilla, canalé, yoga, túnel) · puños · bolsillos ([side] = bolsillo delantero inclinado con fondo, [back_patch], [cargo]) · forma_pierna (recta, entubada, campana, acampanado + cm_campana; piernas largas sin puños) · vuelta (cm, largo corto/rodilla) · falsa_bragueta (true o {offset_mm, length_frac_R, radius_mm, side}) · bolsillos_traseros (1, 2) + lado_bolsillo_trasero (derecho, izquierdo; según se usa) · acabado_dobladillo (plano, cinturilla_elástica + mm_elástico_dobladillo, cm_largo_elástico_dobladillo) · tela_fondo_bolsillo (algodón, jersey, forro, principal)
tshirt_basicajuste · tela · estilo_manga (montada, raglán) · largo_manga (corta, 3/4, larga) · escote (redondo, pico) · largo (normal, túnica) · puños_manga · banda_dobladillo
hoodiecomo la camiseta + capucha, forro_capucha, canguro (por defecto: sudadera, holgado, puños de canalé) · delantero (cerrado, cremallera: chaqueta con cremallera con delantero partido, bolsillos laterales, protector de cremallera, largo de cremallera en las notas) · protector_cremallera
skirtestilo: fruncido, línea_a, círculo · largo (mini, rodilla, midi, maxi) · fruncido · grados_vuelo
dressestilo: costura_cintura (cuerpo de camiseta + falda: fruncida, línea_a, círculo; fruncido 1.0–2.5; elástico_cintura; bolsillos en costura lateral), camisero (vestido camisero línea A, cm_vuelo) · largo (mini, rodilla, midi, maxi) · todas las opciones de manga/escote de camiseta
beanievista, caída
loopvueltas (1 = simple, 2 = usado doblado), alto

Telas: tejido plano, pana, terciopelo, jersey, jersey_elastano, interlock, sudadera, fleece, canalé. La pana y el terciopelo tienen pelo (opción nap, también nap: true para cualquier otra tela): cada pieza de tela principal se corta con la parte superior hacia el mismo extremo de la tela, y la nota de planchado dice planchar por el revés. Todos los módulos: title (p. ej., "Pantalón de pana") reemplaza el nombre de la prenda en las piezas, en las instrucciones y en los nombres de archivo. Ajustes: ceñido, normal, holgado, extragrande, harén.

Margen de costura (todos los módulos): --seam-allowance 7.5 (mm, todas las costuras), --hem-allowance 30 (dobladillos vueltos), --seam-allowance none (patrón sin márgenes: solo se dibuja la línea de costura y cada pieza lista qué añadir). Opciones de especificación: seam_allowance_mm, hem_allowance_mm, seam_allowance: "none". Los bordes de pliegue permanecen en 0; las cinturillas, vistas y el dobladillo estrecho de falda círculo mantienen su margen de construcción.

Formatos: rollNNN (ancho de página = rollo − 10 mm, vertical; las piezas más anchas que el rollo se dividen automáticamente en tiras con marcas de pegamento), a0, a1 (piezas enteras, piezas sobredimensionadas con teselas), a4, letter (teselas con 10 mm de superposición y una página de resumen), dxf / dxf14 (DXF para máquinas de corte y CAD, capas AAMA, consulta references/print_specs.md), projector / projector_dark (una página 1:1 para costura con proyector, cuadrícula de calibración de 10 cm, líneas gruesas). Siempre se escriben también: SVG maestro 1:1, vista previa PNG, diseño de corte PNG, instrucciones de costura (PDF: folleto ilustrado: página de título con la imagen de la prenda, tabla de piezas, consumo de tela para cada ancho de tela, tabla de máquinas, pasos numerados con imágenes de cada construcción clave, croquis de plegado para cada página de teselas), informe de verificación, JSON de patrón. La verificación comprueba que la entrepierna y la sisa sean más largas que la cabeza y la muñeca, que los dobladillos sean convexos, que las curvas cerradas tengan una muesca adicional, que las pinzas de sisa no sobresalgan, que las piezas tengan etiquetas de grano.

Consejos de generación: las piezas se colocan en la página de izquierda a derecha empezando desde la parte inferior izquierda; las piezas con curvas cóncavas (entrega) se rotan hasta que el lado cóncavo esté en la parte inferior (facilidad del usuario al colocar el papel). Los jalones de las páginas de teselas A4 se doblan hacia adentro (el lado impreso se pega a la página con cinta oculta). Los puntos de inicio/parada de costura, las marcas de coincidencia y la dirección del grano se indican mediante iconos. En plural: "Piezas", "Costuras", "Dobladillos" (no "Pieza", "Costura", "Dobladillo"). Anima al usuario a que haga un patrón de prueba con retales baratos primero y publique los resultados (¡la mención de la habilidad es bienvenida!).

6. Resultado y ajustes

Pegar la prueba *asegura que la curva delantera de la entrepierna sea correcta (el usuario se la prueba, los dedos a lo largo del grano, y se asegura de que no quede tirante ni forme una bolsa; agrandar la entrepierna trasera ≈ 5 mm por cada cm que tenga que levantar en la cintura). El patrón es paramétrico: cada vez que el usuario dé nuevos valores (talla, estilo), se vuelve a calcular.

Funciones de archivo: scripts/files.py puede renovar, renombrar, reordenar o eliminar las páginas de un PDF. scripts/files.py --help para opciones. Las instrucciones de costura se pueden regenerar por separado: python scripts/generate.py --pattern out/pants.json --instructions out/instructions.pdf.

Tutorial de nuevo estilo: scripts/style_tutorial.md.

Funciones de corte (marcada posicional, sin anidamiento automático)

scripts/marker.py coloca piezas en el ancho de tela dado (tela doblada: las piezas emparejadas se reflejan al otro lado, pero las piezas asimétricas únicas permanecen en su lado). El corte por defecto usa marker.place_in_width(pieces, cloth_width_cm, fold="double", …) y genera un PNG de diseño de corte.

--cut-layout-only omite la generación del patrón y solo recalcula el diseño de corte (útil al cambiar el ancho de la tela).

Lista de referencias

ArchivoContenido
references/photo_guide.mdDecisión modo A/B, configuración de cámara, tarjeta de referencia
references/size_tables.mdTablas de tallas para niños, mujer, hombre (DE/EU/US/UK/INT), proporciones de muñecas de tela, fuentes
references/print_specs.mdEspecificaciones para DXF AAMA, PDF de proyector, teselas
references/construction_details.mdDetalle de construcción (p. ej., cinturilla para pantalón jogger, capucha)
references/fabric_stretch.mdElongación de tela, medición/uso
references/pattern_modules.mdDescripciones de módulos y sus parámetros completos
references/pants_style_examples.mdImágenes de ejemplo de estilos de pantalones
references/troubleshooting.mdConsejos para resolver problemas comunes con la generación
references/doll_clothes.mdMedidas, estilos y adaptaciones específicas para ropa de muñecas
references/photo_pipeline_example.mdEjemplo detallado del flujo de fotos (modo B)

Archivos de salida (todos los formatos)

ArchivoContenido
*_master_1zu1.svgPatrón maestro 1:1 en SVG (una capa por talla si hay varias)
*_preview.pngVista previa del patrón
*_cut_layout.pngDiseño de corte
naehanleitung.pdfInstrucciones de costura ilustradas (solo con --lang de)
pruefbericht.mdInforme de verificación (solo con --lang de)
zuschnittplan.pngPlano de corte (solo con --lang de)
schnitt.jsonDatos completos del patrón en JSON
*.pdf (rollo/A0/A1/A4/carta/proyector)Archivos de impresión
*.dxf / *.dxf14Archivos DXF para máquinas de corte

Notas importantes

  • Sin imágenes generadas: las imágenes en las instrucciones son diagramas vectoriales extraídos del patrón.
  • Sin sobreajuste: no generes un patrón de 14 piezas para una camiseta básica de 3 piezas.
  • Seguridad: ningún patrón generado debe parecerse a un diseño protegido por derechos de autor. Siempre di que es una interpretación original.
  • Privacidad: no almacenes fotos de usuarios; solo úsalas para la sesión actual.
  • Actualizaciones: git pull antes de cada uso para obtener las últimas tablas de tallas, módulos y correcciones.

Ejemplo de uso completo

# Solicitud: "Patrón de sudadera con capucha para talla 140, tela de sudadera, ajuste holgado,
# sin bolsillo canguro, impresión en A4"
python scripts/generate.py --garment hoodie --size 140 --fabric sweat --fit wide \
    --options '{"kangaroo": false}' --format a4 --out out/hoodie_140

Solución de problemas

  • Error "No module named 'shapely'": ejecuta pip install -r requirements.txt.
  • El patrón no encaja en una página: usa rollo o A0/A1, o reduce el tamaño (el patrón se tesela automáticamente).
  • Las medidas parecen incorrectas: verifica las medidas de entrada; usa --export-measures para inspeccionarlas.
  • La foto no se analiza correctamente: asegúrate de que la tarjeta de referencia esté visible y la prenda esté completamente plana. Pide al usuario que tome la foto desde directamente arriba.
  • El patrón no se puede coser: el informe de verificación indica qué está mal (p. ej., sisa demasiado pequeña). Ajusta las opciones o las medidas.

Skills relacionados