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

获取即时报价

CNC 编程参考

加工中心程序代码完整汇总

本页列出运行加工中心所用的 G 代码、M 代码和程序结构,并说明针对具体零件哪些代码最关键。面向需要在机床上读取或修改程序、而不只是按循环启动的编程员、装夹技工和工艺工程师。

G 代码M 代码固定循环宏程序 B
CNC 知识:最全 CNC 程序代码,CNC 处理必备!
如何阅读本清单

程序代码实际起什么作用

代码分两类:一类移动刀具,另一类改变机床状态。

准备功能

G 代码:运动与几何类

G 代码告诉系统往哪走、怎么走。G00 是快速定位,G01 是直线进给,G02 和 G03 是顺时针和逆时针圆弧。G 类其余代码要么设定坐标系、选择平面,要么调用固定循环。在 Fanuc 风格的系统上,生效的 G 代码会一直保持,直到被取消或替换,所以长切削开头写一次 G01,不必每行重复。

模态行为是新编程员最容易出问题的地方。如果轮廓加工后 G41 刀具补偿仍处于生效状态,下一道工序就会按同一刀具半径偏移,把零件报废。养成每道工序结束时取消的习惯:G40 取消刀补,G80 取消固定循环,G49 取消刀长补偿。一个干净的取消程序段只占一行,却能省下一次装夹。

坐标系位于这一切之上。G54 到 G59 是标准工件偏置,G54.1 P1 到 P48 在支持的系统上扩展了这一范围。G53 按机床坐标移动,忽略当前偏置。夹具较高时,用 G53 做安全退刀和换刀。G28 和 G30 经中间点返回,当直接回参考点会撞到压板时很有用。

辅助功能

M 代码:主轴、切削液与程序控制

M 代码不移动轴。M03 主轴正转,M04 反转,M05 停止。M08 开切削液,M09 关,M07 通常选雾状。M06 换刀。顺序很重要:多数机床主轴旋转时不接受 M06,所以换刀程序段前需要 M05,否则机床会报警或等待。

程序控制代码决定文件如何读取。M30 结束程序并复位系统。M02 结束程序但不复位。M00 是无条件暂停,M01 是可选暂停,仅在操作面板开关打开时生效。M98 调用子程序,M99 从子程序返回,出现在末尾时则循环主程序。零件有六个相同型腔时,用 M98 加一组坐标偏置的子程序,比复制六段程序更短、更易核对。

有些 M 代码由机床厂家定义。托盘交换、排屑器、测头臂、棒料送料器和主轴内高压切削液在各厂家之间并不统一。同一个 M 代码编号在 Haas 和 Mazak 上含义可能不同。运行不熟悉的程序前,先读该机床自己的 M 代码表。为此我们在每台机床门内侧贴了一张打印的代码表。

快速参考

常用代码及其作用

以下是三轴或五轴加工中心上最常出现的代码简表。

代码功能适用场景
G00快速定位特征之间的非切削移动
G01直线进给按设定进给率走直线切削
G02 / G03圆弧插补内孔、圆角和圆弧轮廓
G17 / G18 / G19平面选择XY、XZ 或 YZ 圆弧平面
G40 / G41 / G42刀具补偿取消、左偏或右偏
G43 / G49刀长补偿开 / 关设定 Z 高度,然后取消
G54–G59工件坐标系每个台钳或夹具一个偏置
G73 / G83啄钻循环需要排屑的深孔
G81 / G82钻孔 / 定心与锪孔标准孔,孔底暂停
G84攻丝循环带编码器的刚性攻丝
G90 / G91绝对 / 增量多数加工用绝对;阵列用增量
G94 / G95每分钟进给 / 每转进给攻丝或车削时用每转进给
G96 / G97恒线速 / 转速车床或车铣复合上的车削工序
M03 / M04 / M05主轴正转 / 反转 / 停止启动和停止主轴
M06换刀工序之间,主轴停止
M08 / M09切削液开 / 关 flood 或雾状控制
M98 / M99子程序调用 / 返回重复型腔或孔阵列
M30程序结束并复位主程序最后一段
编程结构

程序段布局与安全起始

一个程序段就是程序中的一行。字地址格式是标准做法:一个字母加一个数字。N 是顺序号,G 是准备功能,X Y Z 是坐标,I J K 是圆弧中心,F 是进给,S 是主轴转速,T 是刀具号,M 是辅助功能。多数控制系统允许同一程序段内各字以任意顺序出现,但惯例是先 N,再 G,然后坐标,最后 F 和 M。保持一致性,凌晨 2 点出问题时程序更容易扫读。

每个程序顶部的安全起始段能避免大多数撞机。取消补偿、取消固定循环、取消刀长补偿、选择绝对模式、选择 XY 平面、选择工件坐标系。写出来就是 G40 G49 G80 G90 G17 G54。加上 G21 或 G20 表示公制或英制单位。如果上一件活把控制系统留在增量模式,这一行会在第一次快速移动前抓住它。

注释比多数程序员承认的更有用。Fanuc 控制系统用括号放注释;有些厂商用分号。每次换刀都标上刀具号和工序。每个工装夹具停止点都标出来。当程序六个月后回到机床上做返单时,注释就是装夹单。

宏程序与循环

Macro B、条件语句以及何时不该用

Macro B 给程序加入变量、算术和条件分支。像 #1 这样的局部变量在调用期间保存一个值。公共变量 #100 及以上在断电后保留。IF、GOTO 和 WHILE 让程序决定下一步做什么。一个简单例子:用 #100 作为孔深,同一个程序不用改坐标就能钻 12 mm 板和 25 mm 板。

IF 块和 GOTO 分支对测头和错误捕获有用。如果测头结果超出公差,程序可以跳到一条消息或停止,而不是继续切削。WHILE 循环在条件成立时重复一段,这就是一族型腔数量可变的零件不用重写文件就能处理的方式。

宏程序不总是正确答案。它们在车间里难读,变量号写错可能把刀具送进工装夹具。单件零件就写长程序。当同一几何形状在一族零件中重复、节省的装夹时间确实存在时才用宏程序。我们还会在任何宏程序旁边放一份写好的变量表,因为六个月后没人记得 #103 是干什么用的。

实用检查

为眼前的零件选择代码

零件决定代码清单,而不是反过来。一个带几个孔的平板支架只需要 G81 和 G83,别的几乎不用。一个带 3 mm 圆角半径的轮廓型腔需要 G41 加切入圆弧,切入长度必须大于刀具半径,否则控制系统会报警。有真正 3D 曲面的零件需要 CAM 后处理,G 代码输出主要是小步距的 G01 移动。手工读那个文件不现实。

固定循环省时间但隐藏了运动。G83 分步钻并退刀排屑;在铝里把分步深度设成约一个刀具直径,在不锈钢里更小。G73 更快,因为退刀距离短,但只在切屑断得干净时有效。在 304 不锈钢或 6061 深孔这类粘性材料里,全退刀循环比一个把容屑槽塞满的速度提升更安全。

攻丝是代码选择体现在检测报告上的地方。用 G84 刚性攻丝要求进给率与螺距精确匹配:进给等于转速乘以螺距,单位相同。弄错了螺纹就被撕裂或丝锥折断。在有很多小螺纹的零件上,浮动丝锥夹头加转速稍保守的 G84,比在已加工内孔里断丝锥更划算。

代码之外

程序运行之后会发生什么

正确的程序只是结果的一部分。刀具磨损、热增长和工装夹具变形都会让切削位置移动。在紧公差活上我们保持 ±0.005 mm(±0.0002 in)并在发货前 100% 检测,这意味着程序必须留出可在机床上调整的精加工余量。如果粗加工直接跑到最终尺寸,就没有东西可调了。

表面处理由进给、转速、刀具几何形状和步距的组合决定。铝件上运行良好的精加工走刀,Ra 0.8–1.6 μm 是正常的。Ra 0.2–0.8 μm 需要更小的步距、锋利的刀具,通常还要第二遍精加工。这些是工艺选择,不是代码选择,但代码必须留出余量才能实现。

从 1 件原型到 10,000+ 件的批量,我们保持同一程序,只换工件夹持,不改代码。这就是干净、有注释文件的意义:它从虎钳上的单件转到六工位工装夹具而不用重写。如果活需要五轴联动刀路、4,000 mm 行程或车铣复合,代码会生成并对照机床自己的后处理验证,然后在首件上试切确认。

常见问题

工程师常问的程序代码问题

所有 CNC 控制系统使用相同的 G 代码和 M 代码含义吗?

核心集合接近,但不完全相同。G00、G01、G02、G03、G54 和 M03 在 Fanuc、Haas、Mitsubishi 和 Siemens 控制器上一致。差异出现在固定循环细节、高速前瞻模式和机床厂商的 M 代码上,比如托盘交换、测头或内冷。

运行不熟悉的文件前,始终检查机床自己的代码清单。在一个厂商上安全的代码,在另一个上可能触发不同动作。

什么时候应该用 G41 刀具补偿,而不是直接编程刀路偏移?

如果要在机床上调整成品尺寸而不修改坐标,用 G41 或 G42。操作员在偏置表里改刀具半径,轮廓就按该数值偏移。

几何形状简单且刀具不会更换时,直接在程序里编偏置。刀具补偿会增加切入和切出移动,切入长度短于刀具半径时,多数系统会报警。

任何加工中心都能运行宏程序吗?

不能。Macro B 在许多系统上是选配功能,不一定启用。编写依赖变量和 IF 语句的程序前,先查机床参数或厂家的选配清单。

如果没有宏功能,通常可以用 M98 调用子程序、每个位置用工件坐标系来实现同样效果。

装夹变更后,安全的程序启动方式是什么?

用单段执行,把快速移动倍率调低,手放在进给保持上。注意第一次换刀和第一次 Z 轴接近,偏置错误往往在这里暴露。

安全起始行 G40 G49 G80 G90 G17 G54 可清除大部分残留模态状态。首次切削前在系统屏幕上核对工件坐标系和刀长偏置。

三轴和五轴加工中心的代码有区别吗?

G 代码体系相同,但五轴加工增加了旋转轴字,通常是 A、B 或 C,且往往需要 RTCP 或类似功能,使工作台倾斜时刀尖保持在编程点上。

多数五轴程序由 CAM 生成,首次切削前用仿真验证。手写五轴联动代码对实际零件不现实。

批量生产中如何保持程序一致?

每个零件号保留一份已验证的程序,用注释标出每把刀和每道工序。变更要记录,修改后的文件在继续生产前先做首件重新验证。

返单时尽量把程序放回同类机床上运行,使后处理和系统行为保持一致。

需要按已验证程序加工零件?

把 CAD 文件发给我们。12 小时内返回报价和免费 DFM 分析,每个零件经 100% 检验后出货。

12 小时报价100% 检测可按需签 NDA无最小起订量

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

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