G代码解释|最重要的 G 代码命令列表
如果您的工作或爱好与 CNC 机器或 3D 打印机相关,那么了解 G 代码是什么以及它是如何工作的对您来说至关重要。因此,在本教程中,我们将学习 G 代码语言的基础知识,最重要或最常见的 G 代码命令是什么,我们将解释它们是如何工作的。
G代码 是一种用于 CNC(计算机数字控制)机器的编程语言。 G 代码代表“几何代码”。我们使用这种语言来告诉机器该做什么或如何做某事。 G 代码命令指示机器向何处移动、移动速度和路径。
对于车床或铣床等机床,刀具由这些命令驱动以遵循特定的刀具路径,切削材料以获得所需的形状。
同样,在增材制造或 3D 打印机的情况下,G 代码命令会指示机器一层一层地沉积材料,形成精确的几何形状。
乍一看,当你看到一个 G 代码文件时,它可能看起来很复杂,但实际上并不难理解。
如果我们仔细查看代码,我们会注意到大多数行具有相同的结构。似乎 G 代码中“复杂”的部分就是我们看到的所有数字,它们只是笛卡尔坐标。
让我们看一下一行并解释它是如何工作的。
G01 X247.951560 Y11.817060 Z-1.000000 F400.000000
该行具有以下结构:
G## X## Y## Z## F##
总结一下,行 G01 X247.951560 Y11.817060 Z-1.000000 F400 告诉 CNC 机床从当前位置直线移动到坐标 X247.951560、Y11.817060 和 Z-1.000000,速度为 400 mm /分钟。单位是毫米/分钟,因为如果我们回顾一下 G 代码示例图像,我们可以看到我们使用了将单位设置为毫米的命令 G21。如果我们想要以英寸为单位,我们使用 G20 命令代替。
所以,现在我们知道如何阅读一行 G 代码,我们可以看看最重要或最常用的 G 代码命令。我们将通过几个示例来了解它们是如何工作的,在本教程结束时,我们将能够完全理解 G 代码的工作原理、如何阅读、如何修改,甚至如何编写我们自己的 G 代码。
G00 命令以最大移动速度将机器从当前位置移动到指定点或命令指定的坐标。机器将同时移动所有轴,因此它们同时完成行程。这会导致直线移动到新的位置点。
G00 是一种非切割运动,其目的是快速将机器移动到所需位置以开始某种工作,例如切割或印刷。
G01 G 代码命令指示机器以设定的进给速率或速度沿直线移动。我们用 X 指定结束位置 , 是 和 Z 值,以及 F 的速度 价值。机器控制器计算(内插)要通过的中间点以获得该直线。尽管这些 G 代码命令简单易懂,但在它们背后,机器控制器每秒执行数千次计算以进行这些动作。
与仅用于定位的 G00 指令不同,G01 指令在机床执行其主要工作时使用。如果是车床或铣床,则直线切割材料,如果是 3D 打印机,则直线挤压材料。
G02 命令告诉机器以圆形模式顺时针移动。它与 G01 指令的概念相同,用于执行适当的加工过程。除了终点参数,这里我们还需要定义旋转中心,或者说圆弧起点到圆弧中心点的距离。起点实际上是上一条命令或当前点的终点。
为便于理解,我们将在上例中的 G01 指令之后添加 G02 指令。
因此,在示例中,我们首先使用 G01 命令将机器移动到 X5、Y12 点。现在这将是 G02 命令的起点。我们用 G02 指令的 X 和 Y 参数设定终点。现在为了使用圆周运动或使用圆弧到达这个端点,我们需要定义它的中心点。我们使用 I 和 J 参数来做到这一点。 I 和 J 的值是相对于上一个命令的起点或终点的。所以,要让中心点到 X5 和 Y7,我们需要偏移 0 沿 X 轴,偏移 -5 沿 Y 轴。
当然,我们可以将中心点设置在其他任何地方,这样我们就会得到一条不同的弧线,它在同一端点处结束。这是一个例子:
所以,这里我们仍然有与前一个例子相同的端点(X10,Y7),但中心点现在在不同的位置(X0,Y2)。有了这个,我们得到了比前一个更宽的弧度。
另请参阅:如何使用 Arduino 设置 GRBL 和控制 CNC 机器
让我们看一个使用这三个主要 G 代码命令 G00、G01 和 G02 的简单 CNC 铣削示例。
要获得上图所示形状的刀具路径,我们需要遵循 G 代码命令:
与第一个 G00 命令,我们快速将机器从其原点或初始位置带到 B(5,5) 点。从这里开始,我们使用 G01 以 200 的进给速率“切削” 命令。我们可以注意到,为了从点 B(5,5) 到点 C(5,25),我们使用相对于起始 B 点的 X 和 Y 值。因此,在 Y 方向上 +20 个单位将使我们到达点 C(5,25)。实际上,这取决于我们是否选择了将坐标解释为绝对坐标或相对坐标的机器。我们将在后面的部分中解释这一点。
一旦我们到达点 C(5,25),我们有另一个 G01 指令到达点 D(25,25)。然后我们使用 G02 命令,一个圆周运动,到达 E(35,15) 点,中心点为 (25,15)。对于下一个 G02 指令,我们实际上有相同的中心点 (25,15),以到达点 F(31,7)。但是,我们应该注意,I 和 J 参数与前面的命令不同,因为我们从最后一个端点或点 E 偏移了中心。我们用另一个 G01 命令完成刀具路径,该命令从点 F(31, 7) 回到 B(5,5) 点。
所以,这就是我们可以手动编写 G 代码来制作这个形状的方法。不过,我们需要注意这不是一个完整的 G 代码,因为我们缺少更多的基本命令。我们将在后面的示例中制作完整的 G 代码,因为我们首先需要解释这些 G 代码命令。
就像 G02,G03 G 代码命令定义机器以圆形方式移动。这里唯一的区别是运动是逆时针的。其他所有功能和规则与 G02 指令相同。
所以,有了这三个主要的 G 代码命令,G01 , G02 和 G03 我们可以为我们想要的任何形状生成刀具路径。您现在可能想知道这怎么可能,但这对于计算机和 CAM 软件来说实际上是一件容易的事。是的,确实有时我们可以手动编写 G 代码程序,但大多数时候我们使用更简单、更安全的适当软件来完成。
不过,现在解释一些更重要和常用的命令,最后做一个真正的 G 代码示例。
G20 和 G21 命令定义 G 代码单位,英寸或毫米。
我们需要注意,单位必须在程序开始时设置。如果我们不指定单位,机器将考虑上一个程序设置的默认值。
通过这些 G 代码命令,我们选择机器的工作平面。
G17是大多数CNC机器的默认设置,但其他两个也可以用于实现特定的运动。
G28 命令告诉机器将工具移动到其参考点或原始位置。为了避免碰撞,我们可以包含一个带有 X、Y 和 Z 参数的中间点。工具将在到达参考点之前通过该点。
可以使用命令
使用 G90 和 G91 命令,我们告诉机器如何解释坐标。 G90 用于绝对模式 和 G91 用于相对模式 .
在绝对模式下,刀具的定位总是从绝对点或零开始。所以命令
另一方面,在相对模式下,工具的定位是相对于最后一点。因此,如果机器当前位于点 (10,10),则命令
因此,我们上面解释的 G 代码命令是最常见的,但还有更多。有刀具补偿、缩放、工作坐标系、暂停等命令。
除了 G 代码之外,还有 M 代码命令,用于生成真正成熟的 G 代码程序。以下是一些常用的 M 代码命令:
如果是 3D 打印机:
其中一些命令需要适当的参数。例如,当用 M03 开启主轴时,我们可以使用 S 参数来设置主轴转速。所以,
我们还可以注意到许多代码是模态的 ,这意味着它们在取消或被另一个代码替换之前一直有效。例如,假设我们有一个直线切削运动代码
进给速率参数 F 也是如此。我们不必在每一行都包含它,除非我们想改变它的值。
在某些 G 代码文件中,您还可以看到“N## ”在命令前面。 N字很容易对代码行或代码块进行编号。这有助于在大型程序中出现错误时识别特定行。
尽管如此,在阅读了所有这些之后,现在我们可以手动编写一个真实的、实际的代码了。举个例子:
G代码程序说明:
以下是准备好通过 Universal G-code Sender 软件将代码发送到我们的 CNC 机床的样子:
因此,使用上面解释的这些主要 G 代码命令,我们设法编写了自己的成熟 G 代码。当然,这个例子非常简单,对于更复杂的形状,我们肯定需要使用 CAM 软件。下面是一个复杂的马形 G 代码示例:
相比之下,这段代码大约有 700 行,但都是自动生成的。 G 代码是使用 Inkscape 作为我的 DIY Arduino CNC 泡沫切割机的示例制作的。形状是这样出来的:
您可以查看我的特定教程以获取有关此机器的更多详细信息。
因此,我们涵盖了 G 代码的基础知识,解释了最重要和最常见的 G 代码命令,并手动制作了我们自己的实际 G 代码。毕竟,我认为理解 G 代码并不难。当然,CNC 加工或 3D 打印中使用的其他命令和功能还有很多我们应该了解的,但在其他一些教程中会详细介绍。
如果您觉得这篇文章有用,请与其他 CNC 和 3D 打印爱好者分享。也可以在下面的评论部分随时提出任何问题。什么是G代码?
如何读取 G-code 命令?
最重要/最常用的 G 代码命令
G00 – 快速定位
G01 – 线性插值
G02 – 顺时针圆插补
G00, G01, G02 示例 – 手动 G 代码编程
G00 X5 Y5 ; point B
G01 X0 Y20 F200 ; point C
G01 X20 Y0 ; point D
G02 X10 Y-10 I0 J-10 ; point E
G02 X-4 Y-8 I-10 J0 ; point F
G01 X-26 Y-2 ; point B
Code language: Arduino (arduino)G03 – 逆时针圆插补
G20/ G21 – 单位选择
G17/ G18/ G18 – G代码平面选择
G28 - 回家
G28 X## Y## Z##
G28.1 X## Y## Z##
定义起始位置 .G90/ G91 – 定位 G 代码指令
G01 X10 Y5
无论之前的位置如何,都会将工具带到那个精确的点 (10,5)。G01 X10 Y5
将工具指向 (20,15)。这种模式也称为“增量模式”。更多命令和规则
M30 S1000
行 将以 1000 RPM 的速度打开主轴。G01 X5 Y7 F200
.如果下一个动作又是直线切削,我们可以直接输入X和Y坐标,前面不用写G01。G01 X5 Y7 F200
X10 Y15
X12 Y20
G02 X5 Y5 I0 J-5
X3 Y6 I-2 J0
Code language: Arduino (arduino)简单G代码程序示例
%
G21 G17 G90 F100
M03 S1000
G00 X5 Y5 ; point B
G01 X5 Y5 Z-1 ; point B
G01 X5 Y15 Z-1 ; point C
G02 X9 Y19 Z-1 I4 J0 ; point D
G01 X23 Y19 Z-1 ; point E
G01 X32 Y5 Z-1 ; point F
G01 X21 Y5 Z-1 ; point G
G01 X21 Y8 Z-1 ; point H
G03 X19 Y10 Z-1 I-2 J0 ; point I
G01 X13 Y10 Z-1 ; point J
G03 X11 Y8 Z-1 I0 J-2 ; point K
G01 X11 Y5 Z-1 ; point L
G01 X5 Y5 Z-1 ; point B
G01 X5 Y5 Z0
G28 X0 Y0
M05
M30
%
Code language: Arduino (arduino)
结论
制造工艺