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
.fzzcom 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.pyusa 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.pymostra como escrever uma parte personalizada (um arquivo.fzpe 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 emexamples/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
.fzpe liste seus conectores. Compare-os com a lista de conexões antes de construir. - Verifique cada parte interna com
scripts/check_core_part.pyantes 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á emC:\Program Files\Fritzing\fritzing-parts. Os sketches de amostra estão emC:\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-extractem uma nova pasta vazia. A biblioteca de partes estará emsquashfs-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_PARTSpara 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 batterypara listar todas as partes internas com "battery" no título. - Ele imprime
OKouMISSINGpara cada parte, o número de conectores e o id do módulo. Uma parte que dizMISSINGdesenha 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_100milnão tem suas imagens de esquema e PCB, e a parte internaBattery block 9Vnão tem a pegada da PCB (jumper_2_100mil_pcb.svg). A parte interna4 x AAA Battery Mountestá completa. - Se nenhuma parte interna servir, desenhe uma.
scripts/build_fzz_header_led.pytem um exemplo: um arquivo.fzpe quatro SVGs. - Se uma parte de outra fonte não tiver um pino, copie a parte, dê a ela um novo
moduleIde 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.mdpara 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.svge<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 executemsedge.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 comscripts\fritzing_gui_shot.ps1e recorte a placa (as imagens de PCB emexamples/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>"comStart-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 5na 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.
- Inicie
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.pyantes 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
.fzdeve listar cada conexão em ambos os itens. Escreva uma chamadalink()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
inescala por90 × width_in / viewBox_width. Um SVG do Illustrator com unidadespxsimples 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 LEDled.svgtem 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.fzze.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.fzzeexamples/header_led.fzz: os sketches que os dois geradores escreveram, com uma imagem de cada visão.