如果你的工作或爱好与数控机床或3D打印机相关,那么理解g代码是什么以及它是如何工作的对你来说是至关重要的。betway因此,在本教程中,我们将学习g代码语言的基础知识,什么是最重要的或最常见的g代码命令,我们将解释它们是如何工作的。

刀位点是什么?

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

在车床或铣床等机床的情况下,刀具是由这些命令驱动,以遵循特定的刀具路径,切割材料,以获得所需的形状。

类似地,在增材制造或3D打印机的情况下,G-code命令指示机器沉积材料,一层一层地,形成一个精确的几何形状。

如何读取g代码命令?

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

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

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

让我们看一看一行代码并解释它是如何工作的。betway

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-code如何工作,如何阅读,如何修改,甚至如何编写我们自己的G-code。

G00 - 快速定位

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

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

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

G01 -线性插值

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

线性插值-最常见的G-code命令

与仅用于定位的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-code命令-圆形插值顺时针-示例02

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

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

让我们看看一个简单的CNC铣床例子,使用这三个主要的G-code命令,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)。对于下一个G02命令,我们实际上有相同的中心点(25,15),以到达F点(31,7)。然而,我们应该注意到I和J参数与之前的命令不同,因为我们偏移了最后一个端点或点e的中心。我们用另一个G01命令完成了工具路径,它让我们从点F(31,7)回到点B(5,5)。

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

G03 - 逆时针循环插值

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

G03 -逆时针圆插补

所以,通过这三个主要的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-code平面选择命令- G17 XY G18 XZ G19 YZ

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

G28 - 回家回家

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

G28 -返回家园可能发生碰撞

可以使用命令定义原始位置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 -主轴ON -顺时针方向
  • M04 - 主轴上 - 逆时针
  • M05 - 主轴停止
  • M06 - 工具更改
  • M08 - 洪水山脉
  • M09 -去除浸渍剂
  • M30 - 程序结束

3D打印机:

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

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

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

(二)x ' x ' x ' x ' x ' x ' x ' x ' x ' x ' x ' x ' x

这同样适用于输入速率参数f。我们不必在每一行中都包含它,除非我们想改变它的值。

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

简单的G-code程序示例

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

简单的数控铣削程序示例- 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转/分。
  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代码示例

因此,使用上面解释的这些主要G-code命令,我们设法编写了自己的完全成熟的G-code。当然,这个例子非常简单,对于更复杂的形状,我们肯定需要使用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.
    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年最佳Arduino入门套件

初学者的8个最佳Arduino Starter Kits

推荐

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

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