G-code编程语言教程:了解数控机床和3D打印机的G-code命令及其工作原理
如果您的工作或爱好涉及数控机床 (CNC) 或 3D 打印机,那么了解 G 代码是什么及其工作原理对您来说非常重要。在本教程中,我们将学习 G 代码语言和常见 G 代码命令的基础知识,并解释这些 G 代码命令的工作原理。

您可以使用这个免费的在线模拟器来测试您的 G 代码命令。
1. 什么是G代码?
G代码是CNC(计算机数控)机床的编程语言。 G-code是指Geometric Code,即几何代码。我们使用这种语言告诉机器要做什么或如何做某事。 G 代码命令指示机器向何处移动、移动的速度以及遵循的路径。
对于 CNC 机床,切削刀具由这些 G 代码命令驱动,以特定路径切削材料以获得所需的形状。
同样,对于 3D 打印机,G 代码命令指示机器逐层沉积材料以形成精确的几何形状。
2. 如何读取G代码指令?
当你第一次看到G代码文件时,它可能看起来相当复杂,但实际上并不难理解。
如果仔细观察代码,您会发现大多数代码行具有相同的结构。看来G代码“复杂”的部分主要是数字部分,而这些数字就是笛卡尔坐标。
让我们看一下一行代码并解释它是如何工作的。
G01 X247.951560 Y11.817060 Z-1.000000 F400.000000
该行具有以下结构:
G#x##Y#Z## F##
总而言之,代码 G01
请注意,单位为毫米/分钟,因为在前面的 G 代码示例中,我们使用命令 G21 将单位设置为毫米。如果您想以英寸为单位进行测量,则可以使用 G20 命令。
3. 常用G代码指令
现在我们了解了如何读取一行G代码,我们就可以学习最重要或最常用的G代码命令了。我们将通过几个示例了解每个 G 代码命令的工作原理,在本教程结束时,我们将能够充分理解 G 代码的工作原理、如何读取它、如何修改它,并能够编写我们的 G 代码。自己的G代码程序。
3.1 G00 – 快速定位
G00指令使机床以最大速度从当前位置移动到指定坐标。机器将同时移动所有轴,以便同时完成行程。结果是直线移动到新的位置点。
G00 是非切削运动,其目的是将机器快速移动到所需位置以开始某种工作,例如切削或打印。
3.2 G01 – 线性插补
G01指令指示机床以设定速度进行直线运动。我们使用 X、Y 和 Z 值指定最终位置,并使用 F 值指定速度。 CNC控制器计算(插值)要经过的中间点的坐标以获得直线。虽然这些 G 代码命令简单、直观且易于理解,但在幕后 CNC 控制器每秒执行数千次计算来完成这些运动。
与仅用于定位的 G00 指令不同,G01 指令在机床执行其主要任务时使用。例如,直线切割材料的机床,或者 3D 打印机
沿直线挤出材料。
3.3 G02——顺时针圆弧插补
G02指令要求机床顺时针做圆周运动。它与 G01 指令具有相同的概念,在执行适当的加工过程时使用。除了终点参数之外,这里我们还需要定义旋转中心,或者说圆弧起点到圆弧中心点的距离。起点实际上是上一个命令的终点或当前点。
为了更好地理解,我们将在上例中的 G01 指令之后添加 G02 指令。
因此,在本例中,我们首先使用G01指令将机床移动到X5、Y12点。现在,这将是 G02 指令的起点。通过G02指令的X、Y参数,我们设定终点。现在,为了通过圆周运动或圆弧到达终点,我们需要定义其中心点。我们使用 I 和 J 参数来做到这一点。 I和J的值是相对于上一条命令的起点或终点。因此,要获得 X5 和 Y7 的中心点,我们需要沿 X 轴偏移 0,沿 Y 轴偏移 -5。
当然,我们可以将中心点设置在其他地方,我们会得到一条以同一端点结束的不同弧线。这是一个例子:
因此,在这里,我们仍然具有与前面的示例相同的端点,即(X10,Y7),但中心点现在位于不同的位置(X0,Y2)。
这样我们就得到了更宽的弧线。
3.4 G00、G01、G02 示例——手动 G 代码编程
让我们看一个使用三个主要 G 代码命令 G00、G01 和 G02 的简单 CNC 铣削示例。
为了获得上面所示形状的路径,我们需要遵循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
第一个 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代码程序。
3.5 G03 – 逆时针圆弧插补
与G02一样,G03指令指示机床以圆弧方式移动,不同之处在于G03逆时针移动。其余功能及规则与G02指令相同。
使用这三个主要的 G 代码命令 G01、G02 和 G03,理论上我们可以生成任何形状的路径。您现在可能想知道这是怎么可能的,但这实际上是一个使用计算机和 CAM 软件的简单任务。是的,我们有时确实会手动制作G代码程序,但大多数时候,我们使用更简单、更安全的软件来生成G代码程序。
不管怎样,让我们继续解释常用的命令,并在教程结束时实现一个真正的 G 代码示例。
3.6 G20/G21 – 单位选择
G20 和 G21 命令定义 G 代码单位:英寸或毫米。
我们需要注意的是,单位必须在程序开始时设置。如果未指定单位,CNC 将考虑先前程序设置的默认值。
3.7 G17/G18/G18 – 工作面选择
通过这些 G 代码命令,我们选择机器的工作平面:
大多数 CNC 机床的默认设置是 G17,但也可以使用其他两个来实现特定运动。
3.8 G28——返航
G28 指令要求机器移动到参考点或起始位置。为了避免碰撞,我们可以包含一个带有 X、Y 和 Z 参数的中间点。工具在到达参考点之前将先经过该点。 G28 X##Y##Z##
原点位置可以用指令 G28.1 X# Y # Z # 定义。
3.9 G90/G91 – 定位模式
使用 G90 和 G91 命令,我们告诉机器如何解释坐标值。 G90为绝对模式,G91为相对模式。
在绝对模式下,工具始终相对于绝对点或零点定位。因此,无论之前的位置如何,指令 G01 X10 Y5 都会移动到精确的点 (10, 5)。
在相对模式下,工具相对于最后一个点定位。因此,如果机床当前位于点 (10, 10),则指令 G01 X10 Y5 将刀具指向点 (20, 15)。这种模式也称为“增量模式”。