マクロ解説:第7回 マクロを書きながら学ぶポケット加工
マクロ変数は、一覧を読んで覚えるよりも、実際にNCデータを書き進めながら理解するほうが定着します。ここでは、ボックス形状のワークに対する正方形ポケット加工(3軸)を例にして、マクロ変数とシステム変数を少しずつ導入し、最後に「使い回せるマクロ」に仕上げていきます。NCVIEW Trialの「ポケット加工」(ページ最下部)にNCデータを追加しながらポケット加工を完成させましょう。
全体像
- ポケット加工のパラメータ設定
- Zを一定量ずつ下げながら繰り返し(段削り)
- 各Z面でXYを往復して面をさらい(ラスタ走査)
- 最終深さで外周を一周(簡易仕上げ)
1. ポケット加工のパラメータ設定をマクロ変数で置き換える
| 変数 | 内容 |
|---|---|
#100 | ポケット一辺(mm) |
#101 | 最終深さ(mm、負値) |
#102 | ステップダウン(mm) |
#103 | ピック量(mm) |
#104 | 工具径(mm) |
#105 | 退避Z(mm、ワークZ0基準) |
#106 | Z送り(mm/min) |
#107 | XY送り(mm/min) |
NCデータ内を「 POCKET PARAMETERS 」で検索して、空欄に 以下のNCデータを追加しましょう。コピー&ペーストで貼り付けできます。
#100=100. (POCKET SIDE [mm])
#101=-10. (FINAL DEPTH [mm] )
#102=2. (STEPDOWN [mm])
#103=5. (STEPOVER [mm])
#104=10. (TOOL DIA [mm])
#105=5. (SAFE Z [mm] )
#106=200. (PLUNGE FEED [mm/min])
#107=600. (CUT FEED [mm/min])
2. システム変数で工具呼び出しをワーク中心にする
ここでシステム変数を使います。目的は、マクロ本体が中心座標を固定で持たず、呼び出し時の位置を中心にすることです。ここでシステム変数を読み取ります。
NCデータの「SET POCKET CENTER」に以下のNCデータを追加しましょう。
#110 = #5021 (CENTER X)
#111 = #5022 (CENTER Y)
3. 工具中心が移動する範囲を計算する
工具には太さ(直径)があるので、中心を壁の位置まで動かすと、刃は壁の外側まで出てしまい、 削り過ぎ になります。つまり、工具中心はポケットの壁から 工具半径分だけ内側 を走る必要があります。 ポケット一辺の長さを100、工具半径を5とすると、工具中心の動く範囲は -50+5 ~ 50-5、
つまり±45mmとなります。この±45をNCデータに直接書くと工具やポケット寸法が変わるたびに書き直しになります。ここをマクロ変数にすれば、工具径を変えてもNCデータが工具径に対応したポケット加工になります。 NCデータの「GEOMETRY」に以下のNCデータを追加しましょう。
#120 = #100/2. (POCKET HALF LENGTH)
#121 = #104/2. (TOOL RADIUS)
#130 = #110 - #120 + #121 (XMIN tool-center)
#131 = #110 + #120 - #121 (XMAX tool-center)
#132 = #111 - #120 + #121 (YMIN tool-center)
#133 = #111 + #120 - #121 (YMAX tool-center)
4. WHILEで段削り(Z方向の繰り返し)を作ります
段削りはWHILEの練習に向いています。Zを現在値 #140 とし、最終深さ #101 まで #102 ずつ下げていきます。
各段でY(#150)を#103ずつ上げながら、X方向(#160)を交互に切り替えて、X最小(#130)からX最大(#131)まで切削します。
Y方向(#132,#133)も同様です。
NCデータの「POCKETING LOOP」に以下のNCデータを追加しましょう。
このループは少し複雑です。ステップ送りしながら「マクロデバッガー」でコモン変数の#100~#199を表示し、変数の値がどう変わっていくかチェックしていくことをお勧めします。
WHILE [#140 GT #101] DO1
#140 = #140 - #102
IF [#140 LT #101] THEN #140 = #101
(PLUNGE TO LAYER)
G1 Z#140 F#106
(GO TO START CORNER)
G1 X#130 Y#132 F#107
#150 = #132 (CURRENT Y)
#160 = 1 (DIRECTION FLAG: 1 or -1)
WHILE [#150 LT #133] DO2
(X TARGET SWITCH BY FORMULA: #160=1 -> XMAX, #160=-1 -> XMIN)
#170 = #130 + [[#131-#130] * [[#160+1]/2]]
G1 X#170
#150 = #150 + #103
IF [#150 GT #133] THEN #150 = #133
G1 Y#150
#160 = -#160
END2
(RETURN TO CENTER)
G1 X#110 Y#111
END1
5.仕上げ
ポケットの壁際に残っている削り残りを仕上げ加工します。いままで使ったマクロ変数で壁の座標は分かっています。
NCデータの「FINISH」に以下のNCデータを追加しましょう。
G1 Z#101 F#106
G1 X#130 Y#132 F#107
G1 X#131
G1 Y#133
G1 X#130
G1 Y#132
G1 X#110 Y#111
これで簡単なポケット加工のNCデータは完成です。
NCデータ上部の「リセット」ボタンを押して、シングルブロック送りや連続送りをしてシミュレーションしてみてください。以下の図のような形状になります。
また、NCVIEW TrialではNCデータを自由に書き換えることができます。マクロ変数に色々な値を入力してみて、工具の動きがどう変わるかを見ながらマクロの理解を深められます。