Placa conmemorativa decorativa (gift-pcb)
Una PCB que es solo arte, sin circuito. La dificultad no está en el esquemático, sino en tres cosas que a menudo se pasan por alto: ¿Cómo se ve realmente la placa de referencia?, ¿de qué material es cada capa?, y la diferencia entre "parece bien" y "mide bien".
Tres reglas de oro
- Observa capa por capa, no la imagen compuesta. El cobre cubierto por la máscara antisoldante es negro; solo "cobre + apertura de máscara" da lugar al oro.
- Mide, no estimes. Todas las dudas sobre "si es suficiente" deben resolverse con mediciones reales en milímetros/píxeles y registrarse en la respuesta. Las estimaciones se descubren en la tercera iteración.
- Primero copia, luego modifica. Los problemas ya resueltos en la placa de referencia o en logotipos oficiales deben tomarse directamente de su geometría, no reinventarse.
Ocho etapas y compuertas
| Etapa | Producto | Compuerta (sin pasar no se avanza) |
|---|---|---|
| P0 Inicio | Destinatario, dimensiones, proceso, lista de elementos | Cada elemento puede responder "dónde va, qué tamaño tiene" |
| P0.5 Entrevista de requisitos | Uso, escenario, realismo/decorativo, bocetos a mano, presupuesto | Responder las 8 preguntas (ver 06), especialmente "¿quiere sensación de escritura a mano?" |
| P1 Decodificar placa de referencia | Render capa por capa + lista de elementos + tabla de proporción de tres colores; si no hay referencia, buscar material | ① Poder señalar en la imagen qué es cobre/oro/serigrafía/perforaciones; ② Ejecutar scripts/00-decode_badge.py para obtener prototipo de la insignia (trazos/discos) + radio + área + trazo más fino; ③ Si hay referencia, medir tres números de oro/blanco/negro; ④ Llenar las diez líneas de la lista de copia de 07 (cada línea con medida real + decisión del usuario de copiar o no) |
| P2 Maquetación | Mockups de frente/dorso en mapa de bits | El usuario confirma la maquetación; y declarar "el pre-render no representa el resultado final" |
| P3 Vectorización y fabricabilidad | Vector de insignia/texto, tabla de anchos de línea, presupuesto de área dorada | Ancho de línea mínimo ≥ límite del proceso; oro 12–24%, blanco ≥0.3%, negro mate 65–85% |
| P4 Implementación en EDA | Proyecto + placa + gráficos de cada capa | Después de guardar cada capa, volver a leer y verificar que el número de primitivas coincide con el plan |
| P4.5 Verificación 3D | Imagen 3D frontal/dorsal generada con scripts/14-render3d.py + confirmación elemento por elemento del usuario (C1 defectos / C2 estética / C3 si necesita más material) | El usuario dice "está bien", al menos una ronda, idealmente dos; sin confirmación no se genera el paquete de pedido |
| P5 Revisión de exportación | Paquete Gerber + paquete de pedido | scripts/13-check.py todo verde (incluyendo las tres proporciones oro/blanco/negro) + una imagen parcial ≥60 px/mm (a simple vista) |
P0.5 y P4.5 son las dos compuertas que más se saltan y que más caras resultan. La primera decide si se está haciendo lo correcto, la segunda decide si el usuario lo acepta.
Consulta directa
| Lo que quieres hacer | Lee esto |
|---|---|
| Qué preguntar al usuario antes de empezar, cómo verificar 3D, cómo calcular área dorada | references/06-需求访谈与验收.md |
| Abrir Gerber de una placa de referencia y determinar qué es cada capa | references/01-参考板解码.md |
| Anchos de línea, si se puede fabricar, vectorizar mapa de bits, precisión de escaneo, parámetros de textura de tejido | references/02-制造性与矢量.md |
| Quieres añadir textura de tejido (reproducir tabla de textura de una placa de referencia) | scripts/15-weave.py (--extract puede extraer la tabla de cualquier placa de referencia) |
| Qué copiar de la placa de referencia elemento por elemento (borde dorado, grupo de agujeros, sangrado, niveles de serigrafía...) | references/07-从参考板抄什么.md |
| Falta material, quieres buscar imágenes en línea | references/08-素材爬取计划.md + scripts/17-crawl_assets.py |
| De un montón de imágenes, cuáles se pueden poner en la placa | scripts/18-filter_assets.py (genera un collage, el usuario elige) |
| Qué preguntar al usuario antes de empezar (formulario editable) | templates/问卷.md |
| No sabes cómo maquetar | templates/layouts/ (tres plantillas con ejemplo a 24 px/mm) |
| Quieres ver primero el aspecto de la especificación sin abrir EDA | scripts/20-preview_spec.py |
| Llamadas CLI/JS para EasyEDA Pro | references/03-EDA落地.md |
| No quieres añadir primitivas una por una (escribir directamente .epcb2) | references/03-EDA落地.md sección 8 |
| La insignia es un bloque de color sólido con texto recortado en blanco (tipo disco) | references/02-制造性与矢量.md "Dos prototipos de insignias" |
| Generar vista previa 3D para que el usuario verifique | scripts/14-render3d.py |
| Cualquier paso "se ve raro", primero consulta la lista de errores históricos | references/04-踩坑清单.md (118 entradas, secciones A–R) |
| Empaquetar para pedido, confirmar que este archivo es el que se verificó | scripts/19-pack_order.py (MANIFEST + --verify) |
| Después de modificar un script, verificar que no se ha dañado la placa | python -m pytest tests -q (reproducción de placa dorada, textura, autocomprobación) |
| Quieres cambiar la fuente / no se ejecuta en otra máquina | references/02-制造性与矢量.md "Fuentes" |
| Buscar material, ver skills similares de otros | references/05-参考资源.md |
Antes de empezar P4, debes leer references/03. El error más caro fue adivinar el orden de los parámetros de create() basándose en la memoria, cuando la firma correcta estaba escrita en tu propio 03.
Las 13 reglas más importantes (texto completo en 04)
- Oro = cobre + apertura de máscara, ambas capas son imprescindibles; oro 12–24% (en placa de referencia del mismo tamaño 22.0%, medida con
13-check, ver02"dos criterios de medida"). Por debajo de 8% seguro que es placa vacía, por encima de 26% es placa completamente dorada. - Determina el prototipo de la insignia antes de dibujar: tipo trazo → calcar entero; tipo disco (bloque de color sólido + texto recortado en blanco) → disco sólido + texto en negro recortado. Si te equivocas de prototipo, el texto se convertirá en rebabas (así se perdió la v3).
- Para formas complejas de texto, no uses operaciones booleanas de polígonos; rasteriza + escanea con 0,06 mm; pero letras latinas/números deben ser objetos de texto (vectoriales), el escaneo solo para caracteres chinos, escritura a mano y gráficos.
- La textura de fondo debe recortarse al límite (intersección con el círculo en las esquinas redondeadas), no descartar segmentos que crucen el borde, de lo contrario aparecerán muescas dentadas alrededor del borde de la placa.
- Cuando hay textura de fondo en la misma capa, cualquier filtro por bbox debe incluir una firma de tamaño, de lo contrario se eliminará la textura junto con otros elementos.
- Escribe lotes ≤600/lote, pausa entre lotes, reintenta en caso de error, al final elimina duplicados por coordenadas;
setState_*no persiste en disco; para cambiar geometría solo confía enmodify(). - Las tres capas traseras (2/4/6) deben generarse todas reflejadas; la serigrafía inferior es la capa 4, no la 3.
- Cuando el usuario dice "no se parece", el problema casi siempre está en las reglas (disposición, proporciones, jerarquía), no en los parámetros; convierte la placa de referencia en números, no ajustes valores.
- Después de escribir .epcb2, debes hacer
session close --destroyy luegoopen; el editor no recarga automáticamente los cambios en disco, y la exportación obtendrá la imagen antigua (regla 109). - Toda la placa se puede escribir directamente como texto .epcb2 (una línea por JSON, una FILL por path), es un orden de magnitud más rápido que la inyección por lotes mediante CLI; pero el texto en la cara trasera no se puede reflejar con
mirror:true, hay que reflejar la geometría. - Para círculos, usa siempre
path:["CIRCLE",cx,cy,r]+ width; dibujar círculos con líneas de escaneo puede fusionarlos con el texto adyacente, creando muescas. - "Copia todo lo que puedas" — pero copia números, no impresiones. La banda dorada del borde de la placa se superpone al contorno de la placa (ancho visible = ancho de línea/2), el grupo de agujeros conectado a esos agujeros pequeños de φ0,3, el sangrado de los gráficos fuera de la placa, la serigrafía con tres líneas de tres fuentes diferentes, la línea horizontal inferior... mide cada uno y completa la tabla de
07, pregunta al usuario si copiarlo o no. - La autocomprobación debe ser "tabla generada por script + una imagen parcial ≥60 px/mm"; 20 px/mm no permite ver defectos de 0,06 mm; verlos y decir "aceptable" es peor que no verlos. Para textura de tejido por separado: debe ser 80 px/mm viendo un bloque de 12×12 mm, porque en la imagen compuesta siempre parece "gris uniforme".
Entregables (cada versión final debe incluirlos)
export/<nombre>_gerber_<fecha>_v<n>.zippreview/board-gerber<n>.png: compuesto rasterizado de Gerber frontal y dorsal, no captura de EDApreview/v<n>_front3d.png/v<n>_back3d.png: pseudo-3D generado por14-render3d.py(relieve negro mate + reflejo dorado), para que el usuario verifique en P4.5docs/03-当前状态.md: estadísticas de capas, parámetros geométricos, elementos decididos, elementos pendientesdocs/验收单.md: tabla de medidas generada por13-check.py --md+ los catorce elementos de verificación de P4.5 (un documento por placa, no preguntar oralmente)- Paquete de pedido: Gerber + imágenes de previsualización + archivo fuente del proyecto +
下单说明.txt(con medidas reales y riesgos conocidos) +MANIFEST.txt(scripts/19-pack_order.pygenera sha256; descomprimir y ejecutar--verifypara confirmar que coincide antes de pedir)
Autocomprobación (antes de cada entrega, imprescindible)
- Ejecutar
scripts/13-check.py, todo verde para continuar (dimensiones / área dorada / ancho de línea mínimo / serigrafía mínima / serigrafía blanca / negro mate / perforaciones / número de primitivas / cobertura de anillos). Si la placa tiene textura de tejido, añadir--weave: comparar la orientación de cada celda de 2 mm con la tabla de textura de la placa de referencia, con una concordancia ≥90% para considerar que se ha copiado correctamente. Además, añadir--md docs/验收单.mdpara dejar constancia de los números y los catorce elementos de P4.5. - Generar una imagen parcial ≥60 px/mm, fijándose en tres puntos: la insignia, el texto principal y una esquina de la placa.
- Escribir los números de los dos pasos anteriores en la respuesta, no "lo he visto".
- Si se encuentra un defecto: primero repararlo, luego decidir si se dice "aceptable" — "aceptable" no es un plan de reparación.
- Las imágenes 3D de P4.5 deben mostrarse realmente al usuario (frente + dorso), no solo decir "ya está renderizado".