NC編集:ケズリバ編集部

マシニングセンタのプログラム入門:ブラウザで動くシミュレータと採点つき練習問題

G54・G43・G41 の 3 つがそろえば、マシニングはもう怖くない。まずは ▶ を押してみよう

マスコットのチップス
マシニングセンタのプログラム入門:ブラウザで動くシミュレータと採点つき練習問題

マシニングセンタ(MC)のプログラムは、旋盤より軸が 1 本多く、ワーク座標系(G54)・工具長補正(G43)・工具径補正(G41)という「機械に教える前提」が 3 つ重なるのが難所です。どれか 1 つでも抜けると、工具がワークやバイスに突っ込みます。この記事では、ブラウザの中で動くマシニングのシミュレータを使い、最初の 1 行から順に書き方を確かめます。プログラムを打って ▶ を押すと、工具が動いて材料が削れ、回転数・加工時間・衝突や補正のし忘れの警告が出ます。後半には、図面どおりに削れたかを自動で判定する採点つきの練習問題 5 問があります。

書き方は、多くの機械で使われている FANUC 互換の G コードを基準にしました。FANUC の取扱説明書は一般に公開されていないため、FANUC 互換の書き方は三菱電機[1]・Siemens の ISO 方言[2]・Haas[4] の公開資料で確かめ、書き方が違う機械はその都度書いています。実際の機械では、必ずその機械の説明書と社内の決まりに従ってください。

まず動かしてみる:マシニングのシミュレータ

下のプログラムは、φ10 のエンドミルで深さ 2 mm の溝を 1 本削るだけの見本です。▶ を押して、工具が「交換 → 回転 → 原点の上へ → 下りる → 削る → 上がる」と動く順番を見てください。行を書き換えて、もう一度 ▶ を押すと結果が変わります。素材は 80×60×20、原点は上面の左手前の角です。

    X—
    Y—
    Z—
    T—
    S0
    F0
    —0:00

      • 工具は T1=φ20、T2=φ10 のエンドミル、T3=φ6.8 のドリルを用意してあります。工具長補正の H と工具径補正の D は、工具番号と同じ番号に値が入っている前提です
      • 実機と違い、機械の加減速・工具のたわみ・パラメータの設定は考えていません。見るのは「プログラムと工具の動きの対応」だけです
      • 大学や高専の実習でも、シミュレーションで工具の動きを画面で確かめてから実機に進む教え方が報告されています。ただし多くのシミュレータは材料と工具しか描かないので、バイスや治具・カバーへの衝突は見えません。実機の前には、治具の高さと工具の突き出しを自分で確かめる習慣が要ります[19][20]
      • 工作機械の衝突の研究でも、工具長の登録の誤りは事前のチェックで見落とされやすい原因として挙げられています[21]。このシミュレータは H に正しい長さが入っている前提なので、実機では工具長の測定値を必ず見直してください

      座標:X・Y・Z と、ワーク原点 G54

      立形のマシニングセンタは、テーブルの左右が X、前後が Y、主軸の上下が Z です。どの軸も工具がワークから離れる向きがプラスと決まっています(JIS B 6310/ISO 841)[16][17][1]。つまり工具が上がる向きが +Z で、ワークを削るときは Z マイナスへ下ります。

      +X+Y+Z右へ(ワークの長い向き)奥へ(柱の側)上へ(工具が離れる)ワーク原点(G54)この記事では上面の左手前の角主軸とエンドミルZ マイナスへ下りると削れる
      立形マシニングセンタのテーブルとワーク(絵はイメージ図)。工具がワークから離れる向きがプラスなので、工具が上がる向きが +Z、ワークを正面から見て右が +X、奥が +Y です。テーブルが動く機械では、テーブルは 逆向き に動きます(+X の指令でテーブルは左へ)。

      機械にはもともと機械原点(機械座標の 0)がありますが、ワークをバイスのどこにくわえたかは機械にはわかりません。そこで、ワークの基準の角(または中心)が機械座標でどこにあるかを測ってワーク座標系として登録し、プログラムでは G54 と書いてそれを呼び出します[1][2]。G54〜G59 の 6 つを使い分けられるので、バイスを 2 台並べたときは 1 台目を G54、2 台目を G55 にする、といった使い方をします。

      図解:機械原点とワーク原点(座標系)

      XYG54 のオフセット量G54 の原点G55 の原点G52 ローカル機械原点(機械座標の 0)
      機械原点からワーク原点までのずれ(オフセット量)を G54〜G59 の番号ごとに登録しておき、プログラムで呼び出す。番号を変えれば同じプログラムで別の位置のワークを削れる。
      • 原点の決め方:図面の寸法の基準(左手前の角、穴の中心など)に合わせると、図面の数字をそのままプログラムに書けます。Z0 は仕上げ後の上面に置くのがふつうです
      • 原点の測り方:エッジファインダー・タッチセンサーで X・Y を、ツールセッターや基準ブロックで Z を測ります(検査器具)
      • 機械座標で動かしたいときは G53(その行だけ機械座標)を使います

      プログラムの形:最初の数行に「安全ブロック」

      NC プログラムは、1 行(ブロック)ごとに「アルファベット+数字」のワードを並べたものです。1 ブロックの終わりは EOB(画面では ;)、プログラムの先頭には O 番号を書きます。この形は ISO 6983-1(JIS B 6315-1)で決められています[17][1]。見本のプログラムを 1 行ずつ読むと、次のようになります。

      O2000                  (プログラム番号)
      G21 G90 G17 G40 G49 G80 (安全ブロック:mm・アブソリュート・XY 平面・
                                径補正なし・工具長補正なし・固定サイクルなし)
      G54                    (ワーク座標系を呼ぶ)
      T2 M06                 (2 番の工具に交換)
      S3200 M03              (主軸 3,200 min-1 で正転)
      G00 X10. Y30.          (早送りで溝の始まりの真上へ)
      G43 H2 Z30.            (2 番の工具長補正をかけて Z30 へ)
      M08                    (クーラント ON)
      Z2.                    (上面の 2 mm 上まで早送り)
      G01 Z-2. F150          (毎分 150 mm で 2 mm 下りる)
      X70. F500              (毎分 500 mm で溝を削る)
      G00 Z30.               (上がる)
      M09                    (クーラント OFF)
      M05                    (主軸停止)
      G91 G28 Z0.            (Z だけ機械原点へ戻る)
      G90                    (アブソリュートに戻す)
      M30                    (プログラム終了・先頭へ戻る)

      安全ブロックは、前のプログラムや手動操作で残った状態(インチ指令、インクレメンタル、補正のかけっぱなし、固定サイクルのかけっぱなし)を最初に打ち消すための行です。G コードの多くはモーダル(一度指令すると、取り消すまで続く)なので、プログラムの先頭で毎回そろえるのが安全です[1][4]。

      コード意味初心者がつまずく点
      G21・G20mm・インチ日本の機械はふつう mm。インチの機械のプログラムを流用するときは数字の意味が 25.4 倍変わる
      G90・G91アブソリュート(原点からの位置)・インクレメンタル(いまの位置からの距離)G91 のまま次の行へ進むと、X10. が「10 mm 進む」に変わる
      G17XY 平面を選ぶ(円弧・工具径補正・固定サイクルの面)G18・G19 のままだと、円弧が別の面で描かれる
      G40・G49・G80工具径補正・工具長補正・固定サイクルの取り消し補正がかかったまま次の工具に移ると、位置がずれる

      図解:同じ動きを絶対値(G90)と増分値(G91)で書く

      10203040506010203040XY原点①(20, 10)②(50, 10)③(50, 30)G90 絶対G91 増分①X20. Y10.X20. Y10.②X50. Y10.X30.③X50. Y30.Y20.G90:原点からの位置G91:今の位置からの移動量
      原点から①→②→③へ動く同じ経路を、G90 は原点からの位置で、G91 は今いる位置からの移動量で書く。G91 では動かない軸は書かなくてよい。

      工具交換と工具長補正:T・M06・G43 H

      マシニングセンタは、T(工具番号)と M06(工具交換)でマガジンの工具を主軸に付け替えます[1][12]。付け替えたあと、その工具の長さを機械に教えるのが工具長補正 G43 H□です。工具によって主軸の端から刃先までの長さが違うので、H の番号に登録した長さの分だけ Z をずらして、どの工具でも「Z0 = ワークの上面」になるようにします[1][9]。

      図解:工具長補正:主軸ゲージラインと H

      主軸主軸ゲージライン(主軸端)H工具長補正量ワーク(上面が Z0)Z10.G43 Z10. H01 ならゲージラインからH だけ下の工具先端がZ10. に来る
      G43 Z_ H_ は、主軸ゲージラインから工具先端までの長さ H を足して動くので、工具の先端が指令した Z に来る(工具長をゲージラインから測る一般的な設定の例)。H 番号の書き間違いは衝突に直結する。
      • H の番号は工具の番号と同じにするのがふつうです(T2 なら H2)。番号を取り違えると、別の工具の長さで動いて Z の位置が数十 mm ずれ、ワークに突っ込みます[9]
      • G43 をかける行は、ワークから十分上(Z30. など)で。補正をかけた瞬間に Z が補正量の分だけ動きます[2]
      • 機械によって補正のかかり方が違います。Haas の新しい制御(NGC)は G49・H00 を書かない限り工具長補正がかかったままで、工具交換で自動的に切り替わります[9]。Siemens の本来の書き方には H がなく、D の番号で工具長と工具径の両方の補正が入ります[3]。FANUC 互換の機械では、毎回 G43 H を書くのが基本です
      • 工具交換の前には Z を機械原点へ戻すのが一般的です。G91 G28 Z0. は「いまの位置から増分 0 の点を通って Z の機械原点へ戻る」という意味で、G90 のまま G28 Z0. と書くと、ワーク座標の Z0(ワークの上面)まで下りてから戻るので危険です[2][7]
      • G28 で軸を書かなかったときの動きも機械で違います。FANUC 互換の書き方では書いた軸だけが戻りますが、Haas は軸を書かない G28 で全軸が原点へ戻ります。Haas の例では、Z の退避に G53 G49 Z0.(機械座標の Z0 へ)を使っています[7][2]

      図解:G28:中間点を経由して原点へ

      G28 の動き始点中間点(指令した座標)原点(リファレンス点)Z の戻し方Z の原点(機械)ワーク(上面=Z0)G91 G28 Z0今の位置から真上へG90 G28 Z0Z0(上面)を経由
      G28 で指令した座標は通り道の「中間点」。まず中間点へ早送りし、それから原点へ戻る。G90 で Z0 と書くとワーク上面を経由してしまうので、Z は G91 G28 Z0 で真上に戻すのが基本。

      回転数と送り:S・M03・F(毎分送り)

      主軸は S(回転数 min⁻¹)と M03(正転)で回します。マシニングセンタの送り F は、ふつう G94=毎分送り(mm/min)です。旋盤の「1 回転あたり(mm/rev)」とは単位が違うので、旋盤から移ってきた人がまず間違えるところです[1][2]。回転数と送りは、工具メーカーのカタログの切削速度 Vc と 1 刃あたりの送り fzから計算します[15]。

      • 回転数 n = 1000 × Vc ÷(π × D)、送り速度 Vf = fz × z × n。上の例(アルミ・φ10・3 枚刃)では n ≒ 6,366 min⁻¹、Vf ≒ 955 mm/min です[15]
      • タップ(G84)の F は、毎分送りのとき 回転数 × ピッチ(M8×1.25 を 400 min⁻¹ なら F500)。ずれるとねじ山をつぶすか、タップが折れます[10][2]。ただし三菱電機の同期タップ(,R1)のように F にピッチをそのまま書く書き方もあり、取り違えると送りが桁違いになります[1][14]
      • 計算した値は出発点です。機械の剛性・突き出し・クランプで下げます(フライス・エンドミルの切削条件の計算、工具寿命の延ばし方)

      動き:G00・G01・G02・G03

      動きのコードは 4 つです。G00 は早送り(位置決め)、G01 は F の速さで直線に削る、G02・G03 は円弧に削ります。円弧の向きは、XY 平面(G17)を +Z 側(上)から見て時計回りが G02、反時計回りが G03 です[1][6]。

      図解:G02 の円弧:向き・中心・I/J・R

      XYIJR始点終点中心G02:時計回り(CW)回る向きは、選んだ平面に垂直な軸の+側から見て決めるG17(XY)… +Z 側からG18(ZX)… +Y 側からG19(YZ)… +X 側からI・J:始点から中心へ(G90 でも増分で書く)R:円弧の半径(全円は R では書けない)
      工具は始点から中心のまわりを時計回りに終点まで進む(図は G17 で+Z 側=上から見た向き)。ヘリカル補間は、この円弧に Z の直線移動を同時に加えたもの。旋盤(G18)は X+を上・Z+を右に描いた図で同じ向きになる。
      • G00 は材料の外だけで使う:機械やパラメータによっては、早送りは軸ごとに最高速で動くので、斜めに動くと直線にならないことがあります(ドッグレッグ)。ワークのすぐ近くでは Z を先に上げてから XY を動かします
      • 円弧は「終点」と「半径 R」か「中心 I・J」で書きます。I・J は始点から中心までの距離(X 方向が I、Y 方向が J)。R で書くと、180° を超える円弧は R をマイナスにする決まりがあり、全円(1 周)は R では書けないので I・J を使います(練習問題 3)[1][6]
      • 小数点を忘れない:多くの機械では X10 は 10 mm ではなく 0.01 mm(最小単位 0.001 mm × 10)と読まれます。X10. と書く習慣を付けます。どう読むかはパラメータで変えられる機械もあるので、自分の機械の設定を確かめます[2][1](小数点の書き忘れ)

      工具径補正:G41・G42・G40 と D

      図面の形どおりに外周を削るとき、工具の中心は形から工具の半径だけ外を通らなければなりません。この「半径の分だけずらす」計算を NC に任せるのが工具径補正です。プログラムには図面の形をそのまま書き、工具の半径は補正番号 D に登録します[1][8]。

      図解:工具径補正:進行方向の左(G41)・右(G42)

      プログラム経路G41(左)G42(右)工具中心の経路(点線)進行方向(矢印)を向いて見たとき工具が左 → G41工具が右 → G42補正なし → G40主軸正転(M03)ならG41=ダウンカットG42=アップカットずらす量は D 番号に登録した工具半径
      G41 は工具中心を、プログラム経路(仕上げたい輪郭)から工具半径だけ、進行方向に向かって左へずらす。主軸正転ならダウンカットになる。
      • G41 は進む向きの左、G42 は右に工具をずらします。主軸が正転(M03)のエンドミルで外周を時計回り・ポケットの内側を反時計回りに回ると、G41 になり、ダウンカット(下向き削り)になります。ダウンカットは仕上げ面と工具寿命に有利なので、MC の仕上げでは G41 がよく使われます(下向き削りの定義と、Haas の例=M03・外周を時計回り・G41 から)[15][5]
      • 補正のかけ始めと終わりには、XY が動く直線の行が要ります。G41 を書いた行の動きで工具がずれていくので、その行は材料の外で、工具の半径より長く動かします。取り消し(G40)も同じで、材料から離れる直線で行います[2][8][13]
      • 工具の半径より小さい内側の角・溝は補正では削れません(補正がかけられないとアラームになる、または削りすぎる)。シミュレータでも警告が出ます
      • D に少し大きめの半径を入れて荒削りし、本来の半径に戻して仕上げると、同じプログラムで削り代を残せます

      穴あけ:固定サイクル G81・G83・G84 と G98・G99

      穴あけは、「R 点まで早送り → 穴の底まで送り → 戻る」を 1 行にまとめた固定サイクルで書きます。いちど書けば、次の行からは X・Y だけ書けば同じ穴を繰り返します。最後は G80 で取り消します[1][2][14]。

      コード動き使いどころ
      G81R 点 → Z まで送り → 早送りで戻るセンタ穴・浅いドリル穴
      G73Q ずつ送って少し戻る(切りくずを切る)切りくずが長くつながる材料
      G83Q ずつ送って R 点まで戻る(切りくずを出す)深い穴(目安は直径の 3 倍以上)
      G84回転と送りを合わせて下り、逆転して戻るタップ(F = 回転数 × ピッチ)

      図解:穴あけのあと、どの高さで次の穴へ移るか

      G98:初期点まで戻るクランプ初期点R 点G99:R 点の高さで次へクランプ初期点R 点途中にあればぶつかる
      G98 は穴をあけたあと初期点(サイクルに入る前の高さ)まで戻って次の穴へ移る。G99 は R 点の高さのまま移るので速いが、途中にクランプや段差があるとぶつかる。
      • G98 はイニシャル点(サイクルを始めた高さ)へ、G99 は R 点へ戻ります。穴と穴のあいだにクランプや段差があるときは G98、何もなければ G99 で速く回ります[1][11]
      • 繰り返しの回数は、FANUC 互換や Siemens の ISO 方言では K、三菱電機や Haas では L で書きます(Haas の G83 では I・J・K が別の意味)。G91 と組み合わせると、等間隔の穴を 1 行であけられます。このとき R も Z も増分(R はイニシャル点から、Z は R 点からの距離)になるので、符号に注意します(練習問題 5。シミュレータは K と L のどちらも読みます)[2][1]
      • サイクルの種類と動きは 固定サイクル一覧に、変数で穴の位置を回す方法は カスタムマクロ入門にまとめています

      図解:G83 の動き(横から見た図)

      早送り切削送りQ初期点R 点穴底 Z① R 点まで早送り② Q だけ切り込む③ R 点まで早送りで 抜いて切りくずを出す④ 前の深さの d 手前 まで早送りで戻る⑤ くり返して穴底へ⑥ 早送りで戻る
      Q ずつ切り込むたびに R 点まで抜いて切りくずを出し、前の深さの d(機械の設定値)手前まで早送りで戻ってから再び切る。図は G98。

      メーカーによる書き方の違い

      基本の G コードは ISO 6983 に沿っているので共通ですが、制御装置のメーカーによって書き方が違うところがあります。ほかの機械のプログラムを流用するときは、次の点を必ず確かめてください。

      メーカー違いの例
      FANUC 互換この記事の書き方。小数点なしの数値の読み方は、パラメータで変わる(X1000 が 1 mm にも 0.1 mm にもなる)[2]
      三菱電機FANUC 互換にほぼ同じ。固定サイクルの繰り返しは L。同期タップ(,R1)では F にピッチを書く[1]
      HaasFANUC に近い。工具長補正は G49・H00 まで自動でかかり続け、工具交換で切り替わる(NGC)。軸を書かない G28 は全軸が原点へ。繰り返しは L[9][7][4]
      オークマ(OSP)独自の書き方(ワーク座標・工具長補正・変数の書き方など)。同じオークマでも FANUC を載せた機械がある。G コードの番号が同じでも意味が違うことがあるので、必ず取扱説明書で確かめる[18]
      Siemens(SINUMERIK)本来の書き方(T1 M6・D1・穴あけは CYCLE81 など)が基本で、G291 で ISO 方言(FANUC 互換)に、G290 で本来の書き方に切り替える。同じブロックに混ぜられない[3][2]

      練習問題:図面どおりに削れるか(採点つき)

      青い点線が図面の形です。プログラムの「(---- ... ----)」の行に足りない動きを書いて ▶ を押すと、削れた形を図面と比べて採点します(±0.05 mm)。警告やエラーが出ているときも「もう少し」になります。答えの例は各問の下にあります。もっと進んだ問題(角 R の外周・ヘリカルで下りるポケット・タップ・マクロ)は マシニングセンタのページの練習問題にあります。

      問 1面削り:上面を 0.5 mm 削る

      素材は 80×60×20 のアルミで、原点は上面の左手前の角です。T1(φ20 のエンドミル)で上面を 0.5 mm 削って平らにしてください。1 往復目の行き(Y0 で右へ)と、Y15 への移動までは書いてあります。Y を 15 mm ずつずらしながら Y60 まで往復させます。

      ヒント

      X-15. と X95. を交互に書き、そのあいだに Y を 15 ずつ増やす行をはさみます。工具の幅 20 mm より少ない 15 mm ずつずらすと、削り残しの筋が出ません。

        X—
        Y—
        Z—
        T—
        S0
        F0
        —0:00

          O2001
          G21 G90 G17 G40 G49 G80
          G54
          T1 M06
          S2400 M03
          G00 X-15. Y0.
          G43 H1 Z30.
          M08
          Z2.
          G01 Z-0.5 F300
          X95. F800
          Y15.
          X-15.
          Y30.
          X95.
          Y45.
          X-15.
          Y60.
          X95.
          G00 Z30.
          M09
          M30

          問 2溝 2 本:G00 で移動、G01 で削る

          T2(φ10)で、Y15 と Y45 の線上に X10〜X70 の溝(幅 10・深さ 3)を 2 本削ってください。1 本削ったら Z2. まで上げ、早送りで 2 本目の始まりへ移ります。

          ヒント

          G01 Z-3. F150 → X70. F500 → G00 Z2. → X10. Y45. → もう一度 G01 で下りて削る。材料の中を G00 で動かさないこと。

            X—
            Y—
            Z—
            T—
            S0
            F0
            —0:00

              O2002
              G21 G90 G17 G40 G49 G80
              G54
              T2 M06
              S3200 M03
              G00 X10. Y15.
              G43 H2 Z30.
              M08
              Z2.
              G01 Z-3. F150
              X70. F500
              G00 Z2.
              X10. Y45.
              G01 Z-3. F150
              X70. F500
              G00 Z30.
              M09
              M30

              問 3丸いポケット:G03 の全円(I・J)

              中心 X40 Y30 に、直径 30・深さ 4 の丸いくぼみ(ポケット)を T2(φ10)で削ります。中心で Z-4. まで下りたところまで書いてあります。

              ヒント

              X50. へ動くと、工具の外側が半径 15 に届きます。そこから G03 X50. Y30. I-10. J0. で 1 周。全円は R では書けないので、I・J(始点から中心までの距離)で書きます。

                X—
                Y—
                Z—
                T—
                S0
                F0
                —0:00

                  O2003
                  G21 G90 G17 G40 G49 G80
                  G54
                  T2 M06
                  S3200 M03
                  G00 X40. Y30.
                  G43 H2 Z30.
                  M08
                  Z2.
                  G01 Z-4. F100
                  X50. F400
                  G03 X50. Y30. I-10. J0.
                  G01 X40.
                  G00 Z30.
                  M09
                  M30

                  問 4丸いボス:工具径補正 G41 と G02

                  中心 X40 Y30・直径 40 の円柱(ボス)を残して、まわりを深さ 5 削ります。工具は T2(φ10)で、補正番号 D2 には工具の半径 5 が入っている前提です。補正をかけて円のいちばん手前(X40. Y10.)まで来たところまで書いてあります。

                  ヒント

                  G41 は工具が進む向きの左に逃げる補正です。円の外側を時計回り(G02)に回ると、ダウンカットになります。終点は始点と同じ X40. Y10.、中心までは J20.。

                    X—
                    Y—
                    Z—
                    T—
                    S0
                    F0
                    —0:00

                      O2004
                      G21 G90 G17 G40 G49 G80
                      G54
                      T2 M06
                      S3200 M03
                      G00 X65. Y-10.
                      G43 H2 Z30.
                      M08
                      Z2.
                      G01 Z-5. F150
                      G41 D2 Y10. F500
                      X40.
                      G02 X40. Y10. I0. J20.
                      G01 X20.
                      G40 X10. Y-10.
                      G00 Z30.
                      M09
                      M30

                      問 55 個の穴:G91 と K で繰り返す

                      Y30 の線上に、X10 から 15 mm おきに X70 まで、φ6.8・深さ 10 の穴を 5 個あけます。ドリル(T3)は X-5. Y30. Z30. で待っています。G91(インクレメンタル)と K(繰り返しの回数。三菱電機・Haas では L)を使って、1 行で書いてください。

                      ヒント

                      G91 のときは R も Z も増分になります。R 点はいまの高さ Z30 から −28(= Z2)、穴の底は R 点から −12(= Z-10)。1 回で X に 15 進むので、X-5 から 5 回で X10・25・40・55・70 に穴があきます。

                        X—
                        Y—
                        Z—
                        T—
                        S0
                        F0
                        —0:00

                          O2005
                          G21 G90 G17 G40 G49 G80
                          G54
                          T3 M06
                          S1800 M03
                          G00 X-5. Y30.
                          G43 H3 Z30.
                          M08
                          G91 G99 G81 X15. Y0. Z-12. R-28. K5 F180
                          G80 G90
                          G00 Z30.
                          M09
                          M30

                          よくある失敗(シミュレータでも警告が出ます)

                          1. G43 を忘れる・H の番号を間違える:工具の長さの分だけ Z がずれ、ワークやバイスに突っ込む[9][21]
                          2. G54 を呼ばない:機械座標のまま動き、まったく違う場所を削る
                          3. 小数点を忘れる:Z-5 は 0.005 mm。深さが足りない、または X100 が 0.1 mm になって工具が原点へ寄る
                          4. G91 のまま戻さない:次の行のアブソリュートのつもりの数字が、すべて「そこから進む距離」になる
                          5. G90 のまま G28 Z0.:ワークの上面を通ってから機械原点へ戻る[7]
                          6. 材料の中を G00 で動く:Z を上げずに次の位置へ早送りし、工具が折れる
                          7. G41 のかけ始めを材料の上で行う:補正で工具がずれていく途中に削りすぎる。補正は材料の外で、工具の半径より長い直線で
                          8. タップの F を回転数 × ピッチにしない:ねじ山をつぶす・タップが折れる
                          9. 固定サイクルを G80 で取り消さない:次の位置決めの行でも穴をあけてしまう

                          よくある質問

                          このシミュレータは実際のマシニングセンタと同じ動きですか?
                          いいえ、学習用の簡易版です。FANUC 互換の基本のコード(G00〜G03・G17・G28・G40〜G43・G49・G54〜G59・G73・G80〜G89・G90・G91・G98・G99 と主な M コード、簡単なカスタムマクロ)を読みますが、機械の加減速・工具のたわみ・パラメータの設定は考えていません。実機の前に、プログラムと工具の動きの対応を確かめる道具として使ってください。
                          G43 の H と、工具径補正の D は同じ番号でいいですか?
                          多くの機械では、工具長の H と工具径の D は別の表(または同じ表の別の列)に入っていて、工具番号と同じ番号にそろえるのが一般的です。表の作りは機械ごとに違うので、機械の説明書と社内の決まりを確かめてください[1][9]。
                          アップカットとダウンカットはどちらを使えばいいですか?
                          マシニングセンタの仕上げでは、仕上げ面と工具寿命に有利なダウンカット(下向き削り)がよく使われます。主軸正転のエンドミルで G41 を使って外周を時計回りに回ると、ダウンカットになります。黒皮(鋳物の表面など)や、ガタの大きい古い機械ではアップカットを選ぶこともあります[15]。
                          技能検定(マシニングセンタ作業)の勉強にも使えますか?
                          プログラムの基本を手で確かめる練習には使えます。試験の内容や過去問は中央職業能力開発協会の公開ページで確かめてください[22][23](公開サイトの問題は閲覧のみで、複製・二次使用は禁止されています)。

                          次の一歩として、1 つずつのコードの意味は G・M コード辞典、穴あけのサイクルは 固定サイクル一覧、変数と計算は カスタムマクロ入門、機械の種類と段取りは マシニングセンタ、旋盤のプログラムは NC 旋盤プログラム入門にまとめています。

                          出典・参考資料

                          1. 三菱電機「700/70 Series Programming Manual (Machining Center System)」IB-1500072
                          2. Siemens「SINUMERIK ISO Dialects Milling Programming Manual」(ISO 方言、2007)
                          3. Siemens「SINUMERIK 840D sl / 828D Fundamentals Programming Manual」(2013)
                          4. Haas Automation「Mill Operator’s Manual 12 – Basic Programming」
                          5. Haas Automation「Mill Operator’s Manual 17 – G-Codes」17.3 Cutter Compensation
                          6. Haas Automation「G02 CW / G03 CCW Circular Interpolation Motion」(ミル)
                          7. Haas Automation「G28 Return to Machine Zero Point」(ミル)
                          8. Haas Automation「G41 / G42 2D Cutter Compensation」(ミル)
                          9. Haas Automation「G43 Tool Length Compensation + / G44」(ミル)
                          10. Haas Automation「G84 Tapping Canned Cycle」(ミル)
                          11. Haas Automation「G98 Canned Cycle Initial Point Return」(ミル)
                          12. Haas Automation「M06 Tool Change」(ミル)
                          13. LinuxCNC「Tool Compensation」(工具径補正の進入の長さ)
                          14. 芝浦機械「固定サイクル指令」(工作機械用語集)
                          15. 三菱マテリアル「Technical Data」(フライス削りの式・アップカットとダウンカット)
                          16. ISO「ISO 841:2001 Numerical control of machines — Coordinate system and motion nomenclature」(要旨)
                          17. 日本規格協会「JIS ハンドブック 2023 工作機械」目次(JIS B 6310:2003=ISO 841:2001 IDT、JIS B 6315-1:2013=ISO 6983-1:2009 MOD)
                          18. Okuma America「CNC Control Procedures 101」(OSP と FANUC の操作の違い、2015)
                          19. 今井慎一「機械実習における数値制御教育のための実践環境の構築」工学教育研究講演会講演論文集(2016)
                          20. 今井慎一・新谷翠「実践教育のための安全性を考慮した NC 工作機械の開発とその実践」工学教育 63(3)(2015)
                          21. Denkena ほか「Simulation-based collision detection for CNC machining using sensor-based image recognition」Procedia CIRP 126(2024)
                          22. 中央職業能力開発協会「技能検定 作業の内容」(機械加工 マシニングセンタ作業)
                          23. 中央職業能力開発協会「技能検定試験問題公開サイト」

                          ほかの読みもの