InkscapeでSVG画像からBGR(ガーバー)ファイルに変換して卓上CNCで基板を削る①
※ 当ページには【広告/PR】を含む場合があります。
2022/03/29
2022/10/02

寸法やレイアウトが分かっている手書きで書いたほうが早そうな簡単な電気回路なら、いちいちKiCADで回路設計してGBRのようなガーバーデータに変換するのは少し手間になります。
今回はInkscapeを使って描いたSVG画像を直接GBR形式に変換できるツールを利用して、実際の卓上CNCで削ります。
① svg画像 --> gbrファイルに変換
② gbrファイルからCNCで切削加工
のような内容に沿って手順を説明していきます。
InkscapeのGBRフォーマット変換が使えない
数年前のInkscapeであれば、
便利なプラグインでしたが、プロジェクトの更新が2年前から停止しており、現行の安定版Inkscapeではpythonの実行環境が違うためかエラーでコケます。

このプラグインがそのまま動けば文句無しに簡単な話でしたが、どうやら現在はすんなりとは使えない状況になっていましたので、少しセットアップが面倒ですが別の手段を考えます。
コマンドからSVGをGBRに変換するツール・『Gerbolyze』を利用する
Inkscapeのバージョンを落としてわざわざ昔のエクステンションを使えるようにしてまで、直接ガーバーデータを出力することは一旦諦め、現状のInkscapeで安定動作するような別の手段を模索します。
色々と試す中で、セットアップが微妙に面倒でしたが、この手のツールでは比較メンテナンスが継続されていそうという理由で
このコマンドで利用するタイプのソフトウェアですが、使用方法にはクセがありますので、大まかな手順は後ほど説明していきます。
Gerbolyzeのインストール
Gerbolyzeの動作環境を構築するには、Pythonのバージョン3以降と安定版以降のRustが同時に動く必要があり、少し手間かも知れません。
各OSへのGerbolyzeの導入手順は
現在の手元の環境はDebianでしたので、例えば、
$ sudo apt install libopencv-dev libpugixml-dev \
libpangocairo-1.0-0 libpango1.0-dev libcairo2-dev \
clang make python3 git python3-wheel curl python3-pip python3-venv
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
$ source $HOME/.cargo/env
$ rustup install stable && rustup default stable && cargo install usvg
$ pip3 install --user git+https://git.jaseg.de/pcb-tools-extension.git
$ pip3 install --user gerbolyze --no-binary gerbolyze
というように、Rustのパッケージ導入に少し面倒な手順が必要になります。
Linuxに導入するのなら、UbuntuやFedoraの方が相性が良く、Ubuntuなら例えば、
$ sudo apt install libopencv-dev libpugixml-dev \
libpangocairo-1.0-0 libpango1.0-dev libcairo2-dev \
clang make python3 git python3-wheel curl python3-pip python3-venv cargo
$ cargo install usvg
$ pip3 install --user git+https://git.jaseg.de/pcb-tools-extension.git
$ pip3 install --user gerbolyze --no-binary gerbolyze
とインストールに関してはよりスムーズに進められます。
よってUbuntuがより簡単にGerbolyzeを使えるOSと言えるのではないでしょうか。
この辺は今の時代DockerコンテナでGerbolyze実行環境を作ってしまえばどのOSでも動いてしまうと思うので、適宜使い分けてみてください。
ベースとなるgbrファイルを作成する
元のgbrファイルにこれらの写し込みたい画像データを指定することで、柔軟な画像をガーバーデータに(転写に近いイメージで)追加することができます。
まずは手っ取り早くKiCADからEurocard基板のテンプレートを開いて、サラのgbrファイルを用意します。


なおEurocard基板はその名の通りヨーロッパではメジャーな基板で、寸法は
結構安く手に入るカット基板(
KiCADからこのEurocard基板のテンプレート選択して、適当なフォルダと適当な名前でこのKiCADプロジェクトを展開しておきます。
まず左のペインからkicad_pcbファイルをダブルクリックするか、ツールボックスから基板のアイコンをクリックします。


開くとこのサンプルにはただの
Edge.Cuts
トップメニューから
[ファイル] > [プロット]
含まれるレイヤー > [Edge.Cuts]
[製造ファイル出力]

これでもっとも簡単な矩形のエッジだけのガーバーデータが
src-Edge.Cuts.gbr
GerbolyzeでSVG画像をgbrに重ねる
では先程のgbrファイルをベースに、上からsvgを重ねる感覚で、
Gerbolyzeコマンドは主に以下の2つサブコマンドを使ってsvg(jpgやpngも可)とgbrを編集する感じで使います。
#👇指定したGBRを元にテンプレートとなる前のSVGファイルを出力する
$ gerbolyze template --top <テンプレートsvgの名前> [--bottom <テンプレートsvgの名前>] <ガーバーファイル>
#👇SVG画像と入力gbrファイルを指定して、それぞれを重ねたgbrファイルを出力する
$ gerbolyze paste --top <上層に重ねたいsvgファイル> [--bottom ...] <入力gbrファイル> <出力gbrファイル>
詳しいコマンドのオプションなどは公式のドキュメントを参考にしてください。
ザックリというと、
gerbolyze template
「gbr -> svg」
gerbolyze paste
「svg -> gbr」
どういうことか順を追ってやってみましょう。
最初に先程出力したガーバーデータ・
src-Edge.Cuts.gbr
テンプレートSVG
これを行うのが、
gerbolyze template
ターミナルで作業フォルダに入り、以下のコマンドを叩きます。
$ gerbolyze template -t tmpl.svg src-Edge.Cuts.gbr
なお
-t, --top
テンプレートとして出力された
tmpl.svg

元のガーバーデータは四角の枠だけでしたので、それを反映した寸法に合わせて色付きの領域が与えられるSVGとなっています。
次にこのテンプレートSVGに描きたい画像を編集したり、貼り付けたりします。
適当にデザインをパス化して、以下のような感じの画像を
love.svg

なお、文字やjpg画像などのラスター画像などはきちんとパス化しないと、gbrに反映されないので注意が必要です。
これで最後に
gerbolyze paste
以下がテンプレートsvg(
love.svg
src-Edge.Cuts.gbr
love.gbr
$ gerbolyze paste -t love.svg src-Edge.Cuts.gbr love.gbr
コマンド実行後に
love.gbr
GerbView
love.gbr
GerbView

というようにちゃんとSVGパスが反映されているようになっています。
変換済みのガーバーデータのちょっとしたゴミを編集する・『gerbv』
gerbolyzeはsvg画像ををgbrファイルに変換するのにはとても便利なツールです。
でも良く出力物を観察すると、各所に意図しないパスで内部が接続されているのが分かります。

切削加工の場合、さすがにこのような看過できないほど主張しているパスは消しておかないと、最終的に残念な仕上がりになってしまいます。
ということで、ちょっとしたガーバーデータの修正に便利な
Windows/MacOSはダウンロード版でこのソフトウェアが利用できるようですし、さらに喜ばしいことにLinuxだとパッケージインストーラが利用できるようになっています。
Debian Linuxの場合:
$ sudo apt install gerbv
お手持ちのPC環境にgerbvをインストールしたら、gerbvでガーバーデータを編集するために、先程のgbrデータを読み込みます。

図で示したようにゴミパスを直接クリックし、Deleteボタンを押すことで快適に消えてくれます。

gerbvで修正した後で、このgbrを保存し、この修正が反映されているかどうかを再度GerbViewで確かめると、

というように確かに余計なパスが消去されていることが分かります。
以上、言うほど簡単では無かったかも知れませんが、Inkscapeとフリーウェアだけで自由にガーバーデータが作成することが分かりました。
まとめ
簡単なガーバーデータはKiCAD無しでもInkscapeだけで作成することが可能ということを狙って書き始めた記事でしたが、肝心のガーバーデータ作成エクステンションがほぼほぼ利用できない状態になっていましたので、コマンドベースのツールを経由してgbrファイルを出力する方法を紹介していきました。
何はともあれ、Inkscapeで描いたパスがCNCで思いのままに切削加工できるのは嬉しいことです。
では次回は折角なので作成したガーバーデータを使ってカット基板を切削してみようと思います。