Bocetos de Fritzing desde código
Lo que ofrece esta habilidad
- Un método para convertir una lista de conexiones (una lista de qué pines se conectan entre sí) en un único archivo
.fzzcon tres vistas: placa de pruebas, esquemático y PCB. - Dos generadores funcionales. Copia uno y cambia las piezas y las conexiones.
scripts/build_fzz_battery_led.pyusa solo piezas que vienen con Fritzing: un portapilas, un pulsador, una resistencia y un LED. Empieza aquí.scripts/build_fzz_header_led.pymuestra cómo escribir una pieza personalizada (un archivo.fzpy cuatro archivos SVG) dentro del boceto.
- Un verificador de piezas,
scripts/check_core_part.py. Te dice si una pieza central tiene todos sus archivos de imagen. - Un verificador sin interfaz gráfica,
scripts/fritzing_export.py. Carga un boceto en Fritzing y escribe las tres vistas como archivos SVG. - Un verificador con ventana,
scripts/fritzing_gui_shot.ps1(Windows). Toma una captura de pantalla de la ventana de Fritzing, para que puedas leer la barra de estado. - Los hechos sobre el formato de archivo en
references/fz-file-format.md. Léelo antes de escribir cualquier XML de.fz.
Qué fue probado
- Probado: Windows 11 con Fritzing 1.0.x, instalado en
C:\Program Files\Fritzing. Ambos bocetos de ejemplo enexamples/se construyen, exportan a SVG, se abren en la ventana de Fritzing con "Enrutamiento completado" en las tres vistas, y pasan la verificación de reglas de diseño de PCB. Esto se comprobó el 2026-11-07. - No probado: macOS, Linux, versiones de Fritzing distintas a 1.0.x, enrutamiento automático y circuitos con más de unas pocas piezas.
Reglas para Claude
- No adivines los pines de una pieza. Lee su archivo
.fzpy enumera sus conectores. Compáralos con la lista de conexiones antes de construir. - Verifica cada pieza central con
scripts/check_core_part.pyantes de usarla. Una pieza a la que le falten sus archivos de imagen se dibujará en blanco. - No descargues un archivo sin el permiso del usuario, a menos que te haya dado el enlace. Di el nombre del archivo, la fuente y el tamaño. Pon cada descarga en su propia carpeta nueva vacía. No ejecutes nada de ella.
- No digas que un boceto "funciona" solo porque el generador se ejecutó. Fritzing debe cargarlo y cada vista debe mostrar cada pieza. Di lo que no comprobaste.
- La última comprobación la hace una persona: abre el archivo en la ventana de Fritzing y dice lo que ve. Arregla el generador, no el archivo a mano.
- Escribe el nombre completo de cada archivo y pieza cada vez.
Flujo de trabajo
Encontrar Fritzing y su biblioteca de piezas
- Windows (probado): Fritzing está en
C:\Program Files\Fritzing\Fritzing.exe. La biblioteca de piezas esC:\Program Files\Fritzing\fritzing-parts. Los bocetos de ejemplo están enC:\Program Files\Fritzing\sketches\core. LÉELOS para copiar el XML exacto que escribe Fritzing. - Linux (no probado para este repositorio): una AppImage de Fritzing se puede desempaquetar con su opción
--appimage-extracten una nueva carpeta vacía. La biblioteca de piezas estará entonces ensquashfs-root/fritzing-parts. - macOS (no probado): la biblioteca de piezas está dentro de la aplicación Fritzing. Busca una carpeta llamada
fritzing-parts. - Los scripts leen la biblioteca de piezas de la instalación de Fritzing del usuario. Establece la variable de entorno
FRITZING_PARTSa esa carpeta.
Verificar las piezas
- Enumera las piezas que necesitas y busca cada una:
python scripts\check_core_part.py "C:\Program Files\Fritzing\fritzing-parts" <nombre de la pieza>. Añade--all batterypara listar cada pieza central con "battery" en su título. - Imprime
OKoMISSINGpara cada pieza, el número de conectores y el identificador de módulo (moduleId). Una pieza que diceMISSINGse dibujará en blanco en la vista cuyo archivo de imagen falta. - Ejemplo de la instalación de prueba del 2026-11-07: la pieza central
screw_terminal_2_100milcarece de sus imágenes de esquemático y PCB, y la pieza centralBattery block 9Vcarece de su huella de PCB (jumper_2_100mil_pcb.svg). La pieza central4 x AAA Battery Mountestá completa. - Si ninguna pieza central se ajusta, dibuja una.
scripts/build_fzz_header_led.pytiene un ejemplo: un archivo.fzpy cuatro archivos SVG. - Si una pieza de otra fuente carece de un pin, copia la pieza, asígnale un nuevo
moduleIdy añade el conector. Añade el pin al SVG de la placa de pruebas, al SVG del esquemático y al SVG de la PCB.
Construir
- Copia
scripts/build_fzz_battery_led.py. Cambia las piezas, los nombres de los agujeros, las coordenadas y las conexiones. - Escribe las conexiones como una lista de miembros. El script verifica su propio cableado contra esa lista en las tres vistas y comprueba la separación de las pistas de la PCB.
- Elige primero la disposición de la placa de pruebas, luego el esquemático y luego la PCB. Usa
references/fz-file-format.mdpara los nombres de los agujeros, las escalas, los nombres de las capas y las transformaciones. - Para una pieza con patas flexibles, copia el XML de las patas de un boceto de ejemplo de Fritzing. No lo adivines (consulta "Cosas que salieron mal antes").
Verificar
- Ejecuta
python scripts\fritzing_export.py "C:\Program Files\Fritzing\Fritzing.exe" <boceto.fzz> <nueva carpeta vacía>. Lee cada línea que imprime. Escribe<nombre>_breadboard.svg,<nombre>_schematic.svgy<nombre>_pcb.svg. - Mira los archivos SVG como imágenes. Una forma en Windows: escribe una página HTML que contenga un
<img>del archivo SVG, luego ejecutamsedge.exe --headless --window-size=W,H --screenshot=<salida.png> file:///<página.html>. Lee el PNG. La exportación muestra solo el cobre, no los contornos de la serigrafía. Para una imagen de la PCB con los contornos, haz una captura de pantalla de la vista de PCB en la ventana Fritzing conscripts\fritzing_gui_shot.ps1y recorta la placa (las imágenes de PCB enexamples/se hicieron así). - Para cada pieza, verifica tres cosas: que está dibujada, que sus pines están sobre los agujeros y que cada extremo de cable toca un pin.
- La exportación SVG no dibuja las líneas de "nido de ratas" (las líneas finas que muestran las conexiones no enrutadas). Por lo tanto, no puede demostrar que Fritzing registró las conexiones. Abre el boceto en la ventana de Fritzing.
- Windows, en la ventana real de Fritzing:
- Inicia
Fritzing.exe "<boceto.fzz>"conStart-Process. Espera 25 segundos. - Ejecuta
scripts\fritzing_gui_shot.ps1 -Out <png>para la vista actual, luego con-Keys "^3"para la vista esquemática y con-Keys "^4"para la vista PCB. Lee cada PNG. - Busca "Enrutamiento completado" en la barra de estado de cada vista y puntos de conector verdes.
- Para la verificación de reglas de diseño, ejecuta el script con
-Keys "^+d" -Wait 5en la vista PCB. Un boceto limpio muestra "Tu boceto está listo para producción: no hay conectores ni pistas que se superpongan o estén demasiado cerca." - Cierra el diálogo y ejecuta
Stop-Process -Name Fritzing.
- Inicia
Informar
- Di qué comprobaste y cómo. Di lo que no comprobaste. Nombra los archivos que escribiste con rutas completas.
- Indica al usuario cómo abrir el archivo: en Fritzing,
Archivo→Abrir.
Cosas que salieron mal antes
- Faltan archivos de imagen de una pieza central en la instalación. La pieza se dibuja en blanco. Ejecuta
scripts/check_core_part.pyantes de usar una pieza. - Una pieza se dibuja en blanco. Fritzing 1.0.x no dibuja nada cuando un SVG de placa de pruebas no tiene un grupo
<g id="breadboard">. Envuelve todo el contenido en ese grupo. - Un extremo de cable se ve bien pero no está conectado. El archivo
.fzdebe listar cada conexión en ambos elementos. Escribe una llamadalink()por par y emite ambos lados. - Una pieza con patas flexibles (LED, resistencia, diodo, portapilas). En el archivo
.fz, la geometría del conector<geometry x y>es el extremo del lado del cuerpo de la línea de la pata en el SVG, multiplicado por la escala. El segundo punto de<leg>es la punta, relativo a ese punto. Para el LED de 5 mm, el desplazamiento de la punta es(0, 30.5172). Para el portapilas, es(6.25, 0). Los bocetos de ejemplo de Fritzing muestran esto. - Escala incorrecta. Una unidad de escena es 1/90 pulgada. Un SVG con unidades
inescala por90 × ancho_in / viewBox_ancho. Un SVG de Illustrator con unidadespxsimples cuenta como 72 ppp, por lo tanto multiplica por 1.25. - No se encuentra un terminal esquemático. Algunos archivos SVG esquemáticos ocultan el terminal dentro de un elemento
<g>, y algunos no tienen ningún terminal. Lee el archivo SVG y toma el extremo exterior de la línea del pin. El LED esquemáticoled.svgtiene sus terminales en (9.9005, 21.8165) para el cátodo y (9.9005, 0.2165) para el ánodo, a 72 ppp. - Una pieza rotada cae fuera de sus agujeros. Usa las fórmulas de transformación en el archivo de referencia. Coloca una pieza por la posición de un pin, no por su esquina.
- Las pistas se cruzan. Coloca las dos pistas en capas diferentes. Los pads pasantes unen ambas capas, por lo que no se necesita una vía.
- Python. Los scripts usan solo la biblioteca estándar. No necesitan ningún paquete instalado.
Archivos en esta habilidad
SKILL.md: este archivo.references/fz-file-format.md: el formato.fzzy.fz, con ejemplos XML, escalas, nombres de capas y fórmulas.scripts/build_fzz_battery_led.py: generador con solo piezas centrales (portapilas, pulsador, resistencia, LED).scripts/build_fzz_header_led.py: generador que también escribe una pieza personalizada (un conector de 2 pines).scripts/check_core_part.py: verifica que una pieza central tenga todos sus archivos de imagen.scripts/fritzing_export.py: la verificación de carga y exportación sin interfaz gráfica.scripts/fritzing_gui_shot.ps1: activa la ventana de Fritzing, puede enviar teclas y guarda una captura de pantalla (Windows).examples/battery_led.fzzyexamples/header_led.fzz: los bocetos que escribieron los dos generadores, con una imagen de cada vista.