开源改变世界

允许 G0 使用移动进给率而不是与 G1 相同的进给率 #256

推推 grbl 2年前 (2023-02-05) 164次浏览
关闭
wolfmanjm 打开了这个问题 2012 年 10 月 1 日 · 5 条评论
关闭

允许 G0 使用移动进给率而不是与 G1 相同的进给率#256

wolfmanjm 打开了这个问题 2012 年 10 月 1 日 · 5 条评论

评论

允许 G0 使用移动进给率而不是与 G1 相同的进给率 #256
贡献者

我正在尝试使用 Marlin 来铣削 PCB,我通常使用 GRBL,但是因为我已经加载了 Marlin,所以能够使用它会很好。

它基本上可以工作,但速度非常慢,因为铣削软件使用 G0 从一个点移动到另一个点,并期望它以更高的进给率运行。这在 GRBL 中有效,如果 Marlin 可以做同样的事情,那就太好了。

允许 G0 使用移动进给率而不是与 G1 相同的进给率 #256

我有类似的问题。我现在正在使用我的 3D 打印机进行雕刻,我的 CAM 软件生成 G0 移动,这些移动正在以切削进给率进行解释,这非常慢。(大约 1 毫米/秒。)

我已经破解了我的本地副本来实现这一点。它还有很多其他更改,而且我认为我没有最新版本的 Marlin,而且我对 git 不是很熟悉,所以描述它比生成补丁更容易 :) 另外,我敢肯定您有一种更喜欢的方式来添加此功能。这非常简单,但如果您愿意,我可以制作一个补丁。

我将 (rapid = false) 添加到 get_coordinates() 和 prepare_move() 的原型中,并且仅针对 G0 移动将其设置为 true。然后我将 rapid_feedrate 添加为私有变量,设置为默认值。在 prepare_move() 中,我在 rapid = true 时使用这个新的进给率,而且我从不使用乘数。(所以我可以在不缩放快速移动的情况下缩放切削移动。)在 get_coordinates() 中,它会在 rapid = true 时更新新的进给率。因此,我可以在打印前或打印暂停时手动输入 G0 Fxxx 来设置此参数。(CAM 软件往往不指定 G0 的进给率。)我上面提到的默认值取自 Configuration.h。

我刚才描述的更改似乎工作得很好。我已经对它们进行了简短的测试,它们的表现符合我的预期。如果我在第二天左右发现新错误,我会报告回来:)

让切片软件也生成 G0 移动是有意义的,以便分别缩放 G0 和 G1 进给率。例如,如果您想减慢打印速度而不同时减慢 G0 进给速度。您可以使用 M220,它不会影响快速移动。也许 M220 Rxxx 可以设置快速移动的覆盖。如果能够使用 M220 更改此设置,而无需暂停打印以发出 G0,那就太好了。

当然,现在像 Pronterface 这样的软件不会给出正确的时间估计,但如果固件和切片软件开始使用 G0,那么其他人很快就会流行起来。

不要忘记将快速进给率添加到返回给用户的任何统计数据中。我没有理会这个。有一个选项可以防止快速挤出,也许只是忽略与 G0 配对的任何 Exxx,或者如果有 Exxx,则恢复为 G1 的行为。

允许 G0 使用移动进给率而不是与 G1 相同的进给率 #256
贡献者

有什么理由不只使用 G0 的最大进给率值吗?如果不是,您可以将 G0 中的进给率设置为高得离谱的数字,然后让规划器将其降低到最大值。

允许 G0 使用移动进给率而不是与 G1 相同的进给率 #256

就在这里 :)

任何机器在快速移动后都会有一点振动。(在某些情况下,这很糟糕。)您可能将最大进给率设置为适用于草图打印的值,但随后选择更慢地打印一些东西以获得漂亮的完成。如果它在所有 G0 移动中来回撞击,那么您会在开始挤压的打印件中看到振动。

能够指定移动的进给率很有用,例如,您可以在 Slic3r 中执行此操作,具体取决于所需的打印质量。如果 Slic3r 开始生成 G0 移动,那么在固件中修复它们的进给率将削弱 Slic3r 的该功能。但是允许 Slic3r 在输出开始时生成单个 G0 Fxxx,然后在所有后续 G0 上停止 Fxxx,这意味着您可以稍后轻松覆盖它。您将成功地能够将印刷动作与非印刷动作分开缩放。

还有一个问题是,您可能正在做一些雕刻等,并且想暂时放慢非切割动作,因为您不确定第一条线是否会直接将雕刻机犁过床。较慢 = 更多时间点击红色大按钮 :)

允许 G0 使用移动进给率而不是与 G1 相同的进给率 #256
贡献者

这个是大约一年前创建的,有很多变化,请下载最新的 marlin 副本,看看问题是否仍然存在。您还可以使用最新的 arduino IDE 来刷新 marlin 固件。如果您的板文件等只能在旧的 ide 下工作,请先升级它们,以便它们在最新的 IDE 下工作。

如果您为不在https://github.com/ErikZalm/Marlin/tree/Marlin_v1/ArduinoAddons中的硬件创建板文件,请 fork marlin 并添加文件,然后创建一个拉取请求,以便我们可以获得硬件支持的。这也将使人们了解人们正在使用什么硬件。