Gコードの説明|最も重要なGコードコマンドのリスト
あなたの仕事や趣味がCNCマシンや3Dプリンターと関連している場合、Gコードとは何か、そしてそれがどのように機能するかを理解することはあなたにとって不可欠です。したがって、このチュートリアルでは、Gコード言語の基本、最も重要または一般的なGコードコマンドを学習し、それらがどのように機能するかを説明します。
Gコード CNC(Computer Numerical Control)マシン用のプログラミング言語です。 Gコードは「GeometricCode」の略です。この言語を使用して、マシンに何をすべきか、またはどのように何かを行うかを指示します。 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に400mmの速度で直線的に移動するように指示します。 /分。単位はmm/minです。これは、Gコードの例の画像を振り返ると、単位をミリメートルに設定するコマンドG21を使用したことがわかるためです。インチ単位の単位が必要な場合は、代わりにG20コマンドを使用します。
したがって、Gコードの行を読み取る方法がわかったので、最も重要な、または一般的に使用されるGコードコマンドを見てみましょう。それぞれがどのように機能するかをいくつかの例で学び、このチュートリアルの終わりまでに、Gコードのしくみ、読み取り方法、変更方法、さらには独自のGコードの記述方法を完全に理解できるようになります。
G00 コマンドは、最大移動速度で現在の位置から指定されたポイントまたはコマンドで指定された座標に機械を移動します。機械はすべての軸を同時に動かすので、それらは同時に移動を完了します。これにより、新しい位置ポイントに直線的に移動します。
G00は非切削ムーブメントであり、その目的は、機械を目的の位置にすばやく移動して、切削や印刷などのある種の作業を開始することです。
G01 Gコードコマンドは、設定された送り速度または速度で直線的に移動するように機械に指示します。 Xで終了位置を指定します 、 Y およびZ 値、および Fでの速度 価値。マシンコントローラは、その直線を取得するために通過する中間点を計算(補間)します。これらのGコードコマンドはシンプルで非常に直感的に理解できますが、その背後で、マシンコントローラーはこれらの動きを行うために毎秒数千の計算を実行します。
位置決めのためだけに使用されるG00コマンドとは異なり、G01コマンドはマシンがメインジョブを実行しているときに使用されます。旋盤やフライスの場合は、材料を直線で切断し、3Dプリンターの場合は、材料を直線で押し出します。
G02 コマンドは、円形パターンで時計回りに移動するようにマシンに指示します。これはG01コマンドと同じ概念であり、適切な機械加工プロセスを実行するときに使用されます。終点パラメータに加えて、ここでは回転の中心、つまり円弧の中心点から円弧の始点までの距離も定義する必要があります。始点は、実際には前のコマンドまたは現在の点からの終点です。
理解を深めるために、前の例のG01コマンドの後にG02コマンドを追加します。
したがって、最初の例では、マシンをX5、Y12ポイントに移動するG01コマンドがあります。これがG02コマンドの開始点になります。 G02コマンドのXおよびYパラメータを使用して、終点を設定します。ここで、円運動または円弧を使用してこの終点に到達するには、その中心点を定義する必要があります。これは、IパラメーターとJパラメーターを使用して行います。 IとJの値は、前のコマンドの開始点または終了点を基準にしています。したがって、中心点をX5とY7に合わせるには、 0のオフセットを作成する必要があります。 X軸に沿って、 -5のオフセット Y軸に沿って。
もちろん、中心点は他の場所に設定できるため、同じ終点で終わる別の円弧が得られます。その例を次に示します。
したがって、ここでは前の例と同じ終点(X10、Y7)がありますが、中心点は異なる位置(X0、Y2)にあります。これにより、前のものと比較してより広い弧が得られました。
参照:ArduinoでGRBLをセットアップして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)に到達すると、ポイントD(25,25)に到達するための別のG01コマンドがあります。次に、円運動であるG02コマンドを使用して、中心点(25,15)を持つ点E(35,15)に到達します。実際には、次のG02コマンドに同じ中心点(25,15)があり、点F(31,7)に到達します。ただし、最後の終点または点Eから中心をオフセットしているため、IパラメータとJパラメータは前のコマンドとは異なることに注意してください。ツールパスは、点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コードプログラムの説明:
このコードがUniversalG-codeSenderソフトウェアを介してCNCマシンに送信される準備ができているように見える方法は次のとおりです。
そのため、上記で説明したこれらの主要なGコードコマンドを使用して、独自の本格的なGコードを作成することができました。もちろん、この例は非常に単純であり、より複雑な形状の場合は、CAMソフトウェアを使用する必要があります。馬の形の複雑なGコードの例を次に示します。
比較のために、このコードには約700行ありますが、すべてが自動的に生成されます。 Gコードは、DIYArduinoCNCフォームカッティングマシンの例としてInkscapeを使用して作成されました。形がどのように出てきたかは次のとおりです。
このマシンの詳細については、私の特定のチュートリアルを確認できます。
そこで、Gコードの基本を説明し、最も重要で一般的なGコードコマンドについて説明し、実際のGコードを手動で作成しました。結局のところ、Gコードを理解することはそれほど難しいことではないと思います。もちろん、CNC機械加工や3D印刷で使用されるコマンドや機能は他にもたくさんあるので、知っておく必要がありますが、それについては他のチュートリアルで詳しく説明しています。
この記事が役に立った場合は、他のCNCおよび3D印刷愛好家と共有してください。また、下のコメントセクションでお気軽に質問してください。 Gコードとは何ですか?
Gコードコマンドの読み方
G00 –ラピッドポジショニング
G01 –線形補間
G02 –時計回りの循環補間
G00、G01、G02の例–手動Gコードプログラミング
G00 X5 Y5 ; point B
G01 X0 Y20 F200 ; point C
G01 X20 Y0 ; point D
G02 X10 Y-10 I0 J-10 ; point E
G02 X-4 Y-8 I-10 J0 ; point F
G01 X-26 Y-2 ; point B
Code language: Arduino (arduino) G03 –反時計回りの循環補間
G20 / G21 –ユニットの選択
G17 / G18 / G18 –Gコード平面の選択
G28 –帰宅
G28 X## Y## Z##
G28.1 X## Y## Z##
で定義できます。 。 G90 / G91 –Gコードコマンドの配置
G01 X10 Y5
前の位置に関係なく、ツールをその正確なポイント(10,5)に移動します。G01 X10 Y5
ツールをポイント(20,15)に移動します。このモードは「インクリメンタルモード」とも呼ばれます。
M30 S1000
という行 1000RPMの速度でスピンドルをオンにします。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
Code language: Arduino (arduino)%
G21 G17 G90 F100
M03 S1000
G00 X5 Y5 ; point B
G01 X5 Y5 Z-1 ; point B
G01 X5 Y15 Z-1 ; point C
G02 X9 Y19 Z-1 I4 J0 ; point D
G01 X23 Y19 Z-1 ; point E
G01 X32 Y5 Z-1 ; point F
G01 X21 Y5 Z-1 ; point G
G01 X21 Y8 Z-1 ; point H
G03 X19 Y10 Z-1 I-2 J0 ; point I
G01 X13 Y10 Z-1 ; point J
G03 X11 Y8 Z-1 I0 J-2 ; point K
G01 X11 Y5 Z-1 ; point L
G01 X5 Y5 Z-1 ; point B
G01 X5 Y5 Z0
G28 X0 Y0
M05
M30
%
Code language: Arduino (arduino)
製造プロセス