我在 Anet A8 打印机上使用固件 Marlin 2.0.3。我正在使用 Roko SN04-N NPN 平床。我已经设法设置了 3 点的床调平,但我想尝试双线性调平。
问题是,在调平过程中,传感器稍微脱离铝床,导致打印头撞到床上。
我在哪里可以在配置文件中为双线性调平设置网格?我没有在文件中找到该选项,这次谷歌也没有任何帮助。
我在 Anet A8 打印机上使用固件 Marlin 2.0.3。我正在使用 Roko SN04-N NPN 平床。我已经设法设置了 3 点的床调平,但我想尝试双线性调平。
问题是,在调平过程中,传感器稍微脱离铝床,导致打印头撞到床上。
我在哪里可以在配置文件中为双线性调平设置网格?我没有在文件中找到该选项,这次谷歌也没有任何帮助。
如果您已设法设置 3 点调平,则应该能够在固件中启用双线性调平。
从Marlin 固件的configuration.h文件中,您可以找到以下选项:
/** * 选择以下选项之一以启用 G29 床位调平。参数 * 和 G29 的行为将根据您的选择而改变。 * * 如果使用探针进行 Z 归位,还要启用 Z_SAFE_HOMING! * * - AUTO_BED_LEVELING_3POINT * 探测床上的 3 个任意点(不共线) * 您指定所有 3 个点的 XY 坐标。 * 结果是一个倾斜的平面。最适合平床。 * * - AUTO_BED_LEVELING_LINEAR * 探测网格中的几个点。 * 您指定矩形和采样点的密度。 * 结果是一个倾斜的平面。最适合平床。 * * - AUTO_BED_LEVELING_BILINEAR * 探测网格中的几个点。 * 您指定矩形和采样点的密度。 * 结果是网格,最适合大床或不平整的床。 * * - AUTO_BED_LEVELING_UBL(统一床位调平) * 一个综合性的床调平系统,结合了功能和优点 * 其他系统。UBL 还包括集成的 Mesh Generation、Mesh * 验证和网格编辑系统。 * * - MESH_BED_LEVELING * 手动探测网格 * 结果是网格,适用于大床或不平整的床。(见双线性。) * 对于没有探头的机器,Mesh Bed Leveling 提供了一种方法来执行 * 逐步调平,因此您可以在每个网格点手动调整 Z 高度。 * 使用 LCD 控制器可逐步指导该过程。 */ //#define AUTO_BED_LEVELING_3POINT //#define AUTO_BED_LEVELING_LINEAR //#define AUTO_BED_LEVELING_BILINEAR //#define AUTO_BED_LEVELING_UBL //#define MESH_BED_LEVELING
如果您使用的是 3 点调平,您可以AUTO_BED_LEVELING_3POINT
通过删除注释字符 ( //
) 来启用常量:
#define AUTO_BED_LEVELING_3POINT
要启用双线性调平,您应该删除常量之前的注释字符#define AUTO_BED_LEVELING_BILINEAR
:
#define AUTO_BED_LEVELING_BILINEAR
网格的定义是通过使用常量GRID_MAX_POINTS_X
和指定您想要拥有的点数来完成的GRID_MAX_POINTS_Y
:
#if EITHER(AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR) // 设置每个维度的网格点数。 #define GRID_MAX_POINTS_X 3 #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
上面的代码显示了 9 点 (3 x 3) 网格的默认定义。
请注意,只有正确定义了传感器可安全到达的区域,这才会有效。如果传感器缺少构建板,则您没有正确定义传感器的限制。问题“使用自动平床时如何在固件中设置 Z-probe 边界限制?” 有一个公认的答案,描述了如何定义传感器可能到达的板上的区域(这个问题的答案也讨论了 Marlin 2.x)。
从发布的配置文件中可以获得您的探针位置:
#define NOZZLE_TO_PROBE_OFFSET { 25, 55, 0 }
因此,当您面对打印机时,您的探头位于右后方。还可以获得您的床区尝试(评论)和当前活动床区:
#if PROBE_SELECTED && !IS_KINEMATIC //#define MIN_PROBE_EDGE_LEFT 5 //#define MIN_PROBE_EDGE_RIGHT 200 //#define MIN_PROBE_EDGE_FRONT 55 //#define MIN_PROBE_EDGE_BACK 200 #define MIN_PROBE_EDGE_LEFT MIN_PROBE_EDGE #define MIN_PROBE_EDGE_RIGHT MIN_PROBE_EDGE #define MIN_PROBE_EDGE_FRONT MIN_PROBE_EDGE #define MIN_PROBE_EDGE_BACK MIN_PROBE_EDGE #万一
从这些摘录中可以清楚地看出,床位限制的定义不正确。
根据这个答案的理论,探头只允许访问以下(深红色)区域:
该区域定义为:
#define MIN_PROBE_EDGE_LEFT (PROBE_OFFSET_X_FROM_EXTRUDER + MIN_PROBE_EDGE) #define MIN_PROBE_EDGE_RIGHT (MIN_PROBE_EDGE) #define MIN_PROBE_EDGE_FRONT (PROBE_OFFSET_Y_FROM_EXTRUDER + MIN_PROBE_EDGE) #define MIN_PROBE_EDGE_BACK (MIN_PROBE_EDGE)
翻译成:
#define MIN_PROBE_EDGE_LEFT (25 + MIN_PROBE_EDGE) #define MIN_PROBE_EDGE_RIGHT (MIN_PROBE_EDGE) #define MIN_PROBE_EDGE_FRONT (55 + MIN_PROBE_EDGE) #define MIN_PROBE_EDGE_BACK (MIN_PROBE_EDGE)
如注释//#define MIN_PROBE_EDGE_LEFT 5
和未注释#define MIN_PROBE_EDGE_LEFT MIN_PROBE_EDGE
(等于 10)左探头限制所示,您至少分别短 20 或 15 毫米,因此传感器不在左侧的板上。