工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Gコードマスター:CNC・3Dプリンター操作に必須の主要コマンド解説

あなたの仕事や趣味が CNC マシンや 3D プリンターに関連しているなら、Gコードが何であり、どのように機能するかを理解することは必須です。このチュートリアルでは、Gコード言語の基礎、最も重要かつ一般的な Gコードコマンド、それらの動作原理を学びます。

Gコードとは?

Gコードは、CNC(コンピュータ数値制御)マシンのためのプログラミング言語です。Gコードは「Geometric Code(幾何学コード)」の略です。この言語を使用して、マシンに何をするか、どのようにするかを指示します。Gコードコマンドは、マシンにどこへ移動するか、どの速度で移動するか、どの経路をたどるかを指示します。

旋盤やフライス盤などの工作機械の場合、切削工具がこれらのコマンドによって駆動され、特定の工具経路をたどって材料を削り、望みの形状を得ます。

同様に、積層造形または 3D プリンターの場合、Gコードコマンドはマシンに材料を層ごとに堆積させ、精密な幾何学的形状を形成するよう指示します。

Gコードコマンドの読み方

初めて Gコードファイルを見ると、かなり複雑に見えるかもしれませんが、実際にはそれほど理解するのは難しくありません。

Gコードマスター:CNC・3Dプリンター操作に必須の主要コマンド解説

コードをよく見ると、ほとんどの行が同じ構造を持っていることに気づきます。Gコードの「複雑」に見える部分は、見える数値のすべてであり、それらは単なるデカルト座標です。

1 行を取り上げて、それがどのように機能するか説明しましょう。

G01 X247.951560 Y11.817060 Z-1.000000 F400.000000

この行の構造は以下の通りです:

G## X## Y## Z## F##

  • 最初は Gコードコマンド で、この場合は G01 であり、「特定の位置まで直線的に移動」を意味します。
  • X、Y、Z の値で位置または座標を宣言します。
  • 最後に F 値で 送り速度、つまり移動を実行する速度を設定します。

まとめると、G01 X247.951560 Y11.817060 Z-1.000000 F400 という行は、CNC マシンに現在位置から座標 X247.951560、Y11.817060、Z-1.000000 まで、速度 400 mm/分で直線的に移動するよう指示しています。単位が mm/分なのは、Gコード例の画像を見ると G21 コマンドで単位をミリメートルに設定しているためです。インチを単位としたい場合は G20 コマンドを使用します。

最も重要・一般的な Gコードコマンド

Gコードの 1 行の読み方がわかったので、最も重要かつ一般的に使用される Gコードコマンドを見ていきましょう。いくつかの例を通じてそれぞれの動作を学び、このチュートリアルの最後までに Gコードの仕組み、読み方、修正方法、さらには独自の Gコードの書き方を完全に理解できるようになります。

G00 – 高速位置決め

G00 コマンドは、マシンを現在位置からコマンドで指定された座標または指定点まで最大移動速度で移動させます。マシンはすべての軸を同時に移動させ、同時に移動を完了します。これにより、新しい位置点への直線的な移動が実現されます。

Gコードマスター:CNC・3Dプリンター操作に必須の主要コマンド解説

G00 は非切削移動であり、その目的はマシンを目的の位置へ素早く移動させ、切削や印刷などの何らかの作業を開始できるようにすることです。

G01 – 直線補間

G01 Gコードコマンドは、設定された送り速度でマシンを直線的に移動させるよう指示します。X、Y、Z の値で終了位置を指定し、F 値で速度を指定します。マシンコントローラーは、その直線を得るために通過する中間点を計算(補間)します。これらの Gコードコマンドはシンプルで直感的に理解しやすいですが、裏ではマシンコントローラーがこれらの動きを実現するために毎秒数千回の計算を行っています。

Gコードマスター:CNC・3Dプリンター操作に必須の主要コマンド解説

G00 コマンドが単なる位置決めに使用されるのに対し、G01 コマンドはマシンが主作業を実行する際に使用されます。旋盤やフライス盤の場合は直線での材料切削、3D プリンターの場合は直線での材料押出しです。

G02 – 時計回り円弧補間

G02 コマンドは、マシンに時計回りの円運動で移動するよう指示します。G01 コマンドと同じ概念で、適切な加工プロセスの実行時に使用されます。終了点パラメータに加えて、ここでは回転中心、または円弧開始点から円弧中心点までの距離を定義する必要があります。開始点は実際には前のコマンドの終了点、または現在の点です。

理解を深めるために、前の例の G01 コマンドの後に G02 コマンドを追加してみましょう。

Gコードマスター:CNC・3Dプリンター操作に必須の主要コマンド解説

この例では、最初に G01 コマンドでマシンを X5、Y12 の点へ移動させます。これが G02 コマンドの開始点になります。G02 コマンドの X と Y パラメータで終了点を設定します。この終了点まで円運動または円弧で到達するには、中心点を定義する必要があります。これは I と J パラメータを使用して行います。I と J の値は開始点、つまり前のコマンドの終了点を基準とした相対値です。中心点を X5、Y7 にするには、X 軸方向に 0、Y 軸方向に -5 のオフセットが必要です。

もちろん、中心点を別の場所に設定することもでき、それによって同じ終了点で異なる円弧が得られます。例:

Gコードマスター:CNC・3Dプリンター操作に必須の主要コマンド解説

ここでは前の例と同じ終了点(X10、Y7)ですが、中心点が異なる位置(X0、Y2)にあります。これにより前の例よりも広い円弧が得られます。

関連記事: GRBL のセットアップと Arduino での CNC マシン制御方法

G00、G01、G02 の例 – 手動 Gコードプログラミング

これら 3 つの主要な Gコードコマンド、G00、G01、G02 を使用したシンプルな CNC フライス加工の例を見てみましょう。

Gコードマスター:CNC・3Dプリンター操作に必須の主要コマンド解説

上記の画像に示された形状の工具経路を得るには、以下の Gコードコマンドが必要です:

G00 X5 Y5 ; ポイント B
G01 X0 Y20 F200 ; ポイント C
G01 X20 Y0 ; ポイント D
G02 X10 Y-10 I0 J-10 ; ポイント E
G02 X-4 Y-8 I-10 J0 ; ポイント F
G01 X-26 Y-2 ; ポイント B

最初の G00 コマンドで、マシンをホームまたは初期位置からポイント B(5,5) へ素早く移動させます。ここから G01 コマンドで送り速度 200 で「切削」を開始します。ポイント B(5,5) からポイント C(5,25) へ移動するために、開始点 B を基準とした X と Y の相対値を使用していることに注目してください。Y 方向に +20 単位でポイント C(5,25) に到達します。実際には、座標を絶対値として解釈するか相対値として解釈するかをマシンに選択させているかによります。これは後のセクションで説明します。

ポイント C(5,25) に到達したら、もう 1 つの G01 コマンドでポイント D(25,25) へ移動します。次に G02 コマンドで円運動によりポイント E(35,15) へ移動し、中心点は (25,15) です。次の G02 コマンドでも同じ中心点 (25,15) を使用してポイント F(31,7) へ移動します。ただし、I と J パラメータは前のコマンドとは異なります。これは最後の終了点、つまりポイント E から中心点をオフセットしているためです。最後にもう 1 つの G01 コマンドでポイント F(31,7) からポイント B(5,5) へ戻って工具経路を終了します。

これがこの形状を作るための手動 Gコードプログラミングの方法です。ただし、これはいくつかの基本コマンドが欠けているため完全な Gコードではありません。それらの Gコードコマンドを先に説明する必要があるため、後で完全な Gコードを作成します。

G03 – 反時計回り円弧補間

G02 と同様に、G03 Gコードコマンドはマシンに円運動で移動するよう定義します。唯一の違いは動きが反時計回りであることです。他のすべての機能とルールは G02 コマンドと同じです。

Gコードマスター:CNC・3Dプリンター操作に必須の主要コマンド解説

これら 3 つの主要な Gコードコマンド、G01、G02、G03 を使用すれば、文字通りあらゆる形状の工具経路を生成できます。それがどのように可能か不思議に思うかもしれませんが、コンピューターと CAM ソフトウェアにとっては実際には簡単な作業です。確かに、Gコードプログラムを手動で作成することも時々ありますが、ほとんどの場合は適切なソフトウェアを使用して行います。それははるかに簡単で安全です。

それでも、さらにいくつかの重要で一般的なコマンドを説明し、最後に実際の Gコード例を作成します。

G20 / G21 – 単位選択

G20 と G21 コマンドは Gコードの単位、インチまたはミリメートルを定義します。

  • G20 = インチ
  • G21 = ミリメートル

単位はプログラムの冒頭で設定する必要があります。単位を指定しない場合、マシンは前のプログラムで設定されたデフォルトを考慮します。

G17 / G18 / G19 – Gコード平面選択

これらの Gコードコマンドでマシンの作業平面を選択します。

  • G17 – XY 平面
  • G18 – XZ 平面
  • G19 – YZ 平面
Gコードマスター:CNC・3Dプリンター操作に必須の主要コマンド解説

G17 がほとんどの CNC マシンのデフォルトですが、他の 2 つも特定の動きを実現するために使用できます。

G28 – ホーム復帰

G28 コマンドは、マシンに工具を基準点またはホーム位置へ移動するよう指示します。衝突を避けるため、X、Y、Z パラメータで中間点を含めることができます。工具は基準点へ向かう前にその点を通過します。G28 X## Y## Z##

Gコードマスター:CNC・3Dプリンター操作に必須の主要コマンド解説

ホーム位置は G28.1 X## Y## Z## コマンドで定義できます。

G90 / G91 – 位置決め Gコードコマンド

G90 と G91 コマンドで、マシンに座標の解釈方法を指示します。G90 は 絶対モード、G91 は 相対モード です。

絶対モードでは、工具の位置決めは常に絶対点または原点から行われます。したがって、G01 X10 Y5 というコマンドは、前の位置に関係なく工具を正確な点 (10,5) へ移動させます。

一方、相対モードでは、工具の位置決めは最後の点を基準として相対的に行われます。マシンが現在点 (10,10) にいる場合、G01 X10 Y5 というコマンドは工具を点 (20,15) へ移動させます。このモードは「インクリメンタルモード」とも呼ばれます。

その他のコマンドとルール

以上で説明した Gコードコマンドは最も一般的なものですが、他にも多くあります。カッター補正、スケーリング、ワーク座標系、ドウェルなどのコマンドがあります。

Gコードに加えて、本格的な Gコードプログラムを生成する際に使用される Mコードコマンドもあります。一般的な Mコードコマンドをいくつか紹介します:

  • M00 – プログラム停止
  • M02 – プログラム終了
  • M03 – スピンドル ON – 時計回り
  • M04 – スピンドル ON – 反時計回り
  • M05 – スピンドル停止
  • M06 – 工具交換
  • M08 – 洪水クーラント ON
  • M09 – 洪水クーラント OFF
  • M30 – プログラム終了

3D プリンターの場合:

  • M104 – エクストルーダー加熱開始
  • M109 – エクストルーダーが T0 に到達するまで待機
  • M140 – ベッド加熱開始
  • M190 – ベッドが T0 に到達するまで待機
  • M106 – ファン速度設定

これらのコマンドの一部には適切なパラメータが必要です。例えば、M03 でスピンドルをオンにする際、S パラメータでスピンドル速度を設定できます。したがって、M03 S1000 という行はスピンドルを 1000 RPM で回転させます。

多くのコードが モーダル であることにも注意してください。これは、別のコードによってキャンセルまたは置き換えられるまで効力を持ち続けることを意味します。例えば、直線切削移動のコード G01 X5 Y7 F200 があるとします。次の移動もまた直線切削の場合、G01 を先頭に書かずに X と Y 座標だけを記述できます。

G01 X5 Y7 F200
X10 Y15
X12 Y20
G02 X5 Y5 I0 J-5
X3 Y6 I-2 J0

送り速度パラメータ F にも同じことが当てはまります。値を変更したい場合を除き、すべての行に含める必要はありません。

Gコードファイルによっては、コマンドの前に「N##」が付いている場合があります。N ワードは単にコードの行またはブロックに番号を付けるためのものです。巨大なプログラムでエラーが発生した場合に特定の行を特定するのに役立ちます。

シンプルな Gコードプログラム例

以上を読んだことで、実際の完全なコードを手動で作成できるようになりました。例を示します:

Gコードマスター:CNC・3Dプリンター操作に必須の主要コマンド解説
%
G21 G17 G90 F100 M03 S1000
G00 X5 Y5 ; ポイント B
G01 X5 Y5 Z-1 ; ポイント B
G01 X5 Y15 Z-1 ; ポイント C
G02 X9 Y19 Z-1 I4 J0 ; ポイント D
G01 X23 Y19 Z-1 ; ポイント E
G01 X32 Y5 Z-1 ; ポイント F
G01 X21 Y5 Z-1 ; ポイント G
G01 X21 Y8 Z-1 ; ポイント H
G03 X19 Y10 Z-1 I-2 J0 ; ポイント I
G01 X13 Y10 Z-1 ; ポイント J
G03 X11 Y8 Z-1 I0 J-2 ; ポイント K
G01 X11 Y5 Z-1 ; ポイント L
G01 X5 Y5 Z-1 ; ポイント B
G01 X5 Y5 Z0
G28 X0 Y0
M05
M30
%

Gコードプログラムの説明:

  1. コード初期化。この文字(%)はプログラムの冒頭と末尾に常に存在します。
  2. 安全行:メトリックシステムでのプログラミング設定(すべての寸法を mm で)、XY 平面、絶対位置決め、送り速度 100 インチ/分。
  3. スピンドルを時計回りに 1000 RPM でオン。
  4. ポイント B(5,5) へ高速位置決め。
  5. 同じ位置で制御された動き、工具を -1 まで下げる。
  6. 位置 C(5,15) へ直線切削移動。
  7. ポイント D(9,19) へ時計回り円運動、中心点 (9,15)。
  8. ポイント E(23,19) へ直線切削。
  9. ポイント F(32,5) へ直線切削。
  10. 同じ直線切削でポイント G(21,5) へ。
  11. さらに直線切削でポイント H(21,8) へ。
  12. ポイント I(19,10) へ反時計回り円弧補間、中心点 (19,8)。
  13. ポイント J(13,10) へ直線切削。
  14. ポイント K(11,8) へ反時計回り円弧切削、中心点 (13,8)。
  15. 位置 L(11,5) へ直線切削。
  16. 最終直線切削移動で位置 B(5,5) へ。
  17. 工具を上げる。
  18. ホーム位置へ移動。
  19. スピンドルオフ。
  20. メインプログラム終了。

このコードが Universal G-code Sender ソフトウェアを通じて CNC マシンに送信される準備が整った状態は以下の通りです:

Gコードマスター:CNC・3Dプリンター操作に必須の主要コマンド解説

以上、説明した主要な Gコードコマンドを使用して、完全な Gコードを手作業で作成できました。もちろん、この例はかなりシンプルで、より複雑な形状には確実に CAM ソフトウェアが必要です。馬の形状の複雑な Gコード例を示します:

Gコードマスター:CNC・3Dプリンター操作に必須の主要コマンド解説

比較のために、このコードは約 700 行ありますが、すべて自動生成されました。この Gコードは、私の DIY Arduino CNC フォームカッティングマシンの例として Inkscape を使用して作成されました。完成形は以下の通りです:

Gコードマスター:CNC・3Dプリンター操作に必須の主要コマンド解説

このマシンの詳細については、私の専用チュートリアルをご覧ください。

まとめ

Gコードの基礎をカバーし、最も重要で一般的な Gコードコマンドを説明し、手動で実際の Gコードを作成しました。結局のところ、Gコードを理解するのはそれほど難しくないと思います。もちろん、CNC 加工や 3D プリントで使用される他の多くのコマンドや機能にも注意すべき点がありますが、それらは別のチュートリアルで説明します。

この記事が役に立った場合は、他の CNC と 3D プリント愛好家と共有してください。また、下のコメント欄で自由に質問してください。

製造プロセス

  1. フォーチュン、グレインジャーを多様化卸売部門「最も賞賛される企業」に選出
  2. ハードウェア成功におけるDesign for Manufacturing(DFM)の決定的役割
  3. 主要数学定数:ネイピア数(e)と円周率(π)— 応用と定義
  4. CNCプログラミング入門:GコードとMコードの違いとCAMシステムへの進化
  5. 工場の重要ポジションに最適な人材を採用する4つの戦略
  6. 部品表(BOM)の必須7要素:PCB設計者が知っておくべきこと
  7. 機械工場を選ぶ前に確認すべき6つの重要ポイント
  8. Fanuc Gコード 総合リファレンス:CNCプログラミング必携
  9. クレーン安全の5大鉄則:より安全な作業現場のために
  10. RFトランスフォーマー:設計、機能、主要用途
  11. 高性能塗料に求められる顔料の必須品質