Macro BTT Eddy cho máy in 3D Sovol SV08 với cảm biến Z-Offset
Đây là macro mà tôi sử dụng với BTT Eddy của mình với firmware Chức năng Chạm/Chạm được tạo bởi Vlad có thể được sử dụng trên bất kỳ máy in 3D nào!
Mô tả
| ### Xem bên dưới .cfg đính kèm. ;) tiến tới Phần Tập Tin Khác |
|---|
🛠 Macro Klipper Sovol SV08: Chạm Z-Offset, Làm Sạch Đầu Phun & Xả Thích Ứng
Cảm ơn Vlad vì phần firmware tuyệt vời cho phép cảm biến BTT Eddy hỗ trợ thăm dò Z-offset kiểu chạm. Hãy xem công việc của anh ấy ở đây: 🔗 https://github.com/vvuk/eddy-ng
🛒 Nếu bạn chưa có cảm biến BTT Eddy, bạn có thể lấy một cái qua liên kết liên kết của chúng tôi:> 👉 http://shrsl.com/4tva1
✨ Điều Gì Đang Xảy Ra Với Cài Đặt Này
Đây là bộ macro in chính xác của tôi cho Sovol SV08 chạy Klipper.
Nó bao gồm:
✅ Làm sạch đầu phun trước khi thăm dò Z (ngăn ngừa các offset xấu) ✅ Hỗ trợ Live Z Offset qua CHẠM trên cảm biến Eddy ✅ Cân Bằng Quad Gantry ✅ Tiền Nóng Giường & Đầu Phun ✅ Kiểm Tra Phát Hiện Vật Liệu ✅ Lưới Giường Thích Ứng — không cần kịch bản bổ sung! ✅ Phản hồi LED hình ảnh (tùy chọn) ✅ Luồng in nhận thức trạng thái để tối đa độ tin cậy ✅ Macro Xả Thông Minh gần khu vực lưới để bảo vệ giường!
🧼 CLEAN_NOZZLE_TAP Macro
Macro này thực hiện một vệ sinh bằng bàn chải và chà theo đường ziczac hoàn toàn tùy chỉnh để làm sạch đầu phun trước khi thăm dò.
🔧 Tính Năng
Vị trí bàn chải X/Y/Z có thể cấu hình
Có thể điều chỉnh các lần lau qua lại và các mẫu ziczac
Kết thúc với một chuyển động an toàn ra khỏi bàn chải
Không chạm — nhưng bạn có thể theo sau nó với macro chạm của riêng bạn nếu cần!
📜 Mã Macro
Dán điều này vào macros.cfg :
[gcode_macro CLEAN_NOZZLE_TAP]
description: "Làm sạch đầu phun bằng cách lau trên bàn chải - có thể tùy chỉnh"
variable_brush_start_x: 315
variable_brush_end_x: 352
variable_brush_y: 360
variable_brush_z: 5 # chỉnh sửa cái này tôi sử dụng 0.5 tôi đã đặt nó thành 1 để an toàn
variable_end_x: 200
variable_end_y: 100
variable_end_z: 5
variable_wipe_repeat: 5
variable_zigzag_repeat: 3 gcode: {% if printer.toolhead.homed_axes != "xyz" %} G28 ; Đặt lại tất cả các trục nếu cần {% endif %} G90 ; Định vị tuyệt đối M117 Đang làm sạch đầu phun... G1 X{brush_start_x} Y{brush_y} F9000 G1 Z{brush_z} F300 {% for i in range(wipe_repeat) %} G1 X{brush_end_x} F4500 G1 X{brush_start_x} {% endfor %} G1 Z{brush_z + 4} G1 X{brush_start_x} Y{brush_y - 4} F6000 G1 Z{brush_z} {% set x = brush_start_x %} {% set step = 2 %} {% for i in range(zigzag_repeat) %} G1 Y{brush_y} X{x + step} G1 Y{brush_y - 3} X{x + step + 2} G1 Y{brush_y} X{x + step + 4} G1 Y{brush_y - 3} X{x + step + 6} G1 Y{brush_y} X{x + step + 8} {% endfor %} G1 X{end_x} Y{end_y} Z{end_z} F6000
🚀 Bắt đầu_IN Macro
Đây là macro chính để xử lý toàn bộ chuỗi chuẩn bị in:
[gcode_macro START_PRINT]
description: variable_state: 'Chuẩn bị'
variable_record_extruder_temp: 0
variable_max_record_extruder_temp: 0 gcode: {% set speed = printer.configfile.settings.printer.max_velocity %} {% set x_max = printer.toolhead.axis_maximum.x %} {% set y_max = printer.toolhead.axis_maximum.y %} {% set extruder_target_temp = printer.extruder.target|int %} {% set bed_targer_temp = printer.heater_bed.target|int %} M400 CLEAR_PAUSE G90 {% if state == 'Prepare' %} {action_respond_info("Chuẩn bị!")} {% if printer.toolhead.homed_axes|lower != "xyz" %} LED_HOMING G28 {% endif %} {% if printer['filament_switch_sensor filament_sensor'].enable == True and printer['filament_switch_sensor filament_sensor'].filament_detected != True %} M117 Không có filament!!! {action_respond_info("Vui lòng chèn filament vào cảm biến!")} CANCEL_PRINT {% endif %} {action_respond_info("Kiểm tra nhiệt độ!")} M140 S{bed_targer_temp} M104 S{extruder_target_temp} {% if printer.heater_bed.temperature < bed_targer_temp %} M117 Đang làm nóng giường... {action_respond_info("Đang làm nóng giường...")} LED_HEATING_BED M190 S{bed_targer_temp} {% endif %} {% if printer.extruder.temperature < extruder_target_temp %} M117 Đang làm nóng đầu phun... {action_respond_info("Đang làm nóng đầu phun...")} LED_HEATING_NOZZLE M109 S{extruder_target_temp} {% endif %} {% if printer.quad_gantry_level.applied|lower != 'true' %} LED_QGL QUAD_GANTRY_LEVEL {% endif %} ; Vị trí để làm sạch G0 X{x_max} Y{y_max} Z15 F{speed*60} ; Làm mát đầu phun một chút trước khi làm sạch M104 S150 M109 S150 ; 🧼 Làm sạch đầu phun CLEAN_NOZZLE_TAP ; 🔽 TAP Z Thăm dò PROBE_EDDY_NG_TAP #TARGET_Z=-0.359 THRESHOLD=1000 ; 🧭 Lưới thích ứng LED_BED_MESH BTT_BED_MESH_CALIBRATE METHOD=rapid_scan ADAPTIVE=1 SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=state VALUE='"Bắt đầu"' UPDATE_DELAYED_GCODE ID=_print_start_wait DURATION=0.5 {% elif state == 'Start' %} LED_PRINTING M117 Đang in ngay!!! {action_respond_info("Bắt đầu!")} {% endif %}
Sử dụng đoạn g-code khởi động máy này trong slicer:
M140 S[bed_temperature_initial_layer_single] ;set bed temp
M190 S[bed_temperature_initial_layer_single] ;wait for bed temp
G28
START_PRINT
M104 S[nozzle_temperature_initial_layer] ;set extruder temp
M109 S[nozzle_temperature_initial_layer] ;wait for extruder temp
ADAPTIVE_PURGE
🧪 Cấu hình Adaptive Purge
Để xả gần khu vực in, gần lưới — an toàn hơn cho bàn in của bạn!
📁 Thêm dòng này vào printer.cfg của bạn:
[include adaptive_purge.cfg]
🧾 Tín dụng
Cảm ơn lớn đến Zippy (Rootiest) vì adaptive_purge.cfg
Đây là một thiết lập tôi đã sử dụng hơn 2 năm, gần 3 năm. Lưới giường thích ứng hiện đã được tích hợp trong Klipper nên bạn không cần một macro riêng cho nó! và cũng không cần một script để lấy vị trí của bản in từ slicer! Tôi rất thích điều này vì tôi chỉ quét khu vực in, tôi thích có xả gần khu vực đã quét, bằng cách này tôi sẽ không làm hỏng bàn in! cũng như tôi không nhớ từ đâu tôi có các tệp này để ghi công cho chủ sở hữu nhưng đây là từ Zippy aka Rootiest.