Fritzing-Skizzen aus Code
Was diese Fähigkeit bietet
- Eine Methode, um aus einer Netzliste (einer Liste, welche Pins miteinander verbunden sind) eine
.fzz-Datei mit drei Ansichten zu erstellen: Breadboard, Schaltplan und PCB. - Zwei funktionsfähige Generatoren. Kopiere einen und ändere die Bauteile und Netze.
scripts/build_fzz_battery_led.pyverwendet nur Teile, die mit Fritzing ausgeliefert werden: einen Batteriehalter, einen Taster, einen Widerstand und eine LED. Starte hier.scripts/build_fzz_header_led.pyzeigt, wie ein benutzerdefiniertes Bauteil (eine.fzp-Datei und vier SVG-Dateien) in die Skizze geschrieben wird.
- Ein Teileprüfer,
scripts/check_core_part.py. Er zeigt an, ob ein Kernbauteil alle seine Bilddateien besitzt. - Ein kopfloser Prüfer,
scripts/fritzing_export.py. Er lädt eine Skizze in Fritzing und schreibt die drei Ansichten als SVG-Dateien. - Ein Fensterprüfer,
scripts/fritzing_gui_shot.ps1(Windows). Er macht einen Screenshot des Fritzing-Fensters, sodass die Statusleiste lesbar ist. - Die Dateiformat-Fakten in
references/fz-file-format.md. Lese sie, bevor du irgendein.fz-XML schreibst.
Was getestet wurde
- Getestet: Windows 11 mit Fritzing 1.0.x, installiert in
C:\Program Files\Fritzing. Beide Beispielskizzen inexamples/werden gebaut, nach SVG exportiert, im Fritzing-Fenster geöffnet (mit „Routing completed“ in allen drei Ansichten) und bestehen den PCB-Design-Rule-Check. Dies wurde am 07.11.2026 überprüft. - Nicht getestet: macOS, Linux, andere Fritzing-Versionen als 1.0.x, automatisches Verlegen und Schaltungen mit mehr als einigen wenigen Bauteilen.
Regeln für Claude
- Rate niemals die Pins eines Bauteils. Lese seine
.fzp-Datei und notiere seine Anschlüsse. Vergleiche sie mit der Netzliste, bevor du baust. - Überprüfe jedes Kernbauteil mit
scripts/check_core_part.py, bevor du es verwendest. Ein Bauteil, dessen Bilddateien fehlen, zeichnet leer. - Lade keine Datei ohne die Zustimmung des Benutzers herunter, es sei denn, er hat dir den Link gegeben. Nenne den Dateinamen, die Quelle und die Größe. Lege jeden Download in einen eigenen neuen, leeren Ordner. Führe nichts daraus aus.
- Sage nicht, dass eine Skizze „funktioniert“, nur weil der Generator lief. Fritzing muss sie laden, und jede Ansicht muss jedes Bauteil zeigen. Sage, was du nicht überprüft hast.
- Die letzte Prüfung ist eine menschliche: Die Person öffnet die Datei im Fritzing-Fenster und sagt, was sie sieht. Korrigiere den Generator, nicht die Datei von Hand.
- Schreibe jedes Mal den vollständigen Namen jeder Datei und jedes Bauteils.
Arbeitsablauf
Finde Fritzing und seine Teilebibliothek
- Windows (getestet): Fritzing befindet sich unter
C:\Program Files\Fritzing\Fritzing.exe. Die Teilebibliothek istC:\Program Files\Fritzing\fritzing-parts. Die Beispielskizzen liegen inC:\Program Files\Fritzing\sketches\core. Lese sie, um das genaue XML zu kopieren, das Fritzing schreibt. - Linux (nicht für dieses Repository getestet): Ein Fritzing-AppImage kann mit der Option
--appimage-extractin einen neuen, leeren Ordner entpackt werden. Die Teilebibliothek ist dannsquashfs-root/fritzing-parts. - macOS (nicht getestet): Die Teilebibliothek befindet sich innerhalb der Fritzing-Anwendung. Suche nach einem Ordner namens
fritzing-parts. - Die Skripte lesen die Teilebibliothek aus der eigenen Fritzing-Installation des Benutzers. Setze die Umgebungsvariable
FRITZING_PARTSauf diesen Ordner.
Überprüfe die Bauteile
- Liste die benötigten Bauteile auf und suche jedes einzelne:
python scripts\check_core_part.py "C:\Program Files\Fritzing\fritzing-parts" <Bauteilenname>. Füge--all batteryhinzu, um alle Kernbauteile aufzulisten, die „battery“ im Titel haben. - Es gibt
OKoderMISSINGfür jedes Bauteil aus, die Anzahl der Anschlüsse und die Modul-ID. Ein Bauteil, dasMISSINGanzeigt, zeichnet in der Ansicht, deren Bilddatei fehlt, leer. - Beispiel aus der Testinstallation vom 07.11.2026: Das Kernbauteil
screw_terminal_2_100milhat keine Schaltplan- und PCB-Bilder, und das KernbauteilBattery block 9Vhat keinen PCB-Footprint (jumper_2_100mil_pcb.svg). Das Kernbauteil4 x AAA Battery Mountist vollständig. - Wenn kein Kernbauteil passt, zeichne eines.
scripts/build_fzz_header_led.pyenthält ein Beispiel: eine.fzp-Datei und vier SVG-Dateien. - Wenn einem Bauteil aus einer anderen Quelle ein Pin fehlt, kopiere das Bauteil, gib ihm eine neue
moduleIdund füge den Anschluss hinzu. Füge den Pin zum Breadboard-SVG, zum Schaltplan-SVG und zum PCB-SVG hinzu.
Erstellen
- Kopiere
scripts/build_fzz_battery_led.py. Ändere die Bauteile, die Lochbezeichnungen, die Koordinaten und die Netze. - Schreibe die Netze als eine Liste von Mitgliedern. Das Skript prüft seine eigene Verdrahtung anhand dieser Liste in allen drei Ansichten und überprüft den PCB-Leiterbahnabstand.
- Wähle zuerst das Breadboard-Layout, dann den Schaltplan, dann das PCB. Verwende
references/fz-file-format.mdfür Lochbezeichnungen, Maßstäbe, Ebenennamen und Transformationen. - Für ein Bauteil mit bieg- oder knickbaren Beinen kopiere das Bein-XML aus einer Fritzing-Beispielskizze. Rate es nicht (siehe „Was bisher schiefging“).
Überprüfen
- Führe
python scripts\fritzing_export.py "C:\Program Files\Fritzing\Fritzing.exe" <skizze.fzz> <neuer leerer Ordner>aus. Lese jede ausgegebene Zeile. Es schreibt<name>_breadboard.svg,<name>_schematic.svgund<name>_pcb.svg. - Betrachte die SVG-Dateien als Bilder. Ein Weg unter Windows: Schreibe eine HTML-Seite, die ein
<img>der SVG-Datei enthält, führe dannmsedge.exe --headless --window-size=W,H --screenshot=<ausgabe.png> file:///<seite.html>aus. Lese das PNG. Der Export zeigt nur Kupfer, nicht die Siebdruckumrisse. Für ein PCB-Bild mit den Umrissen mache einen Screenshot der PCB-Ansicht im Fritzing-Fenster mitscripts\fritzing_gui_shot.ps1und schneide die Platine aus (die PCB-Bilder inexamples/wurden so erstellt). - Überprüfe für jedes Bauteil drei Dinge: Es wird gezeichnet, seine Pins sitzen auf den Löchern und jedes Drahtende berührt einen Pin.
- Der SVG-Export zeichnet keine Ratsnest-Linien (die dünnen Linien, die unverlegte Verbindungen anzeigen). Er kann also nicht beweisen, dass Fritzing die Verbindungen registriert hat. Öffne die Skizze im Fritzing-Fenster.
- Windows, im echten Fritzing-Fenster:
- Starte
Fritzing.exe "<skizze.fzz>"mitStart-Process. Warte 25 Sekunden. - Führe
scripts\fritzing_gui_shot.ps1 -Out <png>für die aktuelle Ansicht aus, dann mit-Keys "^3"für die Schaltplanansicht und-Keys "^4"für die PCB-Ansicht. Lese jedes PNG. - Suche in der Statusleiste jeder Ansicht nach „Routing completed“ und nach grünen Anschlusspunkten.
- Für den Design-Rule-Check führe das Skript mit
-Keys "^+d" -Wait 5in der PCB-Ansicht aus. Eine saubere Skizze zeigt: „Your sketch is ready for production: there are no connectors or traces that overlap or are too close together.“ - Schließe den Dialog und führe
Stop-Process -Name Fritzingaus.
- Starte
Bericht
- Sage, was du überprüft hast und wie. Sage, was du nicht überprüft hast. Nenne die Dateien, die du geschrieben hast, mit vollständigen Pfaden.
- Sage dem Benutzer, wie er die Datei öffnen kann: in Fritzing,
Datei→Öffnen.
Was bisher schiefging
- Die Bilddateien eines Kernbauteils fehlen in der Installation. Das Bauteil zeichnet leer. Führe
scripts/check_core_part.pyaus, bevor du ein Bauteil verwendest. - Ein Bauteil zeichnet leer. Fritzing 1.0.x zeichnet nichts, wenn ein Breadboard-SVG keine
<g id="breadboard">-Gruppe hat. Wickle den gesamten Inhalt in diese Gruppe ein. - Ein Drahtende sieht richtig aus, ist aber nicht verbunden. Die
.fz-Datei muss jede Verbindung in beiden Elementen auflisten. Schreibe einenlink()-Aufruf pro Paar und gib beide Seiten aus. - Ein Bauteil mit bieg- oder knickbaren Beinen (LED, Widerstand, Diode, Batteriehalter). In der
.fz-Datei ist die Anschlussposition<geometry x y>das körpernahe Ende der Beinlinie im SVG, multipliziert mit dem Maßstab. Der zweite Punkt von<leg>ist die Spitze, relativ zu diesem Punkt. Für die 5 mm-LED beträgt der Spitzenversatz(0, 30.5172). Für den Batteriehalter beträgt er(6.25, 0). Fritzing-eigene Beispielskizzen zeigen dies. - Falscher Maßstab. Eine Szeneneinheit ist 1/90 Zoll. Ein SVG mit
in-Einheiten skaliert mit90 × Breite_in / viewBox_Breite. Ein Illustrator-SVG mit einfachenpx-Einheiten zählt als 72 dpi, daher mit 1,25 multiplizieren. - Ein Schaltplan-Anschluss wird nicht gefunden. Einige Schaltplan-SVG-Dateien verstecken den Anschluss in einem
<g>-Element, und einige haben überhaupt keinen Anschluss. Lese die SVG-Datei und nimm das äußere Ende der Pin-Linie. Das Schaltplan-SVGled.svghat seine Anschlüsse bei (9,9005, 21,8165) für die Kathode und (9,9005, 0,2165) für die Anode, bei 72 dpi. - Ein gedrehtes Bauteil landet nicht auf seinen Löchern. Verwende die Transformationsformeln in der Referenzdatei. Platziere ein Bauteil anhand der Position eines Pins, nicht anhand seiner Ecke.
- Leiterbahnen kreuzen sich. Lege die beiden Leiterbahnen auf verschiedene Ebenen. Durchkontaktierte Pads verbinden beide Ebenen, daher wird keine Via benötigt.
- Python. Die Skripte verwenden nur die Standardbibliothek. Sie benötigen kein installiertes Paket.
Dateien in dieser Fähigkeit
SKILL.md: diese Datei.references/fz-file-format.md: das.fzz- und.fz-Format mit XML-Beispielen, Maßstäben, Ebenennamen und Formeln.scripts/build_fzz_battery_led.py: Generator nur mit Kernbauteilen (Batteriehalter, Taster, Widerstand, LED).scripts/build_fzz_header_led.py: Generator, der auch ein benutzerdefiniertes Bauteil (einen 2-poligen Stecker) schreibt.scripts/check_core_part.py: prüft, ob ein Kernbauteil alle seine Bilddateien hat.scripts/fritzing_export.py: der kopflose Lade-und-Export-Prüfer.scripts/fritzing_gui_shot.ps1: aktiviert das Fritzing-Fenster, kann Tasten senden und speichert einen Screenshot (Windows).examples/battery_led.fzzundexamples/header_led.fzz: die Skizzen, die die beiden Generatoren geschrieben haben, mit einem Bild jeder Ansicht.