要点速览
实际编写的内容:G 代码与 M 代码
CNC 程序由程序段组成。每段一行,每行包含字母地址和数字:G 为准备指令,M 为机床辅助指令,X Y Z 为坐标,F 为进给,S 为主轴转速,T 为刀具号。系统从上到下读取并执行。没有隐含内容;如果省略进给率,机床会沿用上一段生效的模态值。
G 代码负责运动。G00 为机床最高速度快速定位,G01 为按编程 F 值直线进给,G02 和 G03 为顺时针和逆时针圆弧,G81 至 G89 为钻孔和攻丝固定循环。G17、G18 和 G19 选择圆弧和刀具补偿的工作平面。G20 和 G21 设定英寸或公制模式,这一行会改变其后所有坐标的读取方式。
M 代码负责路径之外的所有功能。M03 主轴顺时针启动,M05 停止,M08 和 M09 控制切削液,M06 调用换刀,M30 结束程序并回卷。在铣床上,M03 S8000 表示 8000 rpm 顺时针。在带动力刀具的车床上,同样的 M03 可能需先指定刀位地址。含义因机床而异,务必查阅系统手册。
编写 CNC 机床代码时还有一个区别很重要。G90 和 G91 选择绝对或增量定位。绝对模式下每次移动都到工件零点起的固定点。增量模式下每次移动从当前位置量起。意外混用两者是已验证程序中最常见的撞机原因之一。
- 1程序段结构现代系统上 N 号可选;多数 CAM 后处理会跳过。
- 2模态状态G94 每分钟进给,G95 每转进给。选定一种并保持。
- 3刀具补偿G41 左补偿,G42 右补偿,G40 取消。仅在直线引入移动中启用。
多数生产代码背后的 CAM 工作流程
手写代码仍有其位置,但位置很小。简单的 2.5D 板件、钻孔阵列、现有程序的修补。所有带曲面、多装夹或超过约二十把刀具的工件都走 CAM。CAM 系统保存几何模型、毛坯模型、刀具库和后处理器,并写出你原本要手动输入的坐标行。
流程从 CAD 开始。模型必须是名义尺寸的成品零件。公差和表面要求标注在图纸或 3D 注释中,不在模型里,因此编程员必须读取它们,并选择能在图纸要求处保持 ±0.005 mm 的切削策略。0.5 mm 精加工余量无法纠正留下 0.05 mm 不均匀余量的粗加工策略。
然后编程员设定装夹。即选择工件夹持方式、定义工件坐标系原点,并决定需要多少道工序。对于能在五轴机床上一次装夹完成的零件,同样的几何形状在三轴铣床上可能需要三次装夹。每增加一次装夹就增加一个原点、一个操作步骤和一次位置误差的机会。
最后,后处理器将内部刀路转换为特定系统的代码。Fanuc 后处理用 G43 H 做刀具长度补偿,用 M08 开大流量切削液。Heidenhain 系统接受对话式循环而非 G81 程序段。同一零件、同一刀具,文本不同。后处理是好的 CAM 设置变成操作员真正能运行的程序的地方。
发布前,编程员运行毛坯仿真和机床仿真。前者发现过切和残留材料。后者发现刀柄碰撞、工作台间隙和旋转轴限位。两者都比撞机快。
- 1CAD 模型名义几何、正确单位、无缩放。核对模型与图纸版本。
- 2刀具库真实的刀柄和伸出长度。长度误差会导致刀柄碰撞。
- 3后处理器与系统系列绑定,而非机床品牌。用已知良好的测试件验证。
- 4仿真材料去除加机床运动学。程序下车间前两者都要运行。
进给、转速与导致刀具损坏的数值
大多数初学者程序出错在切削数据上,而不是坐标。驱动一切的两个变量是线速度和每齿进给量。线速度是切削刃穿过材料的速度,用 m/min 或表面英尺每分钟表示。每齿进给量是每转每个刀齿切除的材料厚度,单位为 mm/齿。主轴转速和进给率由这两个值推导得出。
对于铝,涂层硬质合金立铣刀的线速度约为 300 至 500 m/min。对于 304 不锈钢,降到 120 至 180 m/min。钛合金 Ti-6Al-4V 约为 40 至 60 m/min。Inconel 更低。这些是起点,不是极限;刀具涂层、切削液供给和刚性都会使其变化。主轴转速公式为 rpm = (线速度 × 1000) ÷ (π × 刀具直径)。
进给率由每齿进给量得出:进给 = rpm × 齿数 × 每齿进给量。一把 10 mm 三刃硬质合金立铣刀在 6061 铝中,每齿 0.05 mm、8,000 rpm,进给为 1,200 mm/min。同样的刀具在 304 不锈钢中,每齿 0.03 mm、3,000 rpm,进给为 270 mm/min。进给减半,刀具就会摩擦而不是切削,这比大切屑负载钝化得更快。
径向和轴向切深决定刀具参与切削的比例。在铝中满宽开槽,轴向切深 0.5 × 直径、切削液良好时没有问题。在不锈钢中,径向参与保持在刀具直径的 30% 以下,并使用摆线刀路。自适应清角策略以更宽的路径换取每刀更轻的负载,从而降低刀具温度。
下刀移动需要单独的进给。刀具在钢中以切削进给垂直进入会振颤或折断。使用 2 至 5 度的斜线或螺旋进入,当垂直进入不可避免时,将下刀进给单独设为切削进给的大约三分之一。
- 1切屑减薄当径向参与低于 50% 时,提高每齿进给以保持切屑厚度。
- 2切削液超过 5 × 直径深度时,主轴内冷有帮助。气吹适合铝和塑料。
- 3刀具跳动0.01 mm 的跳动会使有效刀具寿命大约减半。用千分表检查。
手写代码何时优于 CAM 输出
手写代码在小批量、重复性工作上占优。平板上的钻孔阵列、一次端面铣、围绕矩形型腔的倒角走刀。程序 30 行,几何简单,建立 CAM 文件比输入代码更耗时。编程人员会保留这些代码片段库并修改坐标。
在现场也占优。当刀具在加工中途折断,替换刀具短了 0.2 mm,操作员修改刀具长度补偿,而不是程序。当精加工余量留下 0.03 mm 材料时,编程人员在同一坐标用 G01 加一次弹簧刀路,径向步距更小。这是两行编辑,比重新后处理整个工件更快。
代价是风险。手输坐标没有仿真支持,一个错误数字就会让刀具撞上虎钳。将手动编辑放在明确标记的区段内,备份原始程序,并对任何重要零件上的编辑进行空运行。对于任何有 3D 曲面、倒扣或超过两次装夹的工件,CAM 输出是更安全的路径。
许多车间采用一条中间路线:在文本编辑器中用参数化宏编写代码。带变量和 IF 语句的 Fanuc 自定义宏让一个程序通过修改顶部几个值来处理一族零件。一个带半径变量和数量变量的螺栓圆钻孔程序可覆盖所有法兰尺寸,无需新的 CAM 文件。
对于钜亮五金(GreatLight)的原型,编程人员通常两者结合。CAM 处理轮廓曲面;一段简短的手写代码处理工装夹具螺栓孔阵列和零件标记。两者在首次运行前合并。
- 1适合的场景钻孔网格、端面铣、倒角、修复刀路、工装夹具板。
- 2不适合的场景雕塑曲面、五轴侧刃铣、任何在刀柄附近有碰撞风险的情况。
编写和验证 CNC 程序的 7 个步骤
- 11. 确定装夹和原点选择工件夹持方式,将工件坐标系原点定义在可对刀的特征上(一个角或一个镗孔),并写在装夹单上。大多数原点错误来自图纸尺寸从操作员无法触及的面测量。
- 22. 设置安全程序段每个程序开头用 G21(或 G20)、G17、G40、G49、G80、G90 以及 G91 G28 Z0 回零移动。这清除上一工件留下的模态状态。跳过它,残留的 G41 会使每个移动偏移。
- 33. 定义刀具和补偿列出 T 号及与刀具库匹配的 H 和 D 补偿。在第一次 Z 轴接近时用正确的长度补偿调用 G43 H。绝不要假设上次装夹的补偿仍然有效。
- 44. 编写或生成刀路对于 CAM 工作,用正确的控制系统后处理,然后手动阅读前 20 行和后 20 行。对于手写工作,每个区段保持一个操作,并用括号注释标记每个区段。
- 55. 根据每齿进给量设置进给和转速从保守开始,约为计算进给的 70%,首件后提高。下刀进给保持为切削进给的三分之一,在钢中使用 2 至 5 度斜线进入。
- 66. 仿真和空运行运行毛坯仿真,然后机床仿真。在机床上,将 Z 补偿提高 50 mm,以 10% 快速倍率单段运行,并观察剩余距离屏幕。
- 77. 加工首件并记录更改对照图纸检验首件,然后将每处编辑写回主程序。未记录的编辑会变成只有操作者本人才能复现的程序。
手写代码与 CAM 输出对比
按零件选方法,不按习惯。
| 因素 | 手工编写 G 代码 | CAM 输出 |
|---|---|---|
| 零件几何 | 平面、孔、倒角 | 3D 轮廓、型腔、倒扣 |
| 装夹次数 | 一到两次 | 两次或更多,或五轴 |
| 程序长度 | 约 50 段以下 | 数百到数千段 |
| 更改速度 | 几秒,在文本编辑器中 | 几分钟,需要重新后处理 |
| 碰撞检查 | 操作员经验 | 机床仿真 |
| 最佳用途 | 修复、工装夹具、钻孔网格 | 量产零件、原型 |
| 主要风险 | 输入错误且未做仿真 | 后处理器或偏置不匹配 |
常见问题
不用 CAM 软件能手工编写 CNC 代码吗?
简单零件可以。钻孔阵列、端面走刀和倒角手写很容易,30 行的程序打字比在 CAM 里设置还快。
限制在几何形状。曲面、圆角过渡和五轴联动需要 CAM 系统,因为手工计算刀心点不现实且容易出错。
G 代码和 M 代码有什么区别?
G 代码控制运动和模式:G00 快速定位、G01 进给、G02 和 G03 圆弧、G81 钻孔循环、G90 绝对定位。M 代码控制机床功能:M03 主轴正转、M05 主轴停止、M08 切削液开、M06 换刀、M30 程序结束。
记住一条规则:G 代码改变刀具做什么,M 代码改变机床围绕它做什么。
新材料的进给和转速怎么算?
先按材料组取表面速度:铝约 300 到 500 m/min,304 不锈钢 120 到 180 m/min,Ti-6Al-4V 40 到 60 m/min。用 rpm =(表面速度 × 1000)÷(π × 刀具直径)换算成主轴转速。
再按每齿进给量设定进给:进给 = 转速 × 齿数 × 每齿进给量。首件按该进给的约 70% 运行,听到和看到切削稳定后再提高。
为什么程序在仿真里没问题,上机床却撞刀?
仿真用的是 CAM 系统里的模型,机床用的是实际工装夹具、实际刀柄和实际刀具伸出长度。刀柄比库中数值长 10 mm,仿真显示有间隙,实际却可能撞到零件。
检查三处:刀具测量长度、模型中夹具高度、控制系统上实际设定的工件偏置值。
装夹工艺卡应包含哪些内容?
装夹单应包含零件号和版本、工序顺序、工件坐标系原点位置、带 T H D 号的刀具清单、所用工装夹具,以及带公差的检测点。
还应包含程序名和对应的控制系统。为 Fanuc 控制系统后处理的程序不能原样在 Heidenhain 机床上运行。
五轴程序需要不同的代码吗?
G 代码结构相同,另加旋转轴地址,通常是 A、B 或 C。更大的差别在于 CAM 后处理必须根据控制系统输出工作台旋转或刀心点管理。
带 RTCP 或 TRAORI 的机床由控制系统补偿摆轴距离。没有该功能时,后处理必须自行计算,任何误差都会在零件上表现为锥度。
