返回首页

Qidi Q2 中的「流鼻涕」解决方案 | Klipper 宏

本文描述了 Qidi Q2 3D 打印机中「流鼻涕」问题的解决方案。介绍了一个在热床校准前自动检查喷嘴清洁度的 Klipper 宏。宏的集成可提高打印可靠性和节省时间。

如何修复 Qidi Q2 中的「流鼻涕」:自动喷嘴检查
Advertisement 728x90

Qidi Q2 自动喷嘴清洁度检查:解决“鼻涕嘴”问题

Qidi Q2 3D 打印机用户经常遇到“鼻涕嘴”问题——喷嘴上残留一团塑料,导致负载传感器过早触发。这会造成床面校准失败,第一层打印也失败。下面是一个解决方案:一个 Klipper 宏,能自动检查喷嘴清洁度,并在需要时重复擦拭。

标准 Qidi Q2 喷嘴擦拭为何不足

Qidi Q2 打印机配备负载传感器来检测床面接触。在打印准备过程中,它会挤出喷嘴、冷却至 140°C 并刷洗清洁。然而,在这么低的温度下,喷嘴上可能仍残留固化的塑料团。随后进行的床面调平(G29)时,传感器过早触发,整个床面网格向上偏移。第一层就会悬空打印,完全无法粘附。

标准的 PRINT_START 宏忽略了这个问题。它擦拭喷嘴,然后调整 Z 倾斜并运行 G29,但脏喷嘴会破坏校准数据。这在远程打印时影响最大,因为你无法近距离观察喷嘴。

Google AdInline article slot

宏如何检测“鼻涕嘴”

这个修复方案分析床面网格数据。G29 完成后,它计算所有网格点的 Z 值平均值。如果平均值超过设定阈值(例如 0.07 mm),则喷嘴上很可能有塑料团。清洁喷嘴的平均 Z 值接近零,因为校准会将喷嘴归零到床面高度。

工作原理:

  • 加载网格配置文件(默认 'kamp')。
  • 计算所有 Z 坐标的算术平均值。
  • 如果平均值 > 阈值,则重新擦拭并重新校准。
  • 重复失败时——停止打印。

阈值要设定在传感器噪声和热膨胀之上,但低于第一层高度。推荐:0.07–0.1 mm。

Google AdInline article slot

逐步集成到 Klipper

将 _CHECK_NOZZLE_DIRTY 宏添加到你的 gcode_macro.cfg 文件中:

[gcode_macro _CHECK_NOZZLE_DIRTY]
description: Detects dirty nozzle and auto-retries wipe
variable_retry_count: 0
gcode:
    {% set profile = params.PROFILE|default('kamp') %}
    {% set hotendtemp = params.HOTEND|default(250)|int %}
    
    {% if profile in printer.bed_mesh.profiles %}
        {% set mesh = printer.bed_mesh.profiles[profile].points %}
        {% set total_z = namespace(val=0) %}
        {% set count = namespace(val=0) %}

        {% for row in mesh %}
            {% for z in row %}
                {% set total_z.val = total_z.val + z %}
                {% set count.val = count.val + 1 %}
            {% endfor %}
        {% endfor %}

        {% if count.val > 0 %}
            {% set avg_z = total_z.val / count.val %}
        {% endif %}

        {% if avg_z > 0.07 %}
            {% if retry_count < 1 %}
                { action_respond_info("WARNING: Nozzle dirty (Z-avg: %.3f). Attempting wipe..." % avg_z) }
                SET_GCODE_VARIABLE MACRO=_CHECK_NOZZLE_DIRTY VARIABLE=retry_count VALUE=1
                
                CLEAR_NOZZLE HOTEND={hotendtemp}
                G28 Z
                G29
            {% else %}
                SET_GCODE_VARIABLE MACRO=_CHECK_NOZZLE_DIRTY VARIABLE=retry_count VALUE=0
                { action_raise_error("ERROR: Retry wipe failed (Z-avg: %.3f). Aborting." % avg_z) }
            {% endif %}
        {% else %}
            { action_respond_info("CHECK: Nozzle clean (Z-avg: %.3f). Printing OK." % avg_z) }
            SET_GCODE_VARIABLE MACRO=_CHECK_NOZZLE_DIRTY VARIABLE=retry_count VALUE=0
        {% endif %}
    {% else %}
        { action_respond_info("CHECK: Mesh profile %s not found." % profile) }
    {% endif %}

然后在 PRINT_START 中 G29 后立即添加宏调用:

G29 ; Bed mesh calibration
_CHECK_NOZZLE_DIRTY PROFILE=kamp HOTEND={hotendtemp}

Klipper 日志会显示喷嘴状态。例如:

Google AdInline article slot
Mesh Bed Leveling Complete
...
WARNING: Nozzle dirty (Z-avg: 0.136). Attempting wipe...

关键设置注意事项

  • 阈值:从 0.07 mm 开始。根据你的打印机、传感器公差和耗材调整。
  • 床面校准:宏需要先进行床面校准。跳过的话,平均 Z 值会出错。
  • 重试限制:允许一次重试擦拭。第二次失败则停止打印。
  • 测试:校准时在喷嘴下塞入 0.1 mm 塞尺进行测试。

这个宏能节省时间——尤其适合远程操作——并提高打印成功率。

— Editorial Team

Advertisement 728x90

继续阅读