RSS Twitter Facebook


« 2025年07月 | 2025年08月のアーカイブ |

2025/08/02

KiCad IPC API を試してみる


基板CAD、KiCad の Python スクリプティング環境は今後 [KiCad IPC API]に移行して行くとアナウンスされています。KiCad 9.0 からサポートされ始めていますが、今のところはまだ動き出したばかりで機能的にも不足している部分があり、プラグイン開発者向けのベータ版という扱いです。

KiCad IPC API の概要はここ

https://dev-docs.kicad.org/en/apis-and-binding/ipc-api/index.html

目的は今までの Python プラグインと同じようなものですが、内部の構造が今までと大きく変わります。

今までの Python プラグインとの違いは

  • API の仕様が今までよりも安定する(はず)
  • Python 以外の言語でもプラグインが作れる
  • 複数の KiCad を起動している場合の接続がややこしくなりそう

また、今までのスクリプト環境とは違い、想定しているのは基板データの編集処理でガーバーなどの基板データの出力機能そのものは別のプログラムである kicad-cli (コマンドライン形式) を使用する事が推奨されています(これについては、いつかはサポートするかもという含みがあります)。

プラグインと KiCad との接続は IPC ですので、プラグイン環境としては Python に限らずどんな言語で書いても良いのですが、今のところは Python 用のインターフェース (kicad-python) だけが準備されています。

という事で Win11 上の VirtualBox で Ubuntu 24 を入れた新しい状態から KiCad 9.0 の KiCad IPC API をテストします。 環境は以下の通り

Windows 11 24H2

VirtualBox .1.10 r169112 (Qt6.5.3)

Ubuntu 24.04.2 LTS

KiCad 9.0.3

kicad-python

  • https://pypi.org/project/kicad-python/
  • KiCad IPC API を使うための Python 用のライブラリは "kicad-python" として公開されています。2025/08/02 時点のバージョンは 0.4.0。
  • KiCad IPC API は pip でインストールできますが、"externally-managed-environment" エラーがでます。
  • これは、インストールにより他の Python モジュールの動作に不具合が出る可能性がある事を示していますが、今回は VirtualBox 上の実験環境なので"--break-system-packages"オプションで取り合えず無視する事にします。
  • "pip install kicad-python --break-system-packages"

Git Lab

  • Git Lab には kicad-python のリポジトリがあります。
  • https://gitlab.com/kicad/code/kicad-python

  • 今はまだちゃんと起動できているかの確認程度ですが、このリポジトリの examples フォルダにサンプルのスクリプトがあります。

  • examples 内の version.py を動かした結果が下の図です。最初のpython3 version.pyは KiCad を起動していない場合、2番目の python3 version.pyは KiCad を起動後に動かした場合です。

KiCad IPC API の詳細ドキュメントはここ

まだまだ機能もドキュメントも足りないですが、現在の予定では来年2月の KiCad 10 で KiCad IPC API が公式推奨となって現在の Python API は廃止される事になっています。今から何か作るなら KiCad IPC API が必須になりそうです。

posted by g200kg : 6:32 PM : PermaLink

« 2025年07月 | 2025年08月のアーカイブ |


-->

g200kg