Communitygithub.com

JRuiter/gerador-de-moldes-de-costura

Cria moldes de costura costuráveis, em tamanho real e prontos para impressão (PDF vetorial 1:1) a partir de uma descrição livre, medidas corporais e/ou fotos de uma peça de vestuário. Use para 'criar/elaborar/gerar um molde de costura', 'molde a partir das minhas medidas', 'molde a partir de uma foto', 'copiar minha calça favorita', 'traçar uma peça de roupa', impressão em plotter/rolo, A0/A1 ou folhas A4 para colar. Também é acionado por solicitações em alemão, como 'Schnittmuster erstellen/konstruieren', 'Nähmuster nach Maßen'.

O que é gerador-de-moldes-de-costura?

Esta skill é uma ferramenta especializada para criar moldes de costura paramétricos (baseados em regras de modelagem, não em geração de imagens) que podem ser costurados, verificando sua costurabilidade e gerando arquivos de impressão, layout de corte, consumo de tecido e instruções de costura. Suporta descrições de peças, medidas corporais, tamanhos pré-definidos e fotos de inspiração ou de réplica. É particularmente útil para desenvolvedores e usuários de agentes de IA que atuam na área de moda e costura, pois automatiza o processo de criação de moldes sob medida. A skill funciona em várias plataformas (como Claude Code, Cursor, Codex) e utiliza uma série de scripts em Python que analisam as entradas, geram os moldes e produzem a saída nos formatos desejados (PDF, SVG, DXF, etc.). Ela lida com roupas para adultos e crianças, roupas para bonecas e suporta diferentes tipos de tecido e acabamento.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Gerador de moldes de costura

Cria moldes de costura parametricamente (regras de modelagem, sem geração de imagens), verifica se podem ser costurados e produz arquivos de impressão, um layout de corte, consumo de tecido e instruções de costura. Todos os arquivos gerados estão em inglês. Responda ao usuário no idioma em que ele escreve.

Construções próprias apenas: nunca reconstrua ou copie padrões comerciais protegidos. Quando o usuário mostrar uma peça de designer, crie um molde original em um estilo semelhante para uso privado.

Configuração (uma vez)

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

Todos os scripts estão em scripts/ e são chamados a partir daí ou com seu caminho.

Fluxo de trabalho

1. Entender a solicitação

Identifique: peça e variantes, tamanho ou medidas, tecido e elasticidade, caimento, formato de saída. Fotos? → passo 3.

2. Perguntas: exatamente UMA rodada, apenas o que realmente está faltando

Pergunte sobre os pontos faltantes juntos em uma mensagem curta, cada um com um padrão ("Se você não disser o contrário, usarei …"). Lacunas típicas:

  • Peça e variantes (bolsos, punhos, comprimento, capuz …)
  • Tamanho (crianças 86–176, mulheres 34–56, homens 44–60) ou medidas corporais (altura, tórax, cintura, quadril, entrepernas, comprimento lateral, comprimento do braço, cabeça)
  • Tecido (tecido plano / malha / malha com elastano / interlock / moletom / fleece) e elasticidade em %
  • Caimento (justo / normal / amplo / oversized; para calças também harém)
  • Saída: rolo (largura em mm, padrão 610), A0, A1, A4 ou Carta dos EUA para colar
  • Máquinas: quais máquinas eles usam para costurar: máquina de costura reta (ziguezague? ponto elástico? ou apenas ponto reto), agulha dupla, overloque/serger, interlock. Pule a pergunta quando o arquivo de perfil já as tiver (python scripts/profiles.py machines show) ou eles as nomearam antes. Padrão se eles não disserem: uma máquina de costura doméstica com ziguezague.
  • Margem de costura apenas se for importante para eles (padrão 1 cm, bainhas 2–2,5 cm; com uma overloque em malhas 7,5 mm automaticamente, 1,5 cm para tecido plano em uma máquina de ponto reto apenas, ou "nenhuma" para traçar e adicionar a sua própria)

Não pergunte novamente depois; resolva qualquer coisa incerta com um padrão sensato e diga isso no resultado.

Roupas para bonecas (boneca de pano, bichinho de pelúcia, boneca fashion; altura 20–100 cm): pergunte em vez disso pela altura da boneca (cabeça aos pés) e, medido com uma fita métrica ou um barbante ao redor da boneca: tórax, cintura, quadril, cabeça, comprimento do braço (ombro ao pulso), entrepernas e comprimento lateral (cintura às solados). Apenas a altura é obrigatória; valores faltantes seguem proporções típicas de bonecas de pano. Então generate.py --doll --garment dress --measures '{"height": 45, "chest": 30, …}' (campo "doll": true). Suportados: dress, skirt, pants_basic, tshirt_basic. Padrões para bonecas (cada um pode ser substituído): margem de costura 6 mm (5 mm abaixo de 30 cm), bainhas 10 mm, tecido plano, caimento amplo, blusas e vestidos abertos completamente nas costas (Velcro/botões de pressão, porque uma cabeça recheada raramente cabe em um decote) com decote viés, calças com cós de elástico estreito, sem bolsos/punhos. Recomende algodão fino, ponto curto e selante de linha. Uma boneca ganha um perfil com profiles.py save rosa --measures '{…}' --kind doll. Detalhes: scripts/doll.py, references/size_tables.md ("Doll clothes").

Máquinas: passe-as com --machines sewing,overlocker,coverstitch (chaves: sewing = ponto reto

  • ziguezague, straight_only, stretch_stitch, twin_needle, overlocker, coverstitch; nomes em alemão como Overlock, Coverlock, Zwillingsnadel também funcionam; campo machines). As máquinas pertencem à pessoa que costura, então na primeira vez que elas forem nomeadas, salve-as uma vez para todos os moldes futuros: python scripts/profiles.py machines set sewing,overlocker (arquivo de perfil profiles/_machines.json; um perfil de medidas pode carregar seu próprio --machines, e --machines tem precedência sobre ambos). Efeitos: costuras de malha na overloque ficam com 7,5 mm de margem (a faca aparae), costuras de tecido plano em uma máquina de ponto reto apenas 15 mm para costuras francesas (um --seam-allowance explícito sempre vence; roupas para bonecas mantêm seus 6 mm); cada passo de costura e bainha nomeia a máquina e o ponto; as instruções ganham uma tabela "Suas máquinas" (ponto, largura/comprimento, agulha por tipo de passo) e dicas para o que está faltando (por exemplo, uma agulha dupla em vez de uma interlock). Sem uma overloque nada está faltando: costuras de malha usam um ziguezague estreito/ponto elástico. Uma malha em uma máquina de ponto reto apenas funciona, mas é frágil: sugira um tecido plano ou a fileira dupla de pontos retos longos que as instruções descrevem. Nenhuma máquina de costura (apenas uma overloque): --machines overlocker,hand (ou overlocker_only; hand sem nenhuma chave de máquina de costura significa "nenhuma máquina de costura"). Então cada costura é overloqueada (7,5 mm de margem, tecido plano também) e cada passo de ponto reto é feito à mão: pesponto → ponto atrás, bainhas/cós → ponto invisível, alinhavo → ponto de alinhavo, caseados à mão, pontas de elástico → uma caixa de pontos à mão; os passos adicionam dicas para a overloque (alfinetes para fora antes da faca, curvas lentamente, trançados de linha). Na resposta, mencione em uma linha como o molde foi adaptado às máquinas deles.

Perfis de medidas: quando o usuário fornece medidas corporais para uma pessoa, ofereça uma vez para salvá-las (python scripts/profiles.py save lena --measures '{…}' --kind child). Mais tarde, solicitações como "calças para a Lena" não precisam de perguntas de medidas: generate.py --profile lena … (avisa se as medidas de uma criança são mais antigas que 6 meses; veja references/size_tables.md).

3. Fotos (opcional)

Primeiro decida qual modo se aplica (detalhes: references/photo_guide.md):

Modo A: foto de inspiração (usada, catálogo, Pinterest). Olhe para a foto e preencha o JSON de características (esquema em scripts/photo_analyze.py, cada característica com value e confidence 0–1). Então:

python scripts/photo_analyze.py features.json        # texto de confirmação + módulo/opções + "não cobertas"
python scripts/photo_analyze.py --image flatlay.jpg  # silhueta de calças automaticamente (apenas proporções)

Mostre a lista de características com confianças e peça ao usuário para confirmar ("Posso ver … está certo?"). Nomeie as características que não são cobertas abertamente e ofereça a alternativa que o script imprime; não improvise. As medidas corporais sempre vêm do usuário, nunca de uma foto de inspiração.

Modo B: copiar uma peça de roupa (colocada plana, fotografada diretamente de cima, com o cartão de referência assets/reference-card.pdf ou uma régua articulada): engenharia reversa.

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

Resultados: overlay_measurement.png (contorno detectado e medidas; mostre-o ao usuário para confirmar), reverse_report.md (gráfico de peças/costuras, relatório de desvio alvo/real/Δ , verificação de costurabilidade) e project.json (mantenha-o para "como da última vez, 2 tamanhos maior" → reverse.pipeline.regrade("project.json", 2)). Valores de fita métrica do usuário têm precedência: photo_measure.measure(..., tape={"inseam": 48}). Se o cartão estiver faltando, a skill diz exatamente o que fazer. Fotos faltantes (por exemplo, para a curva do gancho) são listadas por reverse.decompose.missing_photos. Tolerância: comprimentos ± 1 cm, larguras ± 2 %. Então os arquivos de impressão:

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

Roupas para bonecas também podem ser copiadas: adicione --doll (reverse.pipeline.run(..., doll=True)); o resultado tem margens para bonecas e uma abertura nas costas, e generate.py --project imprime. Blusas para boneca medem melhor com mangas compridas (mangas muito curtas e largas de boneca: meça a largura da manga com uma fita). O Modo B funciona para calças (--type pants) e para camisetas / blusas raglan (--type top, módulo tshirt_basic). Para blusas, a foto dá a largura do tórax e da bainha, comprimento, profundidade da cava, decote frontal (largura e profundidade), profundidade do decote traseiro, o ponto do ombro, a linha superior da manga, largura do braço, alcance da manga e abertura; manga embutida ou raglan é detectada a partir do decote (uma costura raglan o deixa em um canto agudo) e mostrada na sobreposição para o usuário confirmar (base_options={"sleeve_style": "raglan"} o substitui). O caimento cria moldes candidatos, coloca-os planos virtualmente (flatlay.py: frente ∪ costas, manga dobrada ao longo de sua linha superior) e combina cada característica da foto por mínimos quadrados. A escala vem do cartão de 10 cm; para uma peça de 1,5 m de largura (mangas compridas estendidas) uma ligeira inclinação da câmera pode deslocá-la em até 2 %: se o usuário puder, peça que meça a largura do tórax plana com uma fita métrica e a passe como tape={"chest_flat": 37.2} (cm): cada valor da foto é então redimensionado para ela.

4. Medidas

measurements.complete_measures(given_cm, size) preenche as medidas faltantes da tabela de tamanhos ou da altura do corpo e relata avisos de plausibilidade. As medidas fornecidas têm precedência sobre a tabela. Tabelas e fontes: references/size_tables.md. Se o usuário tiver um arquivo de medidas XML de software CAD de modelagem (.smis / .vit), passe-o com --measures-file; valores explícitos de --measures o substituem. Com --export-measures as medidas usadas são salvas como body_measurements.smis, uma boa maneira de manter as medidas de uma pessoa para a próxima vez.

5. Modelar, validar, dispor, renderizar: uma chamada

python scripts/generate.py --garment pants_basic --style harem --size 122 \
    --fabric sweat --format roll610,a4 --out out/harem122
# mais exemplos
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          # tudo como JSON (veja o cabeçalho de generate.py)

Tamanhos: crianças como um número (122), mulheres como w38, homens como m52; EUA/Reino Unido: us8 (mulheres EUA), uk12 (mulheres Reino Unido), us3t (criança EUA), usk8 (crianças EUA), veja references/size_tables.md. Vários tamanhos de uma vez (aninhados): --size 98,110,122 (ou um intervalo 98-122 em passos de crianças) modela e valida cada tamanho e os sobrepõe em um ponto de construção compartilhado, cada tamanho em sua própria cor/linha, camada PDF (ativar/desativar tamanhos no painel Camadas do Acrobat) e grupo SVG. Use para irmãos ou para combinar entre tamanhos; todos os tamanhos compartilham as mesmas opções. Usuários do sistema imperial: --units imperial (medidas em polegadas, relatórios em polegadas/jardas).

Saída em alemão: --lang de (campo "language": "de") escreve cada saída em alemão: etiquetas de peças, instruções de costura, livreto, layout de corte, relatórios e diagramas, com nomes de arquivo em alemão (naehanleitung.pdf, pruefbericht.md, zuschnittplan.png, schnitt.json, …_master_1zu1.svg, …_a4_kleben.pdf), vírgulas decimais e "Gr. 122". Todos os textos passam por uma tabela de strings (scripts/i18n.py, entradas em alemão em scripts/i18n_de.py); um novo texto de saída precisa de uma entrada em alemão lá. Nomes de opções e chaves de valor de construção permanecem em inglês.

Módulos e principais opções:

MóduloEstilos/opções
pants_basicestilo: jogger, harém, leggings, calça social · caimento · tecido · elasticidade · comprimento (longo, 7/8, joelho, curto) · cós (viés, canelado, ioga, túnel) · punhos · bolsos ([side] = bolso frontal inclinado com saco de bolso, [back_patch], [cargo]) · formato_da_perna (reta, afunilada, boca de sino, flare + flare_cm; pernas longas sem punhos) · turn_up (cm, shorts/comprimento do joelho) · fake_fly (true ou {offset_mm, length_frac_R, radius_mm, side}) · bolsos_tras (1, 2) + lado_bolso_tras (direito, esquerdo; como usado) · acabamento_bainha (simples, cós_elástico + hem_elastic_mm, hem_elastic_len_cm) · tecido_saco_bolso (algodão, malha, forro, principal)
tshirt_basiccaimento · tecido · estilo_manga (embutida, raglan) · comprimento_manga (curta, 3/4, longa) · decote (redondo, v) · comprimento (normal, túnica) · punhos_manga · barra_canelada
hoodiecomo a camiseta + capuz, forro_capuz, canguru (padrão: moletom, amplo, punhos canelados) · frente (fechada, zíper: jaqueta com zíper e frente dividida, bolsos laterais, proteção do zíper, comprimento do zíper nas notas) · proteção_zíper
skirtestilo: franzida, evasê, godê · comprimento (mini, joelho, midi, maxi) · franzido · flare_deg
dressestilo: costura_cintura (corpo de camiseta + saia: franzida, evasê, godê; franzido 1.0–2.5; elástico_cintura; bolsos na costura lateral), vestido_camisa (vestido camiseta evasê, flare_cm) · comprimento (mini, joelho, midi, maxi) · todas as opções de manga/decote de camiseta
beanieaba, frouxo
loopvoltas (1 = única, 2 = usada dupla), altura

Tecidos: tecido plano, veludo cotelê, veludo, malha, malha_elastano, interlock, moletom, fleece, canelado. Veludo cotelê e veludo têm um pelo (opção nap, também nap: true para qualquer outro tecido): cada peça de tecido principal é cortada com o topo voltado para a mesma extremidade do tecido, e a nota de prensagem diz para prensar do avesso. Todos os módulos: title (por exemplo, "Kordhose") substitui o nome da peça nas peças, nas instruções e nos nomes de arquivo. Caimentos: justo, normal, amplo, oversized, harém.

Margem de costura (todos os módulos): --seam-allowance 7.5 (mm, todas as costuras), --hem-allowance 30 (bainhas dobradas), --seam-allowance none (molde sem margens: apenas a linha de costura é desenhada e cada peça lista o que adicionar). Opções de especificação: seam_allowance_mm, hem_allowance_mm, seam_allowance: "none". As bordas de dobra permanecem em 0; os cós, revestimentos e a bainha estreita da saia godê mantêm sua margem de construção.

Formatos: rollNNN (largura da página = rolo − 10 mm, retrato; peças mais largas que o rolo são divididas automaticamente em tiras com marcas de cola), a0, a1 (peças inteiras, peças superdimensionadas lajeado), a4, letter (lajeados com sobreposição de 10 mm e uma página de visão geral), dxf / dxf14 (DXF para máquinas de corte e CAD, camadas AAMA, veja references/print_specs.md), projector / projector_dark (uma página 1:1 para costura com projetor, grade de calibração de 10 cm, linhas grossas). Sempre escrito também: SVG mestre 1:1, visualização PNG, layout de corte PNG, instruções de costura (PDF: livreto ilustrado: página de título com a imagem final, materiais, tabela de peças, layout de corte, folha de "dicas rápidas" (overloque vs. máquina de costura reta, agulha, conselhos de tecido, recursos), então passo a passo com diagramas, gráfico de consumo de tecido e curvas de tamanho para verificação). Outra saída: fabric_consumption.json (largura e consumo de tecido), costura "prévia" sewability.json (todos os passes de costura, problema se esperado), ajuste fitting.json (facilidade de usar, folga de design, comprimentos), tamanho size_curves.json (todas as curvas de cada peça, 5 curvas de tamanho, para leitura e plotagem).

Verificações feitas antes da saída:

  • Cada peça tem pelo menos 8 mm em todos os lugares
  • Aberturas sem colisão
  • Bainhas sobradas possíveis pelo tipo de tecido e máquina
  • O zíper cabe no decote/abertura
  • Cós de elástico: o elástico cabe ao redor do corpo
  • As peças cabem no formato

Se uma verificação falhar, pare com uma mensagem de erro e uma sugestão.

6. Resultado

Responda com:

  1. Confirmação da solicitação (tamanho, caimento, tecido, máquinas, formato, diferenças entre as escolhas do usuário e os padrões usados)
  2. Arquivos (lista dos principais, inclua o preview e o layout de corte e links de download se o ambiente suportar)
  3. Amostra de tecido (sem gráfico, descrição macia / firme / grossa / fina / elástica / transparente / com aviso de tinta? que máquina?) e como reconhecer o lado direito – apenas se o tecido não foi especificado claramente
  4. Medidas finais (tórax, cintura, quadril, comprimento, altura de gancho, comprimento da costura interna, altura do joelho, abertura da perna, bainha) – converta-as de volta para as unidades do usuário com units.convert(value, "cm", "imperial") e escreva cm ou polegadas + cm entre parênteses. Pule esta seção para roupas de boneca ou cópia de peças.
  5. Dicas de costura (ajustes de molde, pontos de ajuste, dicas de overloque para tecidos complicados, entretela, fechos, dicas elásticas, etc.)
  6. Dica de cuidados (decodificação de etiqueta de cuidados "um círculo = secagem em tambor …" a partir de references/care_labels.md – apenas se o usuário pedir ou se for um presente)

Scripts de referência

  • get_size.py: converte tamanho e opções para body_measurements + saída do módulo
  • doll.py: gera medidas de boneca a partir de altura e proporções
  • units.py: polegadas ↔ cm
  • profiles.py: gerenciar perfis de medidas

Arquivos de referência

  • references/size_tables.md: definições de tamanho, fontes, tabelas de medidas de boneca
  • references/photo_guide.md: lida com fotos de roupas
  • references/print_specs.md: configuração de plotter, marcas de registro, sobreposição
  • references/care_labels.md: símbolos e texto da etiqueta de cuidados para 5 idiomas
  • references/known_issues.md: problemas e soluções comuns
  • assets/reference-card.pdf: cartão de calibração de 10 cm para impressão ea3

Habilidades Relacionadas