Gコードマスター:CNC・3Dプリンター操作に必須の主要コマンド解説
あなたの仕事や趣味が CNC マシンや 3D プリンターに関連しているなら、Gコードが何であり、どのように機能するかを理解することは必須です。このチュートリアルでは、Gコード言語の基礎、最も重要かつ一般的な Gコードコマンド、それらの動作原理を学びます。 Gコードは、CNC(コンピュータ数値制御)マシンのためのプログラミング言語です。Gコードは「Geometric Code(幾何学コード)」の略です。この言語を使用して、マシンに何をするか、どのようにするかを指示します。Gコードコマンドは、マシンにどこへ移動するか、どの速度で移動するか、どの経路をたどるかを指示します。 旋盤やフライス盤などの工作機械の場合、切削工具がこれらのコマンドによって駆動され、特定の工具経路をたどって材料を削り、望みの形状を得ます。 同様に、積層造形または 3D プリンターの場合、Gコードコマンドはマシンに材料を層ごとに堆積させ、精密な幾何学的形状を形成するよう指示します。 初めて Gコードファイルを見ると、かなり複雑に見えるかもしれませんが、実際にはそれほど理解するのは難しくありません。 コードをよく見ると、ほとんどの行が同じ構造を持っていることに気づきます。Gコードの「複雑」に見える部分は、見える数値のすべてであり、それらは単なるデカルト座標です。 1 行を取り上げて、それがどのように機能するか説明しましょう。 G01 X247.951560 Y11.817060 Z-1.000000 F400.000000 この行の構造は以下の通りです: G## 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コードの 1 行の読み方がわかったので、最も重要かつ一般的に使用される Gコードコマンドを見ていきましょう。いくつかの例を通じてそれぞれの動作を学び、このチュートリアルの最後までに Gコードの仕組み、読み方、修正方法、さらには独自の Gコードの書き方を完全に理解できるようになります。 G00 コマンドは、マシンを現在位置からコマンドで指定された座標または指定点まで最大移動速度で移動させます。マシンはすべての軸を同時に移動させ、同時に移動を完了します。これにより、新しい位置点への直線的な移動が実現されます。 G00 は非切削移動であり、その目的はマシンを目的の位置へ素早く移動させ、切削や印刷などの何らかの作業を開始できるようにすることです。 G01 Gコードコマンドは、設定された送り速度でマシンを直線的に移動させるよう指示します。X、Y、Z の値で終了位置を指定し、F 値で速度を指定します。マシンコントローラーは、その直線を得るために通過する中間点を計算(補間)します。これらの Gコードコマンドはシンプルで直感的に理解しやすいですが、裏ではマシンコントローラーがこれらの動きを実現するために毎秒数千回の計算を行っています。 G00 コマンドが単なる位置決めに使用されるのに対し、G01 コマンドはマシンが主作業を実行する際に使用されます。旋盤やフライス盤の場合は直線での材料切削、3D プリンターの場合は直線での材料押出しです。 G02 コマンドは、マシンに時計回りの円運動で移動するよう指示します。G01 コマンドと同じ概念で、適切な加工プロセスの実行時に使用されます。終了点パラメータに加えて、ここでは回転中心、または円弧開始点から円弧中心点までの距離を定義する必要があります。開始点は実際には前のコマンドの終了点、または現在の点です。 理解を深めるために、前の例の G01 コマンドの後に G02 コマンドを追加してみましょう。 この例では、最初に G01 コマンドでマシンを X5、Y12 の点へ移動させます。これが G02 コマンドの開始点になります。G02 コマンドの X と Y パラメータで終了点を設定します。この終了点まで円運動または円弧で到達するには、中心点を定義する必要があります。これは I と J パラメータを使用して行います。I と J の値は開始点、つまり前のコマンドの終了点を基準とした相対値です。中心点を X5、Y7 にするには、X 軸方向に 0、Y 軸方向に -5 のオフセットが必要です。 もちろん、中心点を別の場所に設定することもでき、それによって同じ終了点で異なる円弧が得られます。例: ここでは前の例と同じ終了点(X10、Y7)ですが、中心点が異なる位置(X0、Y2)にあります。これにより前の例よりも広い円弧が得られます。 関連記事: GRBL のセットアップと Arduino での CNC マシン制御方法 これら 3 つの主要な Gコードコマンド、G00、G01、G02 を使用したシンプルな CNC フライス加工の例を見てみましょう。 上記の画像に示された形状の工具経路を得るには、以下の Gコードコマンドが必要です: 最初の 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コードを作成します。 G02 と同様に、G03 Gコードコマンドはマシンに円運動で移動するよう定義します。唯一の違いは動きが反時計回りであることです。他のすべての機能とルールは G02 コマンドと同じです。 これら 3 つの主要な Gコードコマンド、G01、G02、G03 を使用すれば、文字通りあらゆる形状の工具経路を生成できます。それがどのように可能か不思議に思うかもしれませんが、コンピューターと CAM ソフトウェアにとっては実際には簡単な作業です。確かに、Gコードプログラムを手動で作成することも時々ありますが、ほとんどの場合は適切なソフトウェアを使用して行います。それははるかに簡単で安全です。 それでも、さらにいくつかの重要で一般的なコマンドを説明し、最後に実際の Gコード例を作成します。 G20 と G21 コマンドは Gコードの単位、インチまたはミリメートルを定義します。 単位はプログラムの冒頭で設定する必要があります。単位を指定しない場合、マシンは前のプログラムで設定されたデフォルトを考慮します。 これらの Gコードコマンドでマシンの作業平面を選択します。 G17 がほとんどの CNC マシンのデフォルトですが、他の 2 つも特定の動きを実現するために使用できます。 G28 コマンドは、マシンに工具を基準点またはホーム位置へ移動するよう指示します。衝突を避けるため、X、Y、Z パラメータで中間点を含めることができます。工具は基準点へ向かう前にその点を通過します。 ホーム位置は G90 と G91 コマンドで、マシンに座標の解釈方法を指示します。G90 は 絶対モード、G91 は 相対モード です。 絶対モードでは、工具の位置決めは常に絶対点または原点から行われます。したがって、 一方、相対モードでは、工具の位置決めは最後の点を基準として相対的に行われます。マシンが現在点 (10,10) にいる場合、 以上で説明した Gコードコマンドは最も一般的なものですが、他にも多くあります。カッター補正、スケーリング、ワーク座標系、ドウェルなどのコマンドがあります。 Gコードに加えて、本格的な Gコードプログラムを生成する際に使用される Mコードコマンドもあります。一般的な Mコードコマンドをいくつか紹介します: 3D プリンターの場合: これらのコマンドの一部には適切なパラメータが必要です。例えば、M03 でスピンドルをオンにする際、S パラメータでスピンドル速度を設定できます。したがって、 多くのコードが モーダル であることにも注意してください。これは、別のコードによってキャンセルまたは置き換えられるまで効力を持ち続けることを意味します。例えば、直線切削移動のコード 送り速度パラメータ F にも同じことが当てはまります。値を変更したい場合を除き、すべての行に含める必要はありません。 Gコードファイルによっては、コマンドの前に「N##」が付いている場合があります。N ワードは単にコードの行またはブロックに番号を付けるためのものです。巨大なプログラムでエラーが発生した場合に特定の行を特定するのに役立ちます。 以上を読んだことで、実際の完全なコードを手動で作成できるようになりました。例を示します: Gコードプログラムの説明: このコードが Universal G-code Sender ソフトウェアを通じて CNC マシンに送信される準備が整った状態は以下の通りです: 以上、説明した主要な Gコードコマンドを使用して、完全な Gコードを手作業で作成できました。もちろん、この例はかなりシンプルで、より複雑な形状には確実に CAM ソフトウェアが必要です。馬の形状の複雑な Gコード例を示します: 比較のために、このコードは約 700 行ありますが、すべて自動生成されました。この Gコードは、私の DIY Arduino CNC フォームカッティングマシンの例として Inkscape を使用して作成されました。完成形は以下の通りです: このマシンの詳細については、私の専用チュートリアルをご覧ください。 Gコードの基礎をカバーし、最も重要で一般的な Gコードコマンドを説明し、手動で実際の Gコードを作成しました。結局のところ、Gコードを理解するのはそれほど難しくないと思います。もちろん、CNC 加工や 3D プリントで使用される他の多くのコマンドや機能にも注意すべき点がありますが、それらは別のチュートリアルで説明します。 この記事が役に立った場合は、他の CNC と 3D プリント愛好家と共有してください。また、下のコメント欄で自由に質問してください。Gコードとは?
Gコードコマンドの読み方

最も重要・一般的な Gコードコマンド
G00 – 高速位置決め

G01 – 直線補間

G02 – 時計回り円弧補間


G00、G01、G02 の例 – 手動 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 ; ポイント BG03 – 反時計回り円弧補間

G20 / G21 – 単位選択
G17 / G18 / G19 – Gコード平面選択

G28 – ホーム復帰
G28 X## Y## Z##
G28.1 X## Y## Z## コマンドで定義できます。G90 / G91 – 位置決め Gコードコマンド
G01 X10 Y5 というコマンドは、前の位置に関係なく工具を正確な点 (10,5) へ移動させます。G01 X10 Y5 というコマンドは工具を点 (20,15) へ移動させます。このモードは「インクリメンタルモード」とも呼ばれます。その他のコマンドとルール
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シンプルな Gコードプログラム例

%
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
%



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