G-code が記述するもの
G-code は、3D プリンター、CNC 機械、その他のモーションシステムで使われる行単位の命令言語です。1 行で移動を指示したり、モーダル設定を変更したり、温度を設定したり、コントローラー固有の機能を更新したりできます。
コマンドは単独では意味が確定しないことがあります。結果は、単位モード、座標モード、押出モード、機械設定、ファイルを解釈するファームウェアに左右されます。そのため、このリファレンスでは共通の意味と、意味を変える文脈の両方を説明します。
G-code は、完全に統一された 1 つのプリンターファイル規格というより、互いに関連する方言の集合として捉える方が正確です。基本的な移動構文は重なりますが、利用できるコマンド、パラメーター、初期状態、拡張機能は対象ファームウェアと設定によって異なります。
コマンド行を読む
G1 X120 Y40 E1.6 F1800G1複数軸を同期させた直線移動を要求します。
X / YG90/G91 の状態に応じて、目標位置または移動距離を指定します。
EM82/M83 の状態に応じて、押出機の位置または押出距離を指定します。
F送り速度を設定します。プリンターファイルでは通常 mm/分で表し、後続の移動も最後の値を引き継ぐことがあります。
; ...通常は人やソフトウェア向けのコメントを開始します。スライサーはレイヤーやフィーチャー種別を示すために使いますが、ラベルは標準化されていません。
文字ごとに文脈から独立した単位があるわけではありません。X は座標、F は送り速度ですが、S は温度、ファン出力、その他の設定を表すことがあります。パラメーターは、それを所有するコマンドと組み合わせて解釈してください。
印刷ファイルは通常 3 つの部分に分かれる
準備
単位と位置決めモードを設定し、ヒーターを起動し、原点復帰、ツール選択、レベリング、クリーニング、開始マクロなどを実行します。ここで後続の値の解釈方法が決まります。
レイヤー本体
多数の移動、押出、リトラクション、ファン、温度変更によって造形物を作ります。レイヤーやフィーチャー種別は、専用コマンドではなくスライサーコメントで示されることがよくあります。
終了処理
ヒーターとファンを停止し、ツールヘッドを持ち上げるか退避し、モーターを解放し、機械固有の終了マクロを呼び出すことがあります。終了部分が欠けると、ジョブ後の機械状態が想定と異なる場合があります。
; 開始:状態を設定
G21
G90
M83
G28
; 本体:空移動後に印刷
G0 X40 Y20 Z0.20 F9000
G1 X80 Y20 E1.40 F1800
; 終了:出力を停止
M104 S0
M140 S0
M107これは構造を説明する例であり、どの機械でも実行できる完全なファイルではありません。原点復帰方向、加熱順序、退避位置、マクロ名は対象プリンターに合わせる必要があります。
状態によって後続の意味が変わる
| 状態 | コマンド | 重要な理由 |
|---|---|---|
| 軸の位置決め | G90 / G91 | 後続の X、Y、Z が絶対位置または相対距離になります。 |
| 押出の位置決め | M82 / M83 | E 軸は移動軸とは独立したモードを使用できます。 |
| 単位 | G20 / G21 | 座標と移動速度がインチまたはミリメートルとして解釈されます。 |
| 送り速度 | F | 多くのインタープリターは、後の移動で変更されるまで最後の F 値を保持します。 |
| アクティブツール | T0 / T1... | 複数ツール機では、同じ温度または押出コマンドでも別のツールに作用することがあります。 |
| 座標の再設定 | G92 | 物理的に移動せず、現在位置に新しい論理座標を割り当てられます。 |
持続状態は読み違いの大きな原因です。E1.6 だけを見ても、1.6 mm 押し出したとは断定できません。M83 では今回の増分ですが、M82 では新しい累積位置です。
ファームウェアの文脈が重要
Marlin、Klipper、RepRapFirmware、CNC コントローラーは基本的な移動コマンドを共有しますが、完全に交換可能な 1 つの言語ではありません。同じ目的でも、システムごとにコマンド名、パラメーター、値の尺度が異なる場合があります。
| システム | 拡張方式 | 確認事項 |
|---|---|---|
| Marlin | RepRap 系コマンド | 多くの機能がビルド時オプションのため、同じリリースでも設定によって使えるコマンドが異なります。 |
| Klipper | 標準サブセット + 名前付き拡張 | 共通の標準サブセットに加えて SET_PRESSURE_ADVANCE などを提供し、マクロで動作を追加または上書きできます。 |
| RepRapFirmware | 広範な G-code + マクロと式 | 設定、制御、状態確認に G-code を広く使い、新しいリリースではメタコマンドや式にも対応します。 |
| LinuxCNC / RS274NGC | CNC のモーダルグループと座標系 | 主軸制御、工具補正、ワーク座標、固定サイクルなどの CNC 概念から、プリンターの E 軸やヒーター動作を推測することはできません。 |
したがって、互換性判断に最低限必要なのはファームウェア名、バージョン、設定です。拡張子や他の機械での成功だけでは、自分のプリンターで同じように実行されるとは限りません。
未知のファイルを確認する手順
- スライサー、対象機械、ファームウェアを確認します。情報がなければ、互換性は不明として扱います。
- 後続の移動を読む前に、単位、軸モード、押出モード、原点復帰、ツール、ヒーター設定を確認します。
- X/Y/Z の変化と E の変化を分けて追い、空移動、印刷、リトラクション、プライムを区別します。
- セミコロンコメントはスライサーが提供する手掛かりであり、機械が実行するコマンドではありません。すべてのスライサーが同じラベルを使うとも限りません。
- マクロ、名前付き拡張、未知の M-code は、番号から推測せず、そのファームウェア版の公式資料で確認します。
- 最後に、終了部分がヒーター、ファン、その他の出力を停止しているか、退避移動が限界を超えたり造形物に接触したりしないか確認します。
各コマンドページの内容
- 簡潔な定義と、正しく解釈するために必要な状態。
- 構文とパラメーターの意味、実用的な G-code 例。
- 機械動作を変え得るファームウェア差異とよくある誤り。
- ローカルビューアーが確認できることと、確認できないことの明示。
ビューアーで確認できること
ビューアーは対応する経路と一部のファイル情報を表示できますが、プリンター設定を再現したり、実機の動作を正確に予測したりはできません。
まず確認したい主要コマンド
このガイドで使用した公式資料
2026 年 8 月 5 日に以下の一次資料と照合しました。共通する行構造と、コントローラー方言が分かれる理由を説明する資料です。