KiCAD スクリプトを試す

リファレンスは以下にあります。

KiCAD に Python スクリプト機能が導入されつつあります。以下に公式のドキュメントがあります。このドキュメントに従って試してみます。

現在の Python スクリプト実装は SWIG によるラッパーのため、Pythonic ではありません。

スクリプト機能を有効にしてビルドすると以下の機能が使用できるようになります。

ビルド

現在 (2014/5) 頃の trunk ではデフォルトで有効になっていないため、CMake を実行する際に自分でオプションを指定してビルドしなければ使用出来ません。ビルド時に指定できるオプションについては Documentation/compiling/build-config.txt にあります。

Python スクリプトサポートを有効にするには以下のようにオプションを指定します。

-DKICAD_SCRIPTING=ON

KiCAD の外で Python からインポートできるモジュールをビルドします。

-DKICAD_SCRIPTING_MODULES=ON

wxPythonへのインターフェースのビルドを行い、さらにスクリプトコンソールを使用したい場合。

-DKICAD_SCRIPTING_WXPYTHON=ON

とりあえず全てを有効にするには以下のようにします。

cmake -DKICAD_SCRIPTING=ON -DKICAD_SCRIPTING_MODULES=ON -DKICAD_SCRIPTING_WXPYTHON=ON ../

システムに Python 3.X がインストールされていると Python のライブラリの検出に失敗するらしい。その場合は上記の参照元ページをどうぞ。

デバッグビルドするには更に -DCMAKE_BUILD_TYPE=Debug を追加する。

KiCADで必要なwxライブラリのバージョンが3.0以降になってXubuntu 14.04ではマクロが使えなかったのですが、以下を参照してバックポートされたパッケージを使用することにしました(外部PPAを使用するのは自己責任で)。

基本 API

すべての pcbnew APIPython モジュールの pcbnew により提供されています。GetBoard() メソッドがエディタで開かれている現在の PCB を返します。これは pcbnew のスクリプトシェルやアクションプラグインで便利です。

# pcbnew モジュールからすべてをインポート
from pcbnew import *

インタラクティブコンソールでは pcbnew 変数からアクセスできます。

ボードの読み込みと保存
  • LoadBoard(filename)
    • ファイルからボードを読み込んで BOARD オブジェクトを返します。ファイル名の拡張子に合ったフォーマットが使用されます。
  • SaveBoard(filename, board)
    • BOARD オブジェクトをファイルに保存します。ファイル名の拡張子に合ったフォーマットが使用されます。
  • board.Save(filename)
    • 上に同じですが、BOARD オブジェクトのメソッドです。

インタラクティブコンソールではボードへのアクセスは pcbnew.GetBoard() で行えます。