CommunityProgramación y desarrollogithub.com

markwkiehl/fritzing

Construye, verifica y edita bocetos de Fritzing (.fzz y .fz) con código. Crea las vistas de placa de pruebas, esquemático y PCB a partir de una lista de conexiones, añade piezas personalizadas (.fzp y SVG) y comprueba que el archivo se carga exportando SVG y abriéndolo en la ventana real de Fritzing.

¿Qué es fritzing?

Esta habilidad proporciona un flujo de trabajo completo para generar y verificar bocetos de Fritzing programáticamente, ideal para desarrolladores que deseen automatizar el diseño de circuitos electrónicos desde código. Permite convertir una lista de conexiones (net list) en un archivo `.fzz` que contiene tres vistas sincronizadas: placa de pruebas, esquemático y PCB. Además, ofrece herramientas para verificar que las piezas centrales de Fritzing tengan todos sus archivos de imagen (evitando que aparezcan en blanco), exportar las vistas a SVG sin interfaz gráfica, y tomar capturas de pantalla de la ventana de Fritzing para inspeccionar visualmente el resultado. La habilidad está probada en Windows 11 con Fritzing 1.0.x, pero también proporciona instrucciones para Linux y macOS. Incluye dos generadores de ejemplo: uno que solo usa piezas integradas en Fritzing y otro que demuestra cómo incorporar una pieza personalizada (archivo `.fzp` y cuatro SVGs). Es especialmente útil para integración continua, documentación automatizada o para desarrolladores que quieran generar circuitos complejos sin manipular manualmente los archivos XML de Fritzing.

Compatible con✓Claude Code~Codex CLI~Cursor
Part ofMobile
npx skills add https://github.com/markwkiehl/medium_claude_fritzing/tree/HEAD/skills/fritzing

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

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

Documentación

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 .fzz con 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.py usa solo piezas que vienen con Fritzing: un portapilas, un pulsador, una resistencia y un LED. Empieza aquí.
    • scripts/build_fzz_header_led.py muestra cómo escribir una pieza personalizada (un archivo .fzp y 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 en examples/ 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 .fzp y enumera sus conectores. Compáralos con la lista de conexiones antes de construir.
  • Verifica cada pieza central con scripts/check_core_part.py antes 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 es C:\Program Files\Fritzing\fritzing-parts. Los bocetos de ejemplo están en C:\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-extract en una nueva carpeta vacía. La biblioteca de piezas estará entonces en squashfs-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_PARTS a 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 battery para listar cada pieza central con "battery" en su título.
  • Imprime OK o MISSING para cada pieza, el número de conectores y el identificador de módulo (moduleId). Una pieza que dice MISSING se 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_100mil carece de sus imágenes de esquemático y PCB, y la pieza central Battery block 9V carece de su huella de PCB (jumper_2_100mil_pcb.svg). La pieza central 4 x AAA Battery Mount está completa.
  • Si ninguna pieza central se ajusta, dibuja una. scripts/build_fzz_header_led.py tiene un ejemplo: un archivo .fzp y cuatro archivos SVG.
  • Si una pieza de otra fuente carece de un pin, copia la pieza, asígnale un nuevo moduleId y 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.md para 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.svg y <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 ejecuta msedge.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 con scripts\fritzing_gui_shot.ps1 y recorta la placa (las imágenes de PCB en examples/ 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>" con Start-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 5 en 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.

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.py antes 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 .fz debe listar cada conexión en ambos elementos. Escribe una llamada link() 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 in escala por 90 × ancho_in / viewBox_ancho. Un SVG de Illustrator con unidades px simples 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ático led.svg tiene 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 .fzz y .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.fzz y examples/header_led.fzz: los bocetos que escribieron los dos generadores, con una imagen de cada vista.

Skills relacionados