markwkiehl/fritzing

Construa, verifique e edite sketches Fritzing (.fzz e .fz) com código. Converte uma lista de conexões nas visões de protoboard, esquema e PCB, adiciona componentes personalizados e prova que o arquivo carrega exportando SVG e abrindo no Fritzing real.

O que é fritzing?

Esta skill permite gerar, verificar e editar sketches Fritzing (arquivos .fzz e .fz) inteiramente a partir de código. Ela é útil para desenvolvedores e entusiastas de eletrônica que desejam automatizar a criação de circuitos com protoboard, esquemático e PCB, evitando o desenho manual. A skill é testada no Windows 11 com Fritzing 1.0.x e oferece scripts Python que usam apenas a biblioteca padrão (sem dependências externas). Ela inclui geradores de exemplo (bateria+LED e header+LED), um verificador de partes internas para garantir que os arquivos de imagem estejam presentes, um exportador headless que converte o sketch em SVG e um script PowerShell para capturar a janela do Fritzing. A skill documenta regras importantes: não adivinhar pinos (sempre ler o .fzp), verificar partes antes de usar, e nunca editar o arquivo manualmente — sempre corrija o gerador. Ela também descreve problemas comuns como escala incorreta, conector ausente em SVG de partes com pernas dobradas e falta de grupo 'breadboard' no SVG da protoboard.

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

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Sketches Fritzing a partir de código

O que esta skill oferece

  • Um método para transformar uma lista de conexões (quais pinos se conectam) em um único arquivo .fzz com três visões: protoboard, esquema e PCB.
  • Dois geradores funcionais. Copie um e altere as partes e conexões.
    • scripts/build_fzz_battery_led.py usa apenas partes que acompanham o Fritzing: um suporte de bateria, um botão, um resistor e um LED. Comece por aqui.
    • scripts/build_fzz_header_led.py mostra como escrever uma parte personalizada (um arquivo .fzp e quatro SVGs) dentro do sketch.
  • Um verificador de partes, scripts/check_core_part.py. Ele informa se uma parte interna tem todos os seus arquivos de imagem.
  • Um verificador headless, scripts/fritzing_export.py. Ele carrega um sketch no Fritzing e escreve as três visões como arquivos SVG.
  • Um verificador de janela, scripts/fritzing_gui_shot.ps1 (Windows). Ele tira uma captura de tela da janela do Fritzing para que você possa ler a barra de status.
  • Os fatos sobre o formato do arquivo em references/fz-file-format.md. Leia antes de escrever qualquer XML .fz.

O que foi testado

  • Testado: Windows 11 com Fritzing 1.0.x, instalado em C:\Program Files\Fritzing. Ambos os sketches de exemplo em examples/ constroem, exportam para SVG, abrem na janela do Fritzing com "Roteamento concluído" nas três visões e passam na verificação de regras de design da PCB. Isso foi verificado em 2026-11-07.
  • Não testado: macOS, Linux, versões do Fritzing diferentes de 1.0.x, roteamento automático e circuitos com mais de algumas partes.

Regras para Claude

  • Não adivinhe os pinos de uma parte. Leia o arquivo .fzp e liste seus conectores. Compare-os com a lista de conexões antes de construir.
  • Verifique cada parte interna com scripts/check_core_part.py antes de usá-la. Uma parte cujos arquivos de imagem faltam desenha em branco.
  • Não baixe um arquivo sem a permissão do usuário, a menos que ele tenha fornecido o link. Diga o nome do arquivo, a fonte e o tamanho. Coloque cada download em sua própria nova pasta vazia. Não execute nada de dentro dela.
  • Não diga que um sketch "funciona" porque o gerador rodou. O Fritzing deve carregá-lo, e cada visão deve mostrar todas as partes. Diga o que você não verificou.
  • A última verificação é feita por uma pessoa: ela abre o arquivo na janela do Fritzing e descreve o que vê. Corrija o gerador, não o arquivo manualmente.
  • Escreva o nome completo de cada arquivo e parte todas as vezes.

Fluxo de trabalho

Encontre o Fritzing e sua biblioteca de partes

  • Windows (testado): Fritzing está em C:\Program Files\Fritzing\Fritzing.exe. A biblioteca de partes está em C:\Program Files\Fritzing\fritzing-parts. Os sketches de amostra estão em C:\Program Files\Fritzing\sketches\core. Leia-os para copiar o XML exato que o Fritzing escreve.
  • Linux (não testado para este repositório): um AppImage do Fritzing pode ser descompactado com a opção --appimage-extract em uma nova pasta vazia. A biblioteca de partes estará em squashfs-root/fritzing-parts.
  • macOS (não testado): a biblioteca de partes está dentro do aplicativo Fritzing. Procure por uma pasta chamada fritzing-parts.
  • Os scripts leem a biblioteca de partes da própria instalação do Fritzing do usuário. Defina a variável de ambiente FRITZING_PARTS para essa pasta.

Verifique as partes

  • Liste as partes que você precisa e pesquise cada uma: python scripts\check_core_part.py "C:\Program Files\Fritzing\fritzing-parts" <nome da parte>. Adicione --all battery para listar todas as partes internas com "battery" no título.
  • Ele imprime OK ou MISSING para cada parte, o número de conectores e o id do módulo. Uma parte que diz MISSING desenha em branco na visão cujo arquivo de imagem está faltando.
  • Exemplo da instalação de teste de 2026-11-07: a parte interna screw_terminal_2_100mil não tem suas imagens de esquema e PCB, e a parte interna Battery block 9V não tem a pegada da PCB (jumper_2_100mil_pcb.svg). A parte interna 4 x AAA Battery Mount está completa.
  • Se nenhuma parte interna servir, desenhe uma. scripts/build_fzz_header_led.py tem um exemplo: um arquivo .fzp e quatro SVGs.
  • Se uma parte de outra fonte não tiver um pino, copie a parte, dê a ela um novo moduleId e adicione o conector. Adicione o pino ao SVG da protoboard, ao SVG do esquema e ao SVG da PCB.

Construa

  • Copie scripts/build_fzz_battery_led.py. Altere as partes, os nomes dos furos, as coordenadas e as conexões.
  • Escreva as conexões como uma lista de membros. O script verifica sua própria fiação contra essa lista em todas as três visões e verifica a folga das trilhas da PCB.
  • Escolha o layout da protoboard primeiro, depois o esquema, depois a PCB. Use references/fz-file-format.md para nomes de furos, escalas, nomes de camadas e transformações.
  • Para uma parte com pernas que podem ser dobradas, copie o XML das pernas de um sketch de amostra do Fritzing. Não adivinhe (veja "Coisas que deram errado antes").

Verifique

  • Execute python scripts\fritzing_export.py "C:\Program Files\Fritzing\Fritzing.exe" <sketch.fzz> <nova pasta vazia>. Leia cada linha que ele imprime. Ele escreve <nome>_breadboard.svg, <nome>_schematic.svg e <nome>_pcb.svg.
  • Olhe os arquivos SVG como imagens. Uma maneira no Windows: escreva uma página HTML que contenha uma <img> do arquivo SVG, depois execute msedge.exe --headless --window-size=W,H --screenshot=<out.png> file:///<page.html>. Leia o PNG. A exportação mostra apenas o cobre, não os contornos da serigrafia. Para uma imagem da PCB com os contornos, tire um print da visão PCB na janela do Fritzing com scripts\fritzing_gui_shot.ps1 e recorte a placa (as imagens de PCB em examples/ foram feitas assim).
  • Para cada parte, verifique três coisas: ela está desenhada, seus pinos estão sobre os furos e cada ponta de fio toca um pino.
  • A exportação SVG não desenha linhas de roteamento (as linhas finas que mostram conexões não roteadas). Portanto, não pode provar que o Fritzing registrou as conexões. Abra o sketch na janela do Fritzing.
  • Windows, na janela real do Fritzing:
    • Inicie Fritzing.exe "<sketch.fzz>" com Start-Process. Aguarde 25 segundos.
    • Execute scripts\fritzing_gui_shot.ps1 -Out <png> para a visão atual, depois com -Keys "^3" para a visão de esquema e -Keys "^4" para a visão PCB. Leia cada PNG.
    • Procure por "Roteamento concluído" na barra de status de cada visão e por pontos de conector verdes.
    • Para a verificação de regras de design, execute o script com -Keys "^+d" -Wait 5 na visão PCB. Um sketch limpo mostra "Seu sketch está pronto para produção: não há conectores ou trilhas que se sobreponham ou estejam muito próximos."
    • Feche o diálogo e execute Stop-Process -Name Fritzing.

Relate

  • Diga o que você verificou e como. Diga o que você não verificou. Nomeie os arquivos que você escreveu com caminhos completos.
  • Diga ao usuário como abrir o arquivo: no Fritzing, Arquivo → Abrir.

Coisas que deram errado antes

  • Os arquivos de imagem de uma parte interna estão faltando na instalação. A parte desenha em branco. Execute scripts/check_core_part.py antes de usar uma parte.
  • Uma parte desenha em branco. Fritzing 1.0.x não desenha nada quando um SVG de protoboard não tem um grupo <g id="breadboard">. Envolva todo o conteúdo nesse grupo.
  • Uma ponta de fio parece correta mas não está conectada. O arquivo .fz deve listar cada conexão em ambos os itens. Escreva uma chamada link() para cada par e emita ambos os lados.
  • Uma parte com pernas que podem ser dobradas (LED, resistor, diodo, suporte de bateria). No arquivo .fz, a geometria <geometry x y> do conector é a ponta do lado do corpo da linha da perna no SVG, vezes a escala. O segundo ponto do <leg> é a ponta, relativa a esse ponto. Para o LED de 5 mm, o deslocamento da ponta é (0, 30.5172). Para o suporte de bateria, é (6.25, 0). Os sketches de amostra do próprio Fritzing mostram isso.
  • Escala errada. Uma unidade de cena é 1/90 de polegada. Um SVG com unidades in escala por 90 × width_in / viewBox_width. Um SVG do Illustrator com unidades px simples conta como 72 dpi, então multiplique por 1.25.
  • Terminal de esquema não encontrado. Alguns SVGs de esquema escondem o terminal dentro de um elemento <g>, e alguns não têm terminal nenhum. Leia o SVG e pegue a extremidade externa da linha do pino. O esquema do LED led.svg tem seus terminais em (9.9005, 21.8165) para o cátodo e (9.9005, 0.2165) para o ânodo, a 72 dpi.
  • Uma parte rotacionada cai fora de seus furos. Use as fórmulas de transformação no arquivo de referência. Posicione uma parte pela posição de um pino, não pelo seu canto.
  • Trilhas se cruzam. Coloque as duas trilhas em camadas diferentes. Ilhas through-hole unem ambas as camadas, então não é necessário via.
  • Python. Os scripts usam apenas a biblioteca padrão. Eles não precisam de nenhum pacote instalado.

Arquivos nesta skill

  • SKILL.md: este arquivo.
  • references/fz-file-format.md: o formato .fzz e .fz, com exemplos XML, escalas, nomes de camadas e fórmulas.
  • scripts/build_fzz_battery_led.py: gerador com apenas partes internas (suporte de bateria, botão, resistor, LED).
  • scripts/build_fzz_header_led.py: gerador que também escreve uma parte personalizada (um header de 2 pinos).
  • scripts/check_core_part.py: verifica se uma parte interna tem todos os seus arquivos de imagem.
  • scripts/fritzing_export.py: a verificação headless de carregar e exportar.
  • scripts/fritzing_gui_shot.ps1: ativa a janela do Fritzing, pode enviar teclas e salva uma captura de tela (Windows).
  • examples/battery_led.fzz e examples/header_led.fzz: os sketches que os dois geradores escreveram, com uma imagem de cada visão.

Habilidades Relacionadas