KiCadで回路図を作る場合の話。
JLCPCBの部品実装サービスを利用するためのBOM吐出しツールを使うと、部品の定数ごとにまとめてくれる。

JLCPCBに部品実装を依頼するためのBOMとしてはこれでいいのだけど、人が見る部品リストとしてはちょっと足りない。各部品の数量が欲しい。自分で実装する部品はやはり数を知りたいし。
ということで、これに、部品の数量を入れる方法の話。
なお、JLCPCBのBOM吐出しツールに関してはこちらの記事。
考え方
上の記事がネタ元。特定の文字の数を数えるというもの。やっていることは、数えたいもの以外の文字を削除して残ったもの(=数えたい文字だけ)を文字列として長さを求めるというもの。「数えたいもの以外の文字を削除」には正規表現を使う。とってもスマートなやり方だと思う。
ここで先程のBOMを見ると、部品のリファレンス番号(C1とか)はカンマ区切りになっている。なので、カンマの数を数えれば良い。ただし、カンマはリファレンス番号の間にだけあるので、最後の一つ分を加える。
実際のやり方
LibreOffice CalcとGoogleスプレッドシートの場合をそれぞれ記しておく。
LibreOffice Calc
式は上のネタ元とほぼ同じ。数える対象がカンマなので、カンマ以外の文字はすべて削除する。そして、最後に一つ分の補正を加える。
数える対象はB列なので、入力する式はこう。
=LEN(REGEX(B2, "[^,]", "", "g"))+1


一つ入れたら、そのセルの右下のポッチ(?)を下にずいーーーーーーっとドラッグすればOK。

これだけで各行に部品の数量が入る。
Googleスプレッドシート
やり方そのものは、LibreOffice Calの場合と同じ。違うのは、使う関数(同じ関数はないが、同じように使える関数がある)。

入力する式はこう(数える対象はB列)。
=LEN(REGEXREPLACE(B2, "[^,]", ""))+1


こちらも、一つ入れたら、あとはそれを下にドラッグすればOK。

とっても簡単。
でも、本当はJLCPCBのBOM吐出しツールで数量も一緒に出してくれるといいんだけどな。部品実装用にアップロードする際に余計な列があっても無視してくれるようなので、数量の列があることは問題ないはず。自分で改造できればいいのだけど、良くわからない。
コメント