KiCadの拡張子何もわからん…。

この記事は慶應ロ技研アドベントカレンダー2日目です。

←1日目3日目→

はいどーも!元気1倍、tokkyo13です。去年はロボットと全然関係ない記事だったけど、今年はちゃんとロ技研らしく、KiCadというフリーのプリント基板CADにフィーチャーしちゃいます!それではいってみよ~!!

はじめに

KiCadを使っていてライブラリを自分で作ったりすると、ファイル構成も謎だし、よくわからん拡張子のファイルがでてくるしで、僕は今まで毎回勘だけを頼りに適当にやっていました。なのでこの機会にKiCadのファイルフォーマットについて一度まとめてみようかと思います。KiCadを一度も触ったことのない方にとっては無価値な記事かもしれませんが、一度触ったことがある方などは全体が見渡せて良いかもしれません。

用語

解説の前に軽く用語説明します。

PCBはprinted circuit boardの略です。つまり、プリント基板ってことですね!

コンポーネントというのは要するに回路記号です。回路図を書くときに使います。

コンポーネント
いろいろなコンポーネント

フットプリントというのは、プリント基板に並べるパーツ1つの「はんだ付けするパッド」と「パーツの射影」がセットになっているものです。

フットプリント
バイポーラトランジスタのフットプリント

拡張子の雑な解説

  • *.pro : プロジェクトファイル。
  • *.sch : 回路図ファイル。
  • *.lib : コンポーネントライブラリファイル。一つのファイルに複数のコンポーネントの情報が記述されている。
  • *.dcm : コンポーネントライブラリの説明ドキュメント。
  • *.kicad_pcb : PCBレイアウトファイル。
  • *.pretty : フットプリントライブラリフォルダ。フォルダ自体がライブラリとして扱われる。
  • *.kicad_mod : フットプリントファイル。*.pretty以下に格納される。各ファイルは1つのフットプリントの情報を含む。
  • *.net : Eeschemaが作成するネットリストファイル。
  • *.cmp : Pcbnewで作られる、コンポーネントとフットプリントの対応を記録したファイル。

まあ、ここまでは適当にググっても分かるわけですが、どのソフトがどのファイルを読み込んでどのファイルを吐き出すのかが視覚的に分かる図があったらもっと幸せになれる気がするんですよ。

KiCadのファイルの流れ

というわけで作ってみました。厳密性には欠けますが、イメージしやすいように考えたつもりです。

それじゃあ図の解説をば。緑の枠の中はEeschema(回路図エディタ)で作業する範囲、オレンジの枠の中はPcbnew(PCBレイアウトエディタ)で作業する範囲です。

回路図を作るためには回路記号が、PCBレイアウトを作るためにはフットプリントが必要なので、まずは*.libファイルと*.kicad_modファイルを必要に応じて用意する必要があります。*.libファイルはEeschemaのコンポーネントエディタで、*.kicad_modファイルはPcbnewのフットプリントエディタで編集できます。

ライブラリの用意ができたら今度はそれをEeschemaとPcbnewで読み込みます。ただし、Pcbnewで読み込むのは*.prettyフォルダを新しく作ったときだけです。*.prettyフォルダ下に*.kicad_modファイルを追加した場合は自動的に読み込まれるはずです。追加するのは新しいライブラリであり、あくまでライブラリは*.lib*.prettyです。

そうしたら今度は回路図を書きます。Eeschemaで回路図を書くと*.schファイルにデータが保存されます。

回路図を書き終えたら今度は各コンポーネントにフットプリントを割り当てます。コンポーネントに対応させたいフットプリントを*.prettyライブラリ群の中から選んでいきます。対応付けのデータは*.schファイルに保存されます。

次は、完成した*.schファイルをもとにネットリスト*.netを生成します。ネットリストには、使うフットプリントの情報と各フットプリントのパッドがどこと接続されるかの情報が記録されています。

この*.netファイルをもとにPcbnewがフットプリントのデータとネット情報を読み込み、PCBレイアウトの編集を始められます。PCBレイアウトのデータは*.kicad_modに保存されます。

PCBレイアウトを編集している最中にフットプリントを変更した時は、そのことをEeschemaの方で扱うデータに反映させるために*.cmpというデータをPcbnewで作ることができます。このデータをPcbnewからEeschemaに渡すことで対応付けの変更が*.schに反映されます。

*.kicad_pcbが完成したら、後はこれをもとに製造用ファイルを出力するだけです。

以上が図の解説でした。

もちろんEeschemaとPcbnewだけが仕事してるわけではないのですが、連携する補助的なソフトウェアも2つの中に含めてしまいました。そのほうが図がきれいになるので。この図を頭に入れておけば、ライブラリの追加をする時にKiCadが尋ねてくる質問の意味も分かるようになると思います。たぶん。

おまけ

Pcbnewが扱うファイルのフォーマットは過去に大きく変更されているようで、いわゆるレガシーファイルというものが存在します。Githubとかで公開されているフットプリントファイルの中にたまに見かけます。それについてもちょっとまとめます。

  • *.brd : *.kicad_pcbの古いフォーマットです。いまは読み込めるけど、編集できない。
  • *.mod : *.prettyの古いフォーマットです。*.prettyと違ってファイルです。1つの*.modファイルに複数のフットプリントの情報が含まれています。*.libと同じ構造だったのですね。これも読み取り専用です。

おわりに

というわけで、個人的に今までよくわかっていなかったKiCadのファイルフォーマットについてまとめてみました。僕もKiCadは初心者なので間違っていることもあるかもしれませんが、誰かの参考になれば幸いです。それじゃあ、またね〜(ぴょいっ!)

One thought on “KiCadの拡張子何もわからん…。

コメントを残す