Random X Purge Line - Tùy chỉnh vị trí vạch làm sạch đầu phun

Đoạn G-Code này giúp tạo một biến X ngẫu nhiên để xác định vị trí bắt đầu của vạch purge (làm sạch đầu phun), giúp tránh mòn bề mặt bàn in tại một điểm cố định.

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

Mô tả

Mình tạo cái này dựa trên các thiết lập cho máy MK4S của mình. Mình không rõ nó có hoạt động ổn định trên các dòng máy khác không, mọi người tự trải nghiệm nhé.


Bạn hãy sao chép và dán đoạn mã này vào phần Start G-Code trong tab Printers của PrusaSlicer. Nhớ sao lưu đoạn mã G-Code gốc của bạn vào Notepad trước để đề phòng trường hợp cần khôi phục lại nhé.


{local rnd_x = random(20, 80)*0.1}

{local purge_x = random(0, (print_bed_max[0] - 51) 10) 0.1}

M17 ; enable steppers

M862.1 P[nozzle_diameter] A{(filament_abrasive[0] ? 1 : 0)} F{(nozzle_high_flow[0] ? 1 : 0)} ; nozzle check

M862.3 P "[printer_model]" ; printer model check

M862.5 P2 ; g-code level check

M862.6 P"Input shaper" ; FW feature check

M115 U6.1.3+7898

M555 X{(min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)} Y{(max(0, first_layer_print_min[1]) - 4)} W{((min(print_bed_max[0], max(first_layer_print_min[0] + 32, first_layer_print_max[0])))) - ((min(print_bed_max[0], first_layer_print_min[0] + 32) - 32))} H{((first_layer_print_max[1])) - ((max(0, first_layer_print_min[1]) - 4))}

G90 ; use absolute coordinates

M83 ; extruder relative mode

M140 S[first_layer_bed_temperature] ; set bed temp

M104 T0 S{((filament_notes[0]=~/.HT_MBL10./) ? (first_layer_temperature[0] - 10) : (filament_type[0] == "PC" or filament_type[0] == "PA") ? (first_layer_temperature[0] - 25) : (filament_type[0] == "FLEX") ? 210 : (filament_type[0]=~/.PET./) ? 175 : 170)} ; set extruder temp for bed leveling

M109 T0 R{((filament_notes[0]=~/.HT_MBL10./) ? (first_layer_temperature[0] - 10) : (filament_type[0] == "PC" or filament_type[0] == "PA") ? (first_layer_temperature[0] - 25) : (filament_type[0] == "FLEX") ? 210 : (filament_type[0]=~/.PET./) ? 175 : 170)} ; wait for temp

M84 E ; turn off E motor

G28 ; home all without mesh bed level

G1 X{rnd_x} Y-4 Z5 F4800; (Original G1 X42 Y-4 Z5 F4800)

M302 S160 ; lower cold extrusion limit to 160C

{if filament_type[initial_tool]=="FLEX"}

G1 E-4 F2400 ; retraction

{else}

G1 E-2 F2400 ; retraction

{endif}

M84 E ; turn off E motor

G29 P9 X10 Y-4 W32 H4

{if first_layer_bed_temperature[initial_tool]<=60}M106 S100{endif}

G0 Z40 F10000

M190 S[first_layer_bed_temperature] ; wait for bed temp

M107

;

; MBL

;

M84 E ; turn off E motor

G29 P1 ; invalidate mbl & probe print area

G29 P1 X0 Y0 W50 H20 C ; probe near purge place

G29 P3.2 ; interpolate mbl probes

G29 P3.13 ; extrapolate mbl outside probe area

G29 A ; activate mbl

; prepare for purge

M104 S{first_layer_temperature[0]}

G0 X{purge_x} Y-4 Z15 F4800 ; move away and ready for the purge

M109 S{first_layer_temperature[0]}

G92 E0

M569 S0 E ; set spreadcycle mode for extruder

;

; Extrude purge line

;

G92 E0 ; reset extruder position

G1 E{(filament_type[0] == "FLEX" ? 4 : 2)} F2400 ; deretraction after the initial one before nozzle cleaning

G0 E7 X{purge_x + 15} Z0.2 F500 ; purge

G0 X{purge_x + 25} E4 F500 ; purge

G0 X{purge_x + 35} E4 F650 ; purge

G0 X{purge_x + 45} E4 F800 ; purge

G0 X{purge_x + 48} Z0.05 F8000 ; wipe, move close to the bed

G0 X{purge_x + 51} Z0.2 F8000 ; wipe, move quickly away from the bed

G92 E0

M221 S100 ; set flow to 100%

Giấy phép

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

Creative Commons — Public Domain

CC0

Không 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 (5 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)