要点速览
写第一行代码前先读图纸和模型
多数编程错误在打开编辑器之前就埋下了。把 STEP 或 IGES 文件和 2D 图纸并排打开,确认两边的版本字母一致。我们曾因模型是 C 版、图纸是 B 版,而编程员信了文件名,报废过零件。
标出所有严于 ±0.05 mm 的公差。这些特征决定装夹次数、刀具清单,以及是否需要第四轴或第五轴。±0.005 mm 的内孔不能和 ±0.2 mm 的型腔共用一次粗加工。
找出够不到的特征。4 mm 深、3 mm 圆角的槽需要 6 mm 立铣刀,而刀柄可能先于刀具撞到侧壁。确定刀具前,先核对刀柄体直径与壁高。
现在就定基准。选一个面和两条边,或一个内孔和一个面,写在装夹单上。之后每道工序都引用同一零点。程序中途换基准,是工序间丢 0.1 mm 最快的方式。
- 1版本核对编程开始前,模型和图纸必须带相同的版本字母。
- 2严公差清单任何低于 ±0.05 mm 的公差都单独安排工序和刀具。
- 3刀柄间隙刀具到达深度前,刀柄体直径加 1 mm 必须能避开侧壁。
手写 G 代码还是 CAM 输出
手写 G 代码适合简单工件:车端面和轴、钻圆周孔、铣矩形型腔。可以在机床旁编写,几分钟内验证,操作者一喊就能改一个数。整个程序可能 40 行,一遍就能读完。
几何一旦不再是平面,CAM 输出就占优。变深度曲面、五轴侧刃铣,或带 60 个型腔的零件,手写要几天而且还会错。CAM 软件还能跟踪剩余材料,让你知道刀具没有空切 20 分钟。
我们车间的实用规则:零件需要三把以上刀具,或任何非平面表面,就交给 CAM。如果是带几条槽和一个螺纹的车削件,就手写。两者混用很正常,好的编程员会手工修改 CAM 输出的第一段接近移动。
无论走哪条路,输出格式都一样:包含进给、转速和换刀块的 G、M 代码文本文件。机床不关心是谁写的,只关心数值一致、快速移动避开夹具。
转速、进给与切削深度
从表面速度起步,而不是主轴转速。6061 铝用硬质合金立铣刀,我们取 300–500 m/min 表面速度。10 mm 刀具约 9,500–16,000 rpm,我们多数主轴能达到。304 不锈钢降到 100–150 m/min,因为材料被摩擦而不是切削时会加工硬化。
每齿进给是断刀的关键数值。铝件用 10 mm 三刃刀,每齿 0.05–0.15 mm 属正常。不锈钢用每齿 0.03–0.08 mm,并保持切屑负载稳定。切屑像粉末说明在摩擦;像逗号且出来发蓝,就接近了。
切削深度取决于径向接触量。铝件满宽开槽,轴向深度限制在约 0.5 × 刀具直径。如果步距为直径的 30%,轴向深度可推到 1.5 × 直径以上。高效铣削就来自这里,也是同一把刀在一个程序里能用两种差别很大的进给率的原因。
后处理前始终核对机床限制。主轴额定 12,000 rpm 却发 16,000 rpm 指令,要么报警,要么以错误转速运行并烧刀。我们 4,000 × 400 × 150 mm 行程机床和 500 × 500 × 450 mm 紧凑机床的主轴范围不同,同一程序不一定能直接移植。
- 1铝 6061300–500 m/min,每齿 0.05–0.15 mm,满宽轴向切深 0.5 × D。
- 2不锈钢 304100–150 m/min,每齿 0.03–0.08 mm,切削中不得停留。
- 3Ti-6Al-4V 钛合金40–60 m/min,每齿 0.03–0.06 mm,始终开足切削液。
能扛过交接班的程序结构
把装夹单以注释形式写进程序。刀具清单、工件偏置、毛坯尺寸和基准面放在开头。接第二班的操作者从没见过你纸上的装夹笔记,但会读程序前 20 行。
每个装夹使用一个工件坐标系。op 1 用 G54,op 2 用 G55,依此类推。不要在程序中途偏移同一个坐标系,除非同时注释说明原因。零件回到 op 2 时,操作员可以对照装夹表核对 G55,不用猜。
调用刀具、启动主轴、移动到第一个位置,分三个程序段写。多花三行,避免一次撞机。顺序是:T5 M06,然后 S9500 M03,然后 G00 Z50,然后 G00 X Y。如果刀长不对,机床会在 X 或 Y 移动之前报警。
每把刀具结束时取消刀补和切削液。G40、M09,然后 G00 Z50。程序如果留着 G41 活动就换下一把刀,第一刀就会切出锥度,操作员可能要等到零件超差才发现。
常见错误及避免方法
代价最高的错误是工件坐标系设错。程序完美、刀具完美,机床却因为 G55 设在错误的角上而切进夹具 50 mm。第一次切削前,务必用千分表或测头核对坐标系。
第二个是漏写 G40 或残留 G41。如果刀补保持活动,下一把刀切出的零件会偏移一个补偿值。10 mm 刀具、5 mm 补偿,每个轮廓就偏 5 mm。每个工序结束时取消补偿。
第三个是进给率相对径向切深过大。30% 步距下运行良好的程序,在 100% 步距下用同样的每齿进给会断刀。改变步距时要重新计算进给,不只是改主轴转速。
第四个是换刀后忘记检查刀长。刀长差 0.2 mm,型腔底面就会出现 0.2 mm 的台阶。每把刀都要在对刀仪或接触式对刀块上测量,程序运行前更新偏置。
- 1核对坐标系第一次切削前用测头或千分表找正工件坐标系。不要相信上一个活留下的数值。
- 2取消补偿每个工序结束时、调用下一把刀之前执行 G40。
- 3改步距后重算进给径向切深变化时,每齿进给不是常数。
分步说明:编写程序
- 1设定基准和零点选一个面和两条边,或一个内孔和一个面。把零点位置和工件坐标系号(G54–G59)写在装夹表上。导入任何几何之前完成这一步。
- 2建立刀具清单列出每把刀具的直径、圆角半径、刃数和刀柄。最小刀具直径至少为最小内圆角半径的 1.5 倍。如果圆角是 3 mm,最小实用刀具是 5 mm。
- 3定义毛坯和安全平面在要加工的面留 0.5–1 mm 余量设定毛坯。快速平面设在毛坯最高点上方 5–10 mm。退刀平面设在夹具上方 50 mm。
- 4先编粗加工用能到达最深型腔的最大刀具。径向留 0.3–0.5 mm、轴向留 0.1–0.2 mm 给精加工。不要留 1 mm 指望精加工刀清掉,那是振纹的来源。
- 5用合适的刀具编精加工精加工刀具要匹配圆角半径和表面处理要求。Ra 0.8–1.6 μm 时,用锋利的硬质合金刀,圆角半径 0.4–0.8 mm,步距取 0.1–0.2 mm。
- 6加入钻孔和攻丝循环通孔用 G81,深度超过 3 倍直径的孔用 G83,刚性攻丝用 G84。不锈钢和钛的啄钻深度取 1 倍直径,铝取 2 倍直径。
- 7后处理并检查代码后处理程序,然后读前 30 行和后 30 行。确认单位(G21 为 mm,G20 为英寸)、平面(G17)和进给模式(G94)。公制程序里错一个 G20 就会撞机。
- 8降低快速倍率空运行刀具停在零件上方 100 mm,快速倍率打到 0% 运行程序。观察每次换刀和每次接近。只有空运行通过后,才降下刀具在毛坯高度上空切。
手工编程还是 CAM:看活选方法
开始前用这张表选择编程方式。
| 工件特征 | 手工编写 G 代码 | CAM 输出 |
|---|---|---|
| 带 1 个螺纹的 2 轴车削件 | 适用场景 | 可行,但装夹设置较慢 |
| 直壁平面型腔 | 1–3 把刀可以 | 型腔多时更好 |
| 非平面 3D 曲面 | 不实用 | 必需 |
| 5 轴联动 | 不实用 | 必需 |
| 超过五把刀 | 容易出错 | 刀具管理更好 |
| 一次性维修或返修 | 在机床上更快 | 准备成本太高 |
| 500件以上批量生产 | 只适合简单零件 | 一致性更好 |
| 特征公差严于 ±0.01 mm | 小心操作可行 | 配合残留毛坯跟踪更好 |
常见问题
能直接从 2D 图纸编写 CNC 程序吗?
可以,适用于车削件和简单棱柱件。轮廓、刀路和偏置都手工定义。风险在于看不见的几何:3D 过渡或拔模壁不会出现在 2D 视图上。
任何带曲面的零件,都从 3D 模型开始。2D 图纸是参考,不是源数据。
铝件起步用什么转速和进给?
6061 配硬质合金立铣刀,表面速度从 300–500 m/min 起步,每齿进给 0.05–0.15 mm。满宽切削时轴向切深取 0.5 倍刀具直径。
如果切屑薄而呈粉末状,加大每齿进给。如果刀具尖叫,先减小径向步距,再考虑降进给。
怎么判断程序可以安全运行?
快速倍率打到 0%,刀具停在毛坯最高点上方 100 mm 空运行。观察每一次快速移动、每一次换刀和每一次接近。
然后降下刀具,主轴开启,在毛坯高度运行程序。两遍都通过后,才切削零件。
为什么零件在工序之间出现台阶?
工序之间工件坐标系或刀长变了。刀长差 0.05 mm,精加工面上就能看到台阶。
重新测量刀具并重新核对坐标系。如果台阶大于 0.1 mm,检查夹具是否移动或零件下方是否有切屑。
带斜孔的程序需要第五轴吗?
不一定。如果角度只在一个面上,且零件可以重新装夹,用正弦台或角度虎钳的三轴机床就能完成。
当零件多个面上都有斜向特征,且希望一次装夹完成时,五轴才有意义。它还能消除重新装夹带来的误差。
编写一个 CNC 程序需要多长时间?
简单的车削件包括空运行在内需要 30–60 分钟。需要三次装夹的三轴铣削件需要 2–4 小时。带曲面加工的五轴零件可能需要一整天。
编程时间不是瓶颈。装夹和首件检验通常耗时更长。
