InkscapeでSVG画像からBGR(ガーバー)ファイルに変換して卓上CNCで基板を削る①


※ 当ページには【広告/PR】を含む場合があります。
2022/03/29
2022/10/02
【KiCad応用講座】PCB切削で平面コイルが動くか試してみる① CADファイルの準備
InkscapeでSVG画像からBGR(ガーバー)ファイルに変換して卓上CNCで基板を削る②
蛸壺の中の工作室|InkscapeでSVG画像からBGR(ガーバー)ファイルに変換して卓上CNCで基板を削る①



寸法やレイアウトが分かっている手書きで書いたほうが早そうな簡単な電気回路なら、いちいちKiCADで回路設計してGBRのようなガーバーデータに変換するのは少し手間になります。
今回はInkscapeを使って描いたSVG画像を直接GBR形式に変換できるツールを利用して、実際の卓上CNCで削ります。

            ① svg画像 --> gbrファイルに変換
② gbrファイルからCNCで切削加工

        

のような内容に沿って手順を説明していきます。


InkscapeのGBRフォーマット変換が使えない



数年前のInkscapeであれば、
Svg2Shenzhen というガーバーデータ変換用のプラグインが有志の方で公開されていましたので、Inkscapeのワークスペースから直接GBRファイルをエクスポートすることも可能でした。
便利なプラグインでしたが、プロジェクトの更新が2年前から停止しており、現行の安定版Inkscapeではpythonの実行環境が違うためかエラーでコケます。

合同会社タコスキングダム|蛸壺の技術ブログ


このプラグインがそのまま動けば文句無しに簡単な話でしたが、どうやら現在はすんなりとは使えない状況になっていましたので、少しセットアップが面倒ですが別の手段を考えます。


コマンドからSVGをGBRに変換するツール・『Gerbolyze』を利用する



Inkscapeのバージョンを落としてわざわざ昔のエクステンションを使えるようにしてまで、直接ガーバーデータを出力することは一旦諦め、現状のInkscapeで安定動作するような別の手段を模索します。
色々と試す中で、セットアップが微妙に面倒でしたが、この手のツールでは比較メンテナンスが継続されていそうという理由で
Gerbolyze を使うことにしました。
このコマンドで利用するタイプのソフトウェアですが、使用方法にはクセがありますので、大まかな手順は後ほど説明していきます。

Gerbolyzeのインストール



Gerbolyzeの動作環境を構築するには、Pythonのバージョン3以降と安定版以降のRustが同時に動く必要があり、少し手間かも知れません。
各OSへのGerbolyzeの導入手順は
公式のQuick Installation で説明されている通りです。
現在の手元の環境は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ファイルを作成する

Gerbolyze が対応しているフォーマットは、SVG/PNG/JPGのベクター・ラスター画像になっています。
元のgbrファイルにこれらの写し込みたい画像データを指定することで、柔軟な画像をガーバーデータに(転写に近いイメージで)追加することができます。
まずは手っ取り早くKiCADからEurocard基板のテンプレートを開いて、サラのgbrファイルを用意します。

合同会社タコスキングダム|蛸壺の技術ブログ
合同会社タコスキングダム|蛸壺の技術ブログ


なおEurocard基板はその名の通りヨーロッパではメジャーな基板で、寸法は
160x100mm となっています。
結構安く手に入るカット基板(
など)に近いサイズですので、CNCのカットテストにはもってこいのテンプレートかと思います。



KiCADからこのEurocard基板のテンプレート選択して、適当なフォルダと適当な名前でこのKiCADプロジェクトを展開しておきます。
まず左のペインからkicad_pcbファイルをダブルクリックするか、ツールボックスから基板のアイコンをクリックします。

合同会社タコスキングダム|蛸壺の技術ブログ
合同会社タコスキングダム|蛸壺の技術ブログ


開くとこのサンプルにはただの
Edge.Cuts レイヤーしかないのでこのレイヤーだけを選択してから、gbrを出力します。
トップメニューから
[ファイル] > [プロット] から製造ファイル出力ダイアログに入り、 含まれるレイヤー > [Edge.Cuts] を選択して、 [製造ファイル出力] ボタンを押すことで、簡単なgbrファイルが現在の作業フォルダに出力されていることを確認します。

合同会社タコスキングダム|蛸壺の技術ブログ


これでもっとも簡単な矩形のエッジだけのガーバーデータが
src-Edge.Cuts.gbr として出力されました。


GerbolyzeでSVG画像をgbrに重ねる



では先程のgbrファイルをベースに、上からsvgを重ねる感覚で、
Gerbolyze を使ってみます。
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」 としてテンプレートSVG画像を生成し、テンプレートSVGを編集し終えたら gerbolyze paste コマンドから 「svg -> gbr」 に変換することになります。
どういうことか順を追ってやってみましょう。
最初に先程出力したガーバーデータ・
src-Edge.Cuts.gbr を元に、 テンプレートSVG と呼ばれるガーバーデータからの形状を抽出したSVG画像を生成するところから初めます。
これを行うのが、
gerbolyze template コマンドです。
ターミナルで作業フォルダに入り、以下のコマンドを叩きます。

            $ gerbolyze template -t tmpl.svg src-Edge.Cuts.gbr

        

なお
-t, --top オプションで上層用(片面)のテンプレートSVGで出力したい名前を付けて使います。
テンプレートとして出力された
tmpl.svg をInkscapeで開くと以下のようになります。

合同会社タコスキングダム|蛸壺の技術ブログ


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

合同会社タコスキングダム|蛸壺の技術ブログ


なお、文字やjpg画像などのラスター画像などはきちんとパス化しないと、gbrに反映されないので注意が必要です。
これで最後に
gerbolyze paste コマンドを利用してテンプレートSVG画像をベースに画像を合成したガーバーファイルとして出力させてみます。
以下がテンプレートsvg(
love.svg )をベースに、 src-Edge.Cuts.gbr から新しいgbrファイル( love.gbr )を出力するコマンドになります。

            $ gerbolyze paste -t love.svg src-Edge.Cuts.gbr love.gbr

        

コマンド実行後に
love.gbr が正常に出力されたなら、KiCADのユーティリティである GerbView からきちんと合成させているかを確認します。

love.gbrGerbView から開いてみると、

合同会社タコスキングダム|蛸壺の技術ブログ


というようにちゃんとSVGパスが反映されているようになっています。


変換済みのガーバーデータのちょっとしたゴミを編集する・『gerbv』



gerbolyzeはsvg画像ををgbrファイルに変換するのにはとても便利なツールです。
でも良く出力物を観察すると、各所に意図しないパスで内部が接続されているのが分かります。

合同会社タコスキングダム|蛸壺の技術ブログ


切削加工の場合、さすがにこのような看過できないほど主張しているパスは消しておかないと、最終的に残念な仕上がりになってしまいます。
ということで、ちょっとしたガーバーデータの修正に便利な
『gerv』 を使って、この不要なゴミパスを削除してみましょう。


参考|gerbv公式


Windows/MacOSはダウンロード版でこのソフトウェアが利用できるようですし、さらに喜ばしいことにLinuxだとパッケージインストーラが利用できるようになっています。
Debian Linuxの場合:

            $ sudo apt install gerbv

        

お手持ちのPC環境にgerbvをインストールしたら、gerbvでガーバーデータを編集するために、先程のgbrデータを読み込みます。

合同会社タコスキングダム|蛸壺の技術ブログ


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

合同会社タコスキングダム|蛸壺の技術ブログ


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

合同会社タコスキングダム|蛸壺の技術ブログ


というように確かに余計なパスが消去されていることが分かります。
以上、言うほど簡単では無かったかも知れませんが、Inkscapeとフリーウェアだけで自由にガーバーデータが作成することが分かりました。



まとめ



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