🍱

KiCad: Kikitで面付けする

に公開

example

Kikitにはいつも助けられてる。
でも、あのGUIっぽくないダイアログやjsonが苦手なので、昔ながらのワンライナーでいく。
ちなみに、この方法ならKiCadのプラグインを入れる必要はないし、Pythonの依存地獄でKikitが落ちたことは一度もない。

インストール

1. KiCadのコマンドプロンプトを開く

Winキーを1回押してスタートメニューを開き、kicadとタイプする。

KiCad x.x Command Promptを選んで実行する。

2. pip でふつうに入れる

pip install kikit

使いかた

Kikitのページでは、面付け用にわざわざKiCadプロジェクトを作ってそこでやれと書いてある。
そんなめんどいこと言わんといてくれ。
というわけで、簡単な方法で行く。

1. バックアップ

面付けしたいKiCadプロジェクトをフォルダごとバックアップしておく。

2. プロジェクトフォルダに入る

面付けしたい基板のKiCadプロジェクトフォルダにcdする。
以降は基板の名前をhogeとして例を挙げる。

cd path\to\hoge

3. 面付け用フォルダを掘る

プロジェクトフォルダの直下に面付け用フォルダを掘ってcdする。

mkdir panel
cd panel

4. お試し実行

コマンドプロンプトに下記のワンライナーをコピペして実行してみる。
hogeには基板の名前を入れること。

kikit panelize --layout 'grid; rows: 2; cols: 2' ..\hoge.kicad_pcb panel.kicad_pcb

書式
kikit panelize --layout '面付けパラメータ' 入力ファイル 出力ファイル

すると、panel\panel.kicad_pcbができるはず。
これをKiCad(pcbnew)で開き、2x2に面付けされた基板が表示されたらひとまずOK。

もし、UserWarning: The parameter -t is used more than once.とか言われてKikitを実行できなかったら以下のように[1]

pip install click==7.1.2

5. ワンライナーを組み立てる

あとは、下記のページにある例のなかから自分が目指す面付けに近いコマンド行をコピペして実行してみる。
https://yaqwsx.github.io/KiKit/v1.3/panelization/examples/#basic-panels-layout

最終的には、パラメータを細かく設定しながら面付けを繰り返して入稿先の製造仕様に合わせていく。

満足がいく面付けができて、無事DRCも通ったら、そのワンライナーをテキストファイルとして保存しておくとよい。別の基板を面付けするときにそれを参考にすれば作業時間を短縮できるはず。

注意

KiCadのコマンドプロンプトを使うこと

Kikitは内部でKiCadを呼ぶので、WindowsデフォのコマンドプロンプトでkikitをつかうとPythonがエラーを吐いて実行できない。

DRCの設定ファイルが生成される

たとえば、出力ファイル名をpanel.kicad_pcbとしたときは、panel.kicad_druも生成される[2]

で、ファイルがすでにある場合でも強制的に上書きされる。
このファイルはDRCの設定ファイルなので、DRCの設定を入稿先に合わせて変更しても、こいつが知らん間にデフォ値で上書きされてしまう。すると、DRCをかけたつもりが意味がなくなってしまう。

なので面付け作業としては、

  1. 面付けを何度も試す
  2. 面付け結果に納得する
  3. 面付け前の..\hoge.kicad_drupanel.kicad_druにコピー
  4. DRCを実施
  5. もしDRC後にまた面付けしなおしたいときは1へ戻る

とする。

Tabを使うとDRCエラーが出る


Tabとは、マウスバイトの位置を「ここに入れてくれ」と指示するフットプリントのことで、Kikit実行時に--tabs annotationというパラメータをつけて面付けすると、その位置にマウスバイトが入るわけだ。

で、面付け前の基板にこれを入れてDRCをかけると、Kikitのバージョンが古いと場合は下のような指摘が出る。

ようするに回路図にない部品を置いてるから注意されてるわけなので、元のフットプリントのプロパティを下図のようにしておけばこの問題は解消する。

ま、こんなことしなくてもv1.7.2ではすでに入ってるので最新のバージョンを入れ直したほうが早いかも。

ちなみに

  • 我々がよく使うJLCPCBの「エコノミーPCBA」ではV-CUT(--cuts: vcuts)が使えない[3]
    なので、エコノミーPCBAを頼むならマウスバイト(--cuts: 'mousebites; ...')を指定すること

  • JLCPCBにPCBAを注文するとき、面付け前(単体の1枚分) or 面付け後(全枚数分)のどちらのbom/positionデータにするかを選べる。
    しかし実際は、面付け前のbom/positionデータをアップロードしてもプレビューでは1枚分しか実装されてないので、面付け後(全枚数分)のbom/positionデータをアップロードしている

  • もうひとつJLCPCBにPCBAを注文するときの注意点として、面付け後(全枚数分)のbomとpositionファイルをアップロード時に「bomとpositionとの不整合がある」とか指摘されることがある。この場合、DNPな部品とKikitが勝手に追加する「KIKIT_MB_XXXX」というデジグネータをbomから削除するとうまくいくと思う。

env

  • Windows 11
  • KiCad 9.0.6
  • kikit, version 1.7.2
脚注
  1. https://x.com/_gnrr/status/1966276423146156443 ↩︎

  2. あと、.kicad_pro.kicad_prlも生成される。 ↩︎

  3. エコノミーじゃないやつならV-CUTが使えるが、5千円以上かかる。 ↩︎

Discussion