NCの穴加工では、以下のような手順で加工することがあります。
穴位置の精度をよくするため、下穴を作ります。
ドリルを使って穴をあけます。
内面の加工精度を上げきれいに仕上げます。
この3工程の中心座標は同一である必要があります。 NCマクロを使うと位置ずれを起こすことなく、少ないGコードの記述で作ることができます。
この図のように12個の穴加工をします。
穴加工の繰り返し手順を作ります。
#1=1
WHILE[#1 LT 4] DO 1
#1=#1+1 (次の加工に)
END 1
加工工程に使う工具を決定します。
IF[#1 EQ 1] THEN #101 = 8
IF[#1 EQ 2] THEN #101 = 16
IF[#1 EQ 3] THEN #101 = 1
加工工程に使うサブプログラムを決めます。
G65P#1+100X50.Y50.
G65P#1+100X50.Y150.
P101はセンター加工
P102はドリル加工
P103はリーマ加工
穴加工のサブプログラムを作ります。
(センター加工)
O101
(1mmの深さ、天面から5mm上で移動する)
G81X#24Y#25Z#100-1.R#100+5.
M99
引数のXは#24のローカル変数に入る
引数のYは#25のローカル変数に入る
#100のコモン変数には天面の高さ
プログラムの全体です。
(#100はワーク天面の高さ)
#100=200.
(#1は加工の段階)
#1=1
WHILE[#1 LT 4] DO 1
(工具番号を決定する)
IF[#1 EQ 1] THEN #101 = 8
IF[#1 EQ 2] THEN #101 = 16
IF[#1 EQ 3] THEN #101 = 1
T#101M06 (工具交換)
S1000M3 (主軸回転)
G65P#1+100X50.Y50. (加工サブプログラムと穴座標)
G65P#1+100X50.Y150.
G65P#1+100X50.Y250.
G65P#1+100X150.Y50.
G65P#1+100X150.Y150.
G65P#1+100X150.Y250.
G65P#1+100X250.Y50.
G65P#1+100X250.Y150.
G65P#1+100X250.Y250.
G65P#1+100X350.Y50.
G65P#1+100X350.Y150.
G65P#1+100X350.Y250.
M05 (主軸停止)
#1=#1+1 (次の加工に)
END 1
M30 (マシン停止)
(センター加工)
O101
(1mmの深さ、天面から5mm上で移動する)
G81X#24Y#25Z#100-1.R#100+5.
M99
(ドリル加工)
O102
(30mmの深さ、天面から5mm上で移動する)
G81X#24Y#25Z#100-30.R#100+5.
M99
(リーマ加工)
O103
(20mmの深さ、天面から5mm上で移動する)
G85X#24Y#25Z#100-20.R#100+5.
M99
メインプログラムとサブプログラムの役割分担はいろいろ考えられるのですが、メインプログラムで図面の情報と使う工具がわかるように設計しました。