From aec1a40795018082d7adfa91ba1ce10e3baca65e Mon Sep 17 00:00:00 2001 From: SoftFever Date: Sat, 13 Jul 2024 22:17:47 +0800 Subject: [PATCH] update/refactor/fix XL profiles --- resources/profiles/Prusa.json | 2 +- .../profiles/Prusa/Prusa XL 5T_cover.png | Bin 0 -> 88220 bytes .../Prusa/filament/fdm_filament_abs.json | 15 +- .../Prusa/filament/fdm_filament_asa.json | 1 + .../Prusa/filament/fdm_filament_pa.json | 1 + .../Prusa/filament/fdm_filament_pa11cf.json | 1 + .../Prusa/filament/fdm_filament_pc.json | 1 + .../Prusa/filament/fdm_filament_pccf.json | 1 + .../Prusa/filament/fdm_filament_pet.json | 1 + .../Prusa/filament/fdm_filament_pla.json | 1 + .../Prusa/filament/fdm_filament_pva.json | 1 + .../Prusa/filament/fdm_filament_pvb.json | 1 + .../Prusa/filament/fdm_filament_tpu.json | 1 + .../Prusa/machine/Prusa XL 0.25 nozzle.json | 101 +------------ .../Prusa/machine/Prusa XL 0.3 nozzle.json | 137 +++--------------- .../Prusa/machine/Prusa XL 0.4 nozzle.json | 135 +++-------------- .../Prusa/machine/Prusa XL 0.5 nozzle.json | 135 +++-------------- .../Prusa/machine/Prusa XL 0.6 nozzle.json | 135 +++-------------- .../Prusa/machine/Prusa XL 0.8 nozzle.json | 101 +------------ .../machine/Prusa XL 5T 0.25 nozzle.json | 2 +- .../Prusa/machine/Prusa XL 5T 0.3 nozzle.json | 2 +- .../Prusa/machine/Prusa XL 5T 0.4 nozzle.json | 2 +- .../Prusa/machine/Prusa XL 5T 0.5 nozzle.json | 2 +- .../Prusa/machine/Prusa XL 5T 0.6 nozzle.json | 2 +- .../Prusa/machine/Prusa XL 5T 0.8 nozzle.json | 2 +- .../profiles/Prusa/machine/Prusa XL 5T.json | 4 +- .../machine/fdm_machine_common_xl_5t.json | 11 +- .../Prusa/process/process_common_xl.json | 4 +- .../Prusa/process/process_common_xl_5t.json | 5 +- 29 files changed, 117 insertions(+), 690 deletions(-) create mode 100644 resources/profiles/Prusa/Prusa XL 5T_cover.png diff --git a/resources/profiles/Prusa.json b/resources/profiles/Prusa.json index 69e3e32e4e..62af7c6fa9 100644 --- a/resources/profiles/Prusa.json +++ b/resources/profiles/Prusa.json @@ -1,6 +1,6 @@ { "name": "Prusa", - "version": "02.01.01.10", + "version": "02.01.01.20", "force_update": "0", "description": "Prusa configurations", "machine_model_list": [ diff --git a/resources/profiles/Prusa/Prusa XL 5T_cover.png b/resources/profiles/Prusa/Prusa XL 5T_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..2a302857e610880246218c4f14a9a6bf0a052076 GIT binary patch literal 88220 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 60}\nG0 Z70 F480 ; move away (a bit more) in Z\nG0 X30 Y{print_bed_min[1]} F6000 ; move away in X/Y for higher bed temperatures\n{endif}\nM106 S100 ; cool off the nozzle\nM107 ; stop cooling off the nozzle - turn off the fan\n; MBL\nM84 E ; turn off E motor\nG29 P1 ; invalidate mbl & probe print area\nG29 P1 X30 Y0 W50 H20 C ; probe near purge place\nG29 P3.2 ; interpolate mbl probes\nG29 P3.13 ; extrapolate mbl outside probe area\nG29 A ; activate mbl\nM104 S[first_layer_temperature] ; set extruder temp\nG1 Z10 F720 ; move away in Z\nG0 X30 Y-8 F6000 ; move next to the sheet\n; wait for extruder temp\nM109 T0 S{first_layer_temperature[0]}\n;\n; purge\n;\nG92 E0 ; reset extruder position\nG0 X{(0 == 0 ? 30 : (0 == 1 ? 150 : (0 == 2 ? 210 : 330)))} Y{(0 < 4 ? -8 : -5.5)} ; move close to the sheet's edge\nG1 E{(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; deretraction after the initial one before nozzle cleaning\nG0 E10 X40 Z0.2 F500 ; purge\nG0 X70 E9 F800 ; purge\nG0 X{70 + 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{70 + 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG92 E0 ; reset extruder position", - "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]", - "change_filament_gcode": "M600\nG1 E0.3 F1500 ; prime after color change", - "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", - "printer_notes": "Don't remove the following keywords! These keywords are used in the \"compatible printer\" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_MODEL_XLIS\nPG\nINPUT_SHAPER", - "scan_first_layer": "0", - "nozzle_type": "hardened_steel", - "auxiliary_fan": "0", - "thumbnails": [ - "16x16/QOI", - "313x173/QOI", - "440x240/QOI", - "480x240/QOI", - "640x480/PNG" - ] + "detraction_speed": "25" } diff --git a/resources/profiles/Prusa/machine/Prusa XL 0.3 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 0.3 nozzle.json index e83f1871a1..b678114c03 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 0.3 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 0.3 nozzle.json @@ -1,118 +1,21 @@ { - "type": "machine", - "setting_id": "GM003", - "name": "Prusa XL 0.3 nozzle", - "from": "system", - "instantiation": "true", - "inherits": "fdm_machine_common", - "gcode_flavor": "marlin2", - "printer_model": "Prusa XL", - "default_filament_profile": "Prusa Generic PLA @XL", - "default_print_profile": "0.20mm Speed @Prusa XL 0.3", - "extruder_clearance_radius": "67", - "extruder_clearance_height_to_rod": "21", - "extruder_clearance_height_to_lid": "21", - "printer_variant": "0.3", - "nozzle_diameter": [ - "0.3" - ], - "max_layer_height": "0.22", - "min_layer_height": "0.05", - "bed_exclude_area": [ - "0x0" - ], - "printable_area": [ - "0x0", - "360x0", - "360x360", - "0x360" - ], - "machine_max_acceleration_e": [ - "2500", - "2500" - ], - "machine_max_acceleration_extruding": [ - "4000", - "4000" - ], - "machine_max_acceleration_retracting": [ - "1200", - "1200" - ], - "machine_max_acceleration_x": [ - "7000", - "7000" - ], - "machine_max_acceleration_y": [ - "7000", - "7000" - ], - "machine_max_acceleration_z": [ - "200", - "200" - ], - "machine_max_acceleration_travel": [ - "3000", - "3000" - ], - "machine_max_speed_e": [ - "100", - "100" - ], - "machine_max_speed_x": [ - "400", - "400" - ], - "machine_max_speed_y": [ - "400", - "400" - ], - "machine_max_speed_z": [ - "12", - "12" - ], - "machine_max_jerk_e": [ - "10", - "10" - ], - "machine_max_jerk_x": [ - "8", - "8" - ], - "machine_max_jerk_y": [ - "8", - "8" - ], - "machine_max_jerk_z": [ - "2", - "2" - ], - "retraction_length": "0.7", - "retraction_speed": "35", - "detraction_speed": "25", - "retraction_minimum_travel": "1.5", - "retract_when_changing_layer": "1", - "wipe": "1", - "retract_before_wipe": "80%", - "retract_lift_below": "1.5", - "z_hop_types": "Auto Lift", - "host_type": "prusalink", - "printable_height": "360", - "machine_end_gcode": "{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+2, max_print_height)} F720{endif} ; Move bed down\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X6 Y350 F6000 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+100, max_print_height)} F300{endif} ; Move bed down\nM900 K0 ; reset LA\nM142 S36 ; reset heatbreak target temp\nM221 S100 ; reset flow percentage\nM84 ; disable motors\n; max_layer_z = [max_layer_z]", - "machine_pause_gcode": "M601", - "machine_start_gcode": "M17 ; enable steppers\nM862.3 P \"XL\" ; printer model check\nM115 U6.0.1+14848\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\n; set print area\nM555 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])}\n; inform about nozzle diameter\nM862.1 P[nozzle_diameter]\n; set & wait for bed and extruder temp for MBL\nM140 S[first_layer_bed_temperature] ; set bed temp\nM104 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\nM109 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\n; home carriage, pick tool, home all\nG28 XY\nM84 E ; turn off E motor\nG28 Z\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nG29 G ; absorb heat\n; move to the nozzle cleanup area\nG1 X{(min(((((first_layer_print_min[0] + first_layer_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) < -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} F4800\nM302 S160 ; lower cold extrusion limit to 160C\nG1 E{-(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; retraction for nozzle cleanup\n; nozzle cleanup\nM84 E ; turn off E motor\nG29 P9 X{((((first_layer_print_min[0] + first_layer_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) < -2) ? 260 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)))} Y{(first_layer_print_min[1] - 7)} W{32} H{7}\nG0 Z10 F480 ; move away in Z\n{if first_layer_bed_temperature[0] > 60}\nG0 Z70 F480 ; move away (a bit more) in Z\nG0 X30 Y{print_bed_min[1]} F6000 ; move away in X/Y for higher bed temperatures\n{endif}\nM106 S100 ; cool off the nozzle\nM107 ; stop cooling off the nozzle - turn off the fan\n; MBL\nM84 E ; turn off E motor\nG29 P1 ; invalidate mbl & probe print area\nG29 P1 X30 Y0 W50 H20 C ; probe near purge place\nG29 P3.2 ; interpolate mbl probes\nG29 P3.13 ; extrapolate mbl outside probe area\nG29 A ; activate mbl\nM104 S[first_layer_temperature] ; set extruder temp\nG1 Z10 F720 ; move away in Z\nG0 X30 Y-8 F6000 ; move next to the sheet\n; wait for extruder temp\nM109 T0 S{first_layer_temperature[0]}\n;\n; purge\n;\nG92 E0 ; reset extruder position\nG0 X{(0 == 0 ? 30 : (0 == 1 ? 150 : (0 == 2 ? 210 : 330)))} Y{(0 < 4 ? -8 : -5.5)} ; move close to the sheet's edge\nG1 E{(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; deretraction after the initial one before nozzle cleaning\nG0 E10 X40 Z0.2 F500 ; purge\nG0 X70 E9 F800 ; purge\nG0 X{70 + 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{70 + 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG92 E0 ; reset extruder position", - "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]", - "change_filament_gcode": "M600\nG1 E0.3 F1500 ; prime after color change", - "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", - "printer_notes": "Don't remove the following keywords! These keywords are used in the \"compatible printer\" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_MODEL_XLIS\nPG\nINPUT_SHAPER", - "scan_first_layer": "0", - "nozzle_type": "hardened_steel", - "auxiliary_fan": "0", - "thumbnails": [ - "16x16/QOI", - "313x173/QOI", - "440x240/QOI", - "480x240/QOI", - "640x480/PNG" - ] -} + "type": "machine", + "setting_id": "GM003", + "name": "Prusa XL 0.3 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common", + "gcode_flavor": "marlin2", + "printer_model": "Prusa XL", + "default_filament_profile": "Prusa Generic PLA @XL", + "default_print_profile": "0.20mm Speed @Prusa XL 0.3", + "printer_variant": "0.3", + "nozzle_diameter": [ + "0.3" + ], + "max_layer_height": "0.22", + "min_layer_height": "0.05", + "retraction_length": "0.7", + "retraction_speed": "35", + "detraction_speed": "25" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/machine/Prusa XL 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 0.4 nozzle.json index cbb286aa5b..3bf1b6fa02 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 0.4 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 0.4 nozzle.json @@ -1,118 +1,19 @@ { - "type": "machine", - "setting_id": "GM003", - "name": "Prusa XL 0.4 nozzle", - "from": "system", - "instantiation": "true", - "inherits": "fdm_machine_common", - "gcode_flavor": "marlin2", - "printer_model": "Prusa XL", - "default_filament_profile": "Prusa Generic PLA @XL", - "default_print_profile": "0.20mm Speed @Prusa XL 0.4", - "extruder_clearance_radius": "67", - "extruder_clearance_height_to_rod": "21", - "extruder_clearance_height_to_lid": "21", - "printer_variant": "0.4", - "nozzle_diameter": [ - "0.4" - ], - "max_layer_height": "0.3", - "min_layer_height": "0.07", - "bed_exclude_area": [ - "0x0" - ], - "printable_area": [ - "0x0", - "360x0", - "360x360", - "0x360" - ], - "machine_max_acceleration_e": [ - "2500", - "2500" - ], - "machine_max_acceleration_extruding": [ - "4000", - "4000" - ], - "machine_max_acceleration_retracting": [ - "1200", - "1200" - ], - "machine_max_acceleration_x": [ - "7000", - "7000" - ], - "machine_max_acceleration_y": [ - "7000", - "7000" - ], - "machine_max_acceleration_z": [ - "200", - "200" - ], - "machine_max_acceleration_travel": [ - "5000", - "5000" - ], - "machine_max_speed_e": [ - "100", - "100" - ], - "machine_max_speed_x": [ - "400", - "400" - ], - "machine_max_speed_y": [ - "400", - "400" - ], - "machine_max_speed_z": [ - "12", - "12" - ], - "machine_max_jerk_e": [ - "10", - "10" - ], - "machine_max_jerk_x": [ - "8", - "8" - ], - "machine_max_jerk_y": [ - "8", - "8" - ], - "machine_max_jerk_z": [ - "2", - "2" - ], - "retraction_length": "0.8", - "retraction_speed": "35", - "detraction_speed": "25", - "retraction_minimum_travel": "1.5", - "retract_when_changing_layer": "1", - "wipe": "1", - "retract_before_wipe": "80%", - "retract_lift_below": "1.5", - "z_hop_types": "Auto Lift", - "host_type": "prusalink", - "printable_height": "360", - "machine_end_gcode": "{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+2, max_print_height)} F720{endif} ; Move bed down\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X6 Y350 F6000 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+100, max_print_height)} F300{endif} ; Move bed down\nM900 K0 ; reset LA\nM142 S36 ; reset heatbreak target temp\nM221 S100 ; reset flow percentage\nM84 ; disable motors\n; max_layer_z = [max_layer_z]", - "machine_pause_gcode": "M601", - "machine_start_gcode": "M17 ; enable steppers\nM862.3 P \"XL\" ; printer model check\nM115 U6.0.1+14848\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\n; set print area\nM555 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])}\n; inform about nozzle diameter\nM862.1 P[nozzle_diameter]\n; set & wait for bed and extruder temp for MBL\nM140 S[first_layer_bed_temperature] ; set bed temp\nM104 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\nM109 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\n; home carriage, pick tool, home all\nG28 XY\nM84 E ; turn off E motor\nG28 Z\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nG29 G ; absorb heat\n; move to the nozzle cleanup area\nG1 X{(min(((((first_layer_print_min[0] + first_layer_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) < -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} F4800\nM302 S160 ; lower cold extrusion limit to 160C\nG1 E{-(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; retraction for nozzle cleanup\n; nozzle cleanup\nM84 E ; turn off E motor\nG29 P9 X{((((first_layer_print_min[0] + first_layer_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) < -2) ? 260 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)))} Y{(first_layer_print_min[1] - 7)} W{32} H{7}\nG0 Z10 F480 ; move away in Z\n{if first_layer_bed_temperature[0] > 60}\nG0 Z70 F480 ; move away (a bit more) in Z\nG0 X30 Y{print_bed_min[1]} F6000 ; move away in X/Y for higher bed temperatures\n{endif}\nM106 S100 ; cool off the nozzle\nM107 ; stop cooling off the nozzle - turn off the fan\n; MBL\nM84 E ; turn off E motor\nG29 P1 ; invalidate mbl & probe print area\nG29 P1 X30 Y0 W50 H20 C ; probe near purge place\nG29 P3.2 ; interpolate mbl probes\nG29 P3.13 ; extrapolate mbl outside probe area\nG29 A ; activate mbl\nM104 S[first_layer_temperature] ; set extruder temp\nG1 Z10 F720 ; move away in Z\nG0 X30 Y-8 F6000 ; move next to the sheet\n; wait for extruder temp\nM109 T0 S{first_layer_temperature[0]}\n;\n; purge\n;\nG92 E0 ; reset extruder position\nG0 X{(0 == 0 ? 30 : (0 == 1 ? 150 : (0 == 2 ? 210 : 330)))} Y{(0 < 4 ? -8 : -5.5)} ; move close to the sheet's edge\nG1 E{(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; deretraction after the initial one before nozzle cleaning\nG0 E10 X40 Z0.2 F500 ; purge\nG0 X70 E9 F800 ; purge\nG0 X{70 + 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{70 + 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG92 E0 ; reset extruder position", - "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]", - "change_filament_gcode": "M600\nG1 E0.3 F1500 ; prime after color change", - "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", - "printer_notes": "Don't remove the following keywords! These keywords are used in the \"compatible printer\" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_MODEL_XLIS\nPG\nINPUT_SHAPER", - "scan_first_layer": "0", - "nozzle_type": "hardened_steel", - "auxiliary_fan": "0", - "thumbnails": [ - "16x16/QOI", - "313x173/QOI", - "440x240/QOI", - "480x240/QOI", - "640x480/PNG" - ] -} + "type": "machine", + "setting_id": "GM003", + "name": "Prusa XL 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common_xl", + "gcode_flavor": "marlin2", + "printer_model": "Prusa XL", + "default_filament_profile": "Prusa Generic PLA @XL", + "default_print_profile": "0.20mm Speed @Prusa XL 0.4", + "printer_variant": "0.4", + "nozzle_diameter": [ + "0.4" + ], + "max_layer_height": "0.3", + "min_layer_height": "0.07", + "retraction_length": "0.8" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/machine/Prusa XL 0.5 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 0.5 nozzle.json index 937e88f016..3f65ffc759 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 0.5 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 0.5 nozzle.json @@ -1,118 +1,19 @@ { - "type": "machine", - "setting_id": "GM003", - "name": "Prusa XL 0.5 nozzle", - "from": "system", - "instantiation": "true", - "inherits": "fdm_machine_common", - "gcode_flavor": "marlin2", - "printer_model": "Prusa XL", - "default_filament_profile": "Prusa Generic PLA @XL", - "default_print_profile": "0.25mm Speed @Prusa XL 0.5", - "extruder_clearance_radius": "67", - "extruder_clearance_height_to_rod": "21", - "extruder_clearance_height_to_lid": "21", - "printer_variant": "0.5", - "nozzle_diameter": [ - "0.5" - ], - "max_layer_height": "0.32", - "min_layer_height": "0.07", - "bed_exclude_area": [ - "0x0" - ], - "printable_area": [ - "0x0", - "360x0", - "360x360", - "0x360" - ], - "machine_max_acceleration_e": [ - "2500", - "2500" - ], - "machine_max_acceleration_extruding": [ - "4000", - "4000" - ], - "machine_max_acceleration_retracting": [ - "1200", - "1200" - ], - "machine_max_acceleration_x": [ - "7000", - "7000" - ], - "machine_max_acceleration_y": [ - "7000", - "7000" - ], - "machine_max_acceleration_z": [ - "200", - "200" - ], - "machine_max_acceleration_travel": [ - "5000", - "5000" - ], - "machine_max_speed_e": [ - "100", - "100" - ], - "machine_max_speed_x": [ - "400", - "400" - ], - "machine_max_speed_y": [ - "400", - "400" - ], - "machine_max_speed_z": [ - "12", - "12" - ], - "machine_max_jerk_e": [ - "10", - "10" - ], - "machine_max_jerk_x": [ - "8", - "8" - ], - "machine_max_jerk_y": [ - "8", - "8" - ], - "machine_max_jerk_z": [ - "2", - "2" - ], - "retraction_length": "0.7", - "retraction_speed": "35", - "detraction_speed": "25", - "retraction_minimum_travel": "1.5", - "retract_when_changing_layer": "1", - "wipe": "1", - "retract_before_wipe": "80%", - "retract_lift_below": "1.5", - "z_hop_types": "Auto Lift", - "host_type": "prusalink", - "printable_height": "360", - "machine_end_gcode": "{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+2, max_print_height)} F720{endif} ; Move bed down\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X6 Y350 F6000 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+100, max_print_height)} F300{endif} ; Move bed down\nM900 K0 ; reset LA\nM142 S36 ; reset heatbreak target temp\nM221 S100 ; reset flow percentage\nM84 ; disable motors\n; max_layer_z = [max_layer_z]", - "machine_pause_gcode": "M601", - "machine_start_gcode": "M17 ; enable steppers\nM862.3 P \"XL\" ; printer model check\nM115 U6.0.1+14848\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\n; set print area\nM555 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])}\n; inform about nozzle diameter\nM862.1 P[nozzle_diameter]\n; set & wait for bed and extruder temp for MBL\nM140 S[first_layer_bed_temperature] ; set bed temp\nM104 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\nM109 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\n; home carriage, pick tool, home all\nG28 XY\nM84 E ; turn off E motor\nG28 Z\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nG29 G ; absorb heat\n; move to the nozzle cleanup area\nG1 X{(min(((((first_layer_print_min[0] + first_layer_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) < -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} F4800\nM302 S160 ; lower cold extrusion limit to 160C\nG1 E{-(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; retraction for nozzle cleanup\n; nozzle cleanup\nM84 E ; turn off E motor\nG29 P9 X{((((first_layer_print_min[0] + first_layer_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) < -2) ? 260 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)))} Y{(first_layer_print_min[1] - 7)} W{32} H{7}\nG0 Z10 F480 ; move away in Z\n{if first_layer_bed_temperature[0] > 60}\nG0 Z70 F480 ; move away (a bit more) in Z\nG0 X30 Y{print_bed_min[1]} F6000 ; move away in X/Y for higher bed temperatures\n{endif}\nM106 S100 ; cool off the nozzle\nM107 ; stop cooling off the nozzle - turn off the fan\n; MBL\nM84 E ; turn off E motor\nG29 P1 ; invalidate mbl & probe print area\nG29 P1 X30 Y0 W50 H20 C ; probe near purge place\nG29 P3.2 ; interpolate mbl probes\nG29 P3.13 ; extrapolate mbl outside probe area\nG29 A ; activate mbl\nM104 S[first_layer_temperature] ; set extruder temp\nG1 Z10 F720 ; move away in Z\nG0 X30 Y-8 F6000 ; move next to the sheet\n; wait for extruder temp\nM109 T0 S{first_layer_temperature[0]}\n;\n; purge\n;\nG92 E0 ; reset extruder position\nG0 X{(0 == 0 ? 30 : (0 == 1 ? 150 : (0 == 2 ? 210 : 330)))} Y{(0 < 4 ? -8 : -5.5)} ; move close to the sheet's edge\nG1 E{(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; deretraction after the initial one before nozzle cleaning\nG0 E10 X40 Z0.2 F500 ; purge\nG0 X70 E9 F800 ; purge\nG0 X{70 + 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{70 + 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG92 E0 ; reset extruder position", - "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]", - "change_filament_gcode": "M600\nG1 E0.3 F1500 ; prime after color change", - "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", - "printer_notes": "Don't remove the following keywords! These keywords are used in the \"compatible printer\" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_MODEL_XLIS\nPG\nINPUT_SHAPER", - "scan_first_layer": "0", - "nozzle_type": "hardened_steel", - "auxiliary_fan": "0", - "thumbnails": [ - "16x16/QOI", - "313x173/QOI", - "440x240/QOI", - "480x240/QOI", - "640x480/PNG" - ] -} + "type": "machine", + "setting_id": "GM003", + "name": "Prusa XL 0.5 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common_xl", + "gcode_flavor": "marlin2", + "printer_model": "Prusa XL", + "default_filament_profile": "Prusa Generic PLA @XL", + "default_print_profile": "0.25mm Speed @Prusa XL 0.5", + "printer_variant": "0.5", + "nozzle_diameter": [ + "0.5" + ], + "max_layer_height": "0.32", + "min_layer_height": "0.07", + "retraction_length": "0.7" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/machine/Prusa XL 0.6 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 0.6 nozzle.json index e0d47b46c6..1239ddb447 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 0.6 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 0.6 nozzle.json @@ -1,118 +1,19 @@ { - "type": "machine", - "setting_id": "GM003", - "name": "Prusa XL 0.6 nozzle", - "from": "system", - "instantiation": "true", - "inherits": "fdm_machine_common", - "gcode_flavor": "marlin2", - "printer_model": "Prusa XL", - "default_filament_profile": "Prusa Generic PLA @XL", - "default_print_profile": "0.32mm Speed @Prusa XL 0.6", - "extruder_clearance_radius": "67", - "extruder_clearance_height_to_rod": "21", - "extruder_clearance_height_to_lid": "21", - "printer_variant": "0.6", - "nozzle_diameter": [ - "0.6" - ], - "max_layer_height": "0.4", - "min_layer_height": "0.15", - "bed_exclude_area": [ - "0x0" - ], - "printable_area": [ - "0x0", - "360x0", - "360x360", - "0x360" - ], - "machine_max_acceleration_e": [ - "2500", - "2500" - ], - "machine_max_acceleration_extruding": [ - "4000", - "4000" - ], - "machine_max_acceleration_retracting": [ - "1200", - "1200" - ], - "machine_max_acceleration_x": [ - "7000", - "7000" - ], - "machine_max_acceleration_y": [ - "7000", - "7000" - ], - "machine_max_acceleration_z": [ - "200", - "200" - ], - "machine_max_acceleration_travel": [ - "5000", - "5000" - ], - "machine_max_speed_e": [ - "100", - "100" - ], - "machine_max_speed_x": [ - "400", - "400" - ], - "machine_max_speed_y": [ - "400", - "400" - ], - "machine_max_speed_z": [ - "12", - "12" - ], - "machine_max_jerk_e": [ - "10", - "10" - ], - "machine_max_jerk_x": [ - "8", - "8" - ], - "machine_max_jerk_y": [ - "8", - "8" - ], - "machine_max_jerk_z": [ - "2", - "2" - ], - "retraction_length": "0.7", - "retraction_speed": "35", - "detraction_speed": "25", - "retraction_minimum_travel": "1.5", - "retract_when_changing_layer": "1", - "wipe": "1", - "retract_before_wipe": "0%", - "retract_lift_below": "1.5", - "z_hop_types": "Auto Lift", - "host_type": "prusalink", - "printable_height": "360", - "machine_end_gcode": "{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+2, max_print_height)} F720{endif} ; Move bed down\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X6 Y350 F6000 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+100, max_print_height)} F300{endif} ; Move bed down\nM900 K0 ; reset LA\nM142 S36 ; reset heatbreak target temp\nM221 S100 ; reset flow percentage\nM84 ; disable motors\n; max_layer_z = [max_layer_z]", - "machine_pause_gcode": "M601", - "machine_start_gcode": "M17 ; enable steppers\nM862.3 P \"XL\" ; printer model check\nM115 U6.0.1+14848\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\n; set print area\nM555 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])}\n; inform about nozzle diameter\nM862.1 P[nozzle_diameter]\n; set & wait for bed and extruder temp for MBL\nM140 S[first_layer_bed_temperature] ; set bed temp\nM104 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\nM109 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\n; home carriage, pick tool, home all\nG28 XY\nM84 E ; turn off E motor\nG28 Z\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nG29 G ; absorb heat\n; move to the nozzle cleanup area\nG1 X{(min(((((first_layer_print_min[0] + first_layer_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) < -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} F4800\nM302 S160 ; lower cold extrusion limit to 160C\nG1 E{-(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; retraction for nozzle cleanup\n; nozzle cleanup\nM84 E ; turn off E motor\nG29 P9 X{((((first_layer_print_min[0] + first_layer_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) < -2) ? 260 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)))} Y{(first_layer_print_min[1] - 7)} W{32} H{7}\nG0 Z10 F480 ; move away in Z\n{if first_layer_bed_temperature[0] > 60}\nG0 Z70 F480 ; move away (a bit more) in Z\nG0 X30 Y{print_bed_min[1]} F6000 ; move away in X/Y for higher bed temperatures\n{endif}\nM106 S100 ; cool off the nozzle\nM107 ; stop cooling off the nozzle - turn off the fan\n; MBL\nM84 E ; turn off E motor\nG29 P1 ; invalidate mbl & probe print area\nG29 P1 X30 Y0 W50 H20 C ; probe near purge place\nG29 P3.2 ; interpolate mbl probes\nG29 P3.13 ; extrapolate mbl outside probe area\nG29 A ; activate mbl\nM104 S[first_layer_temperature] ; set extruder temp\nG1 Z10 F720 ; move away in Z\nG0 X30 Y-8 F6000 ; move next to the sheet\n; wait for extruder temp\nM109 T0 S{first_layer_temperature[0]}\n;\n; purge\n;\nG92 E0 ; reset extruder position\nG0 X{(0 == 0 ? 30 : (0 == 1 ? 150 : (0 == 2 ? 210 : 330)))} Y{(0 < 4 ? -8 : -5.5)} ; move close to the sheet's edge\nG1 E{(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; deretraction after the initial one before nozzle cleaning\nG0 E10 X40 Z0.2 F500 ; purge\nG0 X70 E9 F800 ; purge\nG0 X{70 + 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{70 + 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG92 E0 ; reset extruder position", - "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]", - "change_filament_gcode": "M600\nG1 E0.3 F1500 ; prime after color change", - "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", - "printer_notes": "Don't remove the following keywords! These keywords are used in the \"compatible printer\" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_MODEL_XLIS\nPG\nINPUT_SHAPER", - "scan_first_layer": "0", - "nozzle_type": "hardened_steel", - "auxiliary_fan": "0", - "thumbnails": [ - "16x16/QOI", - "313x173/QOI", - "440x240/QOI", - "480x240/QOI", - "640x480/PNG" - ] -} + "type": "machine", + "setting_id": "GM003", + "name": "Prusa XL 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common_xl", + "gcode_flavor": "marlin2", + "printer_model": "Prusa XL", + "default_filament_profile": "Prusa Generic PLA @XL", + "default_print_profile": "0.32mm Speed @Prusa XL 0.6", + "printer_variant": "0.6", + "nozzle_diameter": [ + "0.6" + ], + "max_layer_height": "0.4", + "min_layer_height": "0.15", + "retraction_length": "0.7" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/machine/Prusa XL 0.8 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 0.8 nozzle.json index 85c1631bcb..b0a2468a68 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 0.8 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 0.8 nozzle.json @@ -4,115 +4,18 @@ "name": "Prusa XL 0.8 nozzle", "from": "system", "instantiation": "true", - "inherits": "fdm_machine_common", + "inherits": "fdm_machine_common_xl", "gcode_flavor": "marlin2", "printer_model": "Prusa XL", "default_filament_profile": "Prusa Generic PLA @XL", "default_print_profile": "0.40mm Quality @Prusa XL 0.8", - "extruder_clearance_radius": "67", - "extruder_clearance_height_to_rod": "21", - "extruder_clearance_height_to_lid": "21", "printer_variant": "0.8", "nozzle_diameter": [ "0.8" ], "max_layer_height": "0.6", "min_layer_height": "0.2", - "bed_exclude_area": [ - "0x0" - ], - "printable_area": [ - "0x0", - "360x0", - "360x360", - "0x360" - ], - "machine_max_acceleration_e": [ - "2500", - "2500" - ], - "machine_max_acceleration_extruding": [ - "4000", - "4000" - ], - "machine_max_acceleration_retracting": [ - "1200", - "1200" - ], - "machine_max_acceleration_x": [ - "7000", - "7000" - ], - "machine_max_acceleration_y": [ - "7000", - "7000" - ], - "machine_max_acceleration_z": [ - "200", - "200" - ], - "machine_max_acceleration_travel": [ - "5000", - "5000" - ], - "machine_max_speed_e": [ - "100", - "100" - ], - "machine_max_speed_x": [ - "400", - "400" - ], - "machine_max_speed_y": [ - "400", - "400" - ], - "machine_max_speed_z": [ - "12", - "12" - ], - "machine_max_jerk_e": [ - "10", - "10" - ], - "machine_max_jerk_x": [ - "8", - "8" - ], - "machine_max_jerk_y": [ - "8", - "8" - ], - "machine_max_jerk_z": [ - "2", - "2" - ], "retraction_length": "0.6", "retraction_speed": "25", - "detraction_speed": "15", - "retraction_minimum_travel": "1.5", - "retract_when_changing_layer": "1", - "wipe": "1", - "retract_before_wipe": "50%", - "retract_lift_below": "1.5", - "z_hop_types": "Auto Lift", - "host_type": "prusalink", - "printable_height": "360", - "machine_end_gcode": "{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+2, max_print_height)} F720{endif} ; Move bed down\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X6 Y350 F6000 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+100, max_print_height)} F300{endif} ; Move bed down\nM900 K0 ; reset LA\nM142 S36 ; reset heatbreak target temp\nM221 S100 ; reset flow percentage\nM84 ; disable motors\n; max_layer_z = [max_layer_z]", - "machine_pause_gcode": "M601", - "machine_start_gcode": "M17 ; enable steppers\nM862.3 P \"XL\" ; printer model check\nM115 U6.0.1+14848\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\n; set print area\nM555 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])}\n; inform about nozzle diameter\nM862.1 P[nozzle_diameter]\n; set & wait for bed and extruder temp for MBL\nM140 S[first_layer_bed_temperature] ; set bed temp\nM104 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\nM109 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\n; home carriage, pick tool, home all\nG28 XY\nM84 E ; turn off E motor\nG28 Z\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nG29 G ; absorb heat\n; move to the nozzle cleanup area\nG1 X{(min(((((first_layer_print_min[0] + first_layer_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) < -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} F4800\nM302 S160 ; lower cold extrusion limit to 160C\nG1 E{-(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; retraction for nozzle cleanup\n; nozzle cleanup\nM84 E ; turn off E motor\nG29 P9 X{((((first_layer_print_min[0] + first_layer_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) < -2) ? 260 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)))} Y{(first_layer_print_min[1] - 7)} W{32} H{7}\nG0 Z10 F480 ; move away in Z\n{if first_layer_bed_temperature[0] > 60}\nG0 Z70 F480 ; move away (a bit more) in Z\nG0 X30 Y{print_bed_min[1]} F6000 ; move away in X/Y for higher bed temperatures\n{endif}\nM106 S100 ; cool off the nozzle\nM107 ; stop cooling off the nozzle - turn off the fan\n; MBL\nM84 E ; turn off E motor\nG29 P1 ; invalidate mbl & probe print area\nG29 P1 X30 Y0 W50 H20 C ; probe near purge place\nG29 P3.2 ; interpolate mbl probes\nG29 P3.13 ; extrapolate mbl outside probe area\nG29 A ; activate mbl\nM104 S[first_layer_temperature] ; set extruder temp\nG1 Z10 F720 ; move away in Z\nG0 X30 Y-8 F6000 ; move next to the sheet\n; wait for extruder temp\nM109 T0 S{first_layer_temperature[0]}\n;\n; purge\n;\nG92 E0 ; reset extruder position\nG0 X{(0 == 0 ? 30 : (0 == 1 ? 150 : (0 == 2 ? 210 : 330)))} Y{(0 < 4 ? -8 : -5.5)} ; move close to the sheet's edge\nG1 E{(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; deretraction after the initial one before nozzle cleaning\nG0 E10 X40 Z0.2 F500 ; purge\nG0 X70 E9 F800 ; purge\nG0 X{70 + 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{70 + 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG92 E0 ; reset extruder position", - "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]", - "change_filament_gcode": "M600\nG1 E0.3 F1500 ; prime after color change", - "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", - "printer_notes": "Don't remove the following keywords! These keywords are used in the \"compatible printer\" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_MODEL_XLIS\nPG\nINPUT_SHAPER", - "scan_first_layer": "0", - "nozzle_type": "hardened_steel", - "auxiliary_fan": "0", - "thumbnails": [ - "16x16/QOI", - "313x173/QOI", - "440x240/QOI", - "480x240/QOI", - "640x480/PNG" - ] + "detraction_speed": "15" } diff --git a/resources/profiles/Prusa/machine/Prusa XL 5T 0.25 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 5T 0.25 nozzle.json index 52343e9ed1..2fc6b341b5 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 5T 0.25 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 5T 0.25 nozzle.json @@ -1,6 +1,6 @@ { "type": "machine", - "setting_id": "GM003", + "setting_id": "GM_PRUSA_007", "name": "Prusa XL 5T 0.25 nozzle", "from": "system", "instantiation": "true", diff --git a/resources/profiles/Prusa/machine/Prusa XL 5T 0.3 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 5T 0.3 nozzle.json index 3dc0db1532..a495d26349 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 5T 0.3 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 5T 0.3 nozzle.json @@ -1,6 +1,6 @@ { "type": "machine", - "setting_id": "GM003", + "setting_id": "GM_PRUSA_001", "name": "Prusa XL 5T 0.3 nozzle", "from": "system", "instantiation": "true", diff --git a/resources/profiles/Prusa/machine/Prusa XL 5T 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 5T 0.4 nozzle.json index 5e7f21ed7e..4dbd7d9b22 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 5T 0.4 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 5T 0.4 nozzle.json @@ -1,6 +1,6 @@ { "type": "machine", - "setting_id": "GM003", + "setting_id": "GM_PRUSA_002", "name": "Prusa XL 5T 0.4 nozzle", "from": "system", "instantiation": "true", diff --git a/resources/profiles/Prusa/machine/Prusa XL 5T 0.5 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 5T 0.5 nozzle.json index 9360cfcd8f..69e355ea2f 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 5T 0.5 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 5T 0.5 nozzle.json @@ -1,6 +1,6 @@ { "type": "machine", - "setting_id": "GM003", + "setting_id": "GM_PRUSA_004", "name": "Prusa XL 5T 0.5 nozzle", "from": "system", "instantiation": "true", diff --git a/resources/profiles/Prusa/machine/Prusa XL 5T 0.6 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 5T 0.6 nozzle.json index bc63b52a5e..03ef5d97ff 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 5T 0.6 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 5T 0.6 nozzle.json @@ -1,6 +1,6 @@ { "type": "machine", - "setting_id": "GM003", + "setting_id": "GM_PRUSA_005", "name": "Prusa XL 5T 0.6 nozzle", "from": "system", "instantiation": "true", diff --git a/resources/profiles/Prusa/machine/Prusa XL 5T 0.8 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 5T 0.8 nozzle.json index 1928a6c73e..27656c4072 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 5T 0.8 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 5T 0.8 nozzle.json @@ -1,6 +1,6 @@ { "type": "machine", - "setting_id": "GM003", + "setting_id": "GM_PRUSA_006", "name": "Prusa XL 5T 0.8 nozzle", "from": "system", "instantiation": "true", diff --git a/resources/profiles/Prusa/machine/Prusa XL 5T.json b/resources/profiles/Prusa/machine/Prusa XL 5T.json index ed1084e3ba..81486d711a 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 5T.json +++ b/resources/profiles/Prusa/machine/Prusa XL 5T.json @@ -1,12 +1,12 @@ { "type": "machine_model", "name": "Prusa XL 5T", - "model_id": "Prusa XL 5T", + "model_id": "prusa_xl_5t_01", "nozzle_diameter": "0.25;0.3;0.4;0.5;0.6;0.8", "machine_tech": "FFF", "family": "Prusa", "bed_model": "Prusa XL_bed.stl", - "bed_texture": "Prusa XL 5T.svg", + "bed_texture": "Prusa XL.svg", "hotend_model": "", "default_materials": "Prusa Generic PLA @XL 5T;Prusament PLA @XL 5T;Prusament rPLA @XL 5T;Prusa Generic PETG @XL 5T;Prusament PETG @XL 5T;Prusa Generic ABS @XL 5T;Prusament ASA @XL 5T;Prusament PC Blend @XL 5T;Prusament PC-CF @XL 5T;Prusament PVB @XL 5T;Prusament PA-CF @XL 5T" } diff --git a/resources/profiles/Prusa/machine/fdm_machine_common_xl_5t.json b/resources/profiles/Prusa/machine/fdm_machine_common_xl_5t.json index 587d416602..ff3cabed2b 100644 --- a/resources/profiles/Prusa/machine/fdm_machine_common_xl_5t.json +++ b/resources/profiles/Prusa/machine/fdm_machine_common_xl_5t.json @@ -11,12 +11,11 @@ "extruder_clearance_height_to_rod": "21", "extruder_clearance_height_to_lid": "21", "printer_variant": "0.4", - "machine_end_gcode": "{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+2, max_print_height)} F720{endif} ; Move bed down\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X6 Y350 F6000 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+100, max_print_height)} F300{endif} ; Move bed down\nM900 K0 ; reset LA\nM142 S36 ; reset heatbreak target temp\nM221 S100 ; reset flow percentage\nM84 ; disable motors\n; max_layer_z = [max_layer_z]", "machine_pause_gcode": "M601", - "machine_start_gcode": "M17 ; enable steppers\nM862.3 P \"XL\" ; printer model check\nM115 U6.0.1+14848\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\n; set print area\nM555 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])}\n; inform about nozzle diameter\nM862.1 P[nozzle_diameter]\n; set & wait for bed and extruder temp for MBL\nM140 S[first_layer_bed_temperature] ; set bed temp\nM104 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\nM109 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\n; home carriage, pick tool, home all\nG28 XY\nM84 E ; turn off E motor\nG28 Z\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nG29 G ; absorb heat\n; move to the nozzle cleanup area\nG1 X{(min(((((first_layer_print_min[0] + first_layer_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) < -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} F4800\nM302 S160 ; lower cold extrusion limit to 160C\nG1 E{-(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; retraction for nozzle cleanup\n; nozzle cleanup\nM84 E ; turn off E motor\nG29 P9 X{((((first_layer_print_min[0] + first_layer_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) < -2) ? 260 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)))} Y{(first_layer_print_min[1] - 7)} W{32} H{7}\nG0 Z10 F480 ; move away in Z\n{if first_layer_bed_temperature[0] > 60}\nG0 Z70 F480 ; move away (a bit more) in Z\nG0 X30 Y{print_bed_min[1]} F6000 ; move away in X/Y for higher bed temperatures\n{endif}\nM106 S100 ; cool off the nozzle\nM107 ; stop cooling off the nozzle - turn off the fan\n; MBL\nM84 E ; turn off E motor\nG29 P1 ; invalidate mbl & probe print area\nG29 P1 X30 Y0 W50 H20 C ; probe near purge place\nG29 P3.2 ; interpolate mbl probes\nG29 P3.13 ; extrapolate mbl outside probe area\nG29 A ; activate mbl\nM104 S[first_layer_temperature] ; set extruder temp\nG1 Z10 F720 ; move away in Z\nG0 X30 Y-8 F6000 ; move next to the sheet\n; wait for extruder temp\nM109 T0 S{first_layer_temperature[0]}\n;\n; purge\n;\nG92 E0 ; reset extruder position\nG0 X{(0 == 0 ? 30 : (0 == 1 ? 150 : (0 == 2 ? 210 : 330)))} Y{(0 < 4 ? -8 : -5.5)} ; move close to the sheet's edge\nG1 E{(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; deretraction after the initial one before nozzle cleaning\nG0 E10 X40 Z0.2 F500 ; purge\nG0 X70 E9 F800 ; purge\nG0 X{70 + 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{70 + 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG92 E0 ; reset extruder position", - "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]", - "change_filament_gcode": "M600\nG1 E0.3 F1500 ; prime after color change", + "machine_start_gcode": "M17 ; enable steppers\nM862.3 P \"XL\" ; printer model check\nM862.5 P2 ; g-code level check\nM862.6 P\"Input shaper\" ; FW feature check\nM115 U6.0.3+14902\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\n; set print area\nM555 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])}\n; inform about nozzle diameter\n{if (is_extruder_used[0])}M862.1 T0 P{nozzle_diameter[0]}{endif}\n{if (is_extruder_used[1])}M862.1 T1 P{nozzle_diameter[1]}{endif}\n{if (is_extruder_used[2])}M862.1 T2 P{nozzle_diameter[2]}{endif}\n{if (is_extruder_used[3])}M862.1 T3 P{nozzle_diameter[3]}{endif}\n{if (is_extruder_used[4])}M862.1 T4 P{nozzle_diameter[4]}{endif}\n\n; turn off unused heaters\n{if ! is_extruder_used[0]} M104 T0 S0 {endif}\n{if ! is_extruder_used[1]} M104 T1 S0 {endif}\n{if num_extruders > 2 and ! is_extruder_used[2]} M104 T2 S0 {endif}\n{if num_extruders > 3 and ! is_extruder_used[3]} M104 T3 S0 {endif}\n{if num_extruders > 4 and ! is_extruder_used[4]} M104 T4 S0 {endif}\n\nM217 Z{max(zhop, 2.0)} ; set toolchange z hop to 2mm, or zhop variable from slicer if higher\n; set bed and extruder temp for MBL\nM140 S[first_layer_bed_temperature] ; set bed temp\nG0 Z5 ; add Z clearance\nM109 T{initial_tool} S{((filament_notes[initial_tool]=~/.*HT_MBL10.*/) ? (first_layer_temperature[initial_tool] - 10) : (filament_type[initial_tool] == \"PC\" or filament_type[initial_tool] == \"PA\") ? (first_layer_temperature[initial_tool] - 25) : (filament_type[initial_tool] == \"FLEX\") ? 210 : (filament_type[initial_tool]=~/.*PET.*/) ? 175 : 170)} ; wait for temp\n\n; Home XY\nG28 XY\n; try picking tools used in print\nG1 F{travel_speed * 60}\n{if (is_extruder_used[0]) and (initial_tool != 0)}T0 S1 L0 D0{endif}\n{if (is_extruder_used[1]) and (initial_tool != 1)}T1 S1 L0 D0{endif}\n{if (is_extruder_used[2]) and (initial_tool != 2)}T2 S1 L0 D0{endif}\n{if (is_extruder_used[3]) and (initial_tool != 3)}T3 S1 L0 D0{endif}\n{if (is_extruder_used[4]) and (initial_tool != 4)}T4 S1 L0 D0{endif}\n; select tool that will be used to home & MBL\nT{initial_tool} S1 L0 D0\n; home Z with MBL tool\nM84 E ; turn off E motor\nG28 Z\nG0 Z5 ; add Z clearance\n\nM104 T{initial_tool} S{if idle_temperature[initial_tool] == 0}70{else}{idle_temperature[initial_tool]}{endif} ; set idle temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\n\nG29 G ; absorb heat\n\nM109 T{initial_tool} S{((filament_notes[initial_tool]=~/.*HT_MBL10.*/) ? (first_layer_temperature[initial_tool] - 10) : (filament_type[initial_tool] == \"PC\" or filament_type[initial_tool] == \"PA\") ? (first_layer_temperature[initial_tool] - 25) : (filament_type[initial_tool] == \"FLEX\") ? 210 : (filament_type[initial_tool]=~/.*PET.*/) ? 175 : 170)} ; wait for temp\n\n; move to the nozzle cleanup area\nG1 X{(min(((((first_layer_print_min[0] + first_layer_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) < -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)}\nM302 S160 ; lower cold extrusion limit to 160C\nG1 E{-(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; retraction for nozzle cleanup\n; nozzle cleanup\nM84 E ; turn off E motor\nG29 P9 X{((((first_layer_print_min[0] + first_layer_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) < -2) ? 260 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)))} Y{(first_layer_print_min[1] - 7)} W{32} H{7}\nG0 Z5 F480 ; move away in Z\nM107 ; turn off the fan\n; MBL\nM84 E ; turn off E motor\nG29 P1 ; invalidate mbl & probe print area\nG29 P1 X30 Y0 W{(((is_extruder_used[4]) or ((is_extruder_used[3]) or (is_extruder_used[2]))) ? \"300\" : ((is_extruder_used[1]) ? \"130\" : \"50\"))} H20 C ; probe near purge place\nG29 P3.2 ; interpolate mbl probes\nG29 P3.13 ; extrapolate mbl outside probe area\nG29 A ; activate mbl\nG1 Z10 F720 ; move away in Z\nG1 F{travel_speed * 60}\nP0 S1 L1 D0; park the tool\n; set extruder temp\n{if first_layer_temperature[0] > 0 and (is_extruder_used[0])}M104 T0 S{first_layer_temperature[0]}{endif}\n{if first_layer_temperature[1] > 0 and (is_extruder_used[1])}M104 T1 S{first_layer_temperature[1]}{endif}\n{if first_layer_temperature[2] > 0 and (is_extruder_used[2])}M104 T2 S{first_layer_temperature[2]}{endif}\n{if first_layer_temperature[3] > 0 and (is_extruder_used[3])}M104 T3 S{first_layer_temperature[3]}{endif}\n{if first_layer_temperature[4] > 0 and (is_extruder_used[4])}M104 T4 S{first_layer_temperature[4]}{endif}\n{if (is_extruder_used[0]) and initial_tool != 0}\n;\n; purge first tool\n;\nG1 F{travel_speed * 60}\nP0 S1 L2 D0; park the tool\nM109 T0 S{first_layer_temperature[0]}\nT0 S1 L0 D0; pick the tool\nG92 E0 ; reset extruder position\n\nG0 X{(0 == 0 ? 30 : (0 == 1 ? 150 : (0 == 2 ? 210 : 330)))} Y{(0 < 4 ? -7 : -4.5)} Z10 F{(travel_speed * 60)} ; move close to the sheet's edge\nG0 E{if filament_multitool_ramming[0]}10{else}30{endif} X40 Z0.2 F{if filament_multitool_ramming[0]}500{else}170{endif} ; purge while moving towards the sheet\nG0 X70 E9 F800 ; continue purging and wipe the nozzle\nG0 X{70 + 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{70 + 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG1 E{- 1.5 * retract_length[0]} F2400 ; retract\n{e_retracted[0] = 1.5 * retract_length[0]} ; update slicer internal retract variable\nG92 E0 ; reset extruder position\n\nM104 S{(idle_temperature[0] == 0 ? (first_layer_temperature[0] + standby_temperature_delta) : (idle_temperature[0]))} T0\n{endif}\n{if (is_extruder_used[1]) and initial_tool != 1}\n;\n; purge second tool\n;\nG1 F{travel_speed * 60}\nP0 S1 L2 D0; park the tool\nM109 T1 S{first_layer_temperature[1]}\nT1 S1 L0 D0; pick the tool\nG92 E0 ; reset extruder position\n\nG0 X{(1 == 0 ? 30 : (1 == 1 ? 150 : (1 == 2 ? 210 : 330)))} Y{(1 < 4 ? -7 : -4.5)} Z10 F{(travel_speed * 60)} ; move close to the sheet's edge\nG0 E{if filament_multitool_ramming[1]}10{else}30{endif} X140 Z0.2 F{if filament_multitool_ramming[1]}500{else}170{endif} ; purge while moving towards the sheet\nG0 X110 E9 F800 ; continue purging and wipe the nozzle\nG0 X{110 - 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{110 - 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG1 E{- 1.5 * retract_length[1]} F2400 ; retract\n{e_retracted[1] = 1.5 * retract_length[1]} ; update slicer internal retract variable\nG92 E0 ; reset extruder position\n\nM104 S{(idle_temperature[1] == 0 ? (first_layer_temperature[1] + standby_temperature_delta) : (idle_temperature[1]))} T1\n{endif}\n{if (is_extruder_used[2]) and initial_tool != 2}\n;\n; purge third tool\n;\nG1 F{travel_speed * 60}\nP0 S1 L2 D0; park the tool\nM109 T2 S{first_layer_temperature[2]}\nT2 S1 L0 D0; pick the tool\nG92 E0 ; reset extruder position\n\nG0 X{(2 == 0 ? 30 : (2 == 1 ? 150 : (2 == 2 ? 210 : 330)))} Y{(2 < 4 ? -7 : -4.5)} Z10 F{(travel_speed * 60)} ; move close to the sheet's edge\nG0 E{if filament_multitool_ramming[2]}10{else}30{endif} X220 Z0.2 F{if filament_multitool_ramming[2]}500{else}170{endif} ; purge while moving towards the sheet\nG0 X250 E9 F800 ; continue purging and wipe the nozzle\nG0 X{250 + 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{250 + 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG1 E{- 1.5 * retract_length[2]} F2400 ; retract\n{e_retracted[2] = 1.5 * retract_length[2]} ; update slicer internal retract variable\nG92 E0 ; reset extruder position\n\nM104 S{(idle_temperature[2] == 0 ? (first_layer_temperature[2] + standby_temperature_delta) : (idle_temperature[2]))} T2\n{endif}\n{if (is_extruder_used[3]) and initial_tool != 3}\n;\n; purge fourth tool\n;\nG1 F{travel_speed * 60}\nP0 S1 L2 D0; park the tool\nM109 T3 S{first_layer_temperature[3]}\nT3 S1 L0 D0; pick the tool\nG92 E0 ; reset extruder position\n\nG0 X{(3 == 0 ? 30 : (3 == 1 ? 150 : (3 == 2 ? 210 : 330)))} Y{(3 < 4 ? -7 : -4.5)} Z10 F{(travel_speed * 60)} ; move close to the sheet's edge\nG0 E{if filament_multitool_ramming[3]}10{else}30{endif} X320 Z0.2 F{if filament_multitool_ramming[3]}500{else}170{endif} ; purge while moving towards the sheet\nG0 X290 E9 F800 ; continue purging and wipe the nozzle\nG0 X{290 - 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{290 - 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG1 E{- 1.5 * retract_length[3]} F2400 ; retract\n{e_retracted[3] = 1.5 * retract_length[3]} ; update slicer internal retract variable\nG92 E0 ; reset extruder position\n\nM104 S{(idle_temperature[3] == 0 ? (first_layer_temperature[3] + standby_temperature_delta) : (idle_temperature[3]))} T3\n{endif}\n{if (is_extruder_used[4]) and initial_tool != 4}\n;\n; purge fifth tool\n;\nG1 F{travel_speed * 60}\nP0 S1 L2 D0; park the tool\nM109 T4 S{first_layer_temperature[4]}\nT4 S1 L0 D0; pick the tool\nG92 E0 ; reset extruder position\n\nG0 X{(4 == 0 ? 30 : (4 == 1 ? 150 : (4 == 2 ? 210 : 330)))} Y{(4 < 4 ? -7 : -4.5)} Z10 F{(travel_speed * 60)} ; move close to the sheet's edge\nG0 E{if filament_multitool_ramming[4]}10{else}30{endif} X320 Z0.2 F{if filament_multitool_ramming[4]}500{else}170{endif} ; purge while moving towards the sheet\nG0 X290 E9 F800 ; continue purging and wipe the nozzle\nG0 X{290 - 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{290 - 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG1 E{- 1.5 * retract_length[4]} F2400 ; retract\n{e_retracted[4] = 1.5 * retract_length[4]} ; update slicer internal retract variable\nG92 E0 ; reset extruder position\n\nM104 S{(idle_temperature[4] == 0 ? (first_layer_temperature[4] + standby_temperature_delta) : (idle_temperature[4]))} T4\n{endif}\n;\n; purge initial tool\n;\nG1 F{travel_speed * 60}\nP0 S1 L2 D0; park the tool\nM109 T{initial_tool} S{first_layer_temperature[initial_tool]}\nT{initial_tool} S1 L0 D0; pick the tool\nG92 E0 ; reset extruder position\n\nG0 X{(initial_tool == 0 ? 30 : (initial_tool == 1 ? 150 : (initial_tool == 2 ? 210 : 330)))} Y{(initial_tool < 4 ? -7 : -4.5)} Z10 F{(travel_speed * 60)} ; move close to the sheet's edge\nG0 E{if filament_multitool_ramming[initial_tool]}10{else}30{endif} X{(initial_tool == 0 ? 30 : (initial_tool == 1 ? 150 : (initial_tool == 2 ? 210 : 330))) + ((initial_tool == 0 or initial_tool == 2 ? 1 : -1) * 10)} Z0.2 F{if filament_multitool_ramming[initial_tool]}500{else}170{endif} ; purge while moving towards the sheet\nG0 X{(initial_tool == 0 ? 30 : (initial_tool == 1 ? 150 : (initial_tool == 2 ? 210 : 330))) + ((initial_tool == 0 or initial_tool == 2 ? 1 : -1) * 40)} E9 F800 ; continue purging and wipe the nozzle\nG0 X{(initial_tool == 0 ? 30 : (initial_tool == 1 ? 150 : (initial_tool == 2 ? 210 : 330))) + ((initial_tool == 0 or initial_tool == 2 ? 1 : -1) * 40) + ((initial_tool == 0 or initial_tool == 2 ? 1 : -1) * 3)} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{(initial_tool == 0 ? 30 : (initial_tool == 1 ? 150 : (initial_tool == 2 ? 210 : 330))) + ((initial_tool == 0 or initial_tool == 2 ? 1 : -1) * 40) + ((initial_tool == 0 or initial_tool == 2 ? 1 : -1) * 3 * 2)} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG1 E{- 1.5 * retract_length[initial_tool]} F2400 ; retract\n{e_retracted[initial_tool] = 1.5 * retract_length[initial_tool]}\nG92 E0 ; reset extruder position\n", + "machine_end_gcode": "G4 ; wait\n\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+5, max_print_height)}{endif} ; Move bed down\n\nP0 S1 ; park tool\n\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+97, max_print_height)} F300{endif} ; Move bed further down\n\n; turn off extruder heaters\n{if is_extruder_used[0]} M104 T0 S0 {endif}\n{if is_extruder_used[1]} M104 T1 S0 {endif}\n{if is_extruder_used[2]} M104 T2 S0 {endif}\n{if is_extruder_used[3]} M104 T3 S0 {endif}\n{if is_extruder_used[4]} M104 T4 S0 {endif}\n\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nM221 S100 ; reset flow percentage\nM84 ; disable motors\nM77 ; stop print timer\n; max_layer_z = [max_layer_z]", + "change_filament_gcode": "; Change Tool[previous_extruder] -> Tool[next_extruder] (layer [layer_num])\n{if travel_speed > 350.0}\nG1 F{350.0 * 60} \n{else}\nG1 F{travel_speed * 60} \n{endif}\nP0 S1 L2 D0\n; [layer_num]\n{if layer_num == 0}\nM109 S{first_layer_temperature[next_extruder]} T[next_extruder]\n{else}\nM109 S{nozzle_temperature[next_extruder]} T[next_extruder]\n{endif}\nT[next_extruder] S1 L0 D0\n", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]\n", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", - "printer_notes": "Don't remove the following keywords! These keywords are used in the \"compatible printer\" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_MODEL_XLIS\nPG\nINPUT_SHAPER" - + "printer_notes": "Do not remove the keywords below.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_XLIS\nPG\nINPUT_SHAPER" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/process_common_xl.json b/resources/profiles/Prusa/process/process_common_xl.json index f3f2a7e791..65622abadb 100644 --- a/resources/profiles/Prusa/process/process_common_xl.json +++ b/resources/profiles/Prusa/process/process_common_xl.json @@ -92,5 +92,7 @@ "min_bead_width": "85%", "min_feature_size": "25%", "filename_format": "{input_filename_base}_{layer_height}mm_{filament_type[initial_tool]}_{print_time}.gcode", - "gcode_label_objects": "1" + "gcode_label_objects": "1", + "exclude_object": "1" + } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/process_common_xl_5t.json b/resources/profiles/Prusa/process/process_common_xl_5t.json index abcc096c6c..f624f7780a 100644 --- a/resources/profiles/Prusa/process/process_common_xl_5t.json +++ b/resources/profiles/Prusa/process/process_common_xl_5t.json @@ -7,5 +7,8 @@ "enable_prime_tower": "1", "wipe_tower_cone_angle": "25", "wipe_tower_extra_spacing": "150%", - "wipe_tower_rotation_angle": "90" + "wipe_tower_rotation_angle": "90", + "single_extruder_multi_material_priming": "0", + "ooze_prevention": "1", + "standby_temperature_delta": "-40" } \ No newline at end of file