KiCad-DiffをWindowsで動かしてみた
こんにちは。CX事業本部IoT事業部のアッキーです。
先日、同僚のさかじさんに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対応ではなくバージョン番号が取得できないためにエラーになる問題の対策です。)
#pcbnew_version = pn.GetBuildVersion() pcbnew_version = pn.GetBuildVersion().replace(")", "")
settings.pyの26~29行目を以下のように修正します。diff、grepのパスの変更と、plotpcbのWindows対応のワークアラウンドです。diff、grepをインストールしたパスを指定してください。
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に変更してください。
@echo off python %~dp0/kidiff
また、plotpcb.batというファイル名で以下のファイルを作成してください。PATHにKiCadのパスを追加していますので、別のディレクトリにインストールしている場合は変更してください。なお、このpythonはKiCadに付属しているpythonを実行しますので、システムのバージョンにかかわらずpythonを指定します。
@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を起動してください。
python $PSScriptRoot\kidiff
なお、PowerShellを使用する場合は実行ポリシーでエラーになることがあります。以下の記事などを参考に設定を変更してください。
最後に
KiCad-DiffをWindowsで動かすことができました。これでチーム開発でのレビューが楽になります!これからもKiCadの便利な使い方があれば記事にしたいと思います。