KiCad-DiffをWindowsで動かしてみた

2022.04.18

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。CX事業本部IoT事業部のアッキーです。

先日、同僚のさかじさんにKicad-Diffというツールを紹介していただきました。

KiCadデータをKiCad-Diffを使ってデータを比較してみた

すごく便利なツールです!しかし標準ではWindowsで動きません……このツールはPython製なので、Windowsでそのまま動くように対応できるはずです。 少し試行錯誤が必要でしたが、バッチファイルとソースコードの微修正でWindows上で動作させることができましたので、その内容をご紹介します。

環境

  • Windows 10 Pro (64bit)
  • Python 3.10.4

KiCad-Diffとツールのダウンロード

KiCad-Diffをダウンロードします。パッケージはありませんので、Code→Download ZIPしてください。

https://github.com/Gasman2014/KiCad-Diff

任意の場所に解凍したら、以下のコマンドで依存ライブラリをインストールします。

pip3 install -r requirements.txt

KiCad-Diffでは、diffとgrepコマンドが必要です。GnuWinのビルド済みバイナリを使うのが簡単です。Complete package, except sourcesをダウンロードしてインストールしてください。

また、gitまたはsvnも必要ですので、使用するほうをインストールしてください。

ソースコードの修正

plotPCB.pyの23行目を以下のように修正します。(これはWindows対応ではなくバージョン番号が取得できないためにエラーになる問題の対策です。)

plotPCB.py

#pcbnew_version = pn.GetBuildVersion()
pcbnew_version = pn.GetBuildVersion().replace(")", "")

settings.pyの26~29行目を以下のように修正します。diff、grepのパスの変更と、plotpcbのWindows対応のワークアラウンドです。diff、grepをインストールしたパスを指定してください。

settings.py

diffProg = "C:\\Program Files (x86)\\GnuWin32\\bin\\diff.exe"
grepProg = "C:\\Program Files (x86)\\GnuWin32\\bin\\grep.exe"

plot_prog = "plotpcb.bat"

ファイルの追加

ワークアラウンドのためのバッチファイルを追加します。

KiDiffと同じディレクトリに、kidiff.batというファイル名で以下のファイルを作成してください。Windowsにインストールされているpythonがpython3コマンドで実行する場合は、python3に変更してください。

kidiff.bat

@echo off
python %~dp0/kidiff

また、plotpcb.batというファイル名で以下のファイルを作成してください。PATHにKiCadのパスを追加していますので、別のディレクトリにインストールしている場合は変更してください。なお、このpythonはKiCadに付属しているpythonを実行しますので、システムのバージョンにかかわらずpythonを指定します。

plotpcb.bat

@echo off
SET PATH=C:\Program Files\KiCad\bin;%PATH%
python %~dp0\plotpcb.py %1

環境変数の追加

設定アプリ→システム→詳細情報→システムの詳細設定→環境変数から、ユーザー環境変数のPathにKiCad-Diffのディレクトリを追加します。以下は例です。

C:\Users\akky\Documents\KiCad-Diff

使い方

KiCadのproファイル(プロジェクト)があるディレクトリに移動して、コマンドプロンプトからkidiff.batを実行します。

比較したいコミットを選択してOkをクリックすると、Webブラウザが開いて差分が表示されます。

終了する際にはコマンドプロンプトを閉じるか、Ctrl-C→Yで終了します。

おまけ:「バッチ ジョブを終了しますか (Y/N)?」を出さない方法

バッチファイルで起動している都合上、Ctrl-Cを押すと「バッチ ジョブを終了しますか (Y/N)?」と出てきてしまいます。これが面倒な場合は、PowerShellを使うとスマートになります。

kidiff.batの代わりにkidiff.ps1として以下のファイルを作成して、実行する際にはPowershellからkidiff.ps1を起動してください。

kidiff.ps1

python $PSScriptRoot\kidiff

なお、PowerShellを使用する場合は実行ポリシーでエラーになることがあります。以下の記事などを参考に設定を変更してください。

PowerShellの実行ポリシー変更

最後に

KiCad-DiffをWindowsで動かすことができました。これでチーム開発でのレビューが楽になります!これからもKiCadの便利な使い方があれば記事にしたいと思います。