Placa Comemorativa (gift-pcb)
Uma PCB puramente estética, sem circuito. A dificuldade não está no esquema elétrico, mas em três coisas frequentemente ignoradas: Qual é realmente a aparência da placa de referência, qual o material de cada camada, e a diferença entre "parece certo" e "medido certo".
Três Regras de Ferro
- Veja por camada, não veja a imagem composta. Cobre coberto por máscara é preto; apenas "cobre + abertura de máscara" fica dourado.
- Meça, não estime. Todas as dúvidas de "é suficiente" devem ser resolvidas com números reais em milímetros/pixels, e devem ser escritas na resposta. Números estimados serão desmascarados na terceira iteração.
- Copie primeiro, depois modifique. Problemas já resolvidos na placa de referência ou em emblemas oficiais devem ser aproveitados diretamente; não reinvente a roda.
Oito Etapas e Portões
| Etapa | Saída | Portão (sem passar, não avança) |
|---|---|---|
| P0 Projeto | Destinatário, dimensões, processo, lista de elementos | Cada elemento responde "onde colocar, qual tamanho" |
| P0.5 Entrevista de Requisitos | Uso, cenário, realista/decorativo, rascunho à mão, orçamento | Responder às 8 perguntas (veja 06), especialmente "quer sensação de escrita à mão?" |
| P1 Decodificar Placa de Referência | Renderizações camada a camada + lista de elementos + tabela de proporção das 3 cores; sem referência, pesquisar素材 | ① Conseguir apontar na imagem o que é cobre/ouro/serigrafia/furo; ② Executar scripts/00-decode_badge.py para obter protótipo do emblema (linhas/círculo) + raio + área + traço mais fino; ③ Com referência, medir os três números (ouro/branco/preto); ④ Preencher a lista de 10 itens de cópia do 07 (cada item com número real + decisão do usuário) |
| P2 Layout | Mockups de posição frontal/traseira | Usuário aprova o layout; e declarar "pré-renderização não representa o resultado final" |
| P3 Vetor e Fabricabilidade | Vetores de emblema/texto, tabela de largura de traço, orçamento de área dourada | Largura mínima de traço ≥ limite do processo; Ouro 12–24%, Branco ≥0,3%, Preto fosco 65–85% |
| P4 EDA | Projeto + placa + gráficos de cada camada | Após salvar cada camada, reler e verificar se número de elementos confere com o planejado |
| P4.5 Revisão 3D | Imagens 3D frontal/traseira geradas por scripts/14-render3d.py + confirmação item por item pelo usuário (C1 ver defeitos / C2 ver se está bonito / C3 se precisa complementar素材) | Usuário diz "pode", pelo menos uma rodada, ideal duas; sem aprovação, não gera pacote de pedido |
| P5 Revisão de Exportação | Pacote Gerber + pacote de pedido | scripts/13-check.py tudo verde (incluindo proporção ouro/branco/preto) + uma imagem local ≥60 px/mm (olho nu) |
P0.5 e P4.5 são os dois portões mais fáceis de pular e mais caros. O primeiro decide se o projeto está certo, o segundo decide se o usuário aceita.
Consulta Direta
| O que você precisa fazer | Leia isto |
|---|---|
| O que perguntar ao usuário antes de começar, como fazer revisão 3D, como calcular área dourada | references/06-需求访谈与验收.md |
| Abrir Gerber de referência, identificar cada camada | references/01-参考板解码.md |
| Largura de traço, se pode ser fabricado, bitmap para vetor, precisão de scanline, parâmetros de textura de trama | references/02-制造性与矢量.md |
| Inserir textura de trama (reproduzir tabela de textura da placa de referência) | scripts/15-weave.py (--extract para extrair tabela de qualquer referência) |
| O que copiar da placa de referência (faixa dourada, grupo de furos, sangria, hierarquia de serigrafia…) | references/07-从参考板抄什么.md |
| 素材 insuficiente, quer procurar imagens online | references/08-素材爬取计划.md + scripts/17-crawl_assets.py |
| Quais imagens de um conjunto cabem na placa | scripts/18-filter_assets.py (gera mural de imagens, humano escolhe) |
| O que perguntar ao usuário antes de começar (formulário preenchível) | templates/问卷.md |
| Não sabe como organizar o layout | templates/layouts/ (três modelos + referência 24 px/mm) |
| Quer ver uma prévia da especificação (sem abrir EDA) | scripts/20-preview_spec.py |
| Escrever chamada CLI/JS do EasyEDA Professional | references/03-EDA落地.md |
| Não quer anotar elementos um por um (escrever .epcb2 diretamente) | references/03-EDA落地.md seção 8 |
| Emblema é bloco sólido de cor + texto branco recortado (tipo círculo) | references/02-制造性与矢量.md "Dois protótipos de emblema" |
| Gerar prévia 3D para revisão do usuário | scripts/14-render3d.py |
| Qualquer passo "parece estranho", primeiro consulte histórico de erros | references/04-踩坑清单.md (118 itens, seções A–R) |
| Empacotar pedido, confirmar se este é o mesmo da revisão | scripts/19-pack_order.py (MANIFEST + --verify) |
| Depois de modificar script, confirmar que não estragou a placa | python -m pytest tests -q (reprodução de placa dourada / textura / autoteste) |
| Quer trocar fonte / não roda em outra máquina | references/02-制造性与矢量.md "Fontes" |
| Procurar素材, ver skills similares de outros | references/05-参考资源.md |
Antes de iniciar P4, leia references/03. O erro mais caro foi tentar adivinhar a ordem dos parâmetros de create() de memória, enquanto a assinatura correta estava no próprio 03.
As 13 Regras Mais Caras (texto completo em 04)
- Ouro = cobre + abertura de máscara, ambas são obrigatórias; ouro 12–24% (referência do mesmo tamanho 22,0%,
13-check口径, veja02"dois口径"). Abaixo de 8% é placa vazia; acima de 26% é placa toda dourada. - Identifique o protótipo do emblema antes de desenhar: tipo linha → desenhe o contorno inteiro; tipo círculo (bloco sólido + texto branco recortado) → círculo sólido + texto em preto recortado. Errar o protótipo fará o texto virar rebarbas (v3 foi descartado assim).
- Caracteres complexos não devem usar operações booleanas de polígonos; use rasterização + scanline de 0,06 mm; mas letras latinas/números devem ser objetos de texto (vetorial), scanline apenas para caracteres chineses, escrita à mão e gráficos.
- Textura de fundo deve ser cortada no limite (interseção com cantos arredondados); não descarte segmentos que cruzam a borda, senão a borda da placa fica com dentes de serra.
- Na mesma camada com textura de fundo, qualquer filtro de bbox deve incluir a assinatura de tamanho, senão a textura será deletada junto.
- Escrita de lote ≤600 por lote, sleep entre lotes, retry em falha, deduplicação por coordenadas no final;
setState_*não persiste, confie apenas emmodify()para geometria. - As três camadas traseiras (2/4/6) devem ser geradas espelhadas; serigrafia inferior é camada 4, não 3.
- Quando o usuário diz "não parece", o problema quase sempre está nas regras (disposição, proporção, hierarquia), não nos parâmetros; vá contar a placa de referência em números, não ajustar valores.
- Após escrever .epcb2, deve
session close --destroye depoisopen; o editor não recarrega automaticamente alterações do disco, e a exportação pegará o desenho antigo (item 109). - A placa inteira pode ser escrita como texto .epcb2 (uma linha por JSON, uma FILL por path), é uma ordem de grandeza mais rápido que injeção por CLI; mas texto traseiro não pode usar
mirror:true, deve espelhar a geometria. - Círculos sempre use
path:["CIRCLE",cx,cy,r]+ width; scanline para círculo cola com o texto próximo, criando buracos. - "Copie tudo que puder" — mas copie números, não impressões. Faixa dourada na borda sobre o contorno da placa (largura visível = largura do traço / 2), grupo de furos ligados àqueles φ0,3, gráficos sangrando para fora da placa, serigrafia com três linhas e três fontes, linha horizontal inferior — meça item por item e preencha a tabela do
07, pergunte ao usuário se copia. - Autoteste deve ser "tabela gerada por script + uma imagem local ≥60 px/mm"; 20 px/mm não vê defeitos de 0,06 mm; ver e escrever "aceitável" é pior que não ver. Textura de trama é separado: deve ser 80 px/mm em um bloco de 12×12 mm; na imagem composta ela sempre parece "um cinza".
Entregáveis (cada versão final deve ter)
export/<nome>_gerber_<data>_v<n>.zippreview/board-gerber<n>.png: frontal/traseira rasterizadas a partir do Gerber, não screenshot do EDApreview/v<n>_front3d.png/v<n>_back3d.png: pseudo 3D gerado por14-render3d.py(relevo preto fosco + reflexo dourado), para revisão P4.5 do usuáriodocs/03-当前状态.md: estatísticas de camadas, parâmetros geométricos, itens decididos, itens pendentesdocs/验收单.md: tabela de medição real gerada por13-check.py --md+ 14 itens de verificação P4.5 (uma cópia por placa, não pergunte verbalmente)- Pacote de pedido: Gerber + imagens de prévia + arquivos fonte do projeto +
下单说明.txt(com dados reais e riscos conhecidos) +MANIFEST.txt(scripts/19-pack_order.pygera sha256, após descompactar--verifyconfere consistência antes de pedir)
Autoteste (cada entrega, sem exceção)
- Execute
scripts/13-check.py, tudo verde para continuar (dimensões / área dourada / largura mínima de traço / serigrafia mínima / serigrafia branca / preto fosco / furos / contagem de elementos / cobertura de anel). Placas com textura de trama devem usar--weave: comparar orientação das células de 2 mm na placa com a tabela de textura da referência, concordância ≥90% para considerar cópia correta. Adicione também--md docs/验收单.md, para registrar os números e os 14 itens de verificação P4.5 em um arquivo. - Gere uma imagem local ≥60 px/mm, focando em três pontos: emblema, texto principal, um canto da placa.
- Escreva os números das duas etapas acima na resposta, não "já olhei".
- Se encontrar defeitos: primeiro corrija, depois decida se diz "aceitável" — "aceitável" não é um plano de reparo.
- As imagens 3D da P4.5 devem ser realmente mostradas ao usuário (frontal + traseira), não apenas dizer "já foi renderizado".