G Code Commands in 3D Printing

G-code or Gcode. この言葉は、3Dプリントに携わったことのある方なら一度は耳にしたり、用語集で読んだことがあるのではないでしょうか。 今回は、Gコードとは何か、そして3Dプリントで何に使われるかをお伝えします。 また、これから3Dプリントを始めたい、あるいはすでに始めている方にとって、どのG-Codeコマンドが重要であるかを紹介します。

G-Codeとは何か、何に使うのか

3Dプリンタは.stl、.objなどの形式の3Dモデルに対してあまり何もできません。これは、幾何形状は保存されていても、3Dプリンタがその形状をどう処理すべきなのかは保存されていないためです。 “レイヤー番号5のモデルをどのくらいの速度でプリントすべきか?”などの質問に、3Dプリンターが答えなければならないのです。 その答えは、3Dプリンターの言語であるGコードにあります。 Gコードによってのみ、プリンターは何をすべきかを知ることができます。

スライサーは、3DモデルをGコードに変換し、機械関連のデータも挿入します。 これらは、使用する 3D プリンター用に正確に定義されています。 つまり、Creality CR-10 プリンターのような 3D プリンター キット用に作成した G-Code は、Ultimaker 2 を使用している友人には使えません。

これを行うには、機械関連の設定を変更する必要があります。 例えば、プリントベッドの大きさなどです。 この設定が間違っていると、プリンタはプリントベッドの真ん中から、もしかしたらその外側から友人と始めるかもしれません。

したがって、間違ったコードを理解し、必要に応じて改善するために、Gコードの基礎知識を持っていると有利になります。

よく使うGコードコマンドとその意味

以下では、それぞれのGコードコマンドの意味、個別化が可能か、Gコードコマンドはどのように見えるかを紹介します。 そのため、詳しく見てみるのも悪くありません。 G1は、次のポイントへ直線的に移動するよう、プリンターに指示します。 このコマンドを使用して、1つまたは複数の軸を制御できます。

注意:エクストルーダーは、他の軸と同様に制御されます。 したがって、材料の流れ(押し出し)とフィラメントの後退を制御できます。

値:
X、Y、およびZを指定すると、プリンタにどのポイントに移動するかを指示することができます。 ただし、これらのコマンドは位置決めのタイプ(絶対/相対)に従って実行されるため、正確な座標に移動するか、現在の点までの距離に移動するかを決定します。

Eコマンドを追加すると、3Dプリンタが途中で押し出しも行うべきかどうか、行う場合はどの程度行うかを決定できます。 押し出しの長さは、フィーダーによってノズルに押し込まれる材料の長さを意味することに注意してください。 つまり、プリンターに10mm押し出すように指示した場合、ダイから出てくる長さは10mmではなく、もっと長いものになります。 これは、フィラメントの直径が1.75mmや2.85mmで、ダイの直径が通常0.4mmしかないためです。 このため、スライサーからのE値はプリンタがブリッジする距離よりも低くなります。

Fコマンドはプリンタに移動する速度を伝えます。 この速度は、スライサーでmm/sを選択した場合でも、常にmm/minで与えられます。

多くの 3D プリンタは、実際に移動させるべき軸の値のみを必要とします。 X 軸だけを動かしたい場合は、X と速度の F 値を追加します。

例:

G1 X0 Y0 F3000 加熱ベッド上で 3000 mm/min の速度で X=0, Y=0 に点移動させる。
G1 Z10 F1000 Z軸を1000mm/minの速度でZ=10mmに移動させる。
G1 X30 E10 F1600 加熱ベッド上でX=30mmまで駆動しながら10mmのフィラメントをノズルに押し込み、1600mm/minの速度で移動します。

G4 一定時間圧力を停止

G4命令で、プリンタをある時間停止させる可能性を持っています。

値:

P000 – プリンタはミリ秒単位で指定された時間だけ待機します。

S000 – プリンタは秒単位で一定時間待機します (このコマンドは Repetier、Marlin、RepRap Firmware、Smoothieware にのみ適用されます)

例を挙げます。

G4 P500 ; 500 ミリ秒待機して時間内に何もしない – この時間の間に、熱盤温度などすべてのプリンタパラメータを設定します。

G21-changing units in millimetres

ほとんどすべての 3D プリンタはデフォルトで単位を使用するので、このコマンドを使用しなければならないことはそうそう起こらないはずです。 しかし、プリンタをインチに設定しているようであれば、このコードを覚えておいて損はありません。

値:

なし

例:

G21

G28-Takes the homing through

このコマンドは 3D プリンタでいわゆるホーミングを行うために吸引します。 原点復帰をすると、プリントヘッドは、すべての軸(X、Y、Z)のエンドストップに到達したときに、その「ゼロ点」に戻ります。 これは、プリントヘッドが各印刷で同じ始点を持つようになるために重要です。 Gコード内のパスは、この始点から定義されます。 この特定の点への参照がなければ、3Dプリントは合理的ではありません。 プリントの終了時にも、このコマンドはよく実行されます。 これにより、3Dプリントされたモデルを簡単に取り除くことができます。

値:
値が指定されていない場合、プリンタは3軸すべてのエンドストップまで実行されます。 ただし、X、Y、またはZの文字を追加するだけで、どの軸に移動するかを選択することもできます。

例:

G28 Homing for all axes (X, G28 X Y X Y軸の原点復帰
G28 Z Z 軸のみの原点復帰

G90,G91-Set Positioning Mode (ポジショニングモード)です。)

プリンタは絶対位置決めまたは相対位置決めのいずれかを実行できます:

– 絶対位置決め。 ここでは、3Dプリンタが移動すべきX、Y、またはZの正確な座標を指定します。 これにはG90.
-相対位置決めコマンドを使用します。 現在の位置(X、Y、Z)から(X、Y、Z)方向にどれだけ移動すべきかを3Dプリンタに指示します。 これはコマンド G91 で動作します。
– おそらく、G コードで絶対位置決めをより頻繁に見つけるでしょう。スライサーはすでに 3 軸の正確な座標を知っており、絶対位置を決定するためにそれを使用するからです。

Values:
None.

Examples:

G90 Use absolute positioning for all three axes
G1 X10 F3000 Drive on the heating bed F3000)<5789><5136><9432><935>G1 X20 F3000 <5789><935>3000mm/minの速度でX=20mmの点まで加熱ベッド上で駆動することです。
G91 3軸とも相対位置を使用
G1 X10 F3000 加熱ベッドの現在位置から右に10mm移動、3000mm/minの速度で移動します。
G1 X10 F3000 加熱ベッドの現在位置からさらに10mm右に移動、3000mm/minの速度で移動。 こうすることで、特定の軸のオフセットを補正することができます。 このコマンドは、押出機、すなわちE軸と組み合わせて、フィラメントの位置を決定するためによく使用されます。 現在のフィラメントの位置を上書きすることができ、エクストルーダーに関連する他のすべてのコマンドはこの位置を基準点とします。

Values:
G92 コマンドで上書きする軸の絶対座標を指定します。 これはX、Y、Z、そしてEにも有効です。軸を省略した場合、その値は現在の位置に上書きされません。

例:

G92 E0 現在のフィラメント位置は、押出機のE=0に設定されます。
G1 E10 F800 長さ10mmのフィラメントを押し出す

M104 と M109 コマンドで押し出し機の温度設定

この二つのGコードコマンドで押出し機の温度設定を行うことができる。

– M104:このコマンドは、押出機の加熱を開始し、それ以降のコマンドを直接実行できるようにします。
– M109:このコマンドは、押出機の温度を設定します。 このコマンドは、目的の押出機温度に達するまで待機します。

GコードコマンドM109はおそらくもっと頻繁に見ることができ、さもなければ、希望の温度に達する前に圧力が始まるかもしれません。

すべての3DプリンターのGコードはこのようになっているのでしょうか。 例えば、プリンターが.gcodeファイルではなく、.x3gコードを読み取る場合に起こります。 その場合、M109の代わりにM133が使用されます。 3Dプリンターによっては(Flashforge DreamerやDremelなど)、M6コマンドを使用するものもあります。

値:

S 値では、押出機の温度を摂氏で設定できます (S190=190℃)
T 値は、3D プリンターに複数の押出機があって、特定の温度を希望の値に設定したい場合に使用するとよいでしょう。 通常、T0 は右の押出機で、T1 は左の押出機を表します。

例:

M104 S190 T0 T0 から 190℃に加熱を開始します。
G28 X0 押出機の加熱中にX軸の原点復帰を行う。
M109 S190 T0 さらなるコマンドを実行できるように、T0が190℃になるまで待ちます。

M106 ファン速度制御(ファン速度設定)

M106 コマンドで 3D プリンタのコンポーネントファンの速度を設定することができます。 お使いのプリンターには、エクストルーダーを冷却するファンも搭載されている場合がありますので、ご注意ください。 そのため、まず正しいファンが搭載されているかどうかを確認する必要があります。

値:
ここで、S値はファンの速度を決定し、0=オフ、255=100%の平均速度を決定します。

例:

M106 S255 ファンの速度を100%に設定します。 (255/2=127,5)
M106 S0 ファンを完全にOFFにする。

M140 および M190-G コード 加熱ベッドの温度設定コマンド(ベッド加熱コマンド)

M140 および M190 コマンドで、上記の M104 および M109 コマンドに類似した加熱ベッドの温度設定を決定することができます

– M140: このコマンドは、加熱ベッドを加熱することから始まり、他のコマンドを直接実行することができます
– M190: このコマンドは、ヒーティングベッドの希望する温度になるまで待ちます。

ヒーティングベッドの加熱には時間がかかる場合があることに注意してください。

印刷中に3Dプリンターが、印刷を続けるまで(M190で)突然停止しても、驚かないでください。 しかし、加圧を開始する前に、最初のレイヤーの安定した温度を確保するために、M190 コマンドをインストールする必要があります。

Does this apply to any 3D printer?

M104 および M109 コマンドと同様に、これも使用するファームウェアに依存します。 Flashforge Dreamer や Dremel などのプリンタは M7 を使用します。

値:

S 値では、加熱床の温度を摂氏で設定できます (S30=30 度)。 ほとんどの3Dプリンターには加熱床が1つしかないので、それ以上の調整などは必要ありません。

例:

M140 S50 加熱床を50℃に加熱してから開始します。
G28 全軸の原点復帰を行い、同時に加熱床を50℃に加熱します。
M190 S50 加熱床が50℃になるまで待機し、次のコマンドを実行できるようにする。

コメントを残す

メールアドレスが公開されることはありません。