KiCADの履歴から差分を確認するアプリを作成してPyPIに登録した

概要

KiCADは履歴管理が若干弱いのですが、バックアップとGit連携が可能です。kicad-cliコマンドを利用することでSVGファイル形式に出力可能ですので、過去のバージョンとの差分確認ツールを作ってみました。

KiCADの履歴管理方法(自動バックアップ)

設定の共通の右下にありますが、デフォルトでは保存したときに変更点があると自動的にバックアップフォルダにzipで圧縮してくれます。保存時に世代管理もしてくれるので、肥大化することもありません。

ただ任意のタイミングでバックアップができるわけではないのでちょっと使いにくいです。作成したツールでは任意のタイミングで保存できるようにしたので、デフォルトの設定より世代数の保存数を上げておくのを推奨します。

KiCADの履歴管理方法(git)

KiCADの中にGit連携が組み込まれていて、ここからコミットなどが可能です。ただしgitコマンドを呼び出しているのではなく、libgit2などのライブラリを利用していると思われます。

そのためGitHub連携などを行うときに生のパスワードを設定する必要があり、ちょっと使いにくいです。私の環境だとちゃんと使えなかったのでgitコマンドを直接呼び出すのがおすすめです。

サル先生のGit入門〜バージョン管理を使いこなそう〜【プロジェクト管理ツールBacklog】
ようこそ、サル先生のGit入門へ。Gitをつかってバージョン管理ができるようになるために一緒に勉強していきましょう!

Gitとは何かは上記のサイトがおすすめです。

作成したツール

GitHub - tanakamasayuki/kicad-snapshot
Contribute to tanakamasayuki/kicad-snapshot development by creating an account on GitHub.

上記のリポジトリになります。

Releases ?? tanakamasayuki/kicad-snapshot
Contribute to tanakamasayuki/kicad-snapshot development by creating an account on GitHub.

Windowsの場合にはリリースから最新のバージョンに添付されているkicad_snapshot-0.2.0-win-x64.zipみたいなファイルを利用してください。Pythonで作成されていますが、exe化したものが入っています。

pipx install kicad-snapshot

LinuxやmacOSは上記でpip経由でインストールがおすすめです。もしくはgit cloneをしてからuv run kicad_snapshotでもよいと思います。

機能

まずkicad-cliとgitコマンドを自動検出して、その後にKiCADのプロジェクトを左下の開くから選択します。その後に右上のスナップショットに進むボタンで比較画面に遷移します。

過去のバージョン一覧が表示されました。Gitとバックアップフォルダの両方から一覧を取得しています。右上にバックアップ作成ボタンがあり、ここでコメントをいれて任意のタイミングでバックアップを作成することができます。コメントはファイル名に追加されて、日本語も使えますのである程度確認が取れたところでバックアップを作成してみてください。

比較ボタンを押すと上記の画面に移動します。

徐々にレンダリングをして差分があるかを確認しています。[*]があったものが差分があるものになります。boardレイヤーやPCBでとりあえずよくあるレイヤーを全部合成したものになります。無印のところは差分がないレイヤーで、…がいまレンダリング中、?はまだレンダリングが完了していない場所になります。

全レイヤーのレンダリングが完了しました。変更点があるのがF.SilkSですね。右側の画面で差分がある場所が赤くなっている画像と、変更前と変更後の画像が確認できます。このプロジェクトではTEXTというシルクを2つ追加したものとなります。

拡大するとシルクは黄色なのでわかりにくいです。

差分タブにすると赤くなるのでなんとか確認できます。自動点灯とか変更点をもう少しわかりやすくする処理があったほうがいいかもしれません。

まとめ

GitHub - uchan-nos/kicad-diff-visualizer: A tool to visualize differences of two PCB patterns created by KiCad
A tool to visualize differences of two PCB patterns created by KiCad - uchan-nos/kicad-diff-visualizer

uchanさんのkicad-diff-visualizerを使わせていただき、似たようなものを作ってみたかったので作成してみました。kicad-diff-visualizerはGit管理に限定しているのですが、私はどちらかというとバックアップファイルをメインに作成しています。

本当はGit管理用のコマンドもこのツールから呼び出したかったのですが、そこまでするとUIが重くなるのでまずはここでリリースしたいと思います。

コメント