Inkscape – G 代码工具
...许多程序可以导入这种格式。 Inkscape 还可以做的不仅仅是图形。 本系列将向您展示除了使用 Inkscape 制作图形之外还可以做的一些事情。 本系列的第一篇文章将展示如何使用 Inkscape 的 G-Code Tools 扩展来生成 G-Code。 反过来,G 代码可用于编程机器,例如激光绘图仪和雕刻机。
什么是 G 代码,它的用途是什么?
业余爱好领域的机器制造正在蓬勃发展。 用于自建的 RepRap 3D 打印机源代码的发布以及 Arduino 或 Raspberry Pi 等电子元件的可用性,可能是造成这种热潮的部分原因。 机械工程作为一种爱好正在寻找越来越多的采用者。 这种趋势并没有因 3D 打印机而停止。 还有 CNC 铣床、绘图仪、激光雕刻机、切割机,甚至您可以自己建造的机器。
您不必自己设计或制造这些机器。 您可以以相对较低的价格购买这些机器作为套件或已经组装。 所有这些机器都有一个共同点:它们是由计算机控制的。 计算机辅助制造 (CAM) 在制造业中已经很普遍,现在也在国内进行。
G-Code 或 G 编程语言
最广泛使用的 CAM 机器编程语言是 G 代码。 G-Code 也称为 G 编程语言。 这种语言是在 1950 年代在麻省理工学院开发的。 从那时起,各种组织都开发了这种编程语言的版本。 使用它时请记住这一点。 不同的国家对这种语言有不同的标准。 之所以得名,是因为此代码中的许多指令都以字母 G 开头。该字母用于向机器传达行驶或路线命令。
真正意义上的命令从 A(绕 X 轴的绝对或增量位置;绕 X 旋转)到 Z(沿 Z 轴方向的绝对或增量)。 带有前缀 M(许多)的命令将其他指令传输到机器。 冷却液开/关是 M 命令的一个示例。 如果您想要更全面的 G 代码命令列表,维基百科上有一个表格。
%
G00 X0 Y0 F70
G01 Z-1 F50
G01 X0 Y20 F50
G02 X20 Y0 J-20
G01 X0 Y0
G00 Z0 F70
M30
%
这个小例子会磨出一个正方形。 您可以在您选择的任何编辑器中编写此 G 代码。 但是当涉及到更复杂的事情时,您通常不会手动进行这种低级编码。 说到 3D 打印,切割机会为您编写 G 代码。 但是当您想使用绘图仪或激光雕刻机时呢?
其他编写G代码的软件
那么您将需要一个程序来为您完成这项工作。 当然,一些 CAD 程序可以编写 G 代码。 但并非所有开源 CAD 程序都能做到这一点。 这里有一些其他的开源解决方案:
dxf2gcode,通常是一个命令行工具,但有一个用 Python 实现的 GUI
dmap2gcode,可以导入光栅图形并进行转换
Millcrum,一个基于浏览器的工具
LinuxCNC,可以导入光栅图形并转换为G代码
如果要雕刻字体,请使用 TrueTypeTracer 或 F-Engrave
如您所见,找到执行此操作的工具没有问题。 我不喜欢使用光栅图形。 我使用 CNC 机器,因为它比我手动操作更精确。 使用光栅图形并绘制它们来为 G 代码制作路径不再准确。 我发现使用无论如何都有路径的矢量图形要准确得多。
说到矢量图形,Inkscape 是无可挑剔的。 至少如果您使用 Linux,则不会。 还有一些其他的程序。 但它们远不及 Inkscape 的容量。 或者它们是为其他目的而设计的。 所以问题是:“Inkscape 可以用来创建 G-Code 吗?” 答案是肯定的! “从 0.91 版本开始,Inkscape 已经捆绑了一个名为 GCode Tools 的扩展。这个扩展正是我们想要的:它将路径转换为 G 代码。
所以你所要做的,如果你还没有的话,就是安装 Inkscape:
$ sudo dnf 安装 Inkscape
事先要记住的一件事(光在哪里,阴影也在哪里):GCode 工具扩展有很多没有很好记录的功能。 开发人员认为使用文档论坛是个好主意。 此外,了解这些功能需要 G-Code 和 CAM 的基本知识。
另一点需要注意的是,开发并不像 GCode 工具与 Inkscape 一起打包时那样动态。
Inkscape G-Code Tools 扩展介绍
第一步与您在 Inkscape 中执行其他任何操作时相同:调整文档的属性。 因此,使用 Shift + Ctrl + D 或单击命令栏上的图标打开文档设置,并将文档属性设置为工件的大小。
接下来,通过转到扩展> Gcodetools> 方向点来设置方向点。 您可以使用默认设置。 默认设置可能会给您类似于下面显示的内容。
带有文档设置和方向点的 Inkscape
下一步是编辑工具库(Extensions> Gcodetools> Tool Library)。 这将打开工具配置的对话窗口。 在那里您可以选择要使用的工具。 默认工具很好。 选择工具并点击应用后,画布上将出现一个带有工具设置的矩形。 可以使用文本工具 (T) 编辑这些设置。 但这有点棘手。
将默认工具库设置添加到文档的 Inkscape
G-Code 工具扩展稍后将使用这些设置。 这些工具设置以可识别的名称分组。 如果取消这些设置的组合,该名称将丢失。
如果取消组合工具设置,有两种方法可以避免丢失手柄。 您可以在激活选择工具的情况下使用 4 单击取消分组。 或者,您可以使用 Shift + Ctrl + G 取消组合,然后稍后使用 XML 编辑器为该组命名。
在第一种情况下,您需要在绘制新内容之前观察组是否已恢复。 否则,新绘制的对象将被添加到该组中。
现在您可以绘制稍后要转换为 G 代码的路线。 矩形、圆形、星形和多边形等对象以及文本必须转换为路径(路径>对象到路径或 Shift + Ctrl + C)。
Hershey 字体或笔画字体
关于字体,请注意TTF和OTF被称为轮廓字体。 这意味着单个字符的轮廓被定义,并将被雕刻或切割。 如果您不想要这个并且想要使用例如脚本字体,那么您应该使用 Stroke Fonts。 默认情况下,Inkscape 本身带有一小部分它们(请参阅扩展 > 文本 > Hershey 的文本)。
Inkscape Hershey 文本扩展笔画字体
Hershey 文本扩展笔画字体
这是关于如何创建自己的笔画字体的另一篇文章。 它们不仅可用于雕刻,还可用于刺绣。
区域填充功能
在某些情况下,可能需要用模式填充路径。 G-Code 工具扩展有一个功能,它提供了两种用图案填充对象的方法:锯齿形和螺旋形。 还有另一个功能目前无法使用(Inkscape 在 1.0 版发布时更改了扩展的某些部分)。 最后一个函数将在 Inkscape 中的补偿函数的帮助下填充对象。 这些功能可以在扩展> Gcodetools> 区域中找到。
G-Code Tools 扩展的填充区域功能.
左边是图案填充,右边(目前不工作)是偏移填充。 该扩展程序将运行活动选项卡!
GCode 工具的区域填充,位于锯齿形的顶部和螺旋形的底部。 请注意,如果您使用此逐个字母的函数而不是完整路径,结果看起来会有所不同。
G 代码工具区域填充,顶部之字形和底部螺旋形。 请注意,如果逐个字母而不是整个路径应用此功能,结果看起来会有所不同。
随着更多不同的区域填充,您通常必须手动绘制路径(大约 90% 的时间)。 EggBot 扩展具有用图案填充区域的功能。 您还可以使用经典的填充图案。 但是您必须将填充图案转换回对象。 否则,G-Code Tools 扩展无法转换它。 除此之外,Evilmadscientist 有一个很好的 wiki 页面,描述了填充方法。
将路径转换为 G 代码
要将绘制的路径转换为 G-Code,请使用 Extensions> Gcodetools> Paths to G-Code 功能。 此功能将在选定的对象上执行。 如果未选择任何对象,将转换文档中的所有路径。
目前没有使用文件菜单保存 G 代码的功能。 将路径转换为 G 代码时,这必须从 G 代码工具扩展对话框中完成。 在首选项选项卡中,您需要指定输出文件的路径和名称。
不同颜色的线条和箭头将呈现在画布上。 蓝线和绿线表示曲线(G02 和 G03)。 红线表示直线(G01)。 当您看到这种风格时,您就知道您正在使用 G-Code。
总结
对于 Inkscape 是否是创建 G 代码的正确工具,意见不一。 如果您记住 Inkscape 仅适用于二维并且您不期望太多,您可以使用它创建 G-Code。 对于像跟踪一些字母或徽标这样的简单工作,这绝对足够了。 G-Code Tools 扩展的主要缺点是它缺乏文档。 这使得开始使用 G 代码工具变得困难。 另一个缺点是目前 G-Code 工具的积极开发并不多。 Inkscape 的其他扩展也针对 G 代码。 但它们已经成为历史,或者它们也没有积极发展。 Makerbot Unicorn GCode Output 扩展和 GCode Plot 扩展是后一种情况的一些示例。 肯定需要一种简单的方法来直接导出 G 代码。