KiCad で楕円の穴が必要な部品を使った場合、ドリルデータに楕円が出力されますが、そのままでは FlatCAM で楕円を扱えません。本記事では、Gerber X2 形式でドリルデータを出力することで、楕円の穴を FlatCAM で扱う方法を説明します。
問題背景
KiCad + FlatCAM で KitMill 用の基板切削データを作る という記事を書きましたが、この記事の方法だけでは、下図のような楕円を必要とする部品を上手く扱えません。
このような部品を含む基板パターンで、先の記事の通りにファイルを出力すると、ドリルデータに楕円穴も含まれて出力されます。そのまま FlatCAM でドリルデータを開くと、下図のように楕円の両端に穴があるように認識されてしまいます。
本来、2 つずつの穴は楕円として繋がっていて、長細い穴が空くはずなのです。しかし、このまま加工すると、単に 2 箇所にドリルが打たれるだけで、楕円になりません。
対処方法
この問題に対処するには 3 つの方法があると思います。(他にもあるかもしれませんが)
- 部品の端子を曲げて、表面実装で対応する
- 穴を空ける必要を無くす、という発想
- ドリルで穴を空けた後、手動加工により穴を広げる
- FlatCAM が対応する形式で楕円データを出力する
本記事では 3 番目のやり方を説明します。
大まかな手順としては、KiCad で楕円のドリルデータを Gerber X2 形式で出力し、FlatCAM で「ドリルによる穴開け」ではなく「切削による穴開け」として対処します。
ドリルデータから楕円を削除
ドリルデータは、先の記事では Excellon 形式で出力しました。しかし、FlatCAM は Excellon に含まれる楕円を認識できません[1]。そこで、楕円のドリルデータをガーバー形式で出力する、という方法を用います。必要なドリルデータは次の 2 つです。
- Excellon 形式の普通の穴データ(通常のドリル加工用)
- ガーバー形式の楕円の穴データ(切削による加工用)
普通の穴と楕円の穴をファイルとして分離するということです。それらが同じファイルに含まれてしまっていると、普通の穴まで切削加工(Mill Holes)の対象になってしまいます。普通の穴は従来通り、ドリルで加工したいですからね。
Excellon 形式の普通の穴データを作るには、まず Pcbnew で基板パターンを開き、Excellon 形式でドリルファイルを生成します。この Excellon ファイルには普通の穴も、楕円の穴も含まれています。
このファイルをテキストエディタを開き、楕円データを削除します。難しそうに思えるかもしれませんが、ドリルファイルを見る限り、楕円は最後の方にまとまるようなので、それほど心配は要らないでしょう。
Excellon 形式のドリルファイル(*.drl)の中身はこのようになっています。
M48
《中略》
FMAT,2
METRIC
T1C0.800
T2C1.000
%
G90
G05
T1
X004374Y056900
《中略》
X071620Y021340
T2
X005580Y021340
《中略》
X071620Y008640
T1
G00X005860Y068620
M15
G01X005860Y066420
M16
G05
G00X011760Y070770
M15
G01X009560Y070770
M16
G05
T2
G00X011910Y064520
M15
G01X009410Y064520
M16
G05
T0
M30
Excellon 形式について詳しくないですが、どうやらこんな意味のようです。
命令 | 意味 |
---|---|
T1C0.800 | ツール 1 の定義。T1 = 0.8mm |
T2C1.000 | ツール 2 の定義。T2 = 1.0mm |
T1 | ツール 1 を選択 |
T2 | ツール 2 を選択 |
X004374Y056900 | X 座標 004374、Y 座標 056900 |
ファイルの先頭にツールの定義などがあり、その後で普通の穴の座標がずらっと並びます。穴は、ドリル交換を最小にするために、径ごとにまとまって出力されています。登場する穴径の種類が 2 種類だったので上記のように T2 まで登場しています。種類数が変われば、その数だけ T* が出現するはずです。
普通の穴の並びに続き、楕円の穴が登場します。上記の例では、T1、T2 の後、T1 が再度登場する行が楕円の始まりです。1 つの楕円データだけを抜き出すと、以下の通りです。
T1
G00X005860Y068620
M15
G01X005860Y066420
M16
G05
座標 (005860, 068620) から (005860, 066420) に向かう楕円を表しています。座標を良く見ると Y 座標だけが変化しているので、縦方向の楕円だということが分かります。
これらの、楕円を表す行をすべて削除してください。削除すると、最終的に次のような内容になります。
M48
《中略》
FMAT,2
METRIC
T1C0.800
T2C1.000
%
G90
G05
T1
X004374Y056900
《中略》
X071620Y021340
T2
X005580Y021340
《中略》
X071620Y008640
T0
M30
これで「楕円を含まないドリルファイル」が完成しました[2]。
このファイルを FlatCAM で読み込むと、楕円部分だけ穴が空かないことが分かります。
楕円データをガーバー形式で出力
「楕円を含まないドリルファイル」が完成したので、次は「楕円だけを含むガーバーファイル」を作ります。
それには、まず Pcbnew で「楕円パッドだけを含む基板パターン」を用意します。これは、本来の基板パターンを作成した後、楕円パッド以外を削除することで作れます。本来の基板パターンを壊さないように、Pcbnew のファイルメニューから「名前を付けてコピーを保存」でコピーを作り作業すると良いでしょう。
楕円だけを含む基板パターンを作成できたら、ドリルファイルの生成画面で「Gerber X2」を選びます(下図)。
*-PTH-drl.gbr と *-NPTH-drl.gbr の 2 つのファイルが生成されます。前者はスルーホールの穴、後者は非スルーホールの穴を含んだファイルです。部品を取り付けるための穴は通常はスルーホールなので、後者のファイルはほとんどの場合に活躍しません。
FlatCAM で楕円データを切削
楕円だけを含むガーバーファイルを FlatCAM で開くと、次のような表示になります。(下図は、導体面のガーバーデータも読み込んであります)
Excellon 形式の穴はオレンジ色で表示されるのに対し、楕円はガーバー形式ですので、緑の線で表示されています。この緑の線を削れば、見事楕円の穴が空く、というわけです。
導体面を削るのと同様の流れで、FlatCAM で処理していきます。その際、下図のように、エンドミルの直径(Tool dia)を負値にするのがミソです。
このように設定し、Generate Geometry をクリックすると、下図のようにジオメトリオブジェクトが生成されます。
楕円の緑線の内側を赤い線が通っているのがポイントです。これが直径を負値にした効果です[3]。Tool dia を正の値にすると、楕円の外側を削ることになってしまいますが、負にすることで内側を削れるのです。
次に、切削の設定をしますが、ここでは Tool dia を正の値に戻しておきましょう[4]。
そして、穴を空けるので「Cut Z」は基板厚以上の値を設定し、Feed Rate もエンドミルが折れない程度の値に調整してください。
Generate で CNC プログラム(G code)が生成されます。
ここまで来れば、後は通常の手順で切削するのみです!
投稿者の人気記事
-
uchan
さんが
2021/07/26
に
編集
をしました。
(メッセージ: 初版)
ログインしてコメントを投稿する