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

获取即时报价

加工基础

掌握 CNC G 代码:工程师在切削金属前必读

G 代码是机床控制器逐行执行的指令集,用于控制刀具在材料中移动。本页介绍模态状态、坐标系和安全行,这些决定了程序是干净切削还是报废零件。面向审阅程序但不每天编写程序的设计和工艺工程师。

ISO 6983 字格式模态状态逻辑工件偏置刀具补偿
机床控制屏幕上讲解 CNC G 代码基础
核心概念

G 代码到底是什么,不是什么

G 代码是按 ISO 6983 标准化的文本指令集。每一行称为一个程序段,包含一个或多个字:字母地址加数字。G01 X25.4 Y0 F200 告诉控制器以 200 mm/min 直线移动到该坐标。控制器按顺序读取程序段,执行完一段再读下一段。

它不是设计文件。几何形状存在于 CAM 输出或图纸中。G 代码只描述运动、进给、转速、换刀和机床状态。零件加工出错时,原因往往在上游的 CAM 策略或工件夹持,而不在 G 代码本身。

不同控制器共享核心字集,但在边缘功能上有差异。Fanuc、Siemens、Haas 和 Mitsubishi 控制器都接受 G00、G01、G02 和 G03,但固定循环、宏语法和高速前瞻功能不同。在一个控制器上运行正常的程序,换到另一个上可能需要修改。

对审阅程序的工程师来说,有用的问题不是代码是否优雅,而是装夹是否安全、坐标是否与工装夹具匹配、刀路是否与图纸一致。大多数报废零件正源于此。

运动模式

大多数 G 代码是模态的。调用 G01 后,后续每个带坐标的程序段都保持 G01,直到出现另一个运动代码。这很高效,也是最常见的撞机来源。快速移动前漏掉一个 G00,或上一工序残留的 G41,都会延续到下面所有内容。

几乎每个程序中都会看到的三个运动代码是:G00 快速定位、G01 直线进给、G02 或 G03 顺时针和逆时针圆弧。G00 以机床最大快移速度移动,从不用于切削。G01 以编程进给率 F 移动。圆弧需要 I、J、K 偏置或 R 值,取决于控制器。

模态状态也适用于单位、平面选择和进给模式。G20 选择英寸,G21 选择毫米。G17、G18 和 G19 设置圆弧和刀具补偿的活动平面。G94 设置每分钟进给,G95 设置每转进给。混用这些而不复位,会产生屏幕上看似正确但尺寸错误的程序。

实用规则:每把刀开始时,复位你依赖的状态。不要假设上一把刀把控制器留在了已知状态。每个工序顶部加一个简短的安全程序段不花成本,能防止大多数到达主轴的错误。

坐标

工件偏置以及机床坐标与零件坐标的区别

机床坐标固定在机床上。零件坐标由工件偏置设定,通常是 G54 到 G59。控制器将偏置加到编程坐标上以找到物理位置。如果偏置错了,每个尺寸都会偏移相同的量,错误很容易发现,因为它是均匀的。

设置 G54 意味着对零件或工装夹具进行对刀,并将该位置存入偏置表。在虎钳装夹中,X 和 Y 零点通常是毛坯的角,Z 零点通常是顶面。在墓碑夹具或五轴转台上,偏置可能参考旋转中心点。这个选择会改变 CAM 后处理程序的方式。

常见故障是 CAM 设置与物理偏置不匹配。程序员假设 Z 零点是毛坯顶面;操作员却设成了虎钳钳口顶面。刀具扎进钳口或切空气。装夹单和程序头都应明确说明零点参考。

对于软爪或定制工装夹具夹持的零件,在装夹文档中记录偏置值。六个月后再次运行时,第二次装夹更快,零点错误的风险大幅下降。这是文档习惯,不是加工技能,但回报更频繁。

刀路控制

刀具补偿、刀长以及让尺寸保持在公差内的偏置

刀具补偿,G41 为左、G42 为右,将刀路按刀具半径偏移,使编程路径描述成品零件边缘,而不是刀具中心。控制器从偏置表读取半径。如果操作员在磨损测量后更新半径,零件尺寸会改变而无需编辑程序。

这就是刀具补偿对公差控制重要的原因。对于公差 ±0.005 mm 的特征,操作员可以小增量调整偏置并重新切削。改为编辑程序坐标会更慢、风险更高。大多数生产车间对所有轮廓切削都开启补偿,正是这个原因。

刀具长度补偿的原理相同。每把刀都有存储的长度,控制器在调用刀具时应用该值。长度补偿错误意味着刀具要么撞上工件,要么在工件上方空切。换刀或更换刀片后,应重新测量或通过对刀验证长度。

G43 应用长度补偿,通常配合与刀具对应的 H 号。G49 取消补偿。任何切削移动前的安全程序段是 G43 H01 Z50.0,它应用补偿并将 Z 定位到安全高度。跳过安全高度是少数会同时损坏工件和机床的错误之一。

限制

安全行、空运行,以及 G 代码不适合该任务的情况

安全起始行重置关键状态:G21 毫米、G17 XY 平面、G90 绝对定位、G94 每分钟进给、G40 取消任何活动的刀具补偿。它还用 G80 取消任何活动的固定循环。在运行多个程序员工作的机床上,这个程序段不是可选项。

退刀空运行,或降低进给的单段运行,能在大多数碰撞发生前发现它们。新程序上,用降低的快速倍率运行第一把刀,并观察剩余距离显示。如果剩余行程看起来不对,就停下。显示比屏幕预览告诉你更多。

当几何形状复杂且批量小时,G 代码并不合适。带有数百个小移动的五轴轮廓曲面,最好从 CAM 后处理并启用前瞻。手工编辑该刀路有产生过切的风险,且在仿真中难以发现。把代码当作审查产物,而不是写作练习。

对于手动铣床十分钟就能钻完的一次性孔位,它也不是合适的工具。编程、装夹和验证 CNC 程序有固定成本。低于一定的零件数量或复杂度,该成本无法收回。知道何时停止是技能的一部分。

参考

常用 G 代码及其改变的内容

字地址和模态行为因控制器略有差异。运行前请对照机床手册核实。

代码功能模态?典型用途
G00快速定位是在特征之间移动,不切削
G01直线进给移动是按编程进给率直线切削
G02 / G03圆弧,顺时针 / 逆时针是圆角、半径、圆形型腔
G17 / G18 / G19平面选择 XY / XZ / YZ是在圆弧和刀具补偿前设置
G20 / G21英寸 / 公制单位是在每个程序开头重置
G40取消刀具补偿是安全起始行,轮廓切削结束
G41 / G42刀具补偿左 / 右是轮廓切削保持严格公差
G43 / G49应用/取消刀具长度偏置是每次换刀前后
G54–G59工件坐标系偏置是设置相对于机床的零件零点
G80取消固定循环是钻孔或攻丝循环之后
G90 / G91绝对 / 增量定位是大多数生产工作用绝对
G94 / G95每分钟进给 / 每转进给是攻丝和车削用每转进给

何时信任代码,何时信任装夹单

如果零件简单且批量大,投资于程序,让刀具补偿保持公差。如果几何复杂且批量小,投资于 CAM 策略和工装夹具,然后把 G 代码当作需要验证而非编辑的输出。

常见问题

工程师常问的 G 代码问题

审查加工报价需要读 G 代码吗?

不需要。报价取决于几何、材料、公差和数量,而不是代码。但读装夹单能告诉你工厂是否考虑了工件夹持、刀具可达性和零点参考。

如果工厂说不出哪个面是 Z 零点以及零件如何夹持,这说明工艺计划薄弱。要装夹单,不要程序。

为什么同一程序在两台机床上产生不同尺寸?

工件坐标系、刀具长度补偿和刀具补偿值存在于机床上,而不是程序中。如果补偿不同,零件就不同。热膨胀和机床磨损也会在长时间运行中使尺寸漂移。

解决办法是标准化装夹单,并在每次运行开始时验证补偿。严格公差下,量产前做首件检验能及早发现漂移。

G41 对最终尺寸实际做了什么?

G41 按补偿表中存储的刀具半径,将刀路向编程方向的左侧偏移。编程路径随后描述成品边缘。增大存储半径会把特征切小;减小则切大。

这就是操作员调整补偿而不是程序的原因。0.01 mm 的补偿变化使壁面移动 0.01 mm,±0.005 mm 的特征就是这样调出来的。

手写 G 代码在生产中还在用吗?

对于端面、钻孔阵列和基本型腔等简单特征,是的。它快速且可预测。对于轮廓 3D 曲面,CAM 输出是标准做法,因为移动数量太多,无法手写。

大多数工厂混合使用。程序员从 CAM 后处理,然后手工编辑程序头、安全起始行和换刀程序段。

如何知道程序可以安全运行?

首次切削前检查安全起始行、工件坐标系和刀具长度补偿。用降低的快速倍率和单段模式运行第一把刀。观察剩余距离显示,而不只是仿真。

在同一机床、工装夹具和材料上验证过的程序风险低。在机床之间转移的程序则不是,即使代码未变。

G 代码会影响我能达到的表面处理吗?

间接影响。代码中的进给率、步距和刀具半径决定理论表面处理。机床刚性、刀具状态和材料决定实际结果。用合适的参数,铝件上 Ra 0.8–1.6 μm 的表面处理可以实现,但仅靠代码不能保证。

如果表面处理重要,在图纸上注明,让工厂选择参数。然后按该数值检验首件。

把图纸发给我们,而不是代码

上传您的 CAD 文件,我们将在 12 小时内返回带 DFM 分析的报价。无最小起订量,从一件原型到 10,000+ 件。

12 小时报价免费 DFM 分析无最小起订量按需签署 NDA

关注

更多来自 GreatLight

我们发布来自工厂车间的装夹记录、刀具试验和检测数据。

FacebookTikTokYouTubeLinkedInInstagramThreadsPinterest

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

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