评论
我遇到了与您描述的类似的问题。
|
感谢您的建议。 |
您是使用 USB 打印还是从 SD 卡打印? |
我正在使用 USB 打印,Marlin 固件在 Ramps 1.4 板上运行。 |
你用什么发送GCode?可能是您使用的工具在打印机完成之前关闭了连接。您可以尝试将 M400 放在 GCode 的末尾,看看是否有帮助。 |
您好, 我怀疑与打印机的连接已关闭,因为我在启用监视器打印机的情况下运行 Pronterface,因此它会不断轮询床和挤出机温度。我应该禁用此轮询吗? 当我今晚回到家时,我会试试 M400。我会告诉你。 |
从 SD 打印时命令缓冲区是否大得多? 如果您的结束代码中有 M84“停止所有电机”命令,那么这可能会导致阻止命令缓冲区中的任何内容停止执行。即G指令被缓冲,M指令立即执行。因此,如果在 M84 出现时缓冲区中还有任何剩余的 G 命令(我相信只有 16 个命令长),那么您将丢失它们。在 M84 之前放置 M400“等待缓冲区清除”将解决该问题。 但是,8 到 10 层的命令远远超过 16 层,所以我怀疑这是你的问题。值得一试。 |
您好, 感谢您的支持。奇怪的是 Sprinter 没有这种行为,所以我认为这是 Marlin 中的一个错误。 |
除了读取M代码的温度,我看不出为什么他们插队G代码是正确的。在我看来,温度变化、风扇开关、电机关闭等都应该与动作同步。 |
过去所有的 G 命令都是缓冲的,所有的 M 命令都是立即的。现在似乎也有无缓冲的 G 命令。所以现在G和M没有意义,只是一个扩展可能性的前缀。 我同意风扇开关和电机应该被缓冲,所以我会让它们成为 G 命令并让 M 命令立即执行。 整个标准一团糟。在 3D 打印机变得更加多产之前,我不认为它会很快得到改善。目前,大多数拥有打印机的爱好者都有足够的技术头脑来管理当前标准的细微差别。我不介意它处于现在的状态,只要它保持当前的开放和可配置状态即可。让 gcode 标准在接下来的几年里发展(尽管很混乱),然后我们可以用每个人都投入其中的所有很酷的想法进行智能重新设计。 |
但是,为什么任何命令队列都应该与需要向主机返回结果和紧急停止的命令队列分开呢?对我来说,乱序执行它们就像是一个错误。任何影响机器状态的命令都应该按照指定的顺序发生。这就是我认为的所有 G 代码和大部分 M 代码。我怀疑是否有任何 CNC 机器会像 Marlin 那样重新排序 G 代码。 我最近试图编写一个 G 代码测试脚本来测试 Melzi 板,这是一场噩梦,因为延迟之后的 M 代码实际上发生在延迟之前。 |
大多数 Marlin 代码在执行前与步进器例程同步,例如 M84 将等到所有命令执行完毕后才关闭电机。所以不是这样。你能发布一个不工作的 GCode 文件的确切结尾吗?包括评论和一切。Marlin 的解析器相当……糟糕的恕我直言。 |
你好, 这是使用大多数默认设置使用 Slic3r 切片的 20mm 盒校准 STL 文件的 G 代码文件的结尾。这个未能打印最后几段: G1 X90.571 Y91.458 F7800.000 但是,当我添加建议的 M400 时,它就可以正常工作了: G1 X90.571 Y91.458 F7800.000 |
看起来 g28 命令是无缓冲的 当我试图理解为什么在 z 向上移动 1mm 之前有归位到 x0 时碰到了它,我想要的是 还有其他一些奇怪的事情吗? 谢谢 |
M 代表“杂项功能”或“机器”。 伯恩哈德 2012 年 11 月 6 日星期二晚上 10:55,NeilMartin notifications@github.comwrote:
|
见#315 |
你好,
当我打印零件时,顶层实心填充物的最后几个部分(可能 8 到 10 个?很难精确计算)没有打印出来。
我正在使用默认设置使用 Slic3r 生成 G 代码。
使用 Sprinter 可以正确打印相同的 G 代码文件,这就是为什么我倾向于指出 Marlin 是原因。
除了此处描述的非常奇怪的问题外,Marlin 使我的打印效果比 Sprinter 好得多。
有没有人见过这个 ?如果需要,我可以发布我的 Marlin 配置文件和我遇到问题的 G 代码文件。
此致。