CNC 加工中的 G 代码如何变成轴运动
控制器不读图纸,它读的是一串程序段,每个程序段是一行字。字由字母加数字组成:G 表示准备动作,M 表示机床功能,X Y Z 表示直线位置,I J K 表示圆弧中心,F 表示进给,S 表示主轴转速,T 表示刀具号。控制器从左到右解析程序段,应用模态状态,然后运动。
模态是指命令保持有效,直到同一组中的另一条命令将其替换。执行一次 G01 后,后续每个带 X Y Z 坐标的程序段都按编程速率进给。G00 快速定位,G01 进给,G02 顺时针圆弧,G03 逆时针圆弧。这就是为什么程序开头附近漏掉 G01 会让刀具以快速速度横穿零件。
绝对和增量定位遵循同样的思路。G90 设定绝对模式,每个坐标都从当前工件原点量起。G91 设定增量模式,每个坐标都是距上一位置的距离。大多数生产程序用 G90 运行。增量程序段出现在子程序、钻孔阵列和车床棒料拉料例程中。
单位也是一个组。G20 选择英寸,G21 选择毫米。混用两者的程序不会在每个控制器上都报警。有些控制器只是按比例缩放运动,25 mm 的移动会变成 25 英寸的行程。后处理器输出必须与控制器设置一致,而不是与图纸单位一致。
- 1G90 / G91绝对或增量坐标解释。
- 2G20 / G21所有轴字的英寸或公制单位。
- 3G17 / G18 / G19圆弧插补的平面选择:XY、XZ、YZ。
- 4G94 / G95每分钟进给或每转进给。
CNC 加工中 G 代码的刀具补偿与偏置
CAM 系统知道名义刀具直径,车间知道实际直径。G41 和 G42 告诉控制器将刀路相对编程轮廓向左或向右偏移偏置寄存器中存储的值。G40 取消补偿。操作员在对刀后把实测半径输入该寄存器。
刀具补偿让你无需重新后处理程序就能调整特征。一个实测小 0.03 mm 的槽可以通过修改磨损偏置来修正,而不必重写 4,000 个程序段的 CAM 输出。在生产运行中,这就是两分钟修正和两小时修正的区别。
长度偏置同理。G43 应用由 H 字指定的寄存器中的刀具长度偏置,G49 取消。如果 H 号指向错误的寄存器,刀具会快速移动到错误的 Z 高度。这一处不匹配是立式铣床上大量撞机事故的根源。
工件偏置定义零件的位置。G54 到 G59 各保存一个原点,因此多工位工装夹具可以在不同位置运行同一程序。G10 允许程序向这些寄存器写入值,这在托盘系统上有用,但在手动装夹时有风险。
- 1G41 / G42 / G40左、右刀具半径补偿及取消。
- 2G43 / G49通过 H 寄存器应用或取消刀具长度偏置。
- 3G54–G59选择已存储的工件坐标系。
- 4磨损与几何把切削尺寸微调放在磨损列。
为什么进给和转速数值不能照搬
F 和 S 不是通用常数。表面速度取决于材料、刀具涂层、刚性和切削液。12 mm 硬质合金立铣刀在 6061 铝中的转速远高于在 17-4PH 不锈钢中的转速。不按材料调整就把一个工件的进给率照搬到另一个工件,是刀具损坏的常见原因。
每齿进给是更有用的数值。每齿进给乘以齿数和主轴转速得到工作台进给。每齿进给太低会摩擦刃口并使不锈钢加工硬化。每齿进给太高会使小刀具偏让,把壁推出公差。先瞄准刀具供应商推荐范围的中间值。
在五轴机床上,编程进给是刀尖进给,不是每个轴的进给。转台摆动时,直线轴可能以高于指令值的速度运动以保持刀尖在路径上。控制器通过进给率限制处理这一点,但高进给下的小半径仍会表现为颤振或过切。
刚性决定上限。大行程机床上 4,000 mm 长的零件,远比紧凑机床上同样合金的零件更早颤振。在特征允许的范围内尽量缩短刀柄,先减小悬伸再降低进给。
- 1从表面速度开始再按实际刀具直径换算成 rpm。
- 2检查每齿进给每齿进给应保持在供应商范围内。
- 3注意刀具悬伸长悬伸会降低可达到的进给率。
CAM 输出何时需要手动编辑
大多数程序从 CAM 出来就能运行,有些则不能。在车间编辑是正常的,但应当有意识并记录在案。如果你改了进给率、Z 向安全平面或刀具号,下一次装夹需要知道。
安全起始程序块很重要。退刀平面设得太低会刮到台虎钳或压板。快速移动穿过工装区域会撞到刀柄。把安全平面设在最高障碍物之上,并在单段模式下检查第一次接近,能在主轴转动前发现大部分这类问题。
重启点会改变风险。M00、M01 和 M30 控制程序流程,M03 和 M05 启停主轴,M08 和 M09 控制切削液。跳到程序中间重启而不重新建立模态状态,会让控制器停留在上一个程序块使用的模式。在让循环运行前,先重新输入模态设置。
子程序和宏能减少系列零件的重复。M98 调用子程序,M99 返回。宏可以从变量计算型腔深度,而不是硬编码。两者都很强大,也都会对只扫一眼主程序的读者隐藏错误。记录每次调用的作用。
- 1安全平面设在最高工装元件之上。
- 2首次运行用单段在满进给前验证接近移动。
- 3记录每次修改进给、偏置和换刀都应写入装夹单。
G 代码不再适用的情况
G 代码描述运动,不描述意图。程序无法告诉你 0.05 mm 的壁变形对零件功能是否可接受,表面处理是否满足密封要求,或公差对几何形状是否现实。
复杂自由曲面会严重挑战这种格式。密集的小直线段能足够好地逼近曲线,但程序块数量增长,控制器花时间读取而不是切削。高速加工选项和样条插值就是为此存在,但并非每种控制器都有。
公差决定选择。保持在 ±0.005 mm 的特征需要补偿、测头和过程检查,而裸 G 代码程序不包含这些。如果你的零件带有这些公差,编程讨论的重点是装夹和计量,而不是 G 代码字。
对于简单的棱柱类零件,手写或稍作编辑的 G 代码快速且可预测。对于轮廓、多装夹或五轴加工,使用经过验证的后处理器的 CAM 输出是实际路线。两者都合理。根据几何形状和公差选择,而不是习惯。
- 1棱柱类和简单件短程序容易通过阅读验证。
- 2轮廓和多轴CAM 输出在程序块数量和验证上占优。
- 3紧公差装夹和测头比代码本身更重要。
常见 G 代码组及其改变的内容
组是互斥的。同一时间只能激活一个组中的一条命令。
| 类别 | 指令 | 影响 | 典型用途 |
|---|---|---|---|
| 运动 | G00 | 快速移动,不切削 | 接近和退刀 |
| 运动 | G01 | 按编程 F 值直线进给 | 端面、侧壁、粗加工 |
| 运动 | G02 / G03 | 顺时针/逆时针圆弧 | 圆角、内孔、半径 |
| 补偿 | G41 / G42 | 路径偏移到轮廓左/右 | 精加工、尺寸控制 |
| 偏置 | G43 | 从 H 寄存器应用刀长 | 每次换刀 |
| 平面 | G17 | XY 平面圆弧插补 | 铣削默认 |
工程师常问的 G 代码问题
我可以在机床上直接编辑 CAM 程序吗?
可以,针对进给率、偏置号和安全值。保持修改小,并写入装夹单,以便下次运行从相同状态开始。
避免手动更改几何形状。在控制器上做的轮廓修改以后难以追溯,也容易漏出 CAM 文件。
为什么我的程序在圆弧程序块报警?
大多数圆弧报警来自所选平面与 I J K 值不匹配,或圆弧半径无法满足端点。对照程序块中的轴字检查 G17、G18 或 G19。
缺少 G02 或 G03 是另一个原因。控制器保留上一个模态运动命令,所以没有 G 字的圆弧程序块可能被读作直线进给。
CAM 已经偏移路径,还需要刀具补偿吗?
CAM 可以输出已应用名义刀具半径的路径,运行正常。你失去的是不重新后处理就调整尺寸的能力。
对于壁或内孔有尺寸公差的零件,G41 和 G42 配合磨损偏置给操作员一条快速修正路径。
首次切削前如何检查程序?
在 CAM 中运行仿真,然后检查后处理程序中的单位、平面选择、工件偏置和首次 Z 接近。在控制器支持时,让刀具在毛坯上方空运行。
首次运行时,在接近移动中使用单段和降低快速倍率。大多数撞机发生在前三十秒。
手写 G 代码还值得学吗?
值得。能读懂后处理程序,能让你更快找到过切、振纹或尺寸错误特征的原因。
当旧控制器没有 CAM 后处理器、必须从头编写短程序时,这也有帮助。
运行良好的程序能保持什么公差?
在钜亮五金(GreatLight),生产零件保持在 ±0.005 mm(±0.0002 in),发货前 100% 检验。具体特征能否达到取决于几何形状、材料和工装夹具。
发送图纸,我们在 12 小时内返回 DFM 分析和报价。
