如果您的工作或业余爱好与数控机器或3D打印机相关联,那么了解G代码是什么以及它对您所必需的。亚博88下载因此,在本教程中,我们将学习G代码语言的基础知识,什么是最重要或最常见的G代码命令,我们将解释它们是如何工作的。

刀位点是什么?

G代码是CNC(计算机数控)机器的编程语言。G代码代表“几何代码”。我们使用这种语言来告诉机器该做什么或如何做某事。G代码命令指示机器在哪里移动,移动的速度有多快,遵循的路径。

在诸如车床或轧机的机床的情况下,切削工具由这些命令驱动以遵循特定的刀具路径,以获得所需的形状。

类似地,在增材制造或3D打印机中,g代码指令指令机器沉积材料,一层又一层,形成精确的几何形状。

如何读取g代码命令?

乍一看,当你看到一个G代码文件时,它可能看起来非常复杂,但实际上并不是很难理解。

WordPad文本编辑器中的G-Code示例

如果我们仔细看看代码,我们可以注意到大多数线条具有相同的结构。似乎G代码的“复杂”部分都是我们看到的所有数字,这只是笛卡尔坐标。

让我们看一行并解释它是如何工作的。亚博88下载

G01 x247.951560 y11.817060 z-1.000000 f400.000000

该行具有以下结构:

G # #X Y Z # # # # # #F # #

  • 首先是刀位点命令在这种情况下是G01.这意味着“直线移动到特定位置”。
  • 我们宣布了职位或坐标XyZ.价值观。
  • 最后,与F我们设置的价值饲料速度或者将执行移动的速度。

包装,线G01.X247.951560 Y11.817060 Z-1.000000F400.000000讲述CNC机器以直线从其当前位置移动到坐标X247.951560,Y11.817060和Z-1.000000,速度为400毫米/分钟。单位是mm / min,因为如果我们回顾G代码示例图像,我们可以看到我们使用的命令G21.将单位设置为毫米员。如果我们希望单位以英寸为单位,我们使用G20.代替命令。

最重要/常用的G-code命令

所以,现在我们知道如何阅读一系列G代码,我们可以看一下最重要或最常用的G代码命令。我们将学习每个示例如何工作,并且在本教程结束时,我们将能够完全理解G代码如何工作,如何阅读,如何修改,甚至如何编写自己的G代码。

G00 - 快速定位

G00.命令将机器从当前位置以最大的行驶速度移动到指定点或命令指定的坐标。机器将同时移动所有轴,以便同时完成行程。这导致直线移动到新位置点。

G00 G码命令 - 线性快速定位

G00是一种非切割运动,它的目的是快速移动机器到期望的位置开始某种工作,如切割或印刷。

G01 - 线性插值

G01.G-Code命令指示机器以设置的进料速率或速度在直线上移动。我们使用的结束地位XyZ.值,以及速度F价值。机器控制器计算(插值)中间点以通过以获得直线。虽然这些G码命令很简单,非常直观地了解,但是机器控制器每秒执行数千个计算,以便进行这些运动。

线性插值-最常见的g代码命令

与仅用于定位的G00命令不同,当机器执行其主要作业时,使用G01命令。在车床或轧机的情况下,直线切割材料,在3D打印机的情况下,直线挤出材料。

G02 - 顺时针插值圆形插值

G02.命令告诉机器以圆形图案顺时针移动。它是与G01命令相同的概念,它在执行适当的加工过程时使用它。除了终点参数之外,这里还需要定义旋转中心,或者从弧的中心点定义弧开始点的距离。起点实际上是来自上一个命令或当前点的终点。

为了更好地理解,我们将在前面示例中的G01命令之后添加G02命令。

G02  - 顺时针循环插值 - 最重要的g码命令之一

因此,在示例中,首先,我们拥有将机器移动到X5,Y12点的G01命令。现在这将是G02命令的起点。使用g02命令的x和y参数,我们设置了终点。现在为了使用圆周运动或使用弧形到此端点,我们需要定义其中心点。我们使用i和j参数确实这样做。I和j的值相对于前一个命令的起点或终点。所以,为了让中心点到X5和Y7,我们需要弥补0.沿x轴,偏移-5沿着Y轴。

当然,我们可以把中心点设为其他任何地方,这样我们就会得到一个不同的弧,它在同一终点结束。这里有一个例子:

G02 G码命令 - 顺时针循环插值 - 示例02

这里的终点和前面的一样(X10, Y7)但是中心点现在在不同的位置(X0, Y2)与前一个相比,我们得到了更宽的弧。

G00,G01,G02示例 - 手动G代码编程

让我们看一个简单的数控铣削示例,使用这三个主要的g代码命令,G00, G01和G02。

g代码g00 g01和g02命令示例

为了得到上图所示的形状的工具路径,我们需要遵循G-code命令:

G00 x5 y5;B点G01 X0 Y20 F200;C点G01 X20 Y0;点D G02 X10 Y-10 I0 J-10;点E G02 X-4 Y-8 I-10 J0;F点G01 X-26 Y-2;点B.

首先G00.命令,我们迅速将机器从其家中或初始位置带到点B(5,5)。从这里开始,我们以使用的饲料速度从“切割”开始G01.命令。我们可以注意到,从点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)。我们实际上具有相同的中心点(25,15),用于下一个G02命令,以指向F(31,7)。但是,我们应该注意到I和J参数与上一个命令不同,因为我们从最后一个端点或点E抵消了中心。我们使用另一个G01命令完成刀具路径,从P点F(31,7)返回到B(5,5)。

这就是我们如何手动编写g代码来制作这个形状。但是,我们需要注意,这不是一个完整的g代码,因为我们缺少一些更基本的命令。我们将在后面的示例中制作完整的G-code,因为我们首先需要解释这些G-code命令。

G03 - 逆时针循环插值

就像G02一样G03.g-code命令定义了以圆形图案移动的机器。这里唯一的区别是逆时针方向运动。所有其他功能和规则都与G02命令相同。

逆时针圆弧插补顺时针

所以,通过这三个主要的g代码命令,G01.G02.G03.我们可以生成一个刀具,从字面上,我们想要的任何形状。现在你可能想知道这有点可能,但这实际上是计算机和凸轮软件的简单任务。是的,真的我们有时可以手动制作G代码程序,但我们的大部分时间都使用适当的软件,这更容易和更安全。

然而,现在解释少数更重要且常用的命令,最后制作真正的G代码示例。

G20 / G21 - 单位选择

G20和G21命令定义了G代码单元,即英寸或毫米。

  • G20 =英寸
  • G21 = millimiters

我们需要注意的是,必须在程序的开头设置单位。如果我们未指定设备,则计算机将考虑上一个程序的默认设置。

G17 / G18 / G18 - G代码平面选择

通过这些G-code命令,我们选择了机器的工作平面。

  • G17 - XY飞机
  • G18 - XZ飞机
  • G19 - yz飞机

G代码平面选择命令 -  G17 XY G18 XZ G19 YZ

对于大多数CNC机器,G17默认为默认,但另外两个也可以用于实现特定运动。

G28 - 回家回家

G28.命令告诉机器将工具移动到其参考点或原始位置。为了避免碰撞,我们可以包括具有x,y和z参数的中间点。该工具将在进入参考点之前通过该点。g28 x ## y ## z ##

返回家,可能发生碰撞

可以使用命令定义原始位置g28.1 x ## y ## z ##

G90 / G91 - 定位G码命令

使用G90和G91命令,我们告诉机器如何解释坐标。G90.是为绝对的模式G91.是为相对模式

在绝对模式下,工具的定位始终来自绝对点或零。所以命令g01 x10 y5无论以前的位置都要将工具带到该确切点(10,5)。

另一方面,在相对模式中,该工具的定位是相对于最后一点的定位。因此,如果机器目前处于点(10,10),则该命令g01 x10 y5将掌握到点(20,15)。此模式也称为“增量模式”。

Arduino CNC泡沫切割机
也可以看看

Arduino CNC泡沫切割机

更多命令和规则

所以,我们上面解释的G-code命令是最常见的,但还有很多。有刀具补偿、缩放、工作坐标系、停留等命令。

除了G-code,还有M-code命令,当生成一个真正成熟的G-code程序时使用。下面是一些常用的M-code命令:

  • M00 -程序停止
  • M02 - 程序结束
  • M03 - 顺时针方向主轴
  • M04 - 主轴上 - 逆时针
  • M05 - 主轴停止
  • M06 - 工具更改
  • M08 - 洪水山脉
  • M09 -洪水colant脱落
  • M30 - 程序结束

如使用3D打印机:

  • M104 - 启动挤出机加热
  • M109 - 等待挤出机达到T0
  • M140 - 开始床加热
  • M190 - 等到床达到T0
  • M106 - 套装风扇速度

其中一些命令需要适当的参数。例如,当使用M03打开主轴时,我们可以使用S参数设置主轴速度。所以,线路M30 S1000将以1000转/分的速度启动主轴。

我们还可以注意到许多代码是莫代尔,这意味着它们仍然生效,直到取消或被另一个代码所取代。例如,假设我们有一个用于线性切割运动的代码g01 x5 y7 f200。如果下一个移动再次是一个线性切割,我们只能在前面键入x和y坐标,而不在前面写入g01。

g02 x5 y5 i0 j-5 x3 y6 i-2 j0

这同样适用于进料速率参数F.除非我们想要更改其值,否则我们不必在每一行中包含它。

在某些g代码文件中,您也可以看到“N # #在命令面前。N字是简单的编号行或代码块。这对于在大型程序中出现错误时识别特定的行很有帮助。

简单的G代码程序示例

尽管如此,在阅读所有此处之后,我们现在都可以手动制作真实的实际代码。这是一个例子:

简单的数控铣削程序示例- g代码基础

%G21 G17 G90 F100 M03 S1000 G00 X5 Y5;点B G01 X5 Y5 Z-1;点B G01 X5 Y15 Z-1;点C G02 X9 Y19 Z-1 I4 J0;点D G01 X23 Y19 Z-1;点E G01 X32 Y5 Z-1;点F G01 X21 Y5 Z-1;点G G01 X21 Y8 Z-1;点H G03 X19 Y10 Z-1 I-2 J0;点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 %

G-code程序描述:

  1. 初始化代码。这个字符(%)总是出现在程序的开头和结尾。
  2. 安全线:公制编程(所有尺寸以mm为单位),XY平面,绝对定位,进给速度100英寸/分钟。
  3. 顺时针时钟速度为1000 rpm。
  4. 快速定位到B(5,5)。
  5. 在相同的位置控制运动,但降低工具到-1。
  6. 线性切割运动到位C(5,15)。
  7. 顺时针圆周运动点D(9,19),中心点(9,15)。
  8. 线性切割到点E(23,19)。
  9. 线性切割到点F(32,5)。
  10. 同样直切对点G(21,5)。
  11. 一个更多的直线切割点H(21,8)。
  12. 逆时针圆形插值到位I(19,10),中心点(19,8)。
  13. 线性切割到点J(13,10)。
  14. 逆时针圆形切割到位置k(11,8),中心点(13,8)。
  15. 直线切割到L(11,5)位置。
  16. 最终线性切割运动到位B(5,5)。
  17. 抬起工具。
  18. 回到原位。
  19. 主轴关闭。
  20. 主要方案结束。

以下是通过通用G-Code Sender软件即可将其发送到CNC计算机的代码:

在UGS中手动编写G-Code示例

因此,使用上面解释的这些主要的G代码命令,我们设法编写了自己的完全成熟的G代码。当然,这个例子非常简单,并且对于更复杂的形状,我们肯定需要使用一个cam软件。这是马形状的复杂g代码的一个例子:

复杂的g代码示例-马形状

例如,此代码有大约700行,但所有它都会自动生成。G-Code使用Inkscape作为我的示例进行了DIY Arduino数控泡沫切割机。这是形状出来的方式:

马形状的基础上Arduino数控泡沫切割机

您可以查看特定教程有关此机器的更多详细信息。

结论

因此,我们涵盖了G代码的基础知识,解释了最重要和最常见的G代码命令,手动制作了自己的实际G代码。毕竟,我认为了解g代码并不是那么难。当然,CNC加工或3D打印中使用了许多其他命令和功能,我们应该知道,但更多的是在其他一些教程中。

如果您发现本文有用,请分享其他CNC和3D打印爱好者。还可以随意询问以下意见部分中的任何问题。

7回复

  1. 吉姆绿色

    你好!德扬。我很高兴再次看到你的文章。就像你说的,G代码被广泛使用。虽然我们不需要精通它,但是我们一定要理解它的含义,这样我们在遇到问题的时候就可以更有效的找出原因。感谢你们提供这门基础科学课程。

    回复
  2. Dzhurabek Irkaev.

    你好。我真的很喜欢这篇文章,谢谢。
    如果您想展示如何对G代码进行更改,例如速度,以便它从我的愿望中更改,增加然后减少
    谢谢

    回复
  3. 拜伦李

    G代码介绍。谢谢
    我被G00,G01,G02示例第5行的示例混淆。
    如果y位置应该是y-8而不是x-8?

    回复
  4. 艾伦

    在第2行
    G21 g17 g90 f100
    安全线:公制编程(所有尺寸以mm为单位),XY平面,绝对定位,进给速度100英寸/分钟。

    你首先设置机器使用毫米-那么F100不应该是毫米/分钟吗?

    谢谢,良好的文章

    回复
  5. 诺曼

    优秀的文章。我正在详细处理它,我认为有一些错误,但请纠正我的适当。在你的“简单数控铣削例子”的代码
    G00 x5 y5;点B.
    g01 x0 y20 f200;点C.
    g01 x20 y0;点D.
    G02 x10 x-10 i0 j-10;点E.
    G02 X-4 X-8 I-10 J0;点F.
    G01 x-26 y-2;点B.
    第4行和5具有两个x值。我认为每种情况下的第二个值应该是y值i.e. x10 y-10,x-4 y-8

    回复

发表评论

您的电子邮件地址将不会被公布。

受到推崇的

2019年初学者和爱好者的最佳进入级示波器

为初学者和爱好者最好的示波器

受到推崇的

2019年针对初学者的8个最佳Arduino入门工具包

初学者的8个最佳Arduino Starter Kits

受到推崇的

用于初学者和爱好者的最佳3D打印机 -  3D打印

初学者和爱好者的最佳3D打印机