要点速览
G 代码究竟是什么,控制系统如何读取
CNC 程序是纯文本文件。每一行称为一个程序段,每个程序段包含由字母地址加数值组成的字:G 为准备功能,M 为机床功能,X、Y、Z 为坐标,F 为进给率,S 为主轴转速,T 为刀具号。控制系统从上到下按顺序读取程序段,一旦缓冲就立即执行。没有编译器,结束时也没有错误列表。一行写错,机床就会移动到错误位置。
大多数铣床使用 G17(XY 平面)、G90 绝对定位和 G21 公制单位。这三个代码几乎出现在每个程序的开头。G91 增量模式按距当前点的距离移动,而不是移动到绝对坐标,很容易意外混用。如果刀具突然扎向工作台,先检查是否漏了 G90,再查其他。
典型程序段如 N40 G01 X25.0 Y12.0 Z-3.0 F250。N 号是顺序号,操作员需要从程序中间重启时有用。F 字是模态的,即一直有效直到出现另一个 F。同一组的 G 代码也是如此。这就是为什么漏写一个 F,后面二十个程序段都会按之前的进给值运行。
- 1G00 快速定位以机床最高速度定位,绝不用于切削。
- 2G01 直线插补按编程进给率直线切削。
- 3G02 / G03顺时针和逆时针圆弧,需要 I、J 或 R。
- 4G43 刀具长度用 H 调用刀具长度补偿。
写第一刀之前先设好工件坐标系和刀具数据
程序中的坐标不是机床坐标,而是工件坐标系内的位置,通常是 G54 到 G59。操作员用寻边器或测头接触零件,把 X、Y、Z 原点存入 G54 页面,程序相对该点运行。编程前先确定基准。铣削板件时,常见选择是以精加工顶面为 Z0、一个精加工角为 X0 Y0。车削件通常以精加工端面为 Z0、主轴中心线为 X0。
刀具长度补偿是装夹的另一半。每把刀的长度存在补偿表中,G43 H01 把该值调入当前位置。如果长度差 0.5 mm,刀具就会切深 0.5 mm。Renishaw 式测头和对刀仪能消除大部分风险,但编程人员仍须调用正确的 H 号。程序中 T03 与表中 H03 不匹配,是车间最常见的撞机原因之一。
编程时同步编写装夹单。列出每把刀、直径、刀尖圆角、刀柄、补偿号和到达的 Z 深度。操作员看的是这张单子,不是你的程序。如果 Ø6 mm 平底立铣刀在单子上写 Ø6 mm,而 CAM 库中写 5.8 mm,侧壁就会偏小,直到检验才会发现。
如何计算能适应实际材料的进给与转速
从表面速度入手,不要照抄图表上的数字。铝 6061 用硬质合金立铣刀,表面速度 300 到 500 m/min 运行良好。304 不锈钢降到 60 到 120 m/min。Ti-6Al-4V 保持在 30 到 60 m/min 附近,并让刀具持续运动。主轴转速由表面速度和刀具直径推出:rpm =(表面速度 × 1000)÷(π × 直径)。Ø10 mm 硬质合金刀具加工铝、表面速度 400 m/min 时约为 12,700 rpm,这就是小刀具需要高转速主轴的原因。
每齿进给是大多数初学者出错的地方。公式为:进给率 = 转速 × 齿数 × 每齿切屑载荷。Ø10 mm 三刃硬质合金立铣刀粗加工 6061 时,每齿切屑载荷约 0.05 到 0.10 mm。12,700 rpm、三刃时即 1,900 到 3,800 mm/min。这一刀写 F250 会浪费大量加工节拍,而且是在磨削刃口而不是切削。
切削深度和宽度与速度同样重要。在铝材上开全宽槽时,轴向深度保持在约 0.5 × 直径。采用摆线或高效刀路时,可切深 1 × 直径,径向接触量取 10% 到 15%。在不锈钢和钛合金上,减小径向接触量,让刀具持续切削而不是停留。热量随切屑排出,因此较重的切屑往往比轻切屑更安全。
- 1铝 6061300–500 m/min,3 刃硬质合金,每齿进给 0.05–0.10 mm/tooth。
- 2不锈钢 30460–120 m/min,4 刃,每齿进给 0.02–0.05 mm/tooth。
- 3Ti-6Al-4V30–60 m/min,4 刃,每齿进给 0.02–0.04 mm/tooth。
- 4POM 和 ABS150–400 m/min,2 刃,注意切屑粘刀。
何时手工编程,何时用 CAM 后处理
手工编程在简单工件上占优。一块有六个孔、一个端面和一个外轮廓的板,直接写程序往往比建模、设置刀路再后处理更快。程序短,在机床上容易阅读,操作员想改深度时也容易编辑。大量做夹具板、支架和单件维修件的车间保留手工编写模板库,正是这个原因。
一旦几何形状不再是 2.5D,CAM 就占优。带拔模壁的型腔、与曲面底部过渡的圆角,或任何由实体模型描述的曲面,都需要后处理的刀路。五轴加工同样如此,机床必须协调两个旋转轴与直线轴。理论上手工编写可行,实践中是浪费时间。后处理器输出还会带上针对特定控制系统的正确 G68.2 或 TCPC 代码。
混合流程很常见。用 CAM 做曲面加工,再手工编辑后处理文件,加入端面加工、去毛刺和安全的退刀。但要记住,每次手动编辑都可能破坏模态状态。如果删掉一行 G43,下一次换刀就会在没有长度补偿的情况下运行。保留后处理文件的原始副本,并记录你改了什么。
干净程序的结构,逐行说明
安全的程序从程序头开始。用 G40 取消任何活动的补偿,取消刀具补偿和偏置,调用 G17 G21 G90,然后调用工件坐标系。只有在刀具离开工件后,才让主轴升到转速。典型的开头是 G40 G49 G80,然后 G17 G21 G90,然后 G54,然后 G43 H01 Z50.0。这个 Z 移动在其他动作之前把刀具放到基准上方 50 mm。
程序主体按工序顺序排列:端面、定心钻、钻孔、攻丝、型腔粗加工、轮廓精加工。每次换刀都应包括安全 Z 退刀、M09 停止切削液、M05 停止主轴,然后 T 和 M06。换刀后,用正确的 S 和 M03 方向重启主轴,用 M08 重新打开切削液,并重新应用长度补偿。换刀前跳过退刀的程序,正是会把刀具拖过夹具的那些。
程序以 M09、M05、退回到安全 Z 和 M30 结束。M30 复位程序并倒回开头。如果机床有排屑器或棒料送料器,这些设备的 M 代码顺序必须对照机床手册检查。不要假设 M30 在 Fanuc 车床和 Heidenhain 铣床上含义相同。
- 1程序头安全取消、单位、平面、工件坐标系、第一把刀长度。
- 2程序主体每段一个工序,每段上方一行注释。
- 3程序尾关切削液、停主轴、退刀、M30。
常见编程错误及如何避免
代价最高的错误往往是无声的。漏掉小数点会把 X25.0 变成 X250。上一段残留的 G91 会让后续每个移动都变成增量。刀具长度补偿应用两次会使深度加倍。这些在切削前都不会报警。控制系统完全按程序块执行,这就是空运行不可省略的原因。
刀具补偿是另一个常见的废品来源。G41 和 G42 把路径偏置到编程线的左侧或右侧,必须在下一个快速移动前用 G40 取消。如果在刀具移动到安全平面时补偿仍处于活动状态,控制系统可能报警,或者更糟,大幅摆入夹具。切入移动的长度应至少为刀具半径,让补偿有空间生效。
最后,保持程序可读。注释不花成本,却能在装夹时省下数小时。把工序分组、给段落加标签、使用一致的格式。能读懂程序的操作员能在问题变成撞机之前发现它,六个月后能读懂它的编程员也能在不从头开始的情况下修改它。
分步说明:如何从图纸到首件为 CNC 机床编程
- 11. 读图纸并选择基准先识别关键公差。±0.005 mm 的内孔决定工艺,而不是外轮廓。选择操作员能接触、检验能重复的基准。注意任何表面处理标注,如 Ra 0.8–1.6 μm,因为它会改变精加工工序。
- 22. 规划工序顺序和刀具清单先端面,然后定心钻,然后钻孔,然后粗加工,然后精加工。保持刀具数量少。给每把刀分配编号和长度补偿。在打开编辑器之前把清单写下来,因为之后改变顺序意味着重新编号每个 H 和 T 调用。
- 33. 编写程序头和安全块以 G40 G49 G80 开始,然后 G17 G21 G90,然后工件坐标系 G54。添加注释,写明零件号、程序版本和日期。绝不要在刀具位于基准时启动主轴;先移动到安全 Z,通常高于工件 50 到 100 mm。
- 44. 为每个工序编写代码并加注释每段上方一行纯文本注释,方便操作员搜索。标准钻孔用 G81,深孔带断屑用 G83,攻丝用 G84。R 平面设在表面上方 2 到 5 mm,Z 深度设到完整钻尖,而不是钻肩。
- 55. 按材料设定进给和转速使用工件材料的表面速度和每齿切削量范围,而不是刀具样本上的最大值。首件加工时降低 20%,等切屑形态正常后再提高。注意听颤振,检查切屑颜色;铝件切屑发蓝说明转速过高。
- 66. 抬高偏置后空运行将 Z 向工件偏置抬高 50 mm,或使用系统的空运行和单段模式。逐段走过每次换刀,观察剩余距离显示。这一步能发现符号写错、小数点遗漏或快速移动穿过零件的问题。
- 77. 加工首件并检测加工一件,测量所有关键特征并记录数值。调整磨损偏置,而不是重写程序。如果某个尺寸变化超过公差的一半,先查明原因再批量加工。
- 88. 冻结程序并归档将验证过的文件保存为 A 版,做好备份,并附上装夹单。记录刀具清单、所用偏置和任何手动修改。下一位接手的人不应再去猜改了什么。
手工编程与 CAM 后处理:如何选择
按几何形状选择方法,而不是按个人偏好。
| 零件特征 | 最佳方法 | 影响 |
|---|---|---|
| 端面加工和简单轮廓 | 手工编程 | 程序短,在机床上修改快 |
| 孔阵列和攻丝 | 手工编程或 CAM | 固定循环短;超过 20 个孔用 CAM 更划算 |
| 2.5D 型腔 | 两者皆可 | 多层深度走刀时 CAM 更省时间 |
| 3D 曲面 | CAM | 曲面靠手工计算不现实 |
| 四轴分度加工 | CAM | 旋转位置必须正确后处理 |
| 五轴联动 | 只能用 CAM | 需要后处理输出 TCPC 或 G68.2 |
| 一次性维修零件 | 手工编程 | 没有模型可供编程 |
常见问题
用 CAM 软件还需要学 G 代码吗?
需要,至少要能读懂。CAM 会输出程序,但编程员仍要检查程序头、换刀和退刀移动。多数后处理文件需要少量手动修改,读不懂代码的人无法判断修改是否安全。
在机床上也一样。尺寸漂移时,操作员调整磨损偏置。如果原因在程序里,就得有人打开文件找出来。
哪些 G 代码几乎出现在每个铣削程序里?
G00 快速定位,G01 直线进给,G02 和 G03 圆弧,G17 XY 平面,G21 公制单位,G90 绝对定位,G43 刀具长度偏置,G54 第一工件偏置。机床侧,M03 启动主轴,M05 停止主轴,M08 和 M09 控制切削液,M30 结束程序。
车床还会用到 G71 和 G70 粗加工与精加工循环,G76 螺纹加工,G96 恒线速度。
如何在不切金属的情况下检查程序?
使用系统的空运行和单段模式,将 Z 向工件偏置抬高 50 mm;如果系统有图形模拟就运行模拟。每次快速移动都观察剩余距离显示。逐段走过每次换刀,确认调用了正确的长度偏置。
加工首件实物时,快速倍率保持低档,进给倍率设在 25% 到 50%。等前几刀声音正常后再提高。
给加工厂编程和报价应发哪些文件?
用于几何形状的 STEP 或 IGES 实体模型,加上标注公差、基准、螺纹标注和表面处理要求的 2D 图纸。再补充材料牌号、数量以及任何表面处理或热处理要求。如果零件有配合要求,说明哪个尺寸与什么配合。
在钜亮五金(GreatLight),报价和免费 DFM 分析在 12 小时内返回,文件确认后 24 小时内可开始生产。
手工编写的程序能保证 ±0.005 mm 吗?
公差取决于机床、刀具和装夹,而不是代码由人还是 CAM 编写。刚性好的机床配正确刀具和验证过的装夹,用干净的手工程序也能保证 ±0.005 mm。风险在于程序段中的人为错误,所以空运行和首件检测很重要。
对于轮廓加工,限制因素通常是路径中的点数。点太少会留下棱面;点太多会让系统变慢。
编程员是否也应设定工件偏置?
取决于工厂。小厂里编程员常负责首件装夹并验证程序。大厂里装夹操作员对刀并存储偏置。无论哪种,装夹单上的偏置数值必须与程序中的 H 和 T 调用一致。
记录每把刀使用哪个偏置,能避免最常见的撞机:换刀时调用了错误的长度。
