Programming Haas CNC Control G-Codes and M-Codes
CNCCookbook の G-Code Tutorial
Haas は世界で最も人気のある CNC マシンをいくつか作っているので、その独自の G-Code の使用方法を知ることは重要なスキルである可能性があります。
Haas: Smart strategy when it comes to their CNC G-Code dialect…
彼らは世界で最も人気のある方言、Fanuc(このコースで扱うもの)から始めて、互換性を維持しながらその上に構築しています。 これは、ほとんどの Fanuc g-code が Haas 上で動作することを意味し、かつ、追加された特殊なコードによって、まだいくつかの大きな利点があることを意味するので、賢明な戦略です。
この記事は、そのようなものをピックアップするためのものです。
Haas G-Code for Mills とは何でしょうか。 円形ポケット
では、それぞれの仕組みを分解して見ていきましょう。
G12 & G13 Gコードです。 Circular Pockets
Circular Interpolation または Helical Interpolation は、CNC プログラミングでよく目にするものです。 エンドミルの直径よりもはるかに大きな穴を開けるために、エンドミルが円形またはらせん状の経路をたどるようにプログラムされている場合です。
これらの特殊な Haas G コードは、この操作を簡単に実行できるようにするものです。 G12は時計回りに、G13は反時計回りに切削します。 以下はポケットを作成するために使用する言葉です:
D*: 工具の半径または直径。 D00を使用すると、Haasにカッターの補正を使用しないように指示します。
F: 送り速度
I: 最初の円(またはKがない場合は仕上げ)の半径。 Iは工具半径より大きく、Kより小さくなければなりません。
K*: 仕上げの円の半径
L*:
Q*: より深いカットを繰り返すループ回数。 半径のインクリメントまたはステップオーバー。
Z: カットの深さまたは増分
* = オプションで省略可能
これらの G コードを使用するには、まずツールを円の中心より上に配置することから始めてください。 円内のすべてのマテリアルを削除するか、円の半径だけをカットするかを選択できます。 半径だけをカットする場合は、I値を半径に設定し、K値やQ値は指定しない。 すべての材料を削除したい場合は、I値とQ値を工具の直径より小さくし、K値を円の半径と同じにします。
以下は、半径を削るだけのサンプルプログラムです。
%
(SAMPLE G12)
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 X0 Y0 (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z0.1 (ツールオフセット1オン) ;
M08 (クーラントオン) ;
( 円を切る ) ;
G12 I0.75 F10.1 (円弧を切る) ;
G43 H01 Z0. Z-1.2 D01 (仕上げポケットCW) ;
G00 Z0.1 (リトラクト) ;
G00 Z0.1 (リトラクト) ;
G00 Z0.1 M09 (早戻し、クーラントオフ) ;
G53 G49 Z0 M05 (Z原点、スピンドルオフ) ;
G53 Y0 (Y原点) ;
M30 (プログラム終了) ;
%
そしてこれが、そのプログラムのツールパスをGウィザードエディタでバックプロットしてみますと、このようになります。
G12 は半径スタイルのカットに設定…
G51 G-Code。 Scaling
G51 スケーリングは Fanuc コントロールで使用できますが、Haas では少し異なります。 以下は Haas の構文です:
G51 X_ Y_ Z_ P_
X, Y, および Z では、スケーリングの任意の中心を指定することができます。 それらがない場合、中心は原点(パートゼロ)である。 Pはスケーリングファクターである。
スケーリングは Haas コントロールのオプションの追加コスト機能であることに注意してください。
スケーリングは多くの目的のために便利で、スケーリングの章にその詳細があります。 Non-Modal Machine Coordinate System
G53 では、1ブロック分の作業座標系をキャンセルすることができます。 つまり、ノンモーダルである。 G49は工具のオフセットをキャンセルするので、Z値がある場合はG49と一緒に使用する必要があります。 G53で、G90は有効のままです。
G68 Gコードです。 Rotation
スケーリングと同じく、回転もFanucにありますが、Haasでは少し違います。 また、ローテーションを有効にするのは追加料金のオプションです。
G68 は、後続の X、Y、Z、I、J、および K 値を回転中心で指定角度だけ回転させます。 G69 は G68 の回転をキャンセルします。
回転を使用する前に、回転計画が G17、G18、または G19 によって指定されていることを確認します。
以下は G68 の構文です。
G68 a_ b_ R
aは指定した平面の最初の軸の回転中心に対する座標です。 つまり、G17の場合はXです。bは第2軸の回転中心の座標です。 G17の場合はYです。
R は回転角度を度単位で指定します。 360から-360までの値を使用できる。
G101 G-Code。
G101 X_ Y_ Z_ A_ B_
以下の構文:
G101 X_ Y_ Z_ A_ B_
少なくとも一つの軸を指定しなければならない。 軸ワードで指定された値は無視されますが、アラームを回避するために値が必要です。
G100 を使用して、鏡像をキャンセルします。 General Purpose Pocket Milling
G150 は非常に派手で便利な G コードです。 CNC 旋盤のフライス加工用の G71 サイクルに相当すると考えてください。 要するに、これは g-code の中のミニ CAM プログラムです。
これが行うことは、小さな g-code プログラムとしてポケットのアウトラインを指定することです。 G150 はそのポケットをクリアします。
以下は構文です:
G150 G41* P_ F_ D_ I_ J_ K_ Q_ R_ X_ Y_ Z_ L_ S_
そして以下はパラメータが行うことです:
- P: ポケット アウトラインを指定するサブプログラムの番号です。 必須!
- F: Feedrate
- D: Tool diameter offset selection.
- I: X軸のカットインクルージメント。 各パスでこれだけの材料を削除します。
- J: Y軸の切り込み量
- K: 最終パスの仕上げ切り込み量
- Q: 1パスあたりのZ軸の切り込み量の増分。 Mustは0に等しくてもよく、必須です。 Qは正の増分ステップダウン量です。
- R: R平面位置(必須)。 早送り時の後退面です。
- X, Y: 開始穴の位置
- Z: 最終ポケット深さ
- L: 追加ポケットのためのオプションの繰り返し回数
- S:
- S: オプションのスピンドル速度
G41 cutter compは通常指定されますが、お好みでG42も使用できます。
最初に注意すべきことは、G150では各パスでエンドミルを切削深さに落とすために使用できるポケット深さの穴があることを想定していることです。
次に、P-ワードで参照されるポケット定義は、サブルーチンではなく、サブプログラムでなければなりません。
その他の注意点:
- サブプログラムのG、I、R、X、Y以外のコードは無視されます。
- サブプログラムの最初の手は、穴からポケットの端の点まででなければなりません。
- サブプログラムでG91(増分)またはG90(絶対)移動を使用しても問題ありません。
- Z深さの仕上げパスはありません、ポケットの壁のみです。
- 反復ポケットにLを使用する場合、G150ラインにG91と増分の位置決めが必要です。 最初にすべてのポケットのエントリーホールを開けたことを確認してください!
G150のGコードはかなり巧妙ですが、結局のところ、CAM Softwareはポケットプログラムをより簡単に、より少ないエラーで行うことができます。 G150は、簡単にプログラムし視覚化できるシンプルなポケットのために持っています。