Klipper 对象排除(exclude_object) 开启教程

请用电脑端以获得最佳阅读体验
本篇教程参照了这个文档
https://docs.mainsail.xyz/features/exclude_objects
并且根据文档,你首先需要满足以下条件:
Klipper 版本大于或等于 v0.10.0-438
Moonraker 版本大于或等于 v0.7.1-445

序言
想必大家在3d打印路上,一定少不了在一次性打印多个零件时,一个零件翻车导致整锅零件一起送走的情况罢,浪费了时间又浪费了材料最后换来的是一锅炒面或者更糟的东西orz
其实主流的打印机固件中一直都有一个鲜为人知的功能,
在klipper上,它叫对象排除;
在marlin和rrf上,它叫取消对象(cancel_object / object cancelation);
字面意思,这个功能允许你在打印过程中,取消单个或多个对象,而丝毫不妨碍其他零件的打印。
其次是我发现,相关的中文资料少之又少,klipper的官方doc中也只草草带过这个功能的介绍,虽然操作过程较为简单,但是在群里面反复复述也比较麻烦,就促成了这篇文章。

正文:开启步骤
首先,你需要找到moonraker.conf

找到 [file_manager] 并在其下方插入 enable_object_processing: True
然后保存,这一步可以暂时不重启,直接关掉就好啦

其次,再到printer.cfg中随便找个地方加上[exclude_object]

添加完后保存

最后...请务必完整重启(比如ssh终端输入reboot)你的上位机,才能使功能完整生效
(其实就是因为之前和 @残念です 折腾了半天发现cura切片出来始终没法生效,但是用prusa就行,最后是靠重启解决的..)

到这里就没啥别的了,如果你使用的是Cura切片,则可以直接把所有零件都拖进去切片然后打印;如果你使用的是Prusa,则需要到设置中找到标记对象并勾选(打印设置>输出选项>标记对象)
以Fluidd举例,你会发现在 Gcode 预览 面板多出了一个按钮:

Mainsail则是会在状态面板里显示:

如果你没有发现这个按钮,兴许你还需要更新一下你的fluidd/mainsail版本。

结语
这个功能本质就是让切片软件在切片的时候给每个对象加上对应的标签,让打印机能识别各个gcode部分对应的对象,只要排除掉对应的gcode就可以实现排除对象的功能。其实也没啥好总结的,而且开起来也很简单,有啥问题再补充罢,专栏复制不了的代码我会放到评论区。
最后, happy printing~