コメを噛め

コメを噛め

rerofumi の電子工作メモ

hatena bookmark

第五回『Gコードの作成』

■ ガーバーデータとGコード
プリント基板の設計データをガーバーデータという形式で用意することができました。
ガーバーデータはプリント基板のパターンを指定する設計データですが、通常これをこのままCNCとフライスにかけて製造を行うことができません。フライスを制御するCNCは G-Code と呼ばれる制御コードで駆動させます。この G-Code とガーバーデータに差異があるためです。
実はガーバーと呼んでいるデータも G-Code の亜流です。G-Code は工作のために工作刃を XYZ に移動させる情報を持つのですが、ガーバーはこの移動情報に線の太さという情報を追加したものとなります。

通常のガーバーは RS247X のことですが、「フォトプロッタ」という歴史を念頭に置いておくと理解が早いと思います。
その昔コンピューターから図版を出力することが一般的でなかったころ、機械操作で図版を書く手法としてフォトプロッタがありました。光で感光する印画紙に対してシャッターを開いて光を当てることで点を感光します。その光源とシャッターをプロッタでズーっと移動させると線を描くことができました。なので線はシャッターの形の軌跡となります。
この光源を移動するという情報を G-Code で制御し、シャッターの開閉および大きさと形をガーバーの拡張部分で指定していました。太さを持った G-Code というのはこの構造をイメージすると理解することができます。

ガーバーをそのままCNCに読み込ませても線の中央に値するものしか切削しないので期待するパターンを掘る事ができません。
ガーバーが意味するパターンの外周を掘るようにしてやらないといけません。
しかも、切削する刃はそれ自体が幅を持っていますので、刃の幅(の半分)だけ余計に外側のパターン外周を掘るような指示をしてやる必要があります。

「ガーバー to G-Code」と銘打たれているものは大体この作業を行うものです。
ガーバーデータを読み込んだ後、パターンを切削できるような動作を直接フライスにさせるアプリもあり、一旦 G-Code を介すかどうかはアプリに因るようです。

■ ガーバーからGコードへの変換
では実際にガーバーから G-Code へ変換をしてみましょう。
“gerber to g-code” で検索すると多くの結果が見つかると思います。みんな苦労しているんですね。

Eagle で基盤設計をしている場合は Eagle からガーバーを介せず直接 G-Code を出力できるスクリプトがいくつか存在しています。キデッジさんのところに Eagle to G-Code の改良版スクリプトと解説があるので参考にすると良いと思います。
今では OriminPCB や WINSTAR PCB を利用することもできますので環境によっては検討しても良いでしょう。

フリーソフト系では色々試したのですが、当時は私が望む以下の条件を満たすものが見つかりませんでした。

  • K2CADのガーバーを読み込める
  • パターン、ドリル、外形の3つを「同じ座標軸」で最後まで扱える
  • パターンを一時的にビットマップパターンに落とさず、ベクターのまま扱える

どうも満足するのが無かったので自分で作るか、と自分で使うために作成を始めたのが拙作の「ガーバー to Gコードコンバーター Gynostemma」になります。

Gynostemma を利用すると以下のようにパターンから、その外周を切削するようなツールパスを生成することができます。

■ 出力されるGコードの種類
Gynostemma の使い方は省略しますが、その結果出力される G-Code は3種類となりドリルは穴の経の数(ツールの数)だけ出力されます。

  • nc_pattern.ncd (パターンを切削する G-Code)
  • nc_gaikei.ncd (基板をくり抜く外形の G-Code)
  • nc_t10.ncd (ドリルで穴を開けるための G-Code)

ドリルの t10 という部分はCAD上で指定したドリルのツール番号がついていて、ツールの数(ドリルの穴種類の数)だけ出力されます。
要するに、刃を取っ替える必要がある分ファイルに分けて出力されていることになります。

これらがCNCフライスでプリント基板を切削するのに必要な G-Code となります。
求めているのはこれでした、ここまでがCNCフライスでプリント基板を作るための準備となります。これを CNC にかけることでプリント基板を作成することができるようになります。

Leave a Reply