GreatLight CNC 加工工厂 logo
CNC 加工
快速原型打样
材料
行业
新闻
关于 GL

获取即时报价

CNC 铣削基础

CNC 铣削代码基础知识

本页说明 CNC 铣削程序是如何构建的:程序段结构、控制刀具运动的 G 代码和 M 代码、偏置、工件坐标系,以及 CAM 输出如何传到机床。面向设计工程师、制造工程师和采购人员,帮助他们读懂程序、判断装夹方案,并在车间层面提出更准确的问题。

G 代码与 M 代码程序段结构工件偏置CAM 输出
CNC G 代码基础讲解
文档

如何读懂铣削程序

CNC 铣削程序是一组按顺序执行的指令。每一行告诉机床去哪里、走多快、开启哪些功能。

结构

程序段的构成

铣削程序以程序段编写。一个程序段就是一行代码,每个程序段由字组成。字是地址字母加数字:G01、X50.0、F800、S6000、T05、M08。字母表示后面是什么类型的信息,数字给出数值。在多数控制系统上,程序段内字的顺序是灵活的,但按常规顺序(N、G、X/Y/Z、F、S、T、M)编写,程序更易读、更易调试。

地址字母不重叠。G 是准备功能,用于设定模式,如直线插补或钻孔循环。M 是辅助功能,用于开启或关闭机床行为,如主轴旋转或切削液。X、Y、Z 是轴位置。I、J、K 定义圆弧中心或循环参数。F 是进给率,S 是主轴转速,T 调用刀具。

程序段号(N)在现代控制系统上是可选的,但很有用。它让操作员能跳到某一行,也会出现在报警信息中,因此在后处理输出中保留程序段号,能在循环中途停机时节省时间。

还有一个值得保持的习惯:把相关的字分组,让每个程序段只做一件事。一个程序段同时换刀、设转速、开切削液并移动轴是合法的,但报警时你就有四个嫌疑对象而不是一个。我们 CAM 后处理输出的程序会把它们拆成短程序段,原因就在于此。

  • 1
    字地址字母加数值,如 G01 或 F800
  • 2
    程序段一行代码,作为一个单元执行
  • 3
    模态保持有效直到被取消的 G 代码
  • 4
    非模态仅对当前程序段有效的代码,如 G04
G 代码

承担大部分工作的 G 代码

铣削程序的大部分内容是运动。G00 以快速移动将刀具移到某位置,通常在工件上方。G01 按编程进给率直线进给,是真正切削的代码。G02 和 G03 切削顺时针和逆时针圆弧;圆弧由终点加圆心偏移(I、J、K)或半径(R)定义。

G17、G18、G19 选择圆弧和刀具补偿的平面。在立式铣床上,G17(XY 平面)几乎总是有效。G20 和 G21 将单位制设为英寸或毫米,设错是报废工件或撞机最快的方式之一。运行任何程序前先检查单位行。

固定循环处理重复操作。G81 是简单钻孔循环,G83 是啄钻,G73 是高速啄钻,G84 是攻丝。每个循环都有退刀高度、深度和啄钻增量参数,通常用 G98 或 G99 设定返回平面。循环一旦激活,就在每个新位置重复,直到 G80 取消。

刀具补偿是很多困惑的起点。G41 将刀具偏置在路径左侧,G42 在右侧,G40 取消。精加工时,操作员可能调整几千分之一英寸的磨损偏置,而不是修改程序。这是常规做法,也是程序中坐标值不总是刀具实际切削值的原因。

  • 1
    G00 / G01快速移动与直线进给切削
  • 2
    G02 / G03顺时针与逆时针圆弧
  • 3
    G81 / G83钻孔循环与啄钻循环
  • 4
    G41 / G42左、右刀具补偿
M 代码与偏置

M 代码、刀具与工件偏置

M 代码控制机床而非路径。M03 启动主轴顺时针旋转,M04 逆时针,M05 停止。M08 开切削液,M09 关。M06 换刀,通常与选择刀位的 T 字一起使用。M30 结束程序并倒回;M00 是计划内的操作员暂停。

刀具长度和直径存放在偏置表中,不在程序里。程序调用 T05,然后 H05 应用长度,补偿激活时 D05 应用直径。如果更换刀具,操作员测量后更新 H05。程序本身不变。这种分离让同一文件在换刀后仍可运行。

工件偏置定义工件在机床中的位置。G54 到 G59 是标准组,多数工件默认用 G54。操作员对刀碰角或基准,将位置存入工件偏置页面。在 G54 下于一台虎钳上运行的程序,如果 CAM 后处理内置了该偏置,也可以在 G55 下于第二台虎钳上运行。

子程序和循环即使你从不编写也值得了解。M98 调用子程序,M99 返回。对于有 40 个相同孔的工件,循环比 40 个重复程序段更短、更易验证。如果 CAM 后处理生成的输出很长,可以问一下用子程序是否更简洁。

  • 1
    M03 / M05主轴正转与主轴停止
  • 2
    M06换刀
  • 3
    M08 / M09切削液开与关
  • 4
    M30程序结束并倒回
参考

铣削中常见的 G 代码和 M 代码

用于阅读后处理输出的简要参考。各控制系统方言不同,手动编辑程序前请对照机床手册确认。

代码功能使用场景
G00快速定位接近与退刀移动
G01直线插补按进给率的直线切削
G02 / G03圆弧插补圆角、半径、型腔
G17 / G18 / G19平面选择圆弧与补偿平面
G20 / G21英寸 / 公制单位在程序开头设定
G40 / G41 / G42刀具补偿精加工、磨损偏置
G43刀长补偿每次换刀后
G54–G59工件坐标系工件零点位置
G81 / G83钻孔与啄钻循环孔阵列
G84攻丝循环刚性攻丝
M03 / M04 / M05主轴控制启动与停止主轴
M06换刀工序之间
M08 / M09切削液控制切削与空运行
M30程序结束为下一工件复位
从 CAD 到机床

CAM 输出如何变成铣削程序

复杂零件没人手写五轴程序。CAM 系统读取实体模型,套用刀路策略,再针对具体控制系统后置处理成 G 代码。后置处理器决定代码长什么样:哪些 G 代码是模态的、圆弧怎么输出、程序是否用子程序、工件坐标系和刀具号怎么编号。

两家工厂用同一个模型加工同一个零件,生成的程序可能完全不同。这很正常。关键是后置处理的代码要匹配机床、刀具和操作员实际使用的装夹。为三轴铣床后置的程序,没有正确的后置处理器,在五轴机上跑不对。

仿真能在切削前发现大部分几何和碰撞问题。我们在软件里验证刀路,检查过切、快速移动碰撞和刀柄干涉,然后做首件并检测。要求高的活我们控制在 ±0.005 mm、表面粗糙度 Ra 0.8–1.6 μm,程序必须稳定到整批都能重复。

拿到程序要审,先看三处:单位行、工件坐标系、刀具清单。装夹错误很大一部分出在这三项。然后检查第一个快速移动和退刀高度。刀具全速快移到工装夹具上,不会给人第二次机会。

手工修改后置代码有时必要,但总有风险。在控制面板上改进给率或磨损补偿值,可以撤销。改文件里的坐标,六个月后可能想不起为什么改。任何手工修改都要留记录。

  • 1
    后置处理器把 CAM 刀路转成特定控制系统的 G 代码
  • 2
    仿真检查过切、碰撞和刀柄干涉
  • 3
    首件在整批加工前验证程序
常见问题

CNC 铣削代码常见问题

所有 CNC 铣床的 G 代码都一样吗?

不一样。核心运动代码(G00、G01、G02、G03)基本通用,但固定循环、子程序调用、高速模式和宏程序语法在 Fanuc、Siemens、Heidenhain 和 Mitsubishi 控制系统之间不同。

为一个控制系统后置的程序,通常需要重新后置处理,而不只是改几处,才能在另一个系统上正常跑。

CAM 后置处理后我能自己改 G 代码吗?

可以,操作员对小改动如进给率或磨损补偿就是这么做的。风险是 CAM 模型和后置文件会逐渐不一致。

如果是永久性改动,在 CAM 里改并重新后置。如果是一次性调整,在控制面板上改,并在装夹单上注明。

铣床上的 G54 是什么意思?

G54 是标准工件坐标系中的第一个。它告诉控制系统零件零点相对机床零点的位置。

大多数单台虎钳的活都在 G54 里跑。多工位工装夹具可能用 G55、G56 等,这样一个程序一次循环能加工几个零件。

为什么程序用 I 和 J 而不是 R 表示圆弧?

I 和 J 把圆弧圆心定义为相对起点的增量偏移,对接近整圆的圆弧更精确。R 定义半径,写起来短,但圆弧超过 180 度时可能有歧义。

有些控制系统和后置默认用 I 和 J,有些用 R。写对了,两者生成的几何相同。

刀具偏置和工件坐标系有什么区别?

刀具偏置描述刀具:长度和直径。工件坐标系描述零件:它在机床里的位置。

每次换刀后用 G43 加 H 号应用刀长。工件坐标系在开头应用一次,通常用 G54。

采购机加工零件需要懂 G 代码吗?

不需要会写,但看懂基础有助于审装夹单、理解报价为什么多一道工序、讨论公差问题时不用猜。

也有助于发现图纸要求了工艺做不到的东西,比如刀具带圆角却要求尖内角。

把零件发给我们,程序这边我们来审

上传图纸或 3D 模型。我们 12 小时内回复报价和免费 DFM 分析,每件零件发货前都检测。

12 小时报价免费 DFM 分析100% 全检

深受全球工程师和制造商信赖

Tesla Ford Motor Company 比亚迪汽车 电装 麦格纳国际 波音 空客 美敦力 库卡 发那科