马林的 G30 代码有什么作用?

3D打印 马林鱼 坡道-1.4 g代码 z-探针
2021-05-03 19:12:32

我正在使用 Marlin 1.1.0RC8 来控制 MPCNC,使用 RAMPS1.4。我们刚刚添加了一个触摸板来进行 Z 探测,它适用于单个探头(我只想要校准高度的变体位长度,而不是床调平,但我认为它相当于同一件事)。我在 Marlin 中将它设置为FIX_MOUNTED_PROBE,这似乎最接近。

我可以让它做一个G38.2 Z-50G92 Z12.6(将 Z 设置为触摸板的高度,12.6 毫米),这是可以继续的,但似乎我必须对 Z 偏移进行硬编码,我'm 确实应该由 eg Z_PROBE_OFFSET_FROM_EXTRUDERor设置M851

我的感觉是我应该能够调用 G-code G30,它会做一个很好的快慢双击,相当于 aG92 Z+zzz来设置那个高度,然后退回到一个安全的高度。经过一些配置后,它确实做到了......

...除了它对测量的高度没有任何作用!看起来很奇怪。G30代码似乎是一种精心设计的方法,可以通过触摸板将头部向上移动间隙量(如果出现任何问题,还可以使床崩溃)!重点是什么?

我是否误解了G30要做什么?我已经阅读了此处的文档,并进行了追溯Marlin_main.cpp,确实没有“结果”。除非我错过了什么?

2个回答

我相信G30是来自 CNC 的结转(G 代码起源于 CNC 而不是打印机)我相信它是为了转到辅助参考(原位)位置,并包括一个可选的旁路地址,可以包含在命令中.

查看Marlin 1.1.0-1(最新版本),它似乎按照你说的做:

  1. 移动到请求的位置(如果在命令中选择,否则 N/C)
  2. 部署探针
  3. 回家
  4. 斯托探头
  5. 报告请求的位置和探测的 Z 位置
  6. 报告当前位置(家?)

看来,对于马林来说,只有一个参考地址(家);因此,似乎 aG30与 a 相同G28(转到主要参考资料);但是,并非如此。

它看起来像是G28一个不同颜色的家。看起来它一次一个定位轴并且不支持旁路位置。请注意,您可以通过在命令中添加字母“X”、“Y”和/或“Z”来选择要归位的轴。

除了允许您更改打印机的回家路径之外,我不确定此命令对 3D 打印机有什么好处。

注意:不幸的是,我现在没有在我的打印机上启动和运行 Marlin 代码,所以我无法确认我在代码中看到的内容。

我最近需要在我的 MPCNC + Ramps 1.4 + Marlin 1.1.5 设置上使用 Z-probe 触摸板。

以为我会分享最终对我有用的东西。

在 Marlin 中Configuration.h,我进行了更改以启用 Z-probe:

#define USE_ZMIN_PLUG
#define Z_MIN_ENDSTOP_INVERTING     true
#define Z_MIN_PROBE_ENDSTOP_INVERTING   true
#define FIX_MOUNTED_PROBE
#define PROBE_DOUBLE_TOUCH
#define Z_MIN_POS -100

但是,以下内容可能是解决您问题的关键。
G30也没有为我做任何事情,直到我将这些值更改为 0。G30现在降低 Z,直到触发 Z 探针。我需要发送一个G92来设置新的 Z 值。
像冠军一样工作!

#define X_PROBE_OFFSET_FROM_EXTRUDER 0
#define Y_PROBE_OFFSET_FROM_EXTRUDER 0

如果您有兴趣,在 lcd_prepare_menu() 下的ultralcd.cpp 中,我添加了一个菜单项来执行探测。这样我就不需要计算机来设置机器并从 SD 卡启动 gcode 文件。

  #if HAS_BED_PROBE
        MENU_ITEM(gcode, MSG_PROBE_Z, PSTR("G30\nG92 Z19.05"));
  #endif

希望这对你有帮助,即使晚了几年。