我做了一个 CNC 加工参数计算器——聊聊它背后的工程逻辑

5 阅读4分钟

作者:李路 —— GE Vernova 机加工开发工程师,新加坡

在 CNC 加工这一行做了十多年——从机床前的加工员和调机员做起,后来做技术主管,现在在先进制造与维修技术中心做机加工开发——我发现自己在机床边每天仍然要做同样几个快速参数核算:这个直径该转多少转?这把刀该进多少?这个材料去除率对这种材料合理吗?

手册和各种 App 当然都有。但我想要一个透明的工具:每个数字都来自一条写清楚的公式,有单元测试覆盖,任何人都能核查计算过程。于是我做了一个网页版 CNC 加工参数计算器——免费、无需注册、无广告——并把源代码开源在 GitHub 上。

这篇文章讲清楚它背后的六个计算,每个都配算例。

1. 主轴转速

机加工车间使用频率最高的公式:

n = (1000 × Vc) / (π × D)
  • n = 主轴转速(RPM)
  • Vc = 切削速度(m/min)
  • D = 刀具或工件直径(mm)

算例: 用 Ø12 mm 硬质合金立铣刀,Vc 取 180 m/min:

n = (1000 × 180) / (π × 12) ≈ 4,775 RPM

2. 进给速度

F = fz × z × n
  • F = 进给速度(mm/min)
  • fz = 每齿进给量(mm/齿)
  • z = 齿数
  • n = 主轴转速(RPM)

算例: 接上例,fz = 0.08 mm/齿,4 刃铣刀:

F = 0.08 × 4 × 4,775 ≈ 1,528 mm/min

3. 每齿进给量

同一个关系式变形——当你知道机床实际进给、想反查切屑负荷是否合理时特别有用:

fz = F / (z × n)

4 刃铣刀在 1,528 mm/min、4,775 RPM 下,fz ≈ 0.08 mm/齿。如果刚性好的工况下算出来远低于这个值,那你不是在切削,是在摩擦。

4. 切削速度

接手一段参数未知的程序时,反算 Vc 能立刻告诉你这段程序写得多"激进":

Vc = (π × D × n) / 1000

5. 材料去除率(MRR)

MRR = ae × ap × F
  • ae = 切削宽度(mm)
  • ap = 切削深度(mm)

算例: ae = 6 mm,ap = 2 mm,F = 1,528 mm/min:

MRR = 6 × 2 × 1,528 ≈ 18,336 mm³/min

对比两个工艺方案时,MRR 是我最常用的指标——它把"感觉更快"变成可以比较的数字。

6. 钻孔参数

钻孔的转速同样用 Vc/D 关系式(D 取钻头直径),进给由每转进给量得出:

n = (1000 × Vc) / (π × D)
F = fr × n

算例: Ø10 mm 高速钢钻头加工钢件,Vc ≈ 30 m/min,fr = 0.2 mm/转:

n ≈ 955 RPM,F ≈ 191 mm/min

软件实现

"会写代码的工程师"这个组合在制造行业是真有用的,这也是这个工具超越电子表格的地方:

  • 模块化 Python 3.12 —— 上面每条公式都是一个独立的小函数(spindle_speed.py、feed_rate.py、mrr.py……),可单独复用
  • pytest 单元测试 —— 计算精度和输入校验全部有自动化测试覆盖
  • GitHub Actions 持续集成 —— 每次推送到 main 自动跑测试,公式改错了不可能悄悄上线
  • GitHub Pages 自动部署 —— 独立工作流发布网页界面,线上工具永远和被测试过的代码一致
  • 纯 HTML/CSS/JavaScript 前端 —— 没有框架依赖,在车间平板上也是秒开

我按我希望工程工具应有的方式设计它:计算层可审计、有测试、与界面分离。

重要:这些只是参考值

每个机加工的人都清楚,公式只是起点。实际参数必须考虑:

  • 工件材料与硬度
  • 刀具材质、几何角度与涂层
  • 机床能力与刚性
  • 装夹条件与刀具悬伸
  • 冷却与排屑
  • 刀具厂商自己的推荐区间

计算器给你数学上正确的数字;工艺判断永远是你自己的。

使用入口

下一步计划:车削专用计算、单位换算、每个计算器的独立重置按钮、更宽的测试覆盖。

关于作者

我是 GE Vernova 新加坡先进制造与维修技术中心(AMRT)的机加工开发工程师,拥有 10 年以上经验,覆盖 CNC 加工、加工工艺开发与验证、CNC 机床集成、夹具设计与维修技术——职业路径从 CNC 加工员做到技术主管,再到开发工程师。

我感兴趣的交叉点是制造工程与软件:用代码把工程知识变得透明、可复用。

欢迎反馈和贡献——特别是来自其他机加工同行的,你们想覆盖哪些计算?