使用 Marlin Mesh Bed Leveling 时,喷嘴会从床上跳起来

3D打印 马林鱼 anet-a8 平床
2021-05-04 13:04:48

我在 Anet A8 打印机上使用带有 RAMPS 板的 Marlin 固件。

打印机的床尺寸为 220 x 220 毫米,这在configuration.h文件中有所说明使用网床调平时,将 x-min 设置为 5.0 后,喷嘴完美地跳到床的第一个角落,但接下来的两个点不在床的末端。这是我的设置:

// Travel limits after homing (units are in mm)

 #define X_MIN_POS 5.0
 #define Y_MIN_POS 0.0
 #define Z_MIN_POS 0
 #define X_MAX_POS 220
 #define Y_MAX_POS 220
 #define Z_MAX_POS 240

我的问题可能是什么?

2个回答

没有一个答案能解决您的问题来解决它!唯一明智的贡献来自@TomvanderZanden的评论


为了使传感器保持床的限制范围(考虑传感器的偏移和热端托架的大小),您需要定义传感器(加上托架)可以到达的位置(使传感器也保持在床上,您还需要定义传感器限制)。建议的常数对于定义床的尺寸和构建体积很重要,但更改它们实际上并不能解决您的问题。您的问题是您需要解决传感器可能在指定体积内探测的位置,即传感器探测区域。

我在 Anet A8 上使用 ABL(自动贝尔调平),在位置 ( x = -26 mmy = -40 mm从喷嘴中心看)使用左前安装的传感器为了让传感器在床区上运行而不会碰到车厢的限制,您必须(自己!)计算自动床调平区的尺寸是多少。这是因为传感器偏离了喷嘴。如果传感器覆盖整张床,则轴上需要额外的空间。为了解释这一点,如果您的传感器在左前方,就像在我的情况下一样,您在右侧留下的额外空间量X 小车的位置将决定小车可以走多远,从而限制正确的探头位置。如果托架上没有额外空间(最安全的假设),您只需要将传感器偏移量添加到最大床尺寸(喷嘴可以达到的范围)。例如,我的探针 X 偏移量为-26 mm因此,最大探测距离为-26 mm + 220 mm = 194 mm

这意味着您需要在 Marlin 固件安装的 configuration.h 中设置以下常量(在启用 ABL 的设置中;探头和调平类型...):

#define X_PROBE_OFFSET_FROM_EXTRUDER -26   // X offset: -left  +right  [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER -40   // Y offset: -front +behind [the nozzle]

// Set the boundaries for probing (where the probe can reach).
#define LEFT_PROBE_BED_POSITION (0 + 10)         // 10
#define RIGHT_PROBE_BED_POSITION (220 - 26 - 10) // 184
#define BACK_PROBE_BED_POSITION (220 - 40 - 10)  // 170
#define FRONT_PROBE_BED_POSITION (0 + 10)        // 10

此外,您提到的设置需要是:

// The size of the print bed
#define X_BED_SIZE 220
#define Y_BED_SIZE 220

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS -33 // Distance from end switch to X = 0 of origin
#define Y_MIN_POS -10 // Distance from end switch to Y = 0 of origin
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 240

-33-10 限定喷嘴需要多大的旅行从终点挡板位置到打印原点!使用带有传感器的 ABL 时无需更改此设置(除非您使用具有不同喷嘴中心的不同打印头托架)。为什么这些值是-33-10(或接近这个值;例如,对于我的打印机,它们是-36-8)在这个答案中进行了解释

问题出在代码中。请使用这些:

// The size of the print bed
#define X_BED_SIZE 220
#define Y_BED_SIZE 220

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS 5
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 240

你的问题会好的。