4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

G-codeの基本【3Dプリンタ】

Posted at

G-codeとはなんぞや?

皆さん、G-codeというものをご存じでしょうか?

G-codeとは、コンピュータで制御された工作機械 (CNC) や、3Dプリンタの制御に使われているコードになります。

プログラミング言語というよりかは、1行で命令を送るコードであり、機械工作の制御をするもの。
という認識が合っているかと思います。
工業系の方には馴染みあるかもしれません。

近年は3Dプリンタで認知され始めてきたのと、且つ弊社に3Dプリンタが置いてあるので、皆さんにもっと身近に認知してもらおうと記事を書くことにしました。

G-codeの役割

それでは本題に入ります。
3DプリンタでのG-codeの役割とは、

  • フィラメントを送り出すエクストルーダーの制御
  • 移動命令
  • X,Y,Z軸の座標制御
  • 速度指定
  • 温度制御
  • 原点設定

おおよそこれらに分けられます。

用語説明

  • フィラメント = 3Dプリンターでの造形に使われる材料のこと
    (PLA,ABSなどの樹脂素材)
  • エクストルーダー = 材料のフィラメントを溶かし、押し出す部品

下記が3DモデルのG-codeになります。
(ほんの一部ですが、実際のコード量はかなり多いです。)

example.gcode
G21 ; set units to millimeters
M107
M104 S230 ; set temperature
G28 ; home all axes
G1 Z20 F5000 ; lift nozzle
M109 S230 ; wait for temperature to be reached
G90 ; use absolute coordinates
G92 E0
M82 ; use absolute distances for extrusion
G1 F1800.000 E-3.00000
G92 E0
G1 Z0.200 F7800.000
G1 X68.046 Y52.941 F7800.000
G1 E3.00000 F1800.000
G1 X68.993 Y51.791 E3.03788 F910.408
G1 X69.380 Y51.415 E3.05160
G1 X70.862 Y50.335 E3.09823
G1 X71.979 Y49.821 E3.12948
G1 X72.259 Y49.721 E3.13703
G1 X73.800 Y49.373 E3.17720
G1 X74.742 Y49.295 E3.20124
G1 X76.030 Y49.342 E3.23402
G1 X78.756 Y49.701 E3.30391 F910.408
G1 X80.162 Y50.046 E3.34071

~~~~~~~~~~~~~~~

G92 E0
G1 Z30.700 F7800.000
G1 X87.179 Y68.009 F7800.000
G1 E3.00000 F1800.000
G1 X86.748 Y67.847 E3.00797 F600.000
G1 X86.639 Y67.782 E3.01016
G1 X86.425 Y67.531 E3.01586
G1 X86.273 Y67.211 E3.02198
G1 X86.606 Y67.270 E3.02783
G1 X86.742 Y67.330 E3.03039
G1 X86.854 Y67.421 E3.03288
G1 X86.903 Y67.491 E3.03437
G1 X87.151 Y67.956 E3.04346
G1 X86.849 Y67.783 F7800.000
G1 F1800.000 E0.04346
G92 E0
M107
M104 S0 ; turn off temperature
G28 X0  ; home X axis
M84     ; disable motors

見てもほとんど分からないとは思いますので、1つずつ見ていきます。

G1 X87.151 Y67.956 E3.04346
G1 X86.849 Y67.783 F7800.000

移動命令はG0,G1の2つがあり、G0は高速移動、G1は直線移動を意味します。
G1に続けて記述されているXとYは、それぞれX軸とY軸の座標を意味します。
Eの値があると思いますが、Eはフィラメントの押出量を意味しています。
Fの値は速度を指定しています。
これを紐解いていくと、フィラメントを3.04346mm押し出しながら、X軸87.151,Y軸67.956の位置に移動する。
7800mm/minの速度で、X軸86.849,Y軸67.783の位置に移動する
という意味になります。

原点回帰

G28 ; 全て原点に戻す
X87.151 Y67.956 E3.04346 ; Z軸だけ原点に戻す。 

G28というコマンドはX,Y,Z軸を0の位置に戻すコマンドです。
1行目のG28のみの記述の場合、全ての軸が0に移動します。
2行目のように値があるものに関しては、記述がない軸のみ0に戻ります。

コメントアウト
ほかのプログラミング言語と同様にコメントアウトを記述することが可能です。
;(セミコロン)から続けて記述し、改行までがコメントとして扱われます。

最後に

これでG-codeの基本が理解できたと思います。

3DCADソフト等で用いられる3Dモデルは.STLというファイルフォーマットであり、3Dプリンタではこれらをスライサーソフトというものを用いて.gcode形式に変換し、3Dプリンタ側にデータを送信することで造形が開始されます。

もし機会があれば.gcodeファイルを覗いてみてはいかがでしょうか?

4
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?