上図のような、ワーク中心が原点で円周上を等間隔に加工する場合、
CAMで全箇所パスを出すのは面倒くさい。
回転補正「G11」「G68」とマクロを使えば、一ヶ所のパス(上図で赤い箇所)だけで全箇所加工することができる。
オークマ(OSP)の場合
回転補正「G11」
G11 X0 Y0 P10.
CALL O1001
G10
G11は回転補正
XとYは角度の中心の座標
Pは角度
G10で回転補正キャンセル
マクロを使って1周加工する
VC101 = 1001
VC102 = 0
VC103 = 45
O1111
PREG O1001
N1
G11 X0 Y0 P[VC102]
CALL O=VC101
G10
VC102 = VC102 + VC103
IF[ VC102 LT 360 ] N1
RTS
VC101はパスのサブプログラム
VC102は角度のカウンター(0→45→90→135…→315)
VC103は角度(ここでは45°)
回転補正をかける
↓↓
VC101のサブプログラムを呼び出す
↓↓
VC102にVC103(45)が足される。
↓↓
VC102が360より下の場合、N1へ飛ぶ。
↓↓
VC102が360以上の場合、ループを抜けプログラム終了。
↓↓オークマのIF文を使ったループについてはこちら↓↓
FANUCではWHILE文、オークマ(OSP)ではIF文を使ってループさせる
FANUCではWHILE文を使ってループさせる。オークマ(OSP)ではIF文を使ってループさせる。NCプログラムのIF文は、C言語、JavaScript、SWIFTなどのIF文とは使い方が異なるため、使い方には注意。
↓↓「PREG」の使い方はこちら↓↓
オークマ(OSP)でマクロ(変数)を使ってサブプログラムを呼び出すときはPREGを使ってO番号を登録する
変数を使ってサブプログラムを呼び出すときは、「PREG」を使って呼び出したいサブプログラムのO番号を登録する。1個の「PREG」に登録できるO番号は10個(多分)。サブプログラムをたくさん使う場合は、「PREG」を複数使う。
FANUCの場合
回転補正「G68」
G68 X0 Y0 R10.
M98 P1111
G69
G68は回転補正
XとYは角度の中心の座標
Rは角度
G69で回転補正キャンセル
マクロを使って1周加工する
#101 = 1001
#102 = 0
#103 = 45
O1111
WHILE[ VC102 LT 360 ] DO1
G68 X0 Y0 P#102
M98 P1111
G69
#102 = #102 + #103
END1
RTS
#101はパスのサブプログラム
#102は角度のカウンター(0→45→90→135…→315)
#103は角度(ここでは45°)
回転補正をかける
↓↓
#101のサブプログラムを呼び出す
↓↓
#102にVC103(45)が足される。
↓↓
#102が360より下の場合、N1へ飛ぶ。
↓↓
#102が360以上の場合、ループを抜けプログラム終了。
↓↓FANUCのWHILE文を使ったループについてはこちら↓↓
FANUCではWHILE文、オークマ(OSP)ではIF文を使ってループさせる
FANUCではWHILE文を使ってループさせる。オークマ(OSP)ではIF文を使ってループさせる。NCプログラムのIF文は、C言語、JavaScript、SWIFTなどのIF文とは使い方が異なるため、使い方には注意。
まとめ
回転補正は、オークマ(OSP)「G11」、FANUC「G68」。
等間隔の角度を振った加工の場合、マクロを使えば1ヶ所のパスを作るだけで1周加工できる。
プログラムがスッキリし、編集がしやすくなる。