Communityコーディング&開発github.com

markwkiehl/fritzing

コードを使ってFritzingスケッチ(.fzz, .fzファイル)をビルド、チェック、編集します。ブレッドボード、回路図、PCBビューを1つのネットリストから生成し、カスタムパーツを追加し、実Fritzingウィンドウで開いて検証します。ユーザーがFritzingや回路配線を求めたときに使用します。

fritzing とは?

このスキルは、Fritzingスケッチをコードで構築・検証するためのツール群を提供します。ユーザーが「ブレッドボードに回路を配線して」「回路図を描いて」「PCBをレイアウトして」と依頼した場合や、.fzzファイルを操作したい場合に、AIエージェントが自動的に処理できます。スキルには、ネットリストから3つのビュー(ブレッドボード、回路図、PCB)を持つ.fzzファイルを生成するPythonスクリプト、カスタムパーツ(.fzpファイルとSVG)を追加するサンプル、コアパーツの画像ファイルの欠落をチェックするスクリプト、ヘッドレスモードでスケッチをSVGにエクスポートするチェッカー、Windows上で実際のFritzingウィンドウを操作してスクリーンショットを取得するPowerShellスクリプトが含まれます。また、.fzファイル形式の詳細なリファレンスも提供します。Claude Code、Cursor、CodexなどのAIエージェントは、このスキルを使うことで、Fritzingのパーツライブラリの場所を自動検出し、パーツのピン配置を確認し、スケッチを生成し、SVGエクスポートや実ウィンドウでの表示テストを行い、結果を報告できます。Windows 11上のFritzing 1.0.xで動作確認済み。

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

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

コードからのFritzingスケッチ生成

このスキルが提供するもの

  • ネットリスト(どのピン同士が接続されるかのリスト)を、ブレッドボード、回路図、PCBの3つのビューを持つ1つの.fzzファイルに変換する方法。
  • 2つの動作例ジェネレーター。コピーしてパーツとネットを変更する。
    • scripts/build_fzz_battery_led.pyは、Fritzing標準搭載のパーツ(電池ボックス、押しボタン、抵抗、LED)のみを使用。ここから始める。
    • scripts/build_fzz_header_led.pyは、カスタムパーツ(.fzpファイルと4つのSVGファイル)をスケッチに書き込む方法を示す。
  • パーツチェッカーscripts/check_core_part.py。コアパーツがすべての画像ファイルを持っているかどうかをチェックする。
  • ヘッドレスチェッカーscripts/fritzing_export.py。Fritzingでスケッチをロードし、3つのビューをSVGファイルとして書き出す。
  • ウィンドウチェッカーscripts/fritzing_gui_shot.ps1(Windows)。Fritzingウィンドウのスクリーンショットを取得してステータスバーを読み取る。
  • references/fz-file-format.mdにファイル形式の事実を記載。.fz XMLを書く前に読むこと。

テスト済みの環境

  • テスト済み: Windows 11上のFritzing 1.0.x(C:\Program Files\Fritzingにインストール)。examples/内の両方のスケッチ例は、ビルド、SVGエクスポート、Fritzingウィンドウでの表示(3ビューすべてで「配線完了」)、PCBデザインルールチェックを通過。2026-11-07に確認。
  • 未テスト: macOS、Linux、Fritzing 1.0.x以外のバージョン、自動配線、数個を超えるパーツの回路。

Claudeへのルール

  • パーツのピンを推測しない。.fzpファイルを読み、コネクタをリストし、ネットリストと比較してからビルドすること。
  • コアパーツを使用する前に、必ずscripts/check_core_part.pyでチェックする。画像ファイルが欠落しているパーツは空白で描画される。
  • ユーザーがリンクを提供しない限り、ファイルをダウンロードしない。ファイル名、ソース、サイズを伝え、各ダウンロードは新しい空のフォルダに入れ、そこから何も実行しない。
  • ジェネレーターが実行されたからといってスケッチが「動作する」と言わない。Fritzingでロードし、各ビューですべてのパーツが表示される必要がある。チェックしていないことを明示する。
  • 最後のチェックは人間が行う。ユーザーはFritzingウィンドウでファイルを開き、見えた内容を報告する。ファイルを手で修正せず、ジェネレーターを修正すること。
  • 毎回、ファイル名とパーツ名を完全に記述する。

ワークフロー

Fritzingとそのパーツライブラリを見つける

  • Windows(テスト済み): FritzingはC:\Program Files\Fritzing\Fritzing.exeにあり、パーツライブラリはC:\Program Files\Fritzing\fritzing-parts。サンプルスケッチはC:\Program Files\Fritzing\sketches\coreにある。これらを読み、Fritzingが書き出す正確なXMLをコピーする。
  • Linux(このリポジトリでは未テスト): Fritzing AppImageは、--appimage-extractオプションで新しい空のフォルダに展開できる。その後、パーツライブラリはsquashfs-root/fritzing-partsになる。
  • macOS(未テスト): パーツライブラリはFritzingアプリケーション内にある。fritzing-partsという名前のフォルダを探す。
  • スクリプトはユーザー自身のFritzingインストールからパーツライブラリを読む。環境変数FRITZING_PARTSをそのフォルダに設定する。

パーツをチェックする

  • 必要なパーツをリストし、それぞれを検索する: python scripts\check_core_part.py "C:\Program Files\Fritzing\fritzing-parts" <パーツ名>。--all batteryを追加すると、タイトルに「battery」を含むすべてのコアパーツをリストする。
  • 各パーツについてOKまたはMISSING、コネクタ数、モジュールIDが表示される。MISSINGと表示されたパーツは、画像ファイルが欠落しているビューで空白になる。
  • 2026-11-07のテストインストールの例: コアパーツscrew_terminal_2_100milは回路図とPCBの画像が欠落。コアパーツBattery block 9VはPCBフットプリント(jumper_2_100mil_pcb.svg)が欠落。コアパーツ4 x AAA Battery Mountは完全。
  • 適切なコアパーツがない場合は、新しいパーツを描画する。scripts/build_fzz_header_led.pyに例がある: 1つの.fzpファイルと4つのSVGファイル。
  • 別のソースからのパーツにピンが不足している場合は、パーツをコピーし、新しいmoduleIdを割り当て、コネクタを追加する。ブレッドボードSVG、回路図SVG、PCB SVGsにピンを追加する。

ビルド

  • scripts/build_fzz_battery_led.pyをコピーする。パーツ、穴の名前、座標、ネットを変更する。
  • ネットをメンバーのリストとして記述する。スクリプトは、3つのビューすべてで自身の配線をそのリストと照合し、PCBトレースのクリアランスもチェックする。
  • 最初にブレッドボードのレイアウトを選択し、次に回路図、最後にPCBを選択する。references/fz-file-format.mdを穴の名前、スケール、レイヤー名、変換に使用する。
  • 足が曲げられるパーツの場合、Fritzingのサンプルスケッチからleg XMLをコピーする。推測しない(「問題が発生したこと」を参照)。

チェック

  • python scripts\fritzing_export.py "C:\Program Files\Fritzing\Fritzing.exe" <sketch.fzz> <新しい空のフォルダ>を実行する。出力行をすべて読む。<name>_breadboard.svg、<name>_schematic.svg、<name>_pcb.svgが書き出される。
  • SVGファイルを画像として確認する。Windowsでの一つの方法: SVGファイルを<img>で表示するHTMLページを作成し、msedge.exe --headless --window-size=W,H --screenshot=<out.png> file:///<page.html>を実行する。PNGを読む。エクスポートは銅のみを表示し、シルクスクリーンの輪郭は表示しない。輪郭を含むPCB画像を得るには、scripts\fritzing_gui_shot.ps1でFritzingウィンドウのPCBビューをスクリーンショットし、ボードをトリミングする(examples/のPCB画像はこの方法で作成)。
  • 各パーツについて3つをチェック: 描画されている、ピンが穴の上にある、各ワイヤの端がピンに接触している。
  • SVGエクスポートはラットネスト線(未配線の接続を示す細い線)を描画しない。そのため、Fritzingが接続を登録したことを証明できない。スケッチを実際のFritzingウィンドウで開く。
  • Windowsの実際のFritzingウィンドウ:
    • Start-ProcessでFritzing.exe "<sketch.fzz>"を起動。25秒待つ。
    • scripts\fritzing_gui_shot.ps1 -Out <png>を実行して現在のビューを取得、次に-Keys "^3"で回路図ビュー、-Keys "^4"でPCBビューを取得。各PNGを読む。
    • 各ビューのステータスバーに「配線完了」と表示され、緑色のコネクタドットがあることを確認。
    • デザインルールチェックは、PCBビューで-Keys "^+d" -Wait 5を指定してスクリプトを実行。クリーンなスケッチでは「Your sketch is ready for production: there are no connectors or traces that overlap or are too close together.」と表示される。
    • ダイアログを閉じ、Stop-Process -Name Fritzingを実行。

報告

  • チェックした内容と方法を報告する。チェックしていないことも報告する。作成したファイルをフルパスで示す。
  • ユーザーにファイルの開き方を伝える: Fritzingで「ファイル」→「開く」。

これまでに問題が発生したこと

  • コアパーツの画像ファイルがインストールから欠落している。 パーツは空白で描画される。パーツを使用する前にscripts/check_core_part.pyを実行する。
  • パーツが空白で描画される。 Fritzing 1.0.xでは、ブレッドボードSVGに<g id="breadboard">グループがない場合、何も描画されない。コンテンツ全体をそのグループで囲む。
  • ワイヤの端が正しく見えるが接続されていない。 .fzファイルは、各接続を両方のアイテムにリストする必要がある。ペアごとに1回のlink()呼び出しを書き、両側を出力する。
  • 曲げられる足を持つパーツ(LED、抵抗、ダイオード、電池ボックス)。 .fzファイルでは、コネクタの<geometry x y>は、SVG内の足の線のボディ側の端(スケール倍)である。<leg>の2番目の点は、その点を基準とした先端。5mm LEDの場合、先端オフセットは(0, 30.5172)。電池ボックスの場合、(6.25, 0)。Fritzing自身のサンプルスケッチがこれを示している。
  • スケールの誤り。 1シーンユニットは1/90インチ。in単位のSVGは、90 × 幅_in / viewBox_幅でスケーリングされる。通常のpx単位のIllustrator SVGは72dpiとみなされるため、1.25倍する。
  • 回路図の端子が見つからない。 一部の回路図SVGファイルは端子を<g>要素内に隠しており、端子がまったくないものもある。SVGファイルを読み、ピン線の外側の端を取得する。LED回路図led.svgの端子は、72dpiでカソードが(9.9005, 21.8165)、アノードが(9.9005, 0.2165)にある。
  • 回転したパーツが穴からずれる。 リファレンスファイルの変換式を使用する。パーツは、その角ではなく、1つのピンの位置で配置する。
  • トレースが交差する。 2つのトレースを異なるレイヤーに配置する。スルーホールパッドは両方のレイヤーを接合するため、ビアは不要。
  • Python。 スクリプトは標準ライブラリのみを使用する。インストール済みパッケージは不要。

このスキルのファイル

  • SKILL.md: このファイル。
  • references/fz-file-format.md: .fzzと.fzの形式、XMLの例、スケール、レイヤー名、公式を含む。
  • scripts/build_fzz_battery_led.py: コアパーツのみを使用するジェネレーター(電池ボックス、押しボタン、抵抗、LED)。
  • scripts/build_fzz_header_led.py: カスタムパーツ(2ピンヘッダー)も書き込むジェネレーター。
  • scripts/check_core_part.py: コアパーツがすべての画像ファイルを持っているかチェックする。
  • scripts/fritzing_export.py: ヘッドレスのロード&エクスポートチェッカー。
  • scripts/fritzing_gui_shot.ps1: Fritzingウィンドウをアクティブにし、キーを送信し、スクリーンショットを保存する(Windows)。
  • examples/battery_led.fzzとexamples/header_led.fzz: 2つのジェネレーターが作成したスケッチと、各ビューの画像。

関連スキル