KiAutoを使ってCLIでKiCadデータを出力してみた

KiCadを便利にしようシリーズ(?)第2弾です。KiAutoを使用するとローカルで自動出力ができるようになります。今回はKiAutoを使って図面を自動で出力するようにしてみました。
2022.04.21

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

こんにちはCX事業本部IoT事業部のさかじです。

KiCadを便利にしようシリーズ(?)第2弾です。
回路図のドキュメント類を出力するためにはKiCadから回路図やBOMを手動で出力していました。もちろんERC, DRCなども手動で実行することになります。
手動ということはミスを誘発する可能性がありますので、なるべく自動で行いたいですね。
KiAutoを使用するとローカルで自動出力ができるようになります。今回はKiAutoを使って図面を自動で出力するようにしてみました。

環境

  • Windows10
  • Ubuntu(WSL)
  • KiCad 5.1.x

前提条件

  • PowerShellでWSLのLinuxディストリビューション
    > wsl --list
    Linux 用 Windows サブシステム ディストリビューション:
    Debian (既定)
    Ubuntu
    
    > wsl --list --verbose
      NAME      STATE           VERSION
    * Debian    Running         2
      Ubuntu    Stopped         2

  • Ubuntuバージョン

    $ lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 20.04.4 LTS
    Release:        20.04
    Codename:       focal

  • Pythonバージョン

    $ python3 --version
    Python 3.8.10

  • UbuntuへのKiCadインストール
    KiCadデータをKiCad-Diffを使ってデータを比較してみた - KiCadインストール

環境構築

[Ubuntu] xvfbインストール

$ sudo apt install xvfb

[Ubuntu] xdotoolインストール

$ sudo apt install xdotool

インストール

$ pip3 install kiauto

インストール先が~/.local/bin/でした。pathが通っていない場合もありますので必要に応じて追加してください。

$ export PATH=$PATH:~/.local/bin/

動かしてみた

回路図のPDF作成

以下のコマンドを実行します。

$ eeschema_do export -a kiauto-test.sch ./

カレントディレクトリへPDFが自動で生成されます。

回路図PDF出力

回路図と同じように出力されています。

  • KiCad

回路図

  • Acrobat

出力されたPDF

ERCの実施

わざと配線を削除してERCを実施してみました。
ERC行う回路例

$ eeschema_do run_erc ./kiauto-test.sch ./
WARNING:4 ERC warnings detected (eeschema_do - eeschema_do:622)
WARNING:(2) Pin not connected (use a "no connection" flag to suppress this error)
    @(140.97 mm, 71.12 mm): Pin 1 (Passive) of component D1 is unconnected. (eeschema_do.kiauto.file_util - file_util.py:141)
WARNING:(2) Pin not connected (use a "no connection" flag to suppress this error)
    @(115.57 mm, 63.50 mm): Pin 1 (Power input) of component #PWR0101 is unconnected. (eeschema_do.kiauto.file_util - file_util.py:141)
WARNING:(2) Pin not connected (use a "no connection" flag to suppress this error)
    @(121.92 mm, 71.12 mm): Pin 2 (Passive) of component R1 is unconnected. (eeschema_do.kiauto.file_util - file_util.py:141)
WARNING:(2) Pin not connected (use a "no connection" flag to suppress this error)
    @(149.86 mm, 77.47 mm): Pin 1 (Power input) of component #PWR0102 is unconnected. (eeschema_do.kiauto.file_util - file_util.py:141)
$

エラーがコンソールへ出力され、kiauto-test.ercファイルが作成されました。

ERC結果ファイル

テキストエディタで見ると上記の内容が保存されていました。

ネットリスト出力

$ eeschema_do netlist kiauto-test.sch ./

カレントディレクトリにkiauto-test.netファイルが作成されました。 出力ネットリスト

BOMの出力

$ eeschema_do bom_xml kiauto-test.sch ./

カレントディレクトリにkiauto-test.csvファイルが作成されました。 出力BOM

参考サイト

最後に

回路図関係の出力を試してみました。各操作をまとめて実行すれば作業忘れはありませんね。今回はPCB側の操作は試しませんでしたが、追加のライブラリなど必要ですが基本的には簡単に操作できるように見えました。