没有一个答案能解决您的问题来解决它!唯一明智的贡献来自@TomvanderZanden的评论。
为了使传感器保持在床的限制范围内(考虑传感器的偏移和热端托架的大小),您需要定义传感器(加上托架)可以到达的位置(使传感器也保持在床上,您还需要定义传感器限制)。建议的常数对于定义床的尺寸和构建体积很重要,但更改它们实际上并不能解决您的问题。您的问题是您需要解决传感器可能在指定体积内探测的位置,即传感器探测区域。
我在 Anet A8 上使用 ABL(自动贝尔调平),在位置 ( x = -26 mm
;y = -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
)在这个答案中进行了解释。