すべての記事を表示

繰り返し穴あけサイクル作成のためのマクロプログラミング活用法

TRASA3 Blog

G-code 公開日: 2026-09-22 著者: trasa3 6 表示
繰り返し穴あけサイクル作成のためのマクロプログラミング活用法

繰り返しの穴あけパターンでは長いNCプログラムはほとんど不要です。座標が単純な直列を形成する場合、G81標準サイクル、G91増分位置決め、L繰り返し回数だけで済むことが多いです。しかし長方形の穴あけ網目、複数の部品サイズ、頻繁に変わるピッチのパターンでは、座標を毎回手作業で編集するのは遅くミスも起きやすくなります。マクロプログラミングを使うと、繰り返しの動作はサブプログラムにまとめ、穴の寸法や数を引数として渡せます。

以下の例はマクロオプション付きのHaasマシニングセンタ制御向けです。変数の割り当て、ループ構文、サブプログラム呼び出しはCNC制御装置やソフトウェア設定によって異なります。必ず使用する制御装置のマニュアルを確認し、プログラムをグラフィックで検証し、初回はワーク上空で試運転してください。

標準サイクルで足りる場合

G81は穴あけ作業の繰り返しコードをほぼ排除します。サイクルが有効になると、G80でキャンセルされるまで制御装置はX/Yの新しい位置ごとに穴あけを行います。Haasのドキュメントには、X軸の増分移動とL回数で等間隔の穴列を作る例が示されています:

G90 G54 X10. Y20.
G43 H01 Z50.
G99 G81 Z-12. R2. F120.
G91 X25. L4
G80
G90

この方法は一本の直線列に便利です。最初の穴はG81を有効にした位置で開けられ、G91 X25. L4でさらに4つの位置が追加されます。最初のサイクル実行を見落とすと余分な穴ができたり、意図したパターンがずれたりします。

他にも標準サイクルには種類があります。G82は底面での停止を追加し、G83はピッチ穴あけ用、G98やG99は戻り位置を制御します。選ぶサイクルは工具、深さ、材料、切りくず排出条件に合う必要があります。マクロは座標と繰り返しを管理し、正しい穴あけ技術に代わるものではありません。

パラメトリックマクロの利点

長方形の穴あけ網目は9つの値で定義できます:最初の穴の座標、X軸とY軸のピッチ、列数と行数、穴あけ深さ、R面、送り速度。オペレーターは呼び出し行だけを変え、入れ子のループが各穴の座標を計算します。

次の呼び出しではXとYが網目の始点、IとJがピッチ、AとBが列数と行数を示します:

G65 P9010 X10. Y20. I25. J20. A4. B3. Z-12. R2. F120.

Haas制御ではG65の引数はマクロサブプログラムのローカル変数に割り当てられます。この例ではXが#24、Yが#25、Iが#4、Jが#5、Aが#1、Bが#2、Zが#26、Rが#18、Fが#9に対応します。G65呼び出しごとに新しいローカル変数セットが渡されるため、同じコードを異なる寸法や加工条件で使えます。

長方形網目用マクロ

O09010 (DRILL RECTANGULAR PATTERN)

#30 = 0 (ROW INDEX)

WHILE [#30 LT #2] DO1
  #31 = 0 (COLUMN INDEX)

  WHILE [#31 LT #1] DO2
    #32 = [#24 + #31 * #4] (CURRENT X)
    #33 = [#25 + #30 * #5] (CURRENT Y)

    G90 G00 X#32 Y#33
    G81 Z#26 R#18 F#9
    G80

    #31 = #31 + 1
  END2

  #30 = #30 + 1
END1

M99

外側のループが行数を、内側のループが列数をカウントします。座標は開始点に位置番号×ピッチを加えて計算されます。A4、B3なら12個の穴をあけます:3行それぞれに4つの穴。

この教育用バージョンではG81を各位置で起動・解除します。実行時間はわずかに増えますが、サイクル状態が一つの動作に明確に限定されます。生産用マクロではサイクルを複数位置で維持できますが、最初の実行、モーダル状態、G80キャンセルを慎重に管理する必要があります。

メインプログラムと安全な状態

マクロは工具番号、長さ補正、主軸回転数、ワークオフセットを自動判別すべきではありません。これらはメインプログラムに残し、段取り作業の確認を容易にします。

O01000
G90 G17 G40 G49 G80 G94
G54
T1 M06
S1800 M03
G00 X10. Y20.
G43 H01 Z50.
M08

G65 P9010 X10. Y20. I25. J20. A4. B3. Z-12. R2. F120.

G80
G00 Z50.
M09
M05
G53 G00 Z0.
M30

このプログラムはG17面、G90絶対位置決め、G54作業座標系、G43 H01工具長補正を設定してからマクロを呼び出します。安全な高さ、機械座標系での退避位置、機器の起動順序は機械と工場の標準に従う必要があります。

生産用マクロに必要なチェック

パラメトリックコードは手作業の編集を減らしますが、一つの誤った引数で穴あけパターン全体が狂う恐れがあります。生産用マクロは入力値を検証すべきです。行数・列数は正の整数であること、R面はワーク表面の安全側にあること、計算されたX/Y座標がワーク範囲と機械の移動範囲内に収まっていることを確認します。

  • 実際の制御装置で引数とローカル変数の対応を確認する。
  • 入れ子ループのDO番号とEND番号が正しく対応しているか確認する。
  • 最終点を事前に計算する:X + (A − 1) × I と Y + (B − 1) × J。
  • Zの符号、R面の位置、G98またはG99の戻りモードをチェックする。
  • まずグラフィックシミュレーションを行い、次に早送り速度を落とした単一ブロック実行を試す。
  • バイスやクランプがある場合は穴あけ位置だけでなく移動軌跡も確認する。

引数の未指定防止も有効です。ローカル変数が未設定で空値になる制御装置では、マクロが動作前にアラームを出せます。正しい空値判定やアラーム文法は制御装置のマニュアルを参照してください。

マクロが効果的な場面

穴が5つだけの単品部品なら、単純なG81サイクルと座標リストのほうが読みやすいこともあります。マクロはパターンが一定のルールで変わる場合に有効です:長方形や円形配列、同一部品の複数サイズ、異なるワークオフセットでの繰り返し穴あけ、共通の加工工程を持つ製品群など。

良いマクロは役割が明確でインターフェースがわかりやすいものです。引数の意味はコメントや段取りシートに記録し、正しい呼び出し例をプログラム近くに保存します。段取り担当者はループカウンターや座標計算式を編集せずに網目寸法や加工条件を変更できます。

HaasはG65引数のローカル変数への割り当て標準穴あけサイクルの動作を公式に解説しています。これらを出発点にし、使用機のソフトウェアバージョンに合わせて動作を確認してください。

繰り返し穴あけサイクル作成のためのマクロプログラミング活用法

この記事は以下の言語でご覧いただけます: