DXFデータを変換し、KiCadに取り込ませる方法


先日マイクロマウス合宿で、KiCadに別のソフトで設計した基板外形とか取り込めるの?
という質問が出まして、やはり困っている方は多々いる様子でした。


そこで、今回DXF形式のCADデータをKiCadに取り込む方法を紹介します。
(超長い記事なので、気を付けてください。)

去年のマシンの基板外形を例に取って説明します。

こんな感じになります。


(注意:去年まではPCBEを使っていたので、KiCADに取り込んだデータを実際に発注したことはありません。あくまでも参考程度だと考えてください。
尚、今年ハーフサイズマイクロマウスを作製予定なので、この手順でうまくいけば後日報告します。)


手順がすごく多く、途中で挫折してしまうかもしれないので、最初にロードマップを示します。

まとめるとこんな手順です


1.DXF->Gコード
2.Gコード->ガーバー
3.ガーバー->ガーバー
4.ガーバー->KiCAD
5.KiCADでごにょごにょ


3番のガーバーからガーバーってなんだよって感じですが、KiCadは円弧の扱いが不得意みたいです。
読み込みはうまくいっても、基板外形として取り込むとこうなります。


3番はそこらへんを何とかする手順です。
と言うことで、KiCadで円弧は扱えますが、他のCADから持ってくるのは相性が良くありません。
具体的には円弧を直線に直す手順だと思ってください。
細かく言えば、データ量増えるし、若干精度落ちるわのトレードオフを行います。


円弧の入った複雑な基板外形を読み込ませようとしても、大抵うまくいきませんが、
うまくいく可能性もあるので、そういう場合は3番目の手順は飛ばせることもあります。


(ちゃんと円弧をそのまま読めるようにしている人がいたら教えてください!)


データの流れとソフトウェアの関係としては、

鍋CADからDXF->NCコンバータでGコードに変換->NCコンバーターでガーバーに変換->PCBEで円弧を直線に直してガーバー出力->
KiCadのガーバービューアで読み込んで、基板エディタ(PCBNew)のデータフォーマットに変換->完成

となります。


前置きが長くなりましたが、それでは始めます。



===============鍋CADからスタート!======================


それでは、DXFデータであればソフトウェアはなんでもいいと思いますが、私が鍋CAD愛用者なので、そこからスタートします。

前回作ったロボットのCADデータがこれです

そこから基板データを吐き出します



=================NCコンバータの手順========================


NCコンバータにて、先ほどのDXFファイルを読み込みます。
(NCコンバーター_2 http://www7b.biglobe.ne.jp/~ncexprt/convex/convex_frame.html)



それでは一旦Gコードに変換します。

そこから新しいウィンドウが出てくるので、ガーバーに変換します。


前のウィンドウに変換結果が出ます。
NCコンバーターでそのまま保存するとライセンスキーを入手して下さいと言われて保存できないので、
中身を全選択してコピーして、テキストエディタに張り付けて拡張子をgrbとして保存します。


私は適当にbase.grbと名前を付けました
円弧が無ければこのままKiCadに読み込ませられると思います。



================PCBEの手順====================================


それではPCBEを起動します

PCBEでは、パスをしっかり指定しないといけないので、先ほどbase,grbを保存したディレクトリに
一旦プロジェクトを保存して、作業ディレクトリをそこに指定します。
絶対パス相対パスを理解しているのであれば、プロジェクトの作業ディレクトリを指定する手順は飛ばしてもかまいません。
ディレクトリ名に日本語が入っていても問題はありませんでした。


私の今回の作業ディレクトリは
C:\Users\Arthur\Desktop\個人\ブログ\DXFtoKiCAD
です
ツッコミどころはいろいろありますが、まぁスルーで。。。

適当にbase.pcbとでも名前を付けておきます


ファイルからガーバー入力を選択します

一応、作業ディレクトリを確認します。


ここで先ほどガーバーに変換したファイルを入力します。
外形として取り込みたいので、外形にチェックを入れます。

実は、ここに絶対バスを入力しても読み込めます。

うまくいくと、読み込めます。ここが一番ハードル高いと思います。


このままPCBEを使うという選択肢もあります。
PCBEでデータ作るとこんな感じになります。


読み込めたら、円弧を直線補完するために、PCBEの旧データフォーマットで一旦保存します。
実は旧PCBEでは円弧が扱えなかったため、勝手に直線補完されます。


今回は適当にbase.pcbとして上書きしました。


円弧が直線補完されてるか確認します。

出来てますね。

それではガーバーで出力します。

適当にbasenew.grbと名前をつけました。



============================いよいよKiCadの手順===========================


それではいよいよKiCadに取り込んでいきます。

KiCadを立ち上げたら、ガーバービューワーを立ち上げます

立ち上がりましたら、ガーバーファイルを開きます


読み込めましたか?

それでは、基板エディタ(PCBnew)に読み込むため、データを出力します。


ボードファイルの名前はbaseとかにしました。
出力レイヤーを選択します。


基板外形を選択します。


さっきの出力レイヤーの表記が基板外形となっているのを確認します。


出来ていましたら、いよいよ最終段階の、基板エディタにデータを読み込ませます。


ボートの追加を選択します。


ここで、拡張子を変更しないとガーバービューワーで出力したデータが見えません


読み込ませたら、こうなります。

これでうまくいきました!


=======================出来た!=====================================


さて、いかがでしたでしょうか。
だいぶ量が多いので、面倒だったと思いますが、これで結構複雑な基板外形でも取り込めるようになるのではないでしょうか。

そのうち、円弧を円弧として取り込ませてもうまくいくような方法を見つけるか、作るかしますので、なんとかできたらまた報告したいと思います。

それでは。