3D 打印机 G 代码命令:完整列表和教程

这篇具有很好参考价值的文章主要介绍了3D 打印机 G 代码命令:完整列表和教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

3D 打印机 G 代码命令:完整列表和教程

查看原文
了解 G 代码命令将开启 3D 打印的下一个层次。继续阅读以快速了解此代码的基础知识!

内容

  • 它是什么?
  • 3D 打印的重要命令
  • G0 & G1:直线运动
  • G90 & G91:绝对和相对定位
  • G28 和 G29:汽车家庭和床调平
  • M104、M109、M140 和 M190:设定温度
  • M106 & M107:风扇控制
  • 程序结构
  • 阶段 1:初始化
  • 第 2 阶段:印刷
  • 阶段 3:重置打印机
  • 终端输入和输出
  • 编写 G 代码
  • 兼容性
  • 注释
  • 相关内容

简单地说,G-code是一种计算机数控(CNC)的编程语言。换句话说,它是控制机器的计算机所使用的语言,它传达运动和其他动作所需的所有命令。

虽然 G 代码是不同桌面和工业机器的标准语言,但我们可能通过 3D 打印机最熟悉它。到目前为止,您可能还没有处理过它,这实际上是正常的,因为3D 切片器“自动”生成代码。

然而,如果您想更深入地了解 3D 打印,则必须学习 G 代码的基础知识。这些知识将使您能够更好地排除故障和控制打印过程,同时还可以定制RepRap和Marlin等3D 打印机固件。

在本文中,我们将介绍 G 代码的基础知识,包括如何阅读、理解和编写几行命令,为即使是绝对的编码初学者提供扎实的背景知识。事不宜迟,那么,让我们从头开始吧!

3d打印机g代码,3D打印机,开发语言,3d对于我们所有的文章G代码

它是什么?

3d打印机g代码,3D打印机,开发语言,3d

G 代码命令用于指示机器执行特定操作(来源:All3DP)

对于那些不熟悉编程的人来说,将 G 代码视为连续的指令行,每行指令都告诉 3D 打印机执行特定任务。这些行被称为命令,打印机将它们一一执行,直到到达代码的末尾。

虽然术语“G 代码”用于指代整个编程语言,但它也是 3D 打印中使用的两种命令之一:“通用”和“杂项”命令。

通用命令行负责 3D 打印机中的运动类型。此类命令由字母“G”标识,如在 G 命令中。除了控制打印头执行的三个加轴运动外,它们还负责灯丝挤出。

另一方面,杂项命令指示机器执行非几何任务。在 3D 打印中,这些任务包括喷嘴和床的加热命令以及风扇控制等,我们将看到。杂项命令用字母“M”标识。
3d打印机g代码,3D打印机,开发语言,3d

潜得更深G 代码和 M 代码:差异

语法

3d打印机g代码,3D打印机,开发语言,3d

命令行由标识和参数组成(来源:Lucas Carolo via All3DP)

每个 G 代码命令行都遵循一定的语法。每一行只对应一个命令,这可能导致代码非常冗长。

任何给定行的第一个参数是命令代码本身。正如我们所见,它可以是“G”或“M”代码类型,后跟一个标识命令的数字。例如,“G0”对应于直线移动指令。

接下来是更准确地定义命令的参数。对于 G0 线性移动,这些参数包括最终位置和移动速度,也由大写字母标识。我们很快就会看到,每个命令都有自己的一组参数。

关于 G 代码注释的说明

在我们开始之前,当我们查看各种命令时,您会在字母和数字后面看到分号,用于解释代码的作用。这是具有代码注释的行的示例:

G1 X25 Y5 ; I am a code comment!

程序员通常需要用简单的英语进行解释,以便其他程序员能够理解某些代码行或部分代码。也可能会发生您忘记了为什么以某种方式编码的情况,从而导致很难再次弄清楚。

解决这个问题的方法是代码注释。注释包括分号后的任何内容(在同一行),并且在机器执行 G 代码时完全被机器忽略。这样,它们纯粹是为了程序员的眼睛。

3D 打印的重要命令

由于实际上有数百个 G 代码命令,我们将在以下部分中介绍最基本和最重要的命令。一旦掌握了它的窍门,您就可以自己探索参考表中的其他命令。

G0 & G1:直线运动

3d打印机g代码,3D打印机,开发语言,3d

G0 和 G1 命令负责直线运动和挤压(来源:Lucas Carolo via All3DP)

G0 和 G1 命令都执行直线运动。按照惯例,G0 用于非挤压运动,如初始移动和移动移动,而 G1 包含所有挤压线性运动。

不过,这两个命令的功能相同。G0 或 G1 的参数包括所有 X 轴、Y 轴和 Z 轴的最终位置、移动过程中要执行的挤压量以及速度,由设置单位中的进给率指定。

例子

G1 X90 Y50 Z0.5 F3000 E1告诉打印机沿直线 (G1) 向最终坐标 X = 90 mm、Y = 50 mm、Z = 0.5 mm 移动,进给速度 (F) 为 3,000 mm/min,同时挤出 (E) 1 mm挤出机中的材料。

大多数线性移动在单层内执行,这意味着 Z 坐标通常从命令行中省略。

G90 & G91:绝对和相对定位

3d打印机g代码,3D打印机,开发语言,3d

相对定位由前面的坐标定义,而绝对不是(来源:Lucas Carolo via All3DP)

G90 和 G91 命令告诉机器如何解释用于运动的坐标。G90 建立“绝对定位”,通常为默认,而 G91 为“相对定位”。

这两个命令都不需要任何参数,并且设置一个会自动取消另一个。定位的工作方式非常简单,所以让我们直接进入。

例子

假设我们要将打印头移动到 X=30 一行。在绝对定位模式下,它看起来像这样:

G90 ; sets absolute positioning` `G0 X30 ; moves to the X = 30 coordinate

这个简单的移动将告诉打印机移动打印头,使其定位在 X = 30。现在,对于相对定位移动,我们需要知道打印头当前的位置。假设它在 X = 10:

G91 ; sets relative positioning` `G0 X20 ; moves +20 mm along the X-axis

G91 首先告诉机器将坐标解释为相对于当前位置 (X = 10)。知道了,机器只需要在 X 轴正方向移动 20 毫米,从而达到我们想要的 X = 30。
3d打印机g代码,3D打印机,开发语言,3d

更深入的潜水G91 / G90 G 代码:绝对和增量定位

G28 和 G29:汽车家庭和床调平

3d打印机g代码,3D打印机,开发语言,3d

G28 和 G29 在初始化阶段很有用(来源:Lucas Carolo via All3DP)

我们称“归位”为设置所有运动轴的物理限制的过程。G28 命令将通过移动打印头直到触发终止以确认限制来执行此任务。

归位不仅对于机器自我定位很重要,而且对于防止打印头移动到边界之外也很重要。G28 命令通常在每个打印过程之前执行。

另一个命令 G29 启动自动床调平序列。在打印前调平床有许多不同的方法,因为这通常由固件设置,而不是由最终用户设置。出于这个原因,我们不会详细介绍方法和命令参数。只知道G29通常在自动归位(G28)之后发送,并且应该执行由固件确定的自动床调平。

例子

G28 X Y ; home the X and Y axes only
G28 ; home all axes

通过包含 X、Y 或 Z 作为参数,可以单独归位特定轴。否则,仅 G28 就将三个人全部归巢。

G29 ; perform automatic bed leveling sequence

如果要运行自动床调平序列,请记住在执行归位过程后发送 G29。
3d打印机g代码,3D打印机,开发语言,3d

G28 G 代码:关于归位的所有信息

返回目录

M104、M109、M140 和 M190:设定温度

3d打印机g代码,3D打印机,开发语言,3d

这些 M 代码命令负责控制热端和床温(来源:Lucas Carolo via All3DP)

这些是必不可少的杂项命令,同样不涉及任何动作。

首先,M104 命令设置热端达到的目标温度并保持该温度,直到另有指示。

一些参数包括实际温度值 (S) 和要加热的打印头 (T)(对于多个挤出设置)。

例子

M104 S210 ; set target temperature for hot end to 210 degrees

此命令行指示机器将其热端加热到 210 °C,并假设在此挤出设置中只有一个热端。设置目标温度后,打印机将在加热热端的同时继续执行下一个命令行。

或者,如果我们想等到达到该目标后再继续下一行,我们可以使用 M109 命令。

M109 S210 ; set target temperature for hot end to 210 degrees and do nothing until reached 

设置床温与热端非常相似,但使用 M140 和 M190 命令:

M140 S110 ; set target temperature for bed to 110 degrees`
`M190 S110 ; set target temperature for bed to 110 degrees and do nothing until reached

M106 & M107:风扇控制

3d打印机g代码,3D打印机,开发语言,3d

M106 和 M107 命令都控制 3D 打印机中的所有风扇(来源:Lucas Carolo via All3DP)

3D 打印机的另一项基本任务是杂项 M106 和 M107 命令提供风扇控制。

M106 打开风扇并设置其速度。这对于零件冷却风扇特别有用,因为在第一层和桥接期间的打印过程中需要不同的速度。

速度参数必须是介于 0 和 255 之间的值。255 值提供 100% 的功率,并且此范围内的任何数字都将相应地指定百分比。

例子

M106 ; turn on a fan at maximum (100%) speed`
`M106 S128 ; turn on a fan and set it to 50% power

多个速度控制的风扇可以由索引 § 参数定义,因为每个风扇都由固件分配一个索引。

最后,M107 命令将关闭指定风扇的电源。如果没有提供指标参数,通常是零件冷却风扇被关闭。

程序结构

我们现在可以很好地查看用于 3D 打印的实际代码。G 代码程序可以分为三个不同的部分,我们将在下面看到。

值得注意的是,如果您使用文本编辑器打开由 3D 切片器生成的 G 代码文件,它可能不会立即以 G 或 M 命令开始。例如,像Cura或Simplify3D这样的切片器通过在注释中包含之前定义的一些打印过程参数来启动代码。这些线条不会影响打印,而是为层高等参数提供快速参考。

阶段 1:初始化

3d打印机g代码,3D打印机,开发语言,3d

“初始化阶段”包括准备打印机打印所需的所有命令(来源:Lucas Carolo via All3DP)

任何程序的第一部分都包括开始打印模型之前所需的准备任务。以下是来自实际 3D 打印作业的前六行初始化 G 代码命令。

G90
M82
M140 S80
M104 S200
G28
G29

正如我们现在所知,第一行说运动应该使用绝对定位,而第二行告诉挤出机也用绝对术语解释挤出。

第三条和第四条生产线开始将床和喷嘴加热到它们的目标温度。请注意,它不会等待目标温度,这意味着打印机将在加热时自动归位并平整床。

一些初始化程序(例如PrusaSlicer使用的程序)包括一个喷嘴清洗过程,例如在进入打印过程之前打印一条直线。

第 2 阶段:印刷

3d打印机g代码,3D打印机,开发语言,3d

打印过程主要由一系列动作和挤压组成(来源:Lucas Carolo via All3DP)

这就是魔法发生的地方。如果您查看切片的 G 代码文件,您会发现我们不可能弄清楚喷嘴实际在做什么。

3D 打印是一个逐层的过程,因此您会发现此阶段在打印单层时包括 XY 平面内的许多运动。完成后,Z 方向上的一个微小移动将定义下一层的开始。

以下是 G 代码命令在打印阶段的外观示例:

G1 X103.505 Y153.291 E4.5648 ; movement and extrusion in XY plane
G1 X103.291 Y153.505 E4.5804 ; movement and extrusion in XY plane
G1 Z0.600 F3000 ; change layer
G1 X104.025 Y154.025 F9000 ; movement in XY plane
G1 X95.975 Y154.025 E0.4133 F1397 ; movement and extrusion in XY plane

阶段 3:重置打印机

3d打印机g代码,3D打印机,开发语言,3d

G-code 的最终命令通常是重置位置和状态(来源:Lucas Carolo via All3DP)

最后,打印完成后,最后几行 G 代码命令将打印机带入合理的默认状态。

例如,喷嘴可能会转到预定义的位置,热端和床加热器被关闭,电机被禁用,以及其他动作。

M107 ; turn fan off
G1 Z10 ; move nozzle away from print
M104 S0 ; turn hot end heating off
M140 S0 ; turn bed heating off
M84 ; turn motors off

终端输入和输出

3d打印机g代码,3D打印机,开发语言,3d

OctoPrint 有一个终端窗口,用于直接发送和接收 G 代码(来源:Lucas Carolo via All3DP)

到目前为止,我们只讨论了计算机向打印机发送 G 代码命令(通常通过 SD 卡传输)。然而,这并不是唯一的沟通方式。

一些控制软件,如Pronterface和OctoPrint,允许与 3D 打印机直接通信,在这种情况下,您可以手动输入命令。

出于显而易见的原因,通过单独发送代码行来打印任何内容是不切实际的。但有时这种通信方法需要用于其他目的,例如检索有价值的信息以进行校准,甚至当 3D 打印机缺少显示屏时。

例如,M105“报告温度”命令将检索当前喷嘴和床层温度(然后可能由 OctoPrint 之类的东西显示)。

这种通信对于查看和更改固件级别硬编码的 EEPROM 设置也非常有用。电机步数/mm、最大进给率或 PID 等参数可以通过 M503(“报告设置”)可视化,手动更改,然后通过 M500 保存(“保存设置”)。

编写 G 代码

3d打印机g代码,3D打印机,开发语言,3d

一些 G 代码可视化工具对于学习如何编写代码非常有用(来源:Lucas Carolo via All3DP)

到目前为止,您应该能够更好地阅读和理解 G 代码。不过,您也可以从编写它中受益。

这个G 代码在线可视化是测试您的技能的好工具,因为您可以编写 G 代码命令并相应地模拟它们。这真的很有趣!

查看从切片机导出的 G 代码文件还应该为您提供一些关于 G 代码如何用于 3D 打印的见解。确保您身边有一个命令参考表并探索代码!

兼容性

3d打印机g代码,3D打印机,开发语言,3d

学习 G 代码是一项持续且有益的任务(来源:Repetier)

我们希望通过对 G 代码命令的理解,您成为一个知识渊博、功能更强大的 3D 打印用户。虽然 G 代码不是最复杂的计算机语言,但它仍然需要大量的练习和学习。

在结束本文之前,有必要谈谈 G 代码兼容性。

3D 打印固件有很多种,每种可能都有不同的 G 代码“风味”。这可能会导致严重的兼容性问题,因为适用于一台机器的命令可能不适用于另一台机器。

切片器软件通过将代码传递给特定于机器的后处理驱动程序来处理这个问题。后处理器检测传入代码的风格并将代码转换为固件可以理解的内容。文章来源地址https://www.toymoban.com/news/detail-779468.html

到了这里,关于3D 打印机 G 代码命令:完整列表和教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • DIY 3D打印机——【有啥用啥版】

    3D打印已经非常普及,手搓3D打印机的也很普遍了,不幸的是多年前买的三角洲(delta型)打印机年前罢工了,幸好它完成了一项重要使命:让手搓的铣床动起来,从而能够让铣床把受力部分的PLA零件自己加工电木板进行替换,所以有一台三轴铣床可以用来加工一些零件。即便

    2023年04月26日
    浏览(45)
  • 20个最流行的3D打印机切片软件

    3D 打印切片机(Slicer)通过生成 G 代码为你的 3D 打印机准备 3D 模型,G 代码是一种广泛使用的数控 (NC) 编程语言。 3D打印切片软件的选择范围很广。 因此,为了帮助你找到最合适的工具,本文列出了20个顶级 3D 打印切片软件工具。 推荐:用 NSDT设计器 快速搭建可编程3D场景

    2024年02月07日
    浏览(88)
  • 3D打印机Marlin固件双Z轴设置

    在3D打印机Marlin固件的最新版本2.1.1中,设置双Z轴和老版本有一些改动。记录一下如何在最新版本的Marlin固件中设置双Z轴。 以MKS GEN_L V2.1的主板为例,硬件连接还是和原来一样,第二个Z轴的电动机连接到空闲的第二个挤出机电机接口上。 打开Marlin固件的配置文件configuration

    2024年02月15日
    浏览(90)
  • 前端js,uniapp使用printease连接打印机打印,打印命令生成

    接下来我们将使用printease实现前端js,uniapp打印。 此外,连接打印机的方式有很多种,这里并不会涉及到,该库只是提供了一种打印机指令的生成方式,你可以将生成的指令发送到打印机,打印机会执行一次印刷过程。 这个教程是关于tspl指令的,如果你使用的其他指令,可

    2024年02月13日
    浏览(57)
  • mac Canon打印机连接教程(附打印机驱动下载)

    网上大多是windows版驱动和安装教程,mac链接相对参考材料较少,记录于此方便节省大家时间。本篇以Canon iR C3025打印机为例,流程大同小异。

    2024年02月12日
    浏览(72)
  • 【在esp32的3D打印机主板上配置marlin固件OLED】

    想着给es32的3D打印机主板的marlin中配置OLED。一开始的OLED的scl引脚连接的是IO17 sda引脚连接的是IO16,本想着在固件中去改io口.先是按照marlin官网Home | Marlin Firmware - configure -Configuration.h-LCD Controller-I2C Graphical LCDs-使能OLED_PANEL_TINYBOY2当前的定义。使能之后就可以使用oled 编码器,蜂

    2023年04月10日
    浏览(36)
  • 【花一周,打造属于自己的一台DIY3D打印机1.0】

    读者你们好!这是DIY系列的第一次,我希望这个系列能一直更新,也希望你们能从我的文章中有所收获。我也是小白,还需要继续努力,所以这篇文章会不定期更新,总结给大家相关的知识,将来这个系列也会更新别的DIY产品,这个系列并不局限于硬件,而是所有的DIY产品哦

    2023年04月13日
    浏览(40)
  • 惠普m1136打印机驱动程序安装教程

    惠普m113打印机是一款功能强大的多功能打印机,它能够打印、复印、扫描和传真等。如果你要使用这款打印机,你需要下载并安装驱动程序,以确保它能够在你的计算机上正常工作。在本文中,我们将介绍如何下载和安装惠普m1136打印机驱动程序。 一.惠普m1136打印机驱动 惠

    2024年02月09日
    浏览(59)
  • OpenWrt网络打印机TCP/IP共享设置教程——以703N为例(PCL)

    在本教程中,我们将探讨如何在OpenWrt路由器上设置TCP/IP共享以实现打印机的网络共享。我们以OpenWrt路由器型号703N为例,并使用PCL作为打印机的语言。 步骤1:准备工作 首先,确保你已经在OpenWrt路由器上安装了最新版本的OpenWrt固件,并且已经连接到你的网络。另外,确保你

    2024年02月08日
    浏览(81)
  • Windows无法连接共享打印机错误代码:0x0000011b的解决方法分享

    Win10电脑1直连的打印机,设备了共享。从另一个电脑2访问电脑1的共享打印机,连接提示错误0x0000011b,这是怎么回事?我们要如何解决?下面就和小编一起来看看详细的解决方法吧。 Windows无法连接共享打印机错误代码:0x0000011b怎么解决? 1、打开控制面板-程序-程序和功能

    2024年02月04日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包