NCマクロ【正面フライスのサンプルプログラム】(ファナック編)

NCプログラム

マシニングセンタで正面フライス加工をすることがあると思います。マシンバイスを使って6面加工や鋳物、製缶品などがその例です。加工範囲に合わせて毎回プログラムを作るのは面倒ですよね。そんなときマクロプログラムで作っておくと、次回以降プログラミングがとても楽になります。

この記事は

  • 正面フライス加工のプログラムを毎回作るのは面倒だ!
  • マクロプログラムを作りたいけど、どう作ればいいの?

そんな人のため、「機械加工歴20年のセドヤ」が正面フライス加工用のマクロプログラムを紹介します。
最後まで読むと掲載してあるサンプルプログラムから自分好みのマクロプログラムを作れるようになります。

マクロプログラムの内容

  • 正面フライス加工するNCマクロプログラム。
  • 四角の範囲を一方向で横送り(X方向)で加工。
  • Z方向は切込み量を設定して指定の高さまで繰り返す。

関連記事の紹介

マクロプログラムの基本的な説明はこちら⇓
NCプログラムのマクロを説明(ファナック編)

正面フライスの工具についてはこちら⇓
【正面フライスの使い方】切込み角や切削条件について説明

正面フライス用NCマクロの説明

正面フライス加工をしたいときに、各メインプログラムから G65で呼び出して使います。

マクロの動き

  1. 加工開始点(XY)に位置決め
  2. 加工開始高さ(Z)に位置決め
  3. 平面を加工(正面フライス)
  4. 安全高さ(Z)に位置決め
  5. 最終加工高さまで繰り返す

その他参考

  • 横方向に一方向で加工して安全高さまZを上がり繰り返す。
  • 径方向の切込み量を設定できるようにする。

マクロの変数

マクロで使う変数は以下の通りです。

ローカル変数アドレス説明引数のない場合
(未定義)
#24XX基準座標(絶対値)エラー
#25YX基準座標(絶対値)エラー
#21UX方向の距離
(X基準からの相対値)
エラー
#22VY方向の距離
(Y基準からの相対値)
エラー
#8E工具半径エラー
#18Rレファレンス点エラー
#17Q切込み量最終加工高さで
1回のみ加工
#26Z最終加工高さエラー
#4I逃げ高さエラー
#5J切削間隔の直径割合(%)70が代入される
#6K余白5が代入される
#9F送り速度モーダルFコードに従う
#28引数Rの保存用
マクロプログラムのイメージ図

エラー処理について
誤作動を防ぐため入力ミスがあった場合アラームがでるようにします。

  • エラーの条件
    • X,Y,U,V,E,R,Zの引数がない場合
    • I が R 又は Z より小さい
    • R が Z よりが小さい
  • エラーでアラームをだす方法
    • システム変数 #3000に数字(1~99)を代入するとアラームがでます。
    • 例)#3000=1(ERROR)
      • ( ) 内のコメントがアラームメッセージとして表示されます。

正面フライス用のNCマクロのサンプルプログラム

掲載されているプログラム例には、見やすくするためにスペースを入れています。
掲載してあるプログラムを利用して不利益を負ったとしても、一切の責任を負いかねますのでご了承ください。

#4109:モーダルFコードです。また、G65の引数のI,J,Kはこの順番で入力してください。

O1
G0G90X500.Y-500.
G43Z100.H1
S400M3
G65P500X200.Y-105.U-400.V210.E50.Z0.Q2.R3.I50.J80.K8.F500
M5
M30

O500(MACRO/FACEMILL)
(X#24 X.KIJUN)
(Y#25 Y.KIJUN)
(U#21 X.KYORI)
(V#22 Y.KYORI)
(E#8 KOUGU.HANKEI)
(R#18 R.TEN)
(Z#26 KAKOUTAKASA)
(Q#17 KIRIKOMI)
(I#4 ANZEN.TAKASA)
(J#5 KANKAKU.WARIAI)
(K#6 YOHAKU)
(F#9 OKURI)
IF[#24EQ#0]THEN#3000=1([X] NOT SET)
IF[#25EQ#0]THEN#3000=1([Y] NOT SET)
IF[#21EQ#0]THEN#3000=1([U] NOT SET)
IF[#22EQ#0]THEN#3000=1([V] NOT SET)
IF[#18EQ#0]THEN#3000=1([R] NOT SET)
IF[#26EQ#0]THEN#3000=1([Z] NOT SET)
IF[#4EQ#0]THEN#3000=1([I] NOT SET)
IF[#8EQ#0]THEN#3000=1([E] NOT SET)
IF[#18LE#26]THEN#3000=1([R]LE[Z] ERROR)
IF[#4LT#18]THEN#3000=1([I]LT[R] ERROR)
IF[#5EQ#0]THEN#5=70
IF[#6EQ#0]THEN#6=5
IF[#9EQ#0]THEN#9=#4109(MODAL.F-CODE)
(X.START)
#31=#8+#6
IF[#21GT0]THEN#31=-#31
(KAISUU)
#5=#5/100
#5=#8*2*#5
#1=ABS[#22]+#6(HANI)
#2=FUP[#1/#5](KAISUU)
#3=#1/#2(KEI.KIRIKOMI)
IF[#22GT0]THEN#3=-#3
IF[#22LT0]THEN#1=-#1
#30=#18(R.COPY)
WHILE[#30NE#26]DO1
#27=#30
IF[#17EQ#0]THEN#30=#26
IF[#17NE#0]THEN#30=#30-ABS[#17]
IF[#30LT#26]THEN#30=#26
#33=#2-1(COUNTER)
WHILE[#33GE0]DO2
#32=#33*#3
G0Z#4
#29=#8
IF[#22GT0]THEN#29=-#29
X[#24+#31]Y[#25+#1+#32+#29]
Z#27
G1Z#30F#9
G1X[#24+#21-#31]
G0Z#4
#33=#33-1
END2
END1
M99

不明点はこちら ⇓ 確認していただけます。
NCプログラムのマクロを説明(ファナック編)

正面フライス用NCマクロの使い方

すでに説明した通り削り方向は1方向のX方向の送りです。
距離(UV)の指定で削っていく方向が決まります。符号は正しく入力してください。

基準点が右下、左上の場合ダウンカットになり、基準点が左下、右上の場合はアップカットになります。
フライス工具のダウンカットとアップカットの違いについて

径方向の切込み量は最大で直径の「J」%となります。マクロで計算して、等分割するようになっています。例)φ100のフライスで「J」を80%とすると径方向の切込み量が80㎜以下になります。

まとめ:NCマクロ【正面フライスのサンプルプログラム】

正面フライス用のNCマクロプログラム

  • 四角の範囲をX方向の送りで正面フライス削り。
  • 工具半径を変更するだけで同じ範囲を加工できる。
  • アップカット、ダウンカットも変更可能。
  • 径方向の切込み量、余白の変更も簡単。

いかがでしたか?
今回紹介した正面フライス用のマクロプログラムを理解したら、自分好みにアレンジしてみてください。例えばY方向の送りのマクロを作っておくと便利です。

以上で終わりです。
最後まで読んでいただきありがとうございます。