Bàn chải lau vòi in cho Flashforge AD5M/Pro (dùng silicone brush của Bambulab A1)

Nâng cấp phụ kiện bàn chải lau vòi nozzle cho máy in 3D Flashforge AD5M series, sử dụng silicone brush từ Bambulab A1. Đi kèm hướng dẫn cấu hình macro Klipper.

👁️
4.6K
Lượt Xem
❤️
164
Lượt Thích
📥
385
Lượt Tải
Cập Nhật Apr 02, 2026
Chi tiết
Tải xuống
Bình Luận
Khoe bản in
Remix

Mô tả

[Changelog MK2] 03/11/2025

Người dùng @CoreyRogers_489647 có phản hồi về việc bị cấn vào bàn in. Mình đã chỉnh sửa nhẹ để tăng khoảng cách.

CHƯA ĐƯỢC KIỂM THỬ.


Đúng như tiêu đề đã nêu.

Mình in bằng PET-CF vì bàn in thường lên tới 110 độ. ABS/ASA có thể cũng dùng được. Các loại vật liệu như PC/NYLON sẽ càng tốt hơn nữa.

Bạn nên dùng loại vật liệu cứng cáp và chịu nhiệt tốt, nên PET-CF có thể chưa phải lựa chọn lý tưởng nhất.

In kèm support, xem ảnh nhé. Tận dụng lại ốc vít nhựa M4 có sẵn.

Mình có chỉnh sửa macro START_PRINT để lau vòi trước khi thực hiện cân bàn. Mình cũng đang dùng KAMP.

Cảm ơn macro của @dimaj_298345! Cái này chắc sẽ chạy tốt với bản AD5M gốc. Link ở đây: https://gist.github.com/dimaj/6b2007d76105feb7cbee29d0f2305aec

Giờ mình đăng bản của mình lên đây để mọi người tham khảo vì chúng ta đã có giải pháp hoạt động ổn rồi : )

Đây là quy trình lau vòi (nozzle clean) của mình. Bạn cần tự tìm tọa độ giới hạn cho bàn chải của bạn vì mình đã dời gốc tọa độ về (0,0).

[gcode_macro NOZZLE_CLEAN]
gcode:
; định nghĩa vùng cho bàn chải
   {% set brush_x_min = 92 %}
   {% set brush_x_max = 125 %}
   {% set brush_y_min = 216.5 %}
   {% set brush_y_max = 220 %}
   {% set brush_z_min = 4 %}
   {% set brush_z_max = 5 %}
   {% set extruder_temp = params.EXTRUDER_TEMP|default(180)|float %}  ; nhiệt độ vòi, thường do slicer thiết lập
   {% set x_random = brush_x_min + (brush_x_max - brush_x_min) * (range(0, 100) | random) / 100 %}
   {% set y_random = brush_y_min + (brush_y_max - brush_y_min) * (range(0, 100) | random) / 100 %}
   RESPOND MSG="Đang di chuyển đến bàn chải: X{x_random} Y{y_random}"
   G1 X{ x_random} Y{y_random} F6000
   ; thiết lập nhiệt độ vòi thấp hơn 30 độ so với nhiệt độ in nhưng không quá 260
   M104 S{(extruder_temp - 30) if (extruder_temp - 30) <= 260 else 260 }
   RESPOND MSG="Đang làm nóng vòi..."
   TEMPERATURE_WAIT SENSOR=extruder MINIMUM={extruder_temp-33}
   RESPOND MSG="Đang lau..."
   G1 Z{ brush_z_max} F300
   ; lau 10 lần
   {% for i in range(10) %}
       {% set x_random = brush_x_min + 0.5*(range(0, 100) | random) / 100 %}
       {% set y_random = brush_y_min + (brush_y_max - brush_y_min) * (range(0, 100) | random) / 100 %}
       {% set z_random = brush_z_min + (brush_z_max - brush_z_min) * (range(0, 10) | random) / 10 %}
       G1 X{ x_random|float } Y{ y_random|float } Z{z_random|float} F3000
       {% set x_random = brush_x_max + 0.5*(range(0, 100) | random) / 100 %}
       {% set y_random = brush_y_min + (brush_y_max - brush_y_min) * (range(0, 100) | random) / 100 %}
       {% set z_random = brush_z_min + (brush_z_max - brush_z_min) * (range(0, 10) | random) / 10 %}
       G1 X{ x_random|float } Y{ y_random|float } Z{z_random|float} F3000
   {% endfor %}
   ; làm nguội để bắt đầu dò vòi
   M104 S120
   M106 S255
   TEMPERATURE_WAIT SENSOR=extruder MAXIMUM={140}
   ; lau 5 lần để loại bỏ nhựa thừa
   {% for i in range(5) %}
       {% set x_random = brush_x_min + 0.5*(range(0, 100) | random) / 100 %}
       {% set y_random = brush_y_min + (brush_y_max - brush_y_min) * (range(0, 100) | random) / 100 %}
       {% set z_random = brush_z_min + (brush_z_max - brush_z_min) * (range(0, 10) | random) / 10 %}
       G1 X{ x_random|float } Y{ y_random|float } Z{z_random|float} F1800
       {% set x_random = brush_x_max + 0.5*(range(0, 100) | random) / 100 %}
       {% set y_random = brush_y_min + (brush_y_max - brush_y_min) * (range(0, 100) | random) / 100 %}
       {% set z_random = brush_z_min + (brush_z_max - brush_z_min) * (range(0, 10) | random) / 10 %}
       G1 X{ x_random|float } Y{ y_random|float } Z{z_random|float} F1800
   {% endfor %}
   M106 S0
   G1 Z10 F300

Quy trình này được gọi trong lệnh AUTO_BED_LEVEL như một phần của START_PRINT, trước khi gọi BED_MESH_CALIBRATE (đã được định nghĩa lại trong KAMP).

[gcode_macro AUTO_BED_LEVEL]
gcode:
   {% set bed_temp = params.BED_TEMP|default(60)|float %}
   {% set extruder_temp = params.EXTRUDER_TEMP|default(200)|float %}
   {% set profile = params.PROFILE|default("auto") %}
   # xóa mesh cũ và về gốc nếu cần
   BED_MESH_CLEAR
   {% if not "xyz" in printer.toolhead.homed_axes %}
       G28
   {% endif %}
   # làm nóng bàn
   G90                     ; tọa độ tuyệt đối
   G1 Z10 F1800            ; nâng bàn
   M140 S{bed_temp}        ; thiết lập nhiệt độ bàn
   # chờ bàn đạt nhiệt độ
   TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={bed_temp-3}
   LOAD_CELL_TARE          ; reset tare trước khi dò thủ công

   NOZZLE_CLEAN EXTRUDER_TEMP={extruder_temp}
   LOAD_CELL_TARE          ; reset tare trước khi dò thủ công
   BED_MESH_CALIBRATE PROFILE={profile}

Giấy phép

Tác phẩm này được cấp phép theo

Creative Commons — Attribution

CC-BY

Yêu cầu ghi công
Remix & phái sinh Được phép
Sử dụng thương mại Được phép

File mô hình

TẤT CẢ FILE MÔ HÌNH (4 Tập tin)
Đang tải files, vui lòng chờ...
Vui lòng đăng nhập để bình luận.

Chưa có bình luận nào. Hãy là người đầu tiên!

Vui lòng đăng nhập để khoe bản in của bạn.

Chưa có bản in nào được khoe. Hãy là người đầu tiên!

Remix (0)