Communitygithub.com

gift-pcb / Placa conmemorativa decorativa

Crea placas de circuito impreso (PCB) puramente decorativas (tarjetas de cumpleaños, placas conmemorativas, insignias, colgantes) sin funcionalidad eléctrica, desde cero hasta listas para pedir en JLCPCB/EasyEDA Pro. También ayuda a diagnosticar por qué una placa de referencia con apariencia oro/negro/blanco no se replica correctamente.

¿Qué es Placa conmemorativa decorativa?

Este skill te guía en el diseño de PCBs que son solo arte, sin circuitos. Está pensado para creadores que quieren hacer regalos personalizados (como una tarjeta de cumpleaños con forma de PCB, una placa conmemorativa de un equipo, o un llavero con el logo de la empresa) y necesitan que la placa se vea bien y sea fabricable en JLCPCB o EasyEDA Pro. El skill impone tres reglas de oro: observar capa por capa (no la imagen compuesta), medir todo en milímetros/píxeles (no estimar), y copiar primero de una placa de referencia antes de modificar. Organiza el proceso en ocho etapas con compuertas de calidad (por ejemplo, P0.5 requiere responder 8 preguntas al usuario, P4.5 necesita una aprobación explícita del usuario tras una vista 3D). Incluye scripts de Python (como `decode_badge.py`, `render3d.py`, `check.py`) para decodificar placas de referencia, generar vistas previas 3D, verificar proporciones de color (oro 12–24%, blanco ≥0.3%, negro mate 65–85%) y empaquetar archivos Gerber para pedido. También contiene referencias detalladas sobre cómo manejar texturas de tejido, vectorizar escaneos, evitar errores comunes (118 entradas en una lista de errores) y usar el formato .epcb2 para inyección rápida de geometría. Las compuertas más críticas son P0.5 (entrevista de requisitos) y P4.5 (aprobación de vista 3D); saltarlas suele llevar a retrabajos costosos.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/YHLLXY/pcb-art-skill/tree/HEAD

Preguntar en tu IA favorita

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

Documentación

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

  1. 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.
  2. 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.
  3. 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

EtapaProductoCompuerta (sin pasar no se avanza)
P0 InicioDestinatario, dimensiones, proceso, lista de elementosCada elemento puede responder "dónde va, qué tamaño tiene"
P0.5 Entrevista de requisitosUso, escenario, realismo/decorativo, bocetos a mano, presupuestoResponder las 8 preguntas (ver 06), especialmente "¿quiere sensación de escritura a mano?"
P1 Decodificar placa de referenciaRender 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ónMockups de frente/dorso en mapa de bitsEl usuario confirma la maquetación; y declarar "el pre-render no representa el resultado final"
P3 Vectorización y fabricabilidadVector de insignia/texto, tabla de anchos de línea, presupuesto de área doradaAncho de línea mínimo ≥ límite del proceso; oro 12–24%, blanco ≥0.3%, negro mate 65–85%
P4 Implementación en EDAProyecto + placa + gráficos de cada capaDespués de guardar cada capa, volver a leer y verificar que el número de primitivas coincide con el plan
P4.5 Verificación 3DImagen 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ónPaquete Gerber + paquete de pedidoscripts/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 hacerLee esto
Qué preguntar al usuario antes de empezar, cómo verificar 3D, cómo calcular área doradareferences/06-需求访谈与验收.md
Abrir Gerber de una placa de referencia y determinar qué es cada capareferences/01-参考板解码.md
Anchos de línea, si se puede fabricar, vectorizar mapa de bits, precisión de escaneo, parámetros de textura de tejidoreferences/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íneareferences/08-素材爬取计划.md + scripts/17-crawl_assets.py
De un montón de imágenes, cuáles se pueden poner en la placascripts/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 maquetartemplates/layouts/ (tres plantillas con ejemplo a 24 px/mm)
Quieres ver primero el aspecto de la especificación sin abrir EDAscripts/20-preview_spec.py
Llamadas CLI/JS para EasyEDA Proreferences/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 verifiquescripts/14-render3d.py
Cualquier paso "se ve raro", primero consulta la lista de errores históricosreferences/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 placapython -m pytest tests -q (reproducción de placa dorada, textura, autocomprobación)
Quieres cambiar la fuente / no se ejecuta en otra máquinareferences/02-制造性与矢量.md "Fuentes"
Buscar material, ver skills similares de otrosreferences/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)

  1. 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, ver 02 "dos criterios de medida"). Por debajo de 8% seguro que es placa vacía, por encima de 26% es placa completamente dorada.
  2. 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).
  3. 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.
  4. 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.
  5. 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.
  6. 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 en modify().
  7. Las tres capas traseras (2/4/6) deben generarse todas reflejadas; la serigrafía inferior es la capa 4, no la 3.
  8. 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.
  9. Después de escribir .epcb2, debes hacer session close --destroy y luego open; el editor no recarga automáticamente los cambios en disco, y la exportación obtendrá la imagen antigua (regla 109).
  10. 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.
  11. 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.
  12. "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.
  13. 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>.zip
  • preview/board-gerber<n>.png: compuesto rasterizado de Gerber frontal y dorsal, no captura de EDA
  • preview/v<n>_front3d.png / v<n>_back3d.png: pseudo-3D generado por 14-render3d.py (relieve negro mate + reflejo dorado), para que el usuario verifique en P4.5
  • docs/03-当前状态.md: estadísticas de capas, parámetros geométricos, elementos decididos, elementos pendientes
  • docs/验收单.md: tabla de medidas generada por 13-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.py genera sha256; descomprimir y ejecutar --verify para confirmar que coincide antes de pedir)

Autocomprobación (antes de cada entrega, imprescindible)

  1. 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/验收单.md para dejar constancia de los números y los catorce elementos de P4.5.
  2. Generar una imagen parcial ≥60 px/mm, fijándose en tres puntos: la insignia, el texto principal y una esquina de la placa.
  3. Escribir los números de los dos pasos anteriores en la respuesta, no "lo he visto".
  4. Si se encuentra un defecto: primero repararlo, luego decidir si se dice "aceptable" — "aceptable" no es un plan de reparación.
  5. Las imágenes 3D de P4.5 deben mostrarse realmente al usuario (frente + dorso), no solo decir "ya está renderizado".

Skills relacionados