惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
Arctic Wolf
T
Tenable Blog
T
Troy Hunt's Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Privacy & Cybersecurity Law Blog
NISL@THU
NISL@THU
Application and Cybersecurity Blog
Application and Cybersecurity Blog
H
Hacker News: Front Page
S
Secure Thoughts
AWS News Blog
AWS News Blog
L
LINUX DO - 最新话题
D
Darknet – Hacking Tools, Hacker News & Cyber Security
M
MIT News - Artificial intelligence
T
Tor Project blog
S
Schneier on Security
PCI Perspectives
PCI Perspectives
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
美团技术团队
Google DeepMind News
Google DeepMind News
V
Visual Studio Blog
爱范儿
爱范儿
Google DeepMind News
Google DeepMind News
Cyberwarzone
Cyberwarzone
T
The Exploit Database - CXSecurity.com
罗磊的独立博客
T
Threat Research - Cisco Blogs
Recent Commits to openclaw:main
Recent Commits to openclaw:main
V
V2EX
C
CXSECURITY Database RSS Feed - CXSecurity.com
Stack Overflow Blog
Stack Overflow Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
G
GRAHAM CLULEY
L
LINUX DO - 热门话题
D
Docker
J
Java Code Geeks
GbyAI
GbyAI
H
Heimdal Security Blog
The Hacker News
The Hacker News
MongoDB | Blog
MongoDB | Blog
V
Vulnerabilities – Threatpost
T
Tailwind CSS Blog
Cloudbric
Cloudbric
TaoSecurity Blog
TaoSecurity Blog
C
CERT Recently Published Vulnerability Notes
Y
Y Combinator Blog
Recorded Future
Recorded Future
Cisco Talos Blog
Cisco Talos Blog
T
Threatpost
The Register - Security
The Register - Security
Hacker News - Newest:
Hacker News - Newest: "LLM"

博客园 - 思兼

跟思兼学Klipper(40) 免费高速简单的3D打印机远程控制服务 跟思兼学Klipper(39.1)解决 QIDI Q2 主板散热风扇开机即转、待机不停的风扇噪音问题 跟思兼学Klipper(38) 成品3D打印机使用外挂上位机提升性能简明指南 跟思兼学Klipper(37) M8P v2.0+CB2/BTTPi2 新版系统使用简明指南 跟思兼学用Klipper(36)低成本升级自动Z偏移校准实现完美首层 MKS Pi/SKIPR 自制新版系统简明使用指南 火力全开!Intel NUC6iKYK 骷髅峡谷提速降温简明指南 跟思兼学用Klipper(35) mergerfs 助力 Klipper 上位机热插拔自动扩容与脱机打印 跟思兼学用Klipper(34) 3D打印机如何进行双 Z 等高校准之我见 跟思兼学Klipper(32):修复 CrealityOS IP 地址经常改变的问题 跟思兼学Klipper(30):使用辅助宏调整3D打印机无感归位堵转检测阈值 玩转创想三维 K1 系列主板之二:编译 MCU 固件,恢复裁剪组件 玩转创想三维 K1 系列主板之一:在线更新 MCU 固件 基于 ESPHome 的 3D 打印机舱内控制系统(2): FireBeetle 2 ESP32-C6 + Moonraker Sensor + Fluidd 基于 ESPHome 的 3D 打印机舱内控制系统(1): 荆棘满途之 FireBeetle 2 ESP32-C6 初始配置 跟着思兼学习Klipper(29):行空板遇上Klipper之一: 安装Klipper全家桶 跟着思兼学习Klipper(28):无接触线刷Klipper固件:千秋万载,一统江湖之Katapult 跟着思兼学习3D打印 Klipper 固件系列文章合集 27-行空板遇上Klipper之三: 做一个基于Klipper的通用延时摄影机
跟思兼学Klipper(41):优化 KAMP 的自适应划线清除喷嘴残料
思兼 · 2026-02-23 · via 博客园 - 思兼

前言

原创文章,转载引用务必注明链接,水平有限,如有疏漏,欢迎指正交流。

文章如有更新请访问 DFRobot 社区cnblogs 博客园,前者内容较全,后者排版及阅读体验更佳。

笔者之前一直使用 KAMP 的自适应划线擦嘴,但是存在一些小问题等待修复,最近互联网冲浪的时候看到 Teaching Tech 大佬的视频 Adaptive purge for every 3D printer: A simple slicer tweak ,有了此文。

注意,Purge 本文翻译为清洗,除了 Line Purge (线形图案) 外,还有其他很多清洗图案可供选择,如 VORON、BAMBU LOGO。

另外还有一点,Q2 单机没有更换剪料模块时是左右剪掉废料团,使用多色 BOX 后是前后碰掉废料团。

一. 什么是自适应清洗 (Adaptive purge) 及其优势

在 3D 打印的实际操作中,打印前喷嘴残留的耗材,极易导致打印件出现串色、瑕疵、层间粘合不良等问题,甚至可能导致打印失败,清洗线(Purge Line)便是解决这一问题的有效手段,而 Adaptive Purge(自适应清洗) 则是传统固定清洗线的升级方案,其优势如下:

  1. 清洗划线位置并非固定不变,可以减少热床打印板磨损
  2. 清洗线不在打印板边缘,避免翘曲的热床中间和边缘高度不同,导致清洗线不着床或刮床
  3. 清洗划线与模型之间距离更短,减少可能的喷嘴漏料、拉丝
  4. 在更高的高度挤出划线,不容易损坏热床,并且划线更容易移除

image-20260223020353371

【图1】传统固定划线的劣势:不着床或划床;固定位置导致打印板磨损;距离模型较远导致移动过程中拉丝、漏料

二、KAMP 当前存在的问题

KAMP(Klipper Adaptive Mesh & Purge) 是基于 Klipper 固件开发的自适应方案,其中也包含了成熟的自适应清洗功能,是目前 3D 打印圈中实现 Adaptive Purge 的主流选择之一,但该方案并非完美,笔者当前遇到的问题包括:

  1. 调用 Klipper 宏生成,无法在切片软件中预览。作者有意使用后处理预览,但是比较麻烦且暂时没有发布
  2. 根据预设的参数在模型周围生成清洗线,但是不考虑 Skirt、Brim,可能会导致重叠
  3. 机械地根据预设参数生成清洗图案,可能会跑到热床外面,或者进入到切刀区等不可打印区域

三、解决方案

TeachingTech 大佬提供了方案,我们更进一步参考 Adaptive A1 Purgeline Start GCode for Bambu Lab P1S 为 Qidi Q2 进行优化,提供安全打印区域检查功能,它将检查在打印区域附近挤料是否存在安全风险,针对第一层打印区域的左下角(0,0 点)检查以下条件:

  1. 打印件靠近切刀区
  2. 打印件靠近打印床左/前/右侧边缘
  3. 将执行备用挤料流程

我们首先结合 Q2 的切片软件,找到切刀区范围(0,0 11,16)。再在打印机上移动打印头找到 PEI 板后方凸起的磨嘴板,用于备用划线。

image-20260223021921855

获得最终起始 Gcode 中的划线代码:

; https://www.printables.com/model/1317820-adaptive-a1-purgeline-start-gcode-for-bambu-lab-p1
; Modified by 思兼 2026年2月23日
; Q2 切刀区 0,0 11,16. 默认线长 50mm 左右
; PEI 磨嘴备用划线区125,283 145,283
;===== Nozzle load line startup sequence ===============================
G90                             ; 使用绝对坐标模式
M83                             ; 将挤出机设置为相对模式

;----------------------------------------------------------------------
{if ((first_layer_print_min[0] - 5) < 11) and ((first_layer_print_min[1] - 5) < 16) or (first_layer_print_min[0] < 6) or (first_layer_print_min[1] < 6) or (first_layer_print_min[0] > 220)}

  ;====================================================================
  ; 备用划线流程
  ;====================================================================

  {if curr_bed_type == "Supertack Plate" or curr_bed_type == "Cool Plate" or curr_bed_type == "Textured Cool Plate"}

    ; ;--- Purge at top of no-go zone for Supertack or Cool Plate ---
    ; ;--- 针对 Supertack 板/冷打板的划线动作 ---
    ; G0 X15 Y{28 - 2} Z2 F30000
    ; G0 Z0 ; 喷嘴轻触打印床,防止漏料导致空气进入喷嘴内部
    ; M109 S{nozzle_temperature_initial_layer[initial_extruder]}
    ; G0 Z0.3 F18000
    ; M400
    ; G91

    ; G1 Y-20 E10 F{outer_wall_volumetric_speed / (24 / 20) * 60}
    ; G1 Z-0.1
    ; G1 X2.4 E{0.3742 * 0.48} F{outer_wall_volumetric_speed / (0.3 * 0.5) / 4 * 60}
    ; G1 Y5 E0.3742 F{outer_wall_volumetric_speed / (0.3 * 0.5) * 60}
    ; G1 Y5 E0.3742 F{outer_wall_volumetric_speed / (0.3 * 0.5) / 4 * 60}
    ; G1 Y5 E0.3742 F{outer_wall_volumetric_speed / (0.3 * 0.5) * 60}
    ; G1 Y5 E0.3742 F{outer_wall_volumetric_speed / (0.3 * 0.5) / 4 * 60}

  {else}

        ;--- 备用划线位置:Y283 处 (后方凸起磨嘴区) ---
    MOVE_TO_TRASH
    G1 X125 F15000
    G1 Y283 Z2 F15000
    G0 Z0 ; 喷嘴轻触打印床,防止漏料导致空气进入喷嘴内部
    M109 S{nozzle_temperature_initial_layer[initial_extruder]}
    G1 Z0.3
    M400
    G91

    G1 X15 E8 F{outer_wall_volumetric_speed / (24 / 20) * 60}
    G1 Z-0.1
    G1 X5 E0.3742 F{outer_wall_volumetric_speed / (0.3 * 0.5) / 4 * 60}

  {endif}

  ;--- 返回打印起始位置 ---
  G90
  G1 Z{initial_layer_print_height + 0.3}
  G0 X{first_layer_print_min[0] + (first_layer_print_size[0] / 2)} Y{first_layer_print_min[1]} F18000

{else}

  ;====================================================================
  ; 可在实际打印区域附近安全划线
  ;====================================================================

  G1 X{first_layer_print_min[0] - 5} Y{first_layer_print_min[1] - 5} Z1.5 F18000
  G0 Z0
  M109 S{nozzle_temperature_initial_layer[initial_extruder]}
  G1 Z0.3
  M400
  G91

  G1 X20 E10 F{outer_wall_volumetric_speed / (24 / 20) * 60}
  G1 Z-0.1
  G1 X5 E0.3742 F{outer_wall_volumetric_speed / (0.3 * 0.5) / 4 * 60}
  G1 X5 E0.3742 F{outer_wall_volumetric_speed / (0.3 * 0.5) * 60}
  G1 X5 E0.3742 F{outer_wall_volumetric_speed / (0.3 * 0.5) / 4 * 60}
  G1 X5 E0.3742 F{outer_wall_volumetric_speed / (0.3 * 0.5) * 60}
  G1 X5 E0.3742 F{outer_wall_volumetric_speed / (0.3 * 0.5) / 4 * 60}


  ;--- 返回打印起始位置 ---
  G90
  G1 Z{initial_layer_print_height + 0.3}
  G0 X{first_layer_print_min[0] + (first_layer_print_size[0] / 2)} Y{first_layer_print_min[1]} F12000


{endif}

M400 ; 等待所有动作完成

注意:

  1. 特殊板型逻辑未实装,仅适配 Q2 官方打印板,即后方有磨嘴区域
  2. 对于没有后方磨嘴区的通用打印板,注意不要触发备用划线
  3. 右半线段可以检查 PA 值设定是否合适

四、使用方法

如下图所示打开切片软件-打印机设置-打印机起始 Gcode,删除 T[initial_tool] 以下的原有内容,将上述 Gcode 拷贝进去即可。

image-20260223021944331

4.1 如果已使用 Q2 优化整合包

打开配置文件中的 PRINT_START_with_boxes.cfg 文件,并搜索注释掉 Smart_ParkVORON_PURGE 行。

image-20260223022010749

五、使用效果

image-20260223022206552

【原厂划线,位置固定可能导致磨损且贴合较紧不易取下】

image-20260223022050103

【自适应划线,默认位置】

image-20260223022127286

【自适应划线,备用位置】

image-20260223022415888

快去试试吧!