注释
关于我正在谈论的内容的更多背景: “要对给出多于一整圈的圆弧进行编程,请使用 P 字指定圆弧的整圈或部分圈数。如果未指定 P,则行为就像给出了 P1:即只有一个完整或部分的圆弧turn will result, giving arc less than or equal to one full circle. 例如,如果用 P2 对圆弧进行编程,则生成的运动将超过一个完整的圆,最多两个完整的圆(取决于编程的端点。 ) 支持多圈螺旋弧,并提供对铣孔或螺纹有用的运动。” 取自:http ://linuxcnc.org/docs/html/gcode/gcode.html#sec:G2-G3-Arc |
@ruswerner: 很遗憾听到螺旋运动没有达到您的预期。您可能知道也可能不知道,g 代码并未标准化。不同的制造商、EMC2 等软件和其他软件都实现了略有不同的 g 代码。有些完全相同,有些则不同。听到 G2 和 G3 不同,我感到很惊讶,因为它通常是更“标准化”的 g 代码之一。 这里的区别在于我们使用 NIST v3 g 代码标准。它不使用“P”,而是使用不在选定平面中的轴来定义螺旋轴向距离。例如,如果选择了 XY 平面,则“K”偏移量变量将用作您的“P”。试试这个。这应该可以解决您的问题。 |
哎呀,来晚了。我的意思是“Z”应该定义距离,而不是“K”。无论如何,NIST 标准并没有像您所说的那样定义“P”值。因此,您可能需要让 CAM 为您需要的每个螺旋圆发布多个 G2 命令。 |
我很幸运地使用圆弧进行螺旋镗孔并添加了 Z 变量。 代码片段:
我编写了一个 perl 脚本来生成孔数组并使用 4 个 90 度弧创建孔。 |
@ruswerner:我想问题是:你想看到安装到 Grbl 中的“P”值选项吗?我们确实遵循了一些 linuxcnc.org 的 g 代码描述,这些描述在 NIST v3 标准中未定义或未“很好”定义。我不认为这样做会很困难,但如果有足够多的人认为这是需要的,我可以在不久的将来添加它。 |
@chamnit感谢您的澄清!拥有 P 参数会很好,但是如果您知道它应该做什么,那么它很容易变通。我只是添加了一个循环来生成一系列弧线;每个步骤增量一个。所以,在这个阶段,我会说继续专注于更重要的事情,稍后再回到 P 支持。 我对此的后续行动是关于准确预览 gcode 的问题。我使用的是 LinuxCNC,因为 3D 预览是我迄今为止发现的最好的(我使用的是 OSX/Linux VM)。您对更好的(免费的)gcode 预览器有什么建议吗?它尽可能接近 grbl 的准确度?如果找不到合适的,我正在认真考虑用 JavaScript 编写一个。我发现有几个用于 3D 打印机 (makerbot) 的打印机不适用于路由器 gcode。 此外,我几乎完成了我编写的生成特定于 grbl 的 gcode 的 JavaScript DSL 的测试版。这是一个示例:
我很快就会在 github 上发布,供有兴趣的人使用。 |
@ruswerner前一段时间我写了这个东西,它是一个基本的gcode 模拟器。它需要一些认真的爱;代码在这里:https ://github.com/tmpvar/gcode-simulator 我有一个正在进行的事情(需要更多时间!),它使用 grbl 的模拟部分作为 webgl 显示的后端。它基本上是 grbl 的包装器,可以在此处找到。 我有非常相似的目标,但接下来几周我的时间非常有限,但我们绝对应该一起战斗! |
@tmpvar我会看看那些项目。我认为社区需要一些特定的 grbl 只是因为它非常流行并且与其他工具/平台不太兼容。我一直在努力寻找好的软件工具和工作流程。 我也在写一个基于网络的前端来控制 shapeoko/grbl 机器。它是为 nodejs 编写的,旨在在直接连接到 arduino 的无头树莓派上运行。它在功能上与 universalgcodesender 非常相似,但在浏览器中运行。这允许您在您的设置中添加一个便宜的附加组件(树莓派 35 美元),并能够从任何触摸屏/笔记本电脑控制您的机器。我最终想扩展它以包括对包含准确 grbl 3D 预览的 makercam 的重写。我正在慢慢地到达那里。 以下是原型的一些屏幕截图: |
关闭这个问题,因为我们现在离题太远了……:-) |
@ruswerner我正在研究类似的想法,即 rPi 通过浏览器发送信号。你会像我喜欢看的那样分享你的代码吗……:) 我一直在研究 Raspberry Pi 到 Arduino Bridge 盾牌。几周前我组装了我的第一个,它们就像一个魅力。http://blog.protoneer.co.nz/arduino-to-raspberry-pi-bridge-shield-pcbs-finally-arrived/ 如果您有兴趣成为 Beta 测试员,我可以寄给您一份。 |
@Protoneer一旦我有一些工作,我将分享我的代码;希望不会太久。我真的很想测试你的盾牌。我一直在使用 USB 电缆与 btwn rPi 和 Arduino 通信,它工作得很好,但堆叠设置会给我一个 USB 端口并且更紧凑。 我会直接给你发电子邮件交换细节。 |
@ruswerner:那里有一些 Grbl 可视化工具。我认为通用 Gcode 发件人@winder已经这样做了,至少在开发水平上。好久没查了 他们中的大多数使用我们的 Grbl 模拟器代码,该代码允许将 Grbl 代码库编译成标准输入/粗壮格式,可以连接到可视化工具等任何东西。 |
@chamnit谢谢!我实际上只是在我的 mac 上编译了 grbl_sim(顺便说一句,在 Mac 上运行 ./grbl_sim.exe 很奇怪)并且正在使用输出流。真的很酷的东西! |
@twforeman问你一个问题……使用 4 个 90 度圆弧与单个 360 度圆弧(圆)相比有什么优势?看来,无论哪种情况,grbl 都会将其全部转换为非常小的线段。我想我要问的是这是否是我不知道的“最佳实践”……谢谢。 |
@ruswerner我在某处读到过这样“效果更好”。有些控制器不喜欢在同一点开始和结束的弧线。我不确定这是否是 GRBL 的问题(可能不是),但以这种方式对它们进行编程非常容易,所以我做到了。 |
仅供参考,G2/3 的编写和定义方式使得整圆非常容易出现数值错误,尤其是在“半径”模式下以及绘制整圆或大于 180 度的圆弧时。一些 CNC 控制器只允许四分之一弧,一些半圆。大多数情况下,如果您使用“IJK 偏移”模式,数值错误应该不是问题。无论如何,打破你的弧线是个好习惯,以防你在有这个问题或实施不当的机器上运行你的程序,以至于这个错误非常糟糕。 |
惊人的。感谢您的提示。 |
我还读到一些(非常旧的)机器不喜欢跨越象限边界(0、90、180 和 270 度)的弧,如果你需要跨越边界,你必须将它写成两个弧。 |
仅供参考,几个月前我在大修 canon 层的一部分时解决了解释 P 字的问题,因此带有 P 字的 G2/3 现在应该可以在 linuxcnc 的 master 分支上按预期工作。精确的 180 度仍然存在数值问题。/ 360 度圆弧如 chamnit 所述,但多转不再是问题。 |
我正在使用像这样的螺旋运动来切割通孔:
G0 X0 Y100
G2 X0 Y100 Z-50 I0 J-100 P10 F100
M30
这应该通过 50 毫米的材料切割一个螺旋孔,每圈下降 5 毫米(总共 10 圈)。
这是使用 LinuxCNC 的预览:
我在我的 ShapeOko 上通过 grbl 运行它,它试图在一圈内完成 50 毫米的完整下沉,这并没有让我的主轴满意。然后我扫描了 grbl 源代码,寻找任何提到 G2“P”参数的地方,但没有找到。这让我相信这不受支持?我可以解决它,但应该提及它是否支持,因为如果您不知道它会导致严重的问题。谷歌搜索“grbl helical”出现“完全支持螺旋运动”。
谢谢!