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.
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
File mô hình
Chưa có bản in nào được khoe. Hãy là người đầu tiên!
Chưa có bình luận nào. Hãy là người đầu tiên!