注释
@mkeynoG7 的这个实施是第一个。从那时起它就发展了。这个旧的 G7 的一个问题是它如何计算方向的变化。一个较新的实现,也是我已经使用了一年多的实现,使用 G0/1 在一条线上设置起点,然后使用 G7 来填充这条线。这使得它更容易使用。这是我使用的 G7 代码的示例。您会注意到每个 G7 行之前的 G0 用于设置起始位置。它使对齐更容易,因为您不必使用无用的“0”来扩展行的开头或结尾来对齐每一行。前面几行中的“A”不是对齐,而是加速空间。
|
在每行上手动设置起始位置的另一个重要原因是它允许 X 轴和 Y 轴具有不同的分辨率。这在抖动雕刻时会派上用场。(即在亚克力上)使用 R0.05 意味着每毫米 20 个像素,但仍仅将 Y 增加 0.1,有效地将分辨率提高一倍,但不会增加雕刻时间。它真的很好用。
|
你好约翰,感谢有趣的功能。我在 LinuxCNC docu 上检查了 G7。它最初具有完全不同的含义: http ://linuxcnc.org/docs/html/gcode/g-code.html#gcode: g7 所以我担心 GRBL 不会实现你在这里描述的功能 – 太糟糕了。最好的问候 Sven Gesendet:Sonntag,21. Mai 2017 um 18:42 Uhr Von:John <notifications@github.com> An:gnea/grbl <grbl@noreply.github.com> Cc:Sven <svenhb@gmx.de> , 提及 <mention@noreply.github.com> Betreff: Re: [gnea/grbl] 光栅图像(CNC 激光)的 G7 代码功能(#197) 手动设置每一行起始位置的另一个重要原因是它允许 X 和 Y 轴有不同的分辨率。这在抖动雕刻中会派上用场。(即在亚克力上)使用 R0.05 意味着每毫米 20 个像素,但仍仅将 Y 增加 0.1,有效地将分辨率提高一倍,但不会增加雕刻时间。它真的很好用。M649 S100 B2 D0 R0.05 G0 X64.600 Y45.600 F1496.0; 行 n.456 G7 $1 L64 DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAA G7 L24 DAAAAAAAAAAAAAAAAAAAAAAA== G0 X68.100 Y45.700 F1500.0; 行 n.457 G7 $0 L52 DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////8= G7 L44 DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= G0 X62.300 Y45.700 F1499.0;亚麻布。457 G7 $0 L56 DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////8AAA== G7 L40 DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////////////////////////////////////////////////////////////////////////////////////////////////////8AAA== G7 L40 DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA G0 X58.800 Y45.800 F1502.0;Line n.458 G7 $1 L48 DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////8= G7 L48 D////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= — 您收到此邮件是因为有人提到了您。直接回复此电子邮件,在 GitHub 上查看它,或将线程静音。
|
它可以使用未使用的 G 代码来实现。如果 Marlin 开发人员这样做是明智的,现有的用途是众所周知的。 |
我过去看过这个。我不喜欢 G7 的定义,但这并不意味着不需要这样的定义。我仍在研究什么会运作良好。并且可能会将其定义为固定循环,而不是 G7。 |
@chamnit你能详细说明你的计划吗?,因为正如它提到的,可能无法添加到官方 GRBL Arduino nano,你能在其他官方平台上实现吗,比如什么@usbcnc在 STM32 上完成?如果社区能在其官方平台上添加这样的特殊功能就好了 谢谢@mayhem2408,您建议哪个平台添加或改进此类功能? |
谢谢@chamnit但是那些相关的问题并没有得出有意义的方式或用于此类目的的代码,但是由于我打算始终同步到原始(官方)repo,您建议如何保持这种同步? |
@chamnit由于我过去在用于光栅雕刻的 inkscape 插件上做过大量工作,一旦您有了解决方案,我会很乐意对其进行测试,并将需要的任何更改写入插件。 |
在我回到 GRBL 之前,我使用修改版的Marlin 固件结合inskscape的扩展将图像转换为光栅并将其馈送到我的 100W CNC 激光机进行雕刻,它显示出非常高的雕刻速度,但 Marlin 固件没有真正的功能时间覆盖代码通过 G 代码控制机器,所以我返回具有激光模式功能的新 GRBL 发布固件,但感谢@arkypita&@svenhb,在尝试使用不同的 G 代码生成器(例如LaserGRBL和GRBL-Plotter ) 以及不同的 GRBL 设置后,我注意到使用 G 代码语法(专为矢量指令设计)发送位图/光栅图像是一种可怕的浪费由于 Arduino uno 上当前实现的硬件限制字节数,对于此类任务来说,它是相当低的带宽缓冲区,根据@mayhem2408请注意,“Marlin 格式中使用的 G7 代码非常有效,但我的经验表明它的计算量要大得多。使用 G7s base64 我可以从 Marlin 中获得的最大提要在它开始断断续续之前约为 F7000,这不是因为带宽。G7s base64 应该能够每秒传输超过 7000 个像素,即每毫米 10 个像素,理论上可以达到超过 F40000 的进给。就 GRBL 而言,另一个问题是Arduino Unos 内存中没有剩余空间来添加如此庞大的功能。它可能会添加到 GRBL-Mega 版本中,因为它有更多空间”,这是讨论页面。arkypita/LaserGRBL#38(评论)
我知道这不会在 Arduino 上完成,幸好有几个 GRBL 版本在 STM32F103 等其他板上运行,我想知道该社区的官方开发人员是否计划在此类 STM 板上实现如此好的功能,感谢Roger Clarck,他的回购是真正的成熟和强大,STM32F103C8比 Arduino uno 便宜,但功能更强大,还有一些 GRBL 爱好者,例如@usbcnc @langwadt,@Meekdai,@MaxwellXyao将它移植到 STM 硬件但不是正式的
在 Marlin 上实施 G7
用于创建光栅代码的 python 函数
G7解释器的代码
inkscape 的示例栅格代码