G-Code
3Dプリンタ(Ender 3)も CNC 3018 ProもG-codeというもので動いています。
3Dプリンタだと、
CAD(FreeCADやFusion360などなど):数値図面STL形式 ⇒ スライサー(Curaなど):G-Code ⇒ Arduino系制御ボードのファームウェア(Marlin・Octpas/Klipperなどなど)
で3Dプリンタが動く
CNCも
CAD(FreeCADやFusion360などなど):数値図面 ⇒ CAM(FreeCAD Path Fusion360CAMなどなど):G-Code ⇒ GRBLソフト(Candle, LazerGRBL, Lightburnなどなど)⇒ Arduino系制御ボードのファームウェア(GRBL 1.1などなど)
でレーザーエングレーバーや、CNCが動いています。
どちらもG-Codeという制御用のコマンド集で動いているんですが、時々、その中身をいじりたくなることもあり、G-Codeの中身のメモを作っておきます。
NISTのG-Code
G-Codeそのものは、NIST(National Institute of Standards and Technology:米国国立標準技術研究所)で標準化されているんですね。
https://reprap.org/wiki/G-code
G-Codeが、だいたい位置決めっぽいやつで、M-Codeがスピンドルやヘッドとかの動きをする感じですかね?
ファームウェアの実装がされているかどうかで、使えるG-Codeも違うようです。
3Dプリンタで、ベッドのレベリングを保存したりする時に使うM28も

Marlinは対応してるけど、Kilpperは??? grblも??? (バージョンで違うんだと思います)
ちょっと勉強がてらG-Codeを眺めるのに少し便利なスプレッドシート作って。。

こういうので、Curaで作ったやつとか。。FreeCADが吐き出すGcodeを眺めたりします。。
3D Printer (Firmware Marlin)
ここに対応しているG-Code・M-Codeの一覧があります。
https://marlinfw.org/meta/gcode/
ちなみに、ボードは、Creality純正 Ender-3 Silent Motherboard Kit 32 Bit / V4.2.7
ものすごい量のG-Code,M-Codeですね。

バージョンによって、対応しているものしていないものがありますね。
CNC3018Pro(Firmware grbl1.1)
https://github.com/gnea/grbl/wiki
ここにかなり詳しく掲載されています。
https://cnc-selfbuild.blogspot.com/2017/02/grbl11g.html
割りと少なめなんで、表にしておきました。
| コード | 意味 |
| G0, G1 | リニアモーション |
| G2, G3 | 円弧とらせん状の動き |
| G4 | 滞在する |
| G10 L2, G10 L20 | 作業座標のオフセットを設定します |
| G17, G18, G19 | 平面の選択 |
| G20, G21 | 単位 |
| G28, G30 | 事前定義された位置に移動します |
| G28.1, G30.1 | 事前定義位置を設定します |
| G38.2 | プロービング |
| G38.3, G38.4, G38.5 | プロービング |
| G40 | カッター半径補正モードオフ(のみ) |
| G43.1, G49 | 動的ツール長オフセット |
| G53 | 絶対座標を移動します |
| G54, G55, G56, G57, G58, G59 | 作業座標系 |
| G61 | パス制御モード |
| G80 | モーションモードのキャンセル |
| G90, G91 | 距離モード |
| G91.1 | アークIJKの距離モード |
| G92 | 座標オフセット |
| G92.1 | 座標系オフセットをクリア |
| G93, G94 | フィードレートモード |
| M0, M2, M30 | プログラムの一時停止と終了 |
| M3, M4, M5 | スピンドルコントロール |
| M7* , M8, M9 | クーラントコントロール |
| M56* | 駐車運動のオーバーライドコントロール |
僕のメインボードは、
GRBL 1.1J と GRBL 1.1 f って何がちがうんでしょ??
Laser mode $32=1 が効くか効かないかみたいですね。。
いろんなソフト・ファーム・制御ボードがあるので、ちょっと忘備録として



コメントを残していただけるとありがたいです