NC编辑:Kezuriba 编辑部

加工中心编程入门:浏览器中运行的模拟器与带评分的练习题

掌握 G54、G43、G41 这 3 项,加工中心就不再可怕。先按下 ▶ 试试吧

吉祥物 Chips
加工中心编程入门:浏览器中运行的模拟器与带评分的练习题

加工中心(MC)的程序比车床多一根轴,工件坐标系(G54)、刀具长度补偿(G43)、刀具半径补偿(G41)这 3 个“要先告诉机床的前提”叠在一起,是最难的地方。只要漏掉任何一个,刀具就会撞上工件或虎钳。本文将借助在浏览器中运行的加工中心模拟器,从第一行开始依次确认写法。输入程序并按下 ▶,刀具就会移动、材料被切削,并显示转速、加工时间,以及碰撞和漏写补偿的警告。后半部分有自动判定是否按图纸车出的带评分的练习题 5 道。

写法以众多机床采用的 FANUC 兼容的 G 代码为基准。由于 FANUC 的使用说明书一般不公开,FANUC 兼容的写法依据三菱电机[1]、Siemens 的 ISO 方言[2]、Haas[4] 的公开资料进行确认,写法不同的机床则逐一注明。在实际机床上,务必遵守该机床的说明书和公司内部规定。

先动手试试:加工中心模拟器

下面的程序只是一个示例:用 φ10 的立铣刀铣 1 条深 2 mm 的槽。按下 ▶,观察刀具依次“换刀 → 旋转 → 移到原点上方 → 下降 → 切削 → 抬起”的动作顺序。修改某一行后再按 ▶,结果就会改变。毛坯为 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 个可以分别使用,例如并排放两台虎钳时,第 1 台用 G54,第 2 台用 G55。

      图解:机床原点与工件原点(坐标系)

      XYG54 的偏置量G54 的原点G55 的原点G52 局部坐标系机床原点(机床坐标的 0)
      按 G54~G59 的编号分别登记从机床原点到工件原点的偏移量,在程序中调用。只要更换编号,同一个程序就能加工位于不同位置的工件。
      • 原点的确定方法:与图纸尺寸的基准(左前角、孔的中心等)对齐,图纸上的数字就能直接写进程序。Z0 通常设在精加工后的上表面
      • 原点的测量方法:用寻边器、触碰传感器测量 X、Y,用对刀仪或基准块测量 Z(检测器具)
      • 想按机床坐标移动时请使用 G53(仅该行按机床坐标)

      程序的形式:开头几行写“安全程序段”

      NC 程序是在每一行(程序段)中排列“字母+数字”形式的字而构成的。1 个程序段的结尾为 EOB(画面上显示为 ;),程序开头写 O 号。这种格式由 ISO 6983-1(JIS B 6315-1)规定[17][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”
      G17选择 XY 平面(圆弧、刀具半径补偿、固定循环所在的平面)若仍是 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 Z0经过 Z0(上表面)
      G28 所指令的坐标是途经的“中间点”。先快速移动到中间点,再返回原点。在 G90 下写 Z0 会经过工件上表面,所以 Z 轴基本上用 G91 G28 Z0 垂直向上返回。

      转速与进给:S、M03、F(每分钟进给)

      主轴用 S(转速 min⁻¹)和 M03(正转)来旋转。加工中心的进给 F,通常是 G94 = 每分钟进给(mm/min)。它与车床的“每转进给(mm/rev)”单位不同,是从车床转过来的人最先容易弄错的地方[1][2]。转速和进给由刀具厂商样本中的切削速度 Vc 和每齿进给 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 取负值,而且整圆(一整圈)不能用 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,切削方式为顺铣。顺铣对加工表面质量和刀具寿命有利,所以在加工中心的精加工中常用 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 → 快速移动返回中心孔、浅钻孔
      G73每进给 Q 就稍微退回一点(断屑)切屑容易连成长条的材料
      G83每进给 Q 就退回到 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 组合,一行就能钻出等间距的孔。此时 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]
      Haas接近 FANUC。刀具长度补偿在 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 的程序行。每次错开 15 mm,比刀具宽度 20 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 的线上,各铣 1 条从 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)

              用 T2(φ10),在中心 X40 Y30 处铣一个直径 30、深 4 的圆形凹坑(型腔)。程序已写到在中心下降到 Z-4. 为止。

              提示

              移动到 X50. 时,刀具外侧恰好到达半径 15 处。再用 G03 X50. Y30. I-10. J0. 走一整圈。整圆不能用 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 mm 深。刀具为 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

                      第 5 题5 个孔:用 G91 和 K 重复

                      在 Y30 的线上,从 X10 起每隔 15 mm 直到 X70,钻 5 个 φ6.8、深 10 的孔。钻头(T3)在 X-5. Y30. Z30. 处待命。请用 G91(增量方式)和 K(重复次数。三菱电机、Haas 中用 L),写成 1 行。

                      提示

                      使用 G91 时,R 和 Z 都是增量。R 点是从当前高度 Z30 起 −28(= Z2),孔底是从 R 点起 −12(= Z-10)。每次在 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](公开网站上的试题仅供浏览,禁止复制和二次使用)。

                          下一步,每个代码的含义整理在 G、M 代码词典,钻孔循环整理在 固定循环一览,变量与计算整理在 用户宏程序入门,机床种类与装夹准备整理在 加工中心,车床编程整理在 数控车床编程入门一文中。

                          参考资料

                          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. 日本中央职业能力开发协会《技能检定试题公开网站》(日文)

                          更多文章