posted by rerofumi
2010/11/24 水曜日 1:02:43
プリント基板を CAD で設計したり、その結果であるガーバーデータを P板.com 等の基板試作屋さんに出して製作をしたことのある人なら理解していると思うんだけれども、プリント基板を作るにはいくつものレイヤーを扱う。
そのレイヤー毎のガーバーデータを製造会社に渡してようやく1枚のプリント基板ができあがる。
今回 CNCフライスで作るのは片面一層なので必要なレイヤーは以下の3つとなる。
- プリント基板外形
- ソルダー面パターン
- ドリル穴データ
基板試作屋さんに出しているときはコレに加えて、ソルダーマスクのデータ、シルク面のデータとか、二層のときは部品面パターンのデータとかが増えるわけだ。
ドリル穴データはガーバーでも GCODE でもないんだけれども、まあその辺は置いておいて、これら 3つのガーバーデータをそれぞれ 3つの GCODE にコンバートして CNCフライスでその GCODE を都合三回処理する。
ガーバーから GCODE へ変換するコンバーターは cam.py を始めいくつかあるんだけれども、パターンのパスを作るだけの物が多かった。しかも、出力の空間座標が元のガーバーのそれとは異なっているので外形やドリルが合わせられなくて困るのである。
cam.py はドリルとパターンを一緒に処理してくれる機能があるけれども、ドリルのデータ形式が不明でうまく読み込めなかった。ガーバーも EAGLE のを期待していて K2CAD の奴は読めなかったりと色々不満が残る。(GCODEのパラメーター省略に対応していないのが多い)
結局外形とパターンを合わせられるツールがなかったので、ソフトを自作することにした次第。EAGLE 使っていれば全部解決していた気もするけれども、まあそこはそれ。
先ほど書いた様に 3つのレイヤーをへて 1枚の基板を作るのでフライスのツールも 3種類用いる。左から、ドリル、パターン彫刻の半月カッター、外形を切り出す1mmエンドミル。
XYテーブルはひとつのゼロ座標で固定しながら、ツールを手作業で取り替えてそれぞれの対応 GCODE で切り出していく。
パターン彫刻カッターはキデッジショップさんから購入した物。ドリルやエンドミルはIHCモノタロウとかで適当に。
そんな感じの作業をへてついにプリント基板が完成。
丸い形状とか CNC じゃなきゃやってられんよ。
テスターでショートチェックをしていると、クズが溝に残ってショートしてたりすることはある。あとバリがあってショートとか。色々試したけれども、細かいのはクリームクレンザーとスポンジで磨くのが効果的だった。指紋とか酸化膜とかも落ちるしね。
それでもショートしている場合(バリの場合が多い)、カッターで切るしかないけれども。
さて、そんなこんなで作っていた CNCフライス用の GCODE コンバーターというか、パターン外周抽出ツールだけれども、これが遅い。5cm程度の基板パターンで 5時間ぐらいかかる。
それは流石にどうだろうということでちょこっと高速化したら、8分にまで縮まった。まあ、これくらいなら。
今のところ書き捨てのクラスとテストスクリプトがあるだけで公開できるようなものではないのだけれども、どうしよう。気が向いたらもうちょっとまとめてソース置いておこうか。
5月 1st, 2011 at 12:50:41
CNCで基板を刻む方法を探していてこのサイトにたどり着きました。
今K2CADで基板パターンを作成しており、ガーバーデータからGコード
変換で挫折しています。Gコードに変換できるツールを公開していただく
ことは可能でしょうか。
5月 1st, 2011 at 22:44:02
コメントいただきありがとうございます。
該当のツールはいずれアプリケーションにしたてて公開するつもりではいるのですが、まとめる部分がなかなか手に付かずそのままとなっていました。
私自身も未完成なスクリプト状態で使っているところです。
rubyスクリプトをコマンドラインから起動することが問題なく行え、一部パラメータ変更のためにスクリプトをエディタで編集することも可能であれば現状のスクリプトを ASIS で公開、提供することができますがどうでしょう。
また、今回要望をいただいたことからアプリケーション化についても本格的に検討していきたいと思います。
(なにより自分で良く使っていますので、これ)
5月 3rd, 2011 at 7:47:04
rerofumiさん
Rubyでコーディングされたのですね。
PC内には様々なスクリプト言語の動作環境もあり、編集も可能です。
一度トライさせていただけないでしょうか。現状そのまま(As is)で大丈夫です。将来のアプリ化に期待しております。
よろしくお願いします。
5月 3rd, 2011 at 8:25:36
追伸です。
切削後の基板を拝見しますとV字刃にビビリがあり、バリが出たように見受けられます。OM社のスピンドルを使われているようですが、刃の固定はセットビスで1本締めですか。当方も同じシャフトを使っていますが、スピンドルシャフトに穴が二つあいておりましたので両側からセットビスで刃を締め、ブレを最小にできないか調整中です。
5月 3rd, 2011 at 19:07:10
スクリプトの方公開しました。お試しください。
http://www.fumi2kick.com/komekame/archives/1214
バリのほうはPCBカッターの個体差で出たり出なかったり、フィード速度を上げると出たりと様々な要因があるので私も色々と試しているところです。奥が深いです。
卓上小型CNCだと回転数が低く固定なのでその中で上手いことやるのが大変ですね。
5月 3rd, 2011 at 20:30:44
スクリプトの公開をありがとうございます。
純rubyはPCの中にセットアップして有りましたが.net関連のアドオンやOpenToolkitについては未体験です。.NET Frameworkは3.5まではInstall済みでしたが4を求められたので恐る恐るrubyの再環境整備からはじめてみます。
5月 4th, 2011 at 17:16:45
スクリプトを試してみました。
1:1/112 ~2:112/112 まで我が家の非力なパソコン(Pen4 2.2G+2GB Memory)で1時間半強、その後にgcode=formatter.rbがOpenエラーで止まってしまいました。一からやり直しとなるので一旦利用を停止することにしました。
便利なものだと思いますが、我が家の環境で実用には至らないようです。
NativeなCodeで単体で走るようにされておられるとお聞きしましたので、
次バージョンでの超高速化に期待します。
どうもありがとうございました。
5月 4th, 2011 at 19:06:21
スクリプトが出すエラーに従い、エラーの原因を取り除いたところ3つのncdファイルを生成するところまで動作確認しました。
やはり私のPCでは1時間40分くらいかかりましたので最新の高速PCを用意するか、スクリプト言語環境ではなく独立したアプリケーションが望ましいところです。
以上、ご報告まで。
5月 4th, 2011 at 20:28:36
リポートありがとうございます。
遅いのはいかんともしがたいところです。
もともと、時間がかかっても良いから自分の欲しい機能を実装するという形で始まっているので、当初は私の環境でも 8時間以上かかっていました。これでもいくらかは早くしたのですけれどもね。
アプリケーションとして仕上げると書いたのは GUI をつけるといった意味のことで、コンパイラ言語への移植は検討していません。なので今も速度的に変化はありません。すみません。
これだけの構成量をさらりと C++ に移植するだけの動機は今ありません。
ちなみにサンプルの /i2chub は私の手元では 9分で完了します。
なのでこんなものだろうと思って使用しています。