Tento článek je součástí Technická řada Prusa XL na INVESTEGATE.de
Všechny příručky předpokládají, že Prusa XL Fundamentals jsou správné.
Pokud ne, začněte zde:
Základy Prusa XL - Technické základy

ScrubbyXL je modifikace čisticí trysky pro Prusa XL zaměřená na spolehlivost. Přidává automatické otírání před vyrovnáním síťového lůžka (MBL) a volitelné otírání trysek během tisku (spouští se pomocí G-kódu), čímž pomáhá předcházet hromadění filamentu na špičce trysky - zejména při dlouhých výtiscích, kdy mohou drobné zbytky přerůst v defekty nebo poruchy.
Proč existuje ScrubbyXL
Znečištění špičky trysky je jedním z těch problémů, které často začínají malým problémem a končí zničeným tiskem. Malá kapička, zbytky PETG nebo mírně spálený materiál mohou ulpět na trysce a později se přetáhnout přes první vrstvu, překážet při sondování nebo nakonec způsobit povrchové vady a kolize u dlouhých úloh.
ScrubbyXL to řeší jednoduchou myšlenkou: nečekejte, až se problém objeví - utírejte proaktivně. První část se odehrává před MBL: přidáním malé úpravy do vašeho startovacího G-kódu se tryska otře, aby mohla sondovat lůžko v čistším stavu. Cílem není “více vyrovnání”, ale konzistentnější podmínky při vyrovnávání, což pomůže správnému startu první vrstvy.
Druhá část je určena pro dlouhé výtisky. ScrubbyXL lze během tisku spouštět v uživatelem definovaném intervalu (například každých N vrstev) pomocí G-kódu integrovaného v nastavení řezáku. To pomáhá omezit postupné hromadění nánosů, které se jinak hromadí po mnoho hodin a nakonec může způsobit selhání tisku v pozdní fázi úlohy.
Verze a konfigurace
Aby vyhovoval různým nastavením, dodává se ScrubbyXL v několika variantách:
- Velikosti montážních otvorů: M3 / M4 / M5.
- Velikosti silikonových kartáčů: A1 nebo A1 mini.
- Možnosti upevnění: magnetické (magnety vložené během tisku nebo nalepené později) nebo pevné, plně přišroubované provedení bez magnetů.
Doporučuji magnetickou verzi s vloženými magnety a mini kartáčkem A1. Magnetická montáž je praktická zejména proto, že můžete chtít kartáček rychle vyjmout - zejména na pravé straně, kde se nástroj 5 nad touto oblastí nakládá/vykládá. Pro dosažení nejlepšího výsledku stírání doporučuji nainstalovat stěrače na obě strany, ale můžete také spustit pouze jednu stranu a podle toho upravit G-kód.
Stáhněte si ScrubbyXL Mod pro Prusa XL na Printables
Co můžete očekávat
- Méně zbytků na špičkách trysek při dlouhých úlohách, což snižuje pravděpodobnost selhání tisku v pozdní fázi.
Kódy G
Spuštění změn kódu G
- Integrovaný postup čištění trysek / otírání takže tryska se při spouštění mechanicky čistí.
- Nastavení čekací polohy nástroje pro dočasnou polohu na přední straně aby bylo možné trysku snadněji vyčistit ručně.
- Přidán zvukový indikátor (pípnutí před otřením trysky a před proplachovací linkou) pro lepší zpětnou vazbu při spuštění.
- Komentováno
G29 P9, protože těsně před MBL je teplota příliš vysoká. - Posunutí proplachovacího potrubí pro první a poslední nástroj o 3 mm. aby nedošlo ke kontaktu s kartáčovým modem.
- Přepracovaný G-kód mosazného kartáče Surfalex2000 zlepšit výsledek čištění (spolehlivější chování při stírání):
Optimalizovaný a opravený gkód Prusa XL s plným startem pro ScrubbyXL
Počáteční kód G pro Prusa XL (5TH)
M17 ; povolit krokové ovladače
M862.3 P "XL" ; kontrola modelu tiskárny
M862.5 P2 ; kontrola úrovně g-kódu
M862.6 P "Input shaper" ; kontrola funkce FW
M115 U6.4.0+11974
G90 ; použití absolutních souřadnic
M83 ; relativní režim extruderu
; nastavit oblast tisku
M555 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} W{(first_layer_print_max[0]) - (first_layer_print_min[0])} H{(first_layer_print_max[1]) - (first_layer_print_min[1])}
; informace o průměru trysky
{if (is_extruder_used[0])}M862.1 T0 P{průměr_dýzy[0]} A{(filament_abrasive[0] ? 1 : 0)} F{(nozzle_high_flow[0] ? 1 : 0)}{endif}
{if (is_extruder_used[1])}M862.1 T1 P{průměr_dýzy[1]} A{(filament_abrasive[1] ? 1 : 0)} F{(nozzle_high_flow[1] ? 1 : 0)}{endif}
{if (is_extruder_used[2])}M862.1 T2 P{průměr_dýzy[2]} A{(filament_abrasive[2] ? 1 : 0)} F{(nozzle_high_flow[2] ? 1 : 0)}{endif}
{if (is_extruder_used[3])}M862.1 T3 P{průměr_dýzy[3]} A{(filament_abrasive[3] ? 1 : 0)} F{(nozzle_high_flow[3] ? 1 : 0)}{endif}
{if (is_extruder_used[4])}M862.1 T4 P{průměr_dýzy[4]} A{(filament_abrasive[4] ? 1 : 0)} F{(nozzle_high_flow[4] ? 1 : 0)}{endif}
; vypněte nepoužívané ohřívače
{if ! is_extruder_used[0]}M104 T0 S0{endif}
{if ! is_extruder_used[1]}M104 T1 S0{endif}
{if num_extruders > 2 and ! is_extruder_used[2]}M104 T2 S0{endif}
{if num_extruders > 3 and ! is_extruder_used[3]}M104 T3 S0{endif}
{if num_extruders > 4 and ! is_extruder_used[4]}M104 T4 S0{endif}
M217 Z{max(zhop, 2.0)} ; nastavte skok z nástroje na 2 mm nebo proměnnou zhop ze sliceru, pokud je vyšší.
; nastavte teplotu lože a extrudéru pro MBL
M140 S[first_layer_bed_temperature] ; nastavte teplotu lože
M104 T{initial_tool} S{((filament_notes[initial_tool]=~/.*MBL160.*/) ? 160 : (filament_notes[initial_tool]=~/.*HT_MBL10.*/) ? (first_layer_temperature[initial_tool] - 10) : (filament_type[initial_tool] == "PC" nebo filament_type[initial_tool] == "PA") ? (first_layer_temperature[initial_tool] - 25) : (filament_type[initial_tool] == "FLEX") ? 210 : (filament_type[initial_tool]=~/.*PET.*/) ? 175 : 170)} ; set temp
; Home XY
G28 XY
; zkuste vybrat nástroje použité při tisku
G1 F{travel_speed * 60}
{if (is_extruder_used[0]) and (initial_tool != 0)}T0 S1 L0 D0{endif}
{if (is_extruder_used[1]) and (initial_tool != 1)}T1 S1 L0 D0{endif}
{if (is_extruder_used[2]) and (initial_tool != 2)}T2 S1 L0 D0{endif}
{if (is_extruder_used[3]) and (initial_tool != 3)}T3 S1 L0 D0{endif}
{if (is_extruder_used[4]) and (initial_tool != 4)}T4 S1 L0 D0{endif}
; vyberte nástroj, který bude použit pro home & MBL
T{initial_tool} S1 L0 D0
; ZDE MUSÍ NÁSTROJ ČEKAT ČISTĚ KVŮLI SILIKONOVÉMU ŠTĚTCI
G1 Z30
G1 X145 Y-8 F{travel_speed * 60}
M109 T{initial_tool} S{((filament_notes[initial_tool]=~/.*MBL160.*/) ? 160 : (filament_notes[initial_tool]=~/.*HT_MBL10.*/) ? (first_layer_temperature[initial_tool] - 10) : (filament_type[initial_tool] == "PC" nebo filament_type[initial_tool] == "PA") ? (first_layer_temperature[initial_tool] - 25) : (filament_type[initial_tool] == "FLEX") ? 210 : (filament_type[initial_tool]=~/.*PET.*/) ? 175 : 170)} ; počkejte na temp
; home Z s nástrojem MBL
M84 E ; vypněte motor E
G28 Z
G0 Z5 ; přidejte vůli Z
; ZDE MUSÍ NÁSTROJ ČEKAT ČISTĚ KVŮLI SILIKONOVÉMU KARTÁČI
G1 Z30
G1 X145 Y-8 F{rychlost pojezdu * 60}
M104 T{initial_tool} S{if is_nil(idle_temperature[initial_tool])}70{else}{idle_temperature[initial_tool]}{endif} ; nastavte teplotu klidu
M190 S[první_vrstva_teplota_lůžka] ; počkejte na teplotu lůžka
G29 G ; absorbovat teplo
M109 T{initial_tool} S{((filament_notes[initial_tool]=~/.*MBL160.*/) ? 160 : (filament_notes[initial_tool]=~/.*HT_MBL10.*/) ? (first_layer_temperature[initial_tool] - 10) : (filament_type[initial_tool] == "PC" nebo filament_type[initial_tool] == "PA") ? (first_layer_temperature[initial_tool] - 25) : (filament_type[initial_tool] == "FLEX") ? 210 : (filament_type[initial_tool]=~/.*PET.*/) ? 175 : 170)} ; počkejte na temp
M300 S800 P200. ; indikátor PIEP
; přejděte do oblasti čištění trysky
; čištění trysky PRO LEVÝ A PRAVÝ SILIKONOVÝ STĚRAČ
M302 S155 ; snižte limit vytlačování za studena na 155C
G1 E{-(filament_type[0] == "FLEX" ? 4 : 2)} F2400 ; zatažení pro čištění trysky
M84 E ; vypněte motor E
; --- Spustit otření trysky
G1 Z5 ; Odsuňte lůžko z cesty
{if initial_tool == 0 nebo initial_tool == 1 }
; --- Spusťte otření tryskou LEVÁ ---
G1 X-2 Y-8 F24000 ; Přesun na začátek oblasti stírání
G1 X28 Y-8 F24000 ; Průchod stírání 1
G1 X-2 Y-7.5 F24000 ; Změna polohy
G1 X28 Y-7.5 F24000 ; Stírací manévr 2
G1 X-2 Y-7 F24000 ; Změna polohy
G1 X28 Y-7 F24000 ; stírací manévr 3
G1 X-2 Y-6,5 F24000 ; Změna polohy
G1 X28 Y-6,5 F24000 ; stírací manévr 4
G1 X-2 Y-6 F24000 ; Změna polohy
G1 X28 Y-6 F24000 ; Průchod stírání 5
G1 X-2 Y-6.5 F24000 ; Změna polohy
G1 X28 Y-6.5 F24000 ; stírací manévr 6
G1 X-2 Y-7 F24000 ; Změna polohy
G1 X28 Y-7 F24000 ; Průchod stíracím manévrem 7
G1 X-2 Y-7,5 F24000 ; Změna polohy
G1 X28 Y-7,5 F24000 ; průchod stíracím manévrem 8
G1 X-2 Y-8 F24000 ; Změna polohy
G1 X28 Y-8 F24000 ; Průchod stíracím manévrem 9
; --- Konec trysky Otření vlevo ---
{jinak}
; --- Začněte trysku Otření vpravo ---
G1 X332 Y-8 F24000 ; Přesun na začátek oblasti stírání
G1 X361 Y-8 F24000 ; Průchod stírání 1
G1 X332 Y-7.5 F24000 ; Změna polohy
G1 X361 Y-7,5 F24000 ; Stírací manévr 2
G1 X332 Y-7 F24000 ; Změna polohy
G1 X361 Y-7 F24000 ; Průchod stírání 3
G1 X332 Y-6.5 F24000 ; Změna polohy
G1 X361 Y-6,5 F24000 ; Průchod stírání 4
G1 X332 Y-6 F24000 ; Změna polohy
G1 X361 Y-6 F24000 ; Průchod stíracím zařízením 5
G1 X332 Y-6.5 F24000 ; Změna polohy
G1 X361 Y-6.5 F24000 ; Průchod stírání 6
G1 X332 Y-7 F24000 ; Změna polohy
G1 X361 Y-7 F24000 ; Průchod stíracím zařízením 7
G1 X332 Y-7.5 F24000 ; Změna polohy
G1 X361 Y-7,5 F24000 ; Průchod stírací manžetou 8
G1 X332 Y-8 F24000 ; Změna polohy
G1 X361 Y-8 F24000 ; Průchod stíracím zařízením 9
; --- Konec trysky Otření vpravo ---
{endif}
G1 X{(min(((((první_vrstva_otisk_min[0] + první_vrstva_otisk_max[0]) / 2) < ((print_bed_min[0] + print_bed_max[0]) / 2)) ? (((first_layer_print_min[1] - 7) < -2) ? 70 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)) : (((first_layer_print_min[1] - 7) < -2) ? 260 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32))), first_layer_print_min[0]))) + 32} Y{(min((first_layer_print_min[1] - 7), first_layer_print_min[1]))} Z{5} F{(travel_speed * 60)}
; čištění trysky
;Níže komentováno, protože nastavuje příliš vysokou teplotu před MBL.
;G29 P9 X{((((první_vrstva_print_min[0] + první_vrstva_print_max[0]) / 2) < ((print_bed_min[0] + print_bed_max[0]) / 2)) ? (((first_layer_print_min[1] - 7) < -2) ? 70 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)) : (((first_layer_print_min[1] - 7) 0 and (is_extruder_used[0])}M104 T0 S{first_layer_temperature[0]}{endif}
{if first_layer_temperature[1] > 0 and (is_extruder_used[1])}M104 T1 S{first_layer_temperature[1]}{endif}
{if first_layer_temperature[2] > 0 and (is_extruder_used[2])}M104 T2 S{first_layer_temperature[2]}{endif}
{if first_layer_temperature[3] > 0 and (is_extruder_used[3])}M104 T3 S{first_layer_temperature[3]}{endif}
{if first_layer_temperature[4] > 0 and (is_extruder_used[4])}M104 T4 S{first_layer_temperature[4]}{endif}
{if (is_extruder_used[0]) and initial_tool != 0}
M591 S0 ; vypnout detekci zaseknutí
; Připraveno k tisku melodie, před pročištěním
M300 S1200 P150
G4 P200
M300 S1500 P150
G4 P200
M300 S1800 P300
G4 P500
;
; pročistit první nástroj
; Upraveno. Pozice X změněna z 30 na 33 kvůli silikonovému štětci.
;
G1 F{travel_speed * 60}
P0 S1 L2 D0; zaparkujte nástroj
M109 T0 S{teplota_první_vrstvy[0]}
T0 S1 L0 D0; vyzvedněte nástroj
G92 E0 ; resetování polohy extrudéru
G0 X33 Y-7 Z10 F{(travel_speed * 60)} ; přiblížení k okraji archu
G0 E{if is_nil(filament_multitool_ramming[0])}10{else}30{endif} X40 Z0.2 F{if is_nil(filament_multitool_ramming[0])}500{else}170{endif} ; očistit při pohybu směrem k listu
G0 X70 E9 F800 ; pokračujte v proplachování a otřete trysku
G0 X73 Z0.05 F8000 ; otírejte, přibližujte se k lůžku
G0 X76 Z0.2 F8000 ; otírejte, rychle se vzdalujte od lůžka
G1 E{-retract_length_toolchange[0]} F2400 ; zasunout
{e_retracted[0] = retract_length_toolchange[0]}
G92 E0 ; resetování polohy extrudéru
M104 S{(is_nil(idle_temperature[0]) ? (first_layer_temperature[0] + standby_temperature_delta) : (idle_temperature[0]))} T0
{endif}
{if (is_extruder_used[1]) a initial_tool != 1}
;
; pročistěte druhý nástroj
;
G1 F{travel_speed * 60}
P0 S1 L2 D0; zaparkujte nástroj
M109 T1 S{teplota_první_vrstvy[1]}
T1 S1 L0 D0; vyzvednout nástroj
G92 E0 ; resetování polohy extrudéru
G0 X150 Y-7 Z10 F{(travel_speed * 60)} ; přiblížení k okraji archu
G0 E{if is_nil(filament_multitool_ramming[1])}10{else}30{endif} X140 Z0.2 F{if is_nil(filament_multitool_ramming[1])}500{else}170{endif} ; očistit při pohybu směrem k listu
G0 X110 E9 F800 ; pokračujte v proplachování a otřete trysku
G0 X107 Z0.05 F8000 ; otírejte, přibližujte se k lůžku
G0 X104 Z0.2 F8000 ; otřete, rychle se vzdalte od lůžka
G1 E{-retract_length_toolchange[1]} F2400 ; zasunout
{e_retracted[1] = retract_length_toolchange[1]}
G92 E0 ; resetování polohy extrudéru
M104 S{(is_nil(idle_temperature[1]) ? (first_layer_temperature[1] + standby_temperature_delta) : (idle_temperature[1]))} T1
{endif}
{if (is_extruder_used[2]) and initial_tool != 2}
;
; pročistěte třetí nástroj
;
G1 F{travel_speed * 60}
P0 S1 L2 D0; zaparkujte nástroj
M109 T2 S{teplota_první_vrstvy[2]}
T2 S1 L0 D0; vyzvednout nástroj
G92 E0 ; resetování polohy extrudéru
G0 X210 Y-7 Z10 F{(travel_speed * 60)} ; přiblížení k okraji archu
G0 E{if is_nil(filament_multitool_ramming[2])}10{else}30{endif} X220 Z0.2 F{if is_nil(filament_multitool_ramming[2])}500{else}170{endif} ; očistit při pohybu směrem k listu
G0 X250 E9 F800 ; pokračujte v proplachování a otřete trysku
G0 X253 Z0.05 F8000 ; otřete, přibližte se k lůžku
G0 X256 Z0.2 F8000 ; otírejte, rychle se vzdalujte od lůžka
G1 E{-retract_length_toolchange[2]} F2400 ; zasunout
{e_retracted[2] = retract_length_toolchange[2]}
G92 E0 ; resetování polohy extrudéru
M104 S{(is_nil(idle_temperature[2]) ? (first_layer_temperature[2] + standby_temperature_delta) : (idle_temperature[2]))} T2
{endif}
{if (is_extruder_used[3]) and initial_tool != 3}
;
; pročistěte čtvrtý nástroj
;
G1 F{travel_speed * 60}
P0 S1 L2 D0; zaparkujte nástroj
M109 T3 S{teplota_první_vrstvy[3]}
T3 S1 L0 D0; vyzvednout nástroj
G92 E0 ; resetování polohy extrudéru
G0 X327 Y-7 Z10 F{(travel_speed * 60)} ; přiblížení k okraji archu
G0 E{if is_nil(filament_multitool_ramming[3])}10{else}30{endif} X320 Z0.2 F{if is_nil(filament_multitool_ramming[3])}500{else}170{endif} ; očistit při pohybu směrem k listu
G0 X290 E9 F800 ; pokračujte v proplachování a otřete trysku
G0 X287 Z0.05 F8000 ; otřete, přibližte se k lůžku
G0 X284 Z0.2 F8000 ; otírejte, rychle se vzdalujte od lůžka
G1 E{-retract_length_toolchange[3]} F2400 ; zasunout
{e_retracted[3] = retract_length_toolchange[3]}
G92 E0 ; resetování polohy extrudéru
M104 S{(is_nil(idle_temperature[3]) ? (first_layer_temperature[3] + standby_temperature_delta) : (idle_temperature[3]))} T3
{endif}
{if (is_extruder_used[4]) and initial_tool != 4}
;
; pročistěte pátý nástroj
; Upraveno. Pozice X pro TOOL 4 se změnila z 330 na 327 kvůli silikonovému štětci.
;
G1 F{travel_speed * 60}
P0 S1 L2 D0; zaparkujte nástroj
M109 T4 S{teplota_první_vrstvy[4]}
T4 S1 L0 D0; vyberte nástroj
G92 E0 ; resetování polohy extrudéru
G0 X327 Y-4.5 Z10 F{(rychlost pojezdu * 60)} ; přiblížení k okraji archu
G0 E{if is_nil(filament_multitool_ramming[4])}10{else}30{endif} X320 Z0.2 F{if is_nil(filament_multitool_ramming[4])}500{else}170{endif} ; očistit při pohybu směrem k listu
G0 X290 E9 F800 ; pokračujte v proplachování a otřete trysku
G0 X287 Z0.05 F8000 ; otřete, přibližte se k lůžku
G0 X284 Z0.2 F8000 ; otřete, rychle se vzdalte od lůžka
G1 E{-retract_length_toolchange[4]} F2400 ; zasunout
{e_retracted[4] = retract_length_toolchange[4]}
G92 E0 ; resetování polohy extrudéru
M104 S{(is_nil(idle_temperature[4]) ? (first_layer_temperature[4] + standby_temperature_delta) : (idle_temperature[4]))} T4
{endif}
;
; pročistěte počáteční nástroj
;
G1 F{travel_speed * 60}
P0 S1 L2 D0; zaparkujte nástroj
M109 T{počáteční_nástroj} S{teplota_první_vrstvy[počáteční_nástroj]}
T{initial_tool} S1 L0 D0; vybrat nástroj
G92 E0 ; resetování polohy extrudéru
; Upraveno. Pozice X pro TOOL 0 se změnila z 30 na 33 kvůli silikonovému kartáči.
; Upraveno. Poloha X pro TOOL 4 změněna z 330 na 327 kvůli silikonovému kartáči.
G0 X{(initial_tool == 0 ? 33 : (initial_tool == 1 ? 150 : (initial_tool == 2 ? 210 : 327)))} Y{(initial_tool < 4 ? -7 : -4,5)} Z10 F{(travel_speed * 60)} ; přiblížení k okraji listu
G0 E{if is_nil(filament_multitool_ramming[initial_tool])}10{else}30{endif} X{(initial_tool == 0 ? 33 : (initial_tool == 1 ? 150 : (initial_tool == 2 ? 210 : 327))) + ((initial_tool == 0 nebo initial_tool == 2 ? 1 : -1) * 10)} Z0.2 F{if is_nil(filament_multitool_ramming[initial_tool])}500{else}170{endif} ; pročištění při pohybu směrem k listu
G0 X{(initial_tool == 0 ? 33 : (initial_tool == 1 ? 150 : (initial_tool == 2 ? 210 : 327))) + ((initial_tool == 0 nebo initial_tool == 2 ? 1 : -1) * 40)} E9 F800 ; pokračujte v proplachování a otřete trysku
G0 X{(initial_tool == 0 ? 33 : (initial_tool == 1 ? 150 : (initial_tool == 2 ? 210 : 327)) + ((initial_tool == 0 nebo initial_tool == 2 ? 1 : -1) * 40) + ((initial_tool == 0 nebo initial_tool == 2 ? 1 : -1) * 3)} Z{0.05} F{8000} ; setřete, přiblížíte se k lůžku
G0 X{(initial_tool == 0 ? 33 : (initial_tool == 1 ? 150 : (initial_tool == 2 ? 210 : 327))) + ((initial_tool == 0 nebo initial_tool == 2 ? 1 : -1) * 40) + ((initial_tool == 0 nebo initial_tool == 2 ? 1 : -1) * 3 * 2)} Z0.2 F{8000} ; setřete, rychle se vzdálte od postele
G1 E-{délka zatažení[počáteční_nástroj]} F2400 ; zasunout
{e_retracted[initial_tool] = retract_length[initial_tool]}
M591 R ; obnovení detekce zaseknutí
G92 E0 ; resetování polohy extrudéru
Před změnou vrstvy G-kód
Během tisku se tryska automaticky čistí každých X vrstev)
Před změnou vrstvy G-kód
;BEFORE_LAYER_CHANGE
G92 E0.0
;[layer_z]
; Během tisku se tryska automaticky čistí každých X vrstev. (X = 400 vrstev)
; --- Každých 400 vrstev: automatické otření ---
{if layer_num > 0 && layer_num % 400 == 0}
; Uložit aktuální pozici (Buddy FW)
G1 F{travel_speed * 100}
G60 S0 ; uložte aktuální polohu XYZ
M300 S300 P200. ; indikátor PIEP
; Z bezpečnostních důvodů trochu zvedněte Z
G1 Z{vrstva_z + 5} F1000
; --- Spustit otření trysky ---
{if initial_tool == 0 nebo initial_tool == 1 }
; --- Spustit otírání trysek LEVÝM ---
G1 X-2 Y-8 F24000
G1 X28 Y-8 F24000
G1 X-2 Y-7,5 F24000
G1 X28 Y-7,5 F24000
G1 X-2 Y-7 F24000
G1 X28 Y-7 F24000
G1 X-2 Y-6,5 F24000
G1 X28 Y-6,5 F24000
G1 X-2 Y-6 F24000
G1 X28 Y-6 F24000
G1 X-2 Y-6,5 F24000
G1 X28 Y-6,5 F24000
G1 X-2 Y-7 F24000
G1 X28 Y-7 F24000
G1 X-2 Y-7,5 F24000
G1 X28 Y-7,5 F24000
G1 X-2 Y-8 F24000
G1 X28 Y-8 F24000
; --- Koncová tryska utěrka LEVÁ ---
{jinak}
; --- Začněte otírat trysku vpravo ---
G1 X332 Y-8 F24000
G1 X361 Y-8 F24000
G1 X332 Y-7.5 F24000
G1 X361 Y-7,5 F24000
G1 X332 Y-7 F24000
G1 X361 Y-7 F24000
G1 X332 Y-6,5 F24000
G1 X361 Y-6,5 F24000
G1 X332 Y-6 F24000
G1 X361 Y-6 F24000
G1 X332 Y-6,5 F24000
G1 X361 Y-6,5 F24000
G1 X332 Y-7 F24000
G1 X361 Y-7 F24000
G1 X332 Y-7,5 F24000
G1 X361 Y-7,5 F24000
G1 X332 Y-8 F24000
G1 X361 Y-8 F24000
; --- Koncová tryska Otřete pravou stranu ---
{endif}
; --- Konec otírání trysek ---
; Obnovení polohy
G61 S0 ; obnovení uložené polohy XYZ
{endif}
Bonus: Tisk Dokončit zvuk
Přehraje krátkou závěrečnou melodii.
Konec kódu G
G4 ; počkat
{if layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+5, max_print_height)}{endif} ; Posunout lůžko dolů
P0 S1 ; zaparkujte nástroj
{if layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+97, max_print_height)} F300{endif} ; posuňte lůžko dále dolů
; vypněte ohřívače extrudéru
{if is_extruder_used[0]}M104 T0 S0{endif}
{if is_extruder_used[1]}M104 T1 S0{endif}
{if is_extruder_used[2]}M104 T2 S0{endif}
{if is_extruder_used[3]}M104 T3 S0{endif}
{if is_extruder_used[4]}M104 T4 S0{endif}
M140 S0 ; vypněte ohřevné lůžko
M107 ; vypnout ventilátor
M221 S100 ; vynulovat procento průtoku
M84 ; vypnout motory
;Dokončovací melodie
M300 S1200 P150
G4 P200
M300 S1500 P150
G4 P200
M300 S1800 P300
G4 P500
M77 ; zastavení časovače tisku
; max_layer_z = [max_layer_z]
Volitelně: Přídavný mosazný kartáč MBL od Surfalex2000
Pokud chcete použít také modifikaci mosazného kartáče MBL z nabídky @Surfalex2000:
Počáteční kód G pro Prusa XL (5TH)
M17 ; povolit krokové ovladače
M862.3 P "XL" ; kontrola modelu tiskárny
M862.5 P2 ; kontrola úrovně g-kódu
M862.6 P "Input shaper" ; kontrola funkce FW
M115 U6.4.0+11974
G90 ; použití absolutních souřadnic
M83 ; relativní režim extruderu
; nastavit oblast tisku
M555 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} W{(first_layer_print_max[0]) - (first_layer_print_min[0])} H{(first_layer_print_max[1]) - (first_layer_print_min[1])}
; informace o průměru trysky
{if (is_extruder_used[0])}M862.1 T0 P{průměr_dýzy[0]} A{(filament_abrasive[0] ? 1 : 0)} F{(nozzle_high_flow[0] ? 1 : 0)}{endif}
{if (is_extruder_used[1])}M862.1 T1 P{průměr_dýzy[1]} A{(filament_abrasive[1] ? 1 : 0)} F{(nozzle_high_flow[1] ? 1 : 0)}{endif}
{if (is_extruder_used[2])}M862.1 T2 P{průměr_dýzy[2]} A{(filament_abrasive[2] ? 1 : 0)} F{(nozzle_high_flow[2] ? 1 : 0)}{endif}
{if (is_extruder_used[3])}M862.1 T3 P{průměr_dýzy[3]} A{(filament_abrasive[3] ? 1 : 0)} F{(nozzle_high_flow[3] ? 1 : 0)}{endif}
{if (is_extruder_used[4])}M862.1 T4 P{průměr_dýzy[4]} A{(filament_abrasive[4] ? 1 : 0)} F{(nozzle_high_flow[4] ? 1 : 0)}{endif}
; vypněte nepoužívané ohřívače
{if ! is_extruder_used[0]}M104 T0 S0{endif}
{if ! is_extruder_used[1]}M104 T1 S0{endif}
{if num_extruders > 2 and ! is_extruder_used[2]}M104 T2 S0{endif}
{if num_extruders > 3 and ! is_extruder_used[3]}M104 T3 S0{endif}
{if num_extruders > 4 and ! is_extruder_used[4]}M104 T4 S0{endif}
M217 Z{max(zhop, 2.0)} ; nastavte skok z nástroje na 2 mm nebo proměnnou zhop ze sliceru, pokud je vyšší.
; nastavte teplotu lože a extrudéru pro MBL
M140 S[first_layer_bed_temperature] ; nastavte teplotu lože
M104 T{initial_tool} S{((filament_notes[initial_tool]=~/.*MBL160.*/) ? 160 : (filament_notes[initial_tool]=~/.*HT_MBL10.*/) ? (first_layer_temperature[initial_tool] - 10) : (filament_type[initial_tool] == "PC" nebo filament_type[initial_tool] == "PA") ? (first_layer_temperature[initial_tool] - 25) : (filament_type[initial_tool] == "FLEX") ? 210 : (filament_type[initial_tool]=~/.*PET.*/) ? 175 : 170)} ; set temp
; Home XY
G28 XY
; zkuste vybrat nástroje použité při tisku
G1 F{travel_speed * 60}
{if (is_extruder_used[0]) and (initial_tool != 0)}T0 S1 L0 D0{endif}
{if (is_extruder_used[1]) and (initial_tool != 1)}T1 S1 L0 D0{endif}
{if (is_extruder_used[2]) and (initial_tool != 2)}T2 S1 L0 D0{endif}
{if (is_extruder_used[3]) and (initial_tool != 3)}T3 S1 L0 D0{endif}
{if (is_extruder_used[4]) and (initial_tool != 4)}T4 S1 L0 D0{endif}
; vyberte nástroj, který bude použit pro home & MBL
T{initial_tool} S1 L0 D0
; ZDE MUSÍ NÁSTROJ ČEKAT ČISTĚ KVŮLI SILIKONOVÉMU ŠTĚTCI
G1 Z30
G1 X145 Y-8 F{travel_speed * 60}
M109 T{initial_tool} S{((filament_notes[initial_tool]=~/.*MBL160.*/) ? 160 : (filament_notes[initial_tool]=~/.*HT_MBL10.*/) ? (first_layer_temperature[initial_tool] - 10) : (filament_type[initial_tool] == "PC" nebo filament_type[initial_tool] == "PA") ? (first_layer_temperature[initial_tool] - 25) : (filament_type[initial_tool] == "FLEX") ? 210 : (filament_type[initial_tool]=~/.*PET.*/) ? 175 : 170)} ; počkejte na temp
; home Z s nástrojem MBL
M84 E ; vypněte motor E
G28 Z
G0 Z5 ; přidejte vůli Z
; ZDE MUSÍ NÁSTROJ ČEKAT ČISTĚ KVŮLI SILIKONOVÉMU KARTÁČI
G1 Z30
G1 X145 Y-8 F{rychlost pojezdu * 60}
M104 T{initial_tool} S{if is_nil(idle_temperature[initial_tool])}70{else}{idle_temperature[initial_tool]}{endif} ; nastavte teplotu klidu
M190 S[první_vrstva_teplota_lůžka] ; počkejte na teplotu lůžka
G29 G ; absorbovat teplo
M109 T{initial_tool} S{((filament_notes[initial_tool]=~/.*MBL160.*/) ? 160 : (filament_notes[initial_tool]=~/.*HT_MBL10.*/) ? (first_layer_temperature[initial_tool] - 10) : (filament_type[initial_tool] == "PC" nebo filament_type[initial_tool] == "PA") ? (first_layer_temperature[initial_tool] - 25) : (filament_type[initial_tool] == "FLEX") ? 210 : (filament_type[initial_tool]=~/.*PET.*/) ? 175 : 170)} ; počkejte na temp
M300 S800 P200. ; indikátor PIEP
; přejděte do oblasti čištění trysky
; Upevnění kartáče trysky Surfalex2000 na Printables
; https://www.printables.com/model/644817-prusa-xl-series-front-nozzle-srcubber-for-use-with
G1 E-10 F2400 ; větší zatažení pro vyrovnání výpotku před čištěním trysky.
; Spusťte cyklus kartáčování trysky surfalex2000.
; --- Spuštění cyklu kartáčování trysky (náběh otáček) ---
G1 X160 Y-5 Z5 F8000
G1 X160 Y-5 Z1 F8000
; --- Zyklus 1 (langsam) ---
G1 X200 Y-5 F8000
G1 X200 Y-4
G1 X160 Y-4
G1 X160 Y-6
G1 X200 Y-6
G1 X200 Y-5
G1 X160 Y-5
; --- Zyklus 2 (mittel) ---
G1 X200 Y-5 F14000
G1 X200 Y-4
G1 X160 Y-4
G1 X160 Y-6
G1 X200 Y-6
G1 X200 Y-5
G1 X160 Y-5
; --- Zyklus 3 (schnell) ---
G1 X200 Y-5 F16000
G1 X200 Y-4
G1 X160 Y-4
G1 X160 Y-6
G1 X200 Y-6
G1 X200 Y-5
G1 X160 Y-5
; --- Zyklus 4 (schnell) ---
G1 X200 Y-5 F20000
G1 X200 Y-4
G1 X160 Y-4
G1 X160 Y-6
G1 X200 Y-6
G1 X200 Y-5
G1 X160 Y-5
G1 X160 Y-5 Z5 F20000 ; cyklus kartáčování trysek
; Konec cyklu kartáčování trysky surfalex2000
; čištění trysky PRO LEVÝ A PRAVÝ SILIKONOVÝ STĚRAČ
M302 S155 ; snížení limitu vytlačování za studena na 155C
G1 E{-(filament_type[0] == "FLEX" ? 4 : 2)} F2400 ; zatažení pro čištění trysky
M84 E ; vypněte motor E
; --- Spustit otření trysky
G1 Z5 ; Odsuňte lůžko z cesty
{if initial_tool == 0 nebo initial_tool == 1 }
; --- Spusťte otření tryskou LEVÁ ---
G1 X-2 Y-8 F24000 ; Přesun na začátek oblasti stírání
G1 X28 Y-8 F24000 ; Průchod stírání 1
G1 X-2 Y-7.5 F24000 ; Změna polohy
G1 X28 Y-7.5 F24000 ; Stírací manévr 2
G1 X-2 Y-7 F24000 ; Změna polohy
G1 X28 Y-7 F24000 ; stírací manévr 3
G1 X-2 Y-6,5 F24000 ; Změna polohy
G1 X28 Y-6,5 F24000 ; stírací manévr 4
G1 X-2 Y-6 F24000 ; Změna polohy
G1 X28 Y-6 F24000 ; Průchod stírání 5
G1 X-2 Y-6.5 F24000 ; Změna polohy
G1 X28 Y-6.5 F24000 ; stírací manévr 6
G1 X-2 Y-7 F24000 ; Změna polohy
G1 X28 Y-7 F24000 ; Průchod stíracím manévrem 7
G1 X-2 Y-7,5 F24000 ; Změna polohy
G1 X28 Y-7,5 F24000 ; průchod stíracím manévrem 8
G1 X-2 Y-8 F24000 ; Změna polohy
G1 X28 Y-8 F24000 ; Průchod stíracím manévrem 9
; --- Konec trysky Otření vlevo ---
{jinak}
; --- Začněte trysku Otření vpravo ---
G1 X332 Y-8 F24000 ; Přesun na začátek oblasti stírání
G1 X361 Y-8 F24000 ; Průchod stírání 1
G1 X332 Y-7.5 F24000 ; Změna polohy
G1 X361 Y-7,5 F24000 ; Stírací manévr 2
G1 X332 Y-7 F24000 ; Změna polohy
G1 X361 Y-7 F24000 ; Průchod stírání 3
G1 X332 Y-6.5 F24000 ; Změna polohy
G1 X361 Y-6,5 F24000 ; Průchod stírání 4
G1 X332 Y-6 F24000 ; Změna polohy
G1 X361 Y-6 F24000 ; Průchod stíracím zařízením 5
G1 X332 Y-6.5 F24000 ; Změna polohy
G1 X361 Y-6.5 F24000 ; Průchod stírání 6
G1 X332 Y-7 F24000 ; Změna polohy
G1 X361 Y-7 F24000 ; Průchod stíracím zařízením 7
G1 X332 Y-7.5 F24000 ; Změna polohy
G1 X361 Y-7,5 F24000 ; Průchod stírací manžetou 8
G1 X332 Y-8 F24000 ; Změna polohy
G1 X361 Y-8 F24000 ; Průchod stíracím zařízením 9
; --- Konec trysky Otření vpravo ---
{endif}
G1 X{(min(((((první_vrstva_otisk_min[0] + první_vrstva_otisk_max[0]) / 2) < ((print_bed_min[0] + print_bed_max[0]) / 2)) ? (((first_layer_print_min[1] - 7) < -2) ? 70 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)) : (((first_layer_print_min[1] - 7) < -2) ? 260 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32))), first_layer_print_min[0]))) + 32} Y{(min((first_layer_print_min[1] - 7), first_layer_print_min[1]))} Z{5} F{(travel_speed * 60)}
; čištění trysky
;Níže komentováno, protože nastavuje příliš vysokou teplotu před MBL.
;G29 P9 X{((((první_vrstva_print_min[0] + první_vrstva_print_max[0]) / 2) < ((print_bed_min[0] + print_bed_max[0]) / 2)) ? (((first_layer_print_min[1] - 7) < -2) ? 70 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)) : (((first_layer_print_min[1] - 7) 0 and (is_extruder_used[0])}M104 T0 S{first_layer_temperature[0]}{endif}
{if first_layer_temperature[1] > 0 and (is_extruder_used[1])}M104 T1 S{first_layer_temperature[1]}{endif}
{if first_layer_temperature[2] > 0 and (is_extruder_used[2])}M104 T2 S{first_layer_temperature[2]}{endif}
{if first_layer_temperature[3] > 0 and (is_extruder_used[3])}M104 T3 S{first_layer_temperature[3]}{endif}
{if first_layer_temperature[4] > 0 and (is_extruder_used[4])}M104 T4 S{first_layer_temperature[4]}{endif}
{if (is_extruder_used[0]) and initial_tool != 0}
M591 S0 ; vypnout detekci zaseknutí
; Připraveno k tisku melodie, před pročištěním
M300 S1200 P150
G4 P200
M300 S1500 P150
G4 P200
M300 S1800 P300
G4 P500
;
; pročistit první nástroj
; Upraveno. Pozice X změněna z 30 na 33 kvůli silikonovému štětci.
;
G1 F{travel_speed * 60}
P0 S1 L2 D0; zaparkujte nástroj
M109 T0 S{teplota_první_vrstvy[0]}
T0 S1 L0 D0; vyzvedněte nástroj
G92 E0 ; resetování polohy extrudéru
G0 X33 Y-7 Z10 F{(travel_speed * 60)} ; přiblížení k okraji archu
G0 E{if is_nil(filament_multitool_ramming[0])}10{else}30{endif} X40 Z0.2 F{if is_nil(filament_multitool_ramming[0])}500{else}170{endif} ; očistit při pohybu směrem k listu
G0 X70 E9 F800 ; pokračujte v proplachování a otřete trysku
G0 X73 Z0.05 F8000 ; otírejte, přibližujte se k lůžku
G0 X76 Z0.2 F8000 ; otírejte, rychle se vzdalujte od lůžka
G1 E{-retract_length_toolchange[0]} F2400 ; zasunout
{e_retracted[0] = retract_length_toolchange[0]}
G92 E0 ; resetování polohy extrudéru
M104 S{(is_nil(idle_temperature[0]) ? (first_layer_temperature[0] + standby_temperature_delta) : (idle_temperature[0]))} T0
{endif}
{if (is_extruder_used[1]) a initial_tool != 1}
;
; pročistěte druhý nástroj
;
G1 F{travel_speed * 60}
P0 S1 L2 D0; zaparkujte nástroj
M109 T1 S{teplota_první_vrstvy[1]}
T1 S1 L0 D0; vyzvedněte nástroj
G92 E0 ; resetování polohy extrudéru
G0 X150 Y-7 Z10 F{(travel_speed * 60)} ; přiblížení k okraji archu
G0 E{if is_nil(filament_multitool_ramming[1])}10{else}30{endif} X140 Z0.2 F{if is_nil(filament_multitool_ramming[1])}500{else}170{endif} ; očistit při pohybu směrem k listu
G0 X110 E9 F800 ; pokračujte v proplachování a otřete trysku
G0 X107 Z0.05 F8000 ; otírejte, přibližujte se k lůžku
G0 X104 Z0.2 F8000 ; otřete, rychle se vzdalte od lůžka
G1 E{-retract_length_toolchange[1]} F2400 ; zasunout
{e_retracted[1] = retract_length_toolchange[1]}
G92 E0 ; resetování polohy extrudéru
M104 S{(is_nil(idle_temperature[1]) ? (first_layer_temperature[1] + standby_temperature_delta) : (idle_temperature[1]))} T1
{endif}
{if (is_extruder_used[2]) and initial_tool != 2}
;
; pročistěte třetí nástroj
;
G1 F{travel_speed * 60}
P0 S1 L2 D0; zaparkujte nástroj
M109 T2 S{teplota_první_vrstvy[2]}
T2 S1 L0 D0; vyzvednout nástroj
G92 E0 ; resetování polohy extrudéru
G0 X210 Y-7 Z10 F{(travel_speed * 60)} ; přiblížení k okraji archu
G0 E{if is_nil(filament_multitool_ramming[2])}10{else}30{endif} X220 Z0.2 F{if is_nil(filament_multitool_ramming[2])}500{else}170{endif} ; očistit při pohybu směrem k listu
G0 X250 E9 F800 ; pokračujte v proplachování a otřete trysku
G0 X253 Z0.05 F8000 ; otřete, přibližte se k lůžku
G0 X256 Z0.2 F8000 ; otírejte, rychle se vzdalujte od lůžka
G1 E{-retract_length_toolchange[2]} F2400 ; zasunout
{e_retracted[2] = retract_length_toolchange[2]}
G92 E0 ; resetování polohy extrudéru
M104 S{(is_nil(idle_temperature[2]) ? (first_layer_temperature[2] + standby_temperature_delta) : (idle_temperature[2]))} T2
{endif}
{if (is_extruder_used[3]) and initial_tool != 3}
;
; pročistěte čtvrtý nástroj
;
G1 F{travel_speed * 60}
P0 S1 L2 D0; zaparkujte nástroj
M109 T3 S{teplota_první_vrstvy[3]}
T3 S1 L0 D0; vyzvednout nástroj
G92 E0 ; resetování polohy extrudéru
G0 X327 Y-7 Z10 F{(travel_speed * 60)} ; přiblížení k okraji archu
G0 E{if is_nil(filament_multitool_ramming[3])}10{else}30{endif} X320 Z0.2 F{if is_nil(filament_multitool_ramming[3])}500{else}170{endif} ; očistit při pohybu směrem k listu
G0 X290 E9 F800 ; pokračujte v proplachování a otřete trysku
G0 X287 Z0.05 F8000 ; otřete, přibližte se k lůžku
G0 X284 Z0.2 F8000 ; otírejte, rychle se vzdalujte od lůžka
G1 E{-retract_length_toolchange[3]} F2400 ; zasunout
{e_retracted[3] = retract_length_toolchange[3]}
G92 E0 ; resetování polohy extrudéru
M104 S{(is_nil(idle_temperature[3]) ? (first_layer_temperature[3] + standby_temperature_delta) : (idle_temperature[3]))} T3
{endif}
{if (is_extruder_used[4]) and initial_tool != 4}
;
; pročistěte pátý nástroj
; Upraveno. Pozice X pro TOOL 4 se změnila z 330 na 327 kvůli silikonovému štětci.
;
G1 F{travel_speed * 60}
P0 S1 L2 D0; zaparkujte nástroj
M109 T4 S{teplota_první_vrstvy[4]}
T4 S1 L0 D0; vyberte nástroj
G92 E0 ; resetování polohy extrudéru
G0 X327 Y-4.5 Z10 F{(rychlost pojezdu * 60)} ; přiblížení k okraji archu
G0 E{if is_nil(filament_multitool_ramming[4])}10{else}30{endif} X320 Z0.2 F{if is_nil(filament_multitool_ramming[4])}500{else}170{endif} ; očistit při pohybu směrem k listu
G0 X290 E9 F800 ; pokračujte v proplachování a otřete trysku
G0 X287 Z0.05 F8000 ; otřete, přibližte se k lůžku
G0 X284 Z0.2 F8000 ; otřete, rychle se vzdalte od lůžka
G1 E{-retract_length_toolchange[4]} F2400 ; zasunout
{e_retracted[4] = retract_length_toolchange[4]}
G92 E0 ; resetování polohy extrudéru
M104 S{(is_nil(idle_temperature[4]) ? (first_layer_temperature[4] + standby_temperature_delta) : (idle_temperature[4]))} T4
{endif}
;
; pročistěte počáteční nástroj
;
G1 F{travel_speed * 60}
P0 S1 L2 D0; zaparkujte nástroj
M109 T{počáteční_nástroj} S{teplota_první_vrstvy[počáteční_nástroj]}
T{initial_tool} S1 L0 D0; vybrat nástroj
G92 E0 ; resetování polohy extrudéru
; Upraveno. Pozice X pro TOOL 0 se změnila z 30 na 33 kvůli silikonovému kartáči.
; Upraveno. Poloha X pro TOOL 4 změněna z 330 na 327 kvůli silikonovému kartáči.
G0 X{(initial_tool == 0 ? 33 : (initial_tool == 1 ? 150 : (initial_tool == 2 ? 210 : 327)))} Y{(initial_tool < 4 ? -7 : -4,5)} Z10 F{(travel_speed * 60)} ; přiblížení k okraji listu
G0 E{if is_nil(filament_multitool_ramming[initial_tool])}10{else}30{endif} X{(initial_tool == 0 ? 33 : (initial_tool == 1 ? 150 : (initial_tool == 2 ? 210 : 327))) + ((initial_tool == 0 nebo initial_tool == 2 ? 1 : -1) * 10)} Z0.2 F{if is_nil(filament_multitool_ramming[initial_tool])}500{else}170{endif} ; pročištění při pohybu směrem k listu
G0 X{(initial_tool == 0 ? 33 : (initial_tool == 1 ? 150 : (initial_tool == 2 ? 210 : 327))) + ((initial_tool == 0 nebo initial_tool == 2 ? 1 : -1) * 40)} E9 F800 ; pokračujte v proplachování a otřete trysku
G0 X{(initial_tool == 0 ? 33 : (initial_tool == 1 ? 150 : (initial_tool == 2 ? 210 : 327)) + ((initial_tool == 0 nebo initial_tool == 2 ? 1 : -1) * 40) + ((initial_tool == 0 nebo initial_tool == 2 ? 1 : -1) * 3)} Z{0.05} F{8000} ; setřete, přiblížíte se k lůžku
G0 X{(initial_tool == 0 ? 33 : (initial_tool == 1 ? 150 : (initial_tool == 2 ? 210 : 327))) + ((initial_tool == 0 nebo initial_tool == 2 ? 1 : -1) * 40) + ((initial_tool == 0 nebo initial_tool == 2 ? 1 : -1) * 3 * 2)} Z0.2 F{8000} ; setřete, rychle se vzdálte od postele
G1 E-{délka zatažení[počáteční_nástroj]} F2400 ; zasunout
{e_retracted[initial_tool] = retract_length[initial_tool]}
M591 R ; obnovení detekce zaseknutí
G92 E0 ; resetování polohy extrudéru



