diff --git a/resources/profiles/Prusa.json b/resources/profiles/Prusa.json index bb0ca7890e..00197aea6a 100644 --- a/resources/profiles/Prusa.json +++ b/resources/profiles/Prusa.json @@ -19,6 +19,10 @@ { "name": "MINI", "sub_path": "machine/Prusa MINI.json" + }, + { + "name": "XL", + "sub_path": "machine/Prusa XL.json" } ], "process_list": [ @@ -46,6 +50,10 @@ "name": "process_common_mk3", "sub_path": "process/process_common_mk3.json" }, + { + "name": "process_common_xl", + "sub_path": "process/process_common_xl.json" + }, { "name": "0.20mm Standard @MINI 0.25", "sub_path": "process/0.20mm Standard @MINI 0.25.json" @@ -231,8 +239,6 @@ "name": "0.20mm Speed @MINIIS 0.6", "sub_path": "process/0.20mm Speed @MINIIS 0.6.json" }, - - { "name": "0.25mm Standard @MINIIS", @@ -282,6 +288,10 @@ "name": "0.56mm Standard @MK4", "sub_path": "process/0.56mm Standard @MK4.json" + }, + { + "name": "0.20mm Speed @XL 0.4", + "sub_path": "process/0.20mm Speed @XL 0.4.json" } ], "filament_list": [ @@ -345,6 +355,10 @@ "name": "Prusa Generic PLA @MINIIS", "sub_path": "filament/Prusa Generic PLA @MINIIS.json" }, + { + "name": "Prusa Generic PLA @XL", + "sub_path": "filament/Prusa Generic PLA @XL.json" + }, { "name": "Prusa Generic PLA-CF", "sub_path": "filament/Prusa Generic PLA-CF.json" @@ -598,6 +612,10 @@ { "name": "Prusa MINI 0.8 nozzle", "sub_path": "machine/Prusa MINI 0.8 nozzle.json" + }, + { + "name": "Prusa XL 0.4 nozzle", + "sub_path": "machine/Prusa XL 0.4 nozzle.json" } ] } diff --git a/resources/profiles/Prusa/XL_cover.png b/resources/profiles/Prusa/XL_cover.png new file mode 100644 index 0000000000..5b1d0403c6 Binary files /dev/null and b/resources/profiles/Prusa/XL_cover.png differ diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @XL.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @XL.json new file mode 100644 index 0000000000..c5da1f4a78 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @XL.json @@ -0,0 +1,40 @@ +{ + "type": "filament", + "filament_id": "GFL99_1", + "setting_id": "GFSA04", + "name": "Prusa Generic PLA @MK4", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "nozzle_temperature_intial_layer": "215", + "nozzle_temperature": "210", + "full_fan_speed_layer": "3", + "slow_down_min_speed": "15", + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "slow_down_layer_time": [ + "10" + ], + "filament_loading_speed_start": "50", + "filament_loading_speed": "10", + "filament_unloading_speed_start": "100", + "filament_unloading_speed": "100", + "filament_load_time": "10.5", + "filament_unload_time": "8.5", + "filament_cooling_moves": "2", + "filament_cooling_initial_speed": "10", + "filament_cooling_final_speed": "3.5", + "total_ramming_time": "1.25", + "total_rammed_volume": "50", + "ramming_line_width": "250%", + "ramming_line_spacing": "100%", + "filament_retract_lift_below": "0.6", + "filament_start_gcode": "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.05{elsif nozzle_diameter[filament_extruder_id]==0.25}0.14{elsif nozzle_diameter[filament_extruder_id]==0.3}0.07{elsif nozzle_diameter[filament_extruder_id]==0.35}0.06{elsif nozzle_diameter[filament_extruder_id]==0.6}0.03{elsif nozzle_diameter[filament_extruder_id]==0.5}0.035{elsif nozzle_diameter[filament_extruder_id]==0.8}0.015{else}0{endif} ; Filament gcode\n{if printer_notes=~/.*(MK4IS|XLIS).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.036{elsif nozzle_diameter[filament_extruder_id]==0.5}0.025{elsif nozzle_diameter[filament_extruder_id]==0.6}0.02{elsif nozzle_diameter[filament_extruder_id]==0.8}0.014{elsif nozzle_diameter[filament_extruder_id]==0.25}0.12{elsif nozzle_diameter[filament_extruder_id]==0.3}0.08{else}0{endif} ; Filament gcode\n{endif}\nM142 S36 ; set heatbreak target temp", + "compatible_printers": [ + "Prusa XL 0.4 nozzle" + ] +} diff --git a/resources/profiles/Prusa/machine/Prusa XL 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 0.4 nozzle.json new file mode 100644 index 0000000000..2c764c39e6 --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa XL 0.4 nozzle.json @@ -0,0 +1,119 @@ +{ + "type": "machine", + "setting_id": "GM003", + "name": "Prusa XL 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common", + "gcode_flavor": "marlin2", + "printer_model": "XL", + "default_filament_profile": "Prusa Generic PLA @XL", + "default_print_profile": "0.20mm Speed @XL 0.4", + "extruder_clearance_radius": "67", + "extruder_clearance_height_to_rod": "21", + "extruder_clearance_height_to_lid": "21", + "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": [ + "3000", + "3000" + ], + "machine_max_acceleration_retracting": [ + "1200", + "1200" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "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.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": "slope", + "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": "Do not remove the keywords below.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_XL\nPG", + "scan_first_layer": "0", + "machine_load_filament_time": "17", + "machine_unload_filament_time": "16", + "nozzle_type": "hardened_steel", + "auxiliary_fan": "0", + "thumbnails": [ + "16x16", + "313x173", + "440x240", + "480x240", + "640x480" + ] +} diff --git a/resources/profiles/Prusa/machine/Prusa XL.json b/resources/profiles/Prusa/machine/Prusa XL.json new file mode 100644 index 0000000000..be109bfc3f --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa XL.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Prusa XL", + "model_id": "XL", + "nozzle_diameter": "0.4", + "machine_tech": "FFF", + "family": "Prusa", + "bed_model": "xl_bed.stl", + "bed_texture": "xl.svg", + "hotend_model": "", + "default_materials": "" +} diff --git a/resources/profiles/Prusa/process/0.20mm Speed @XL 0.4.json b/resources/profiles/Prusa/process/0.20mm Speed @XL 0.4.json new file mode 100644 index 0000000000..29ea799f69 --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm Speed @XL 0.4.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.20mm Speed @XL 0.4", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "compatible_printers": [ + "Prusa XL 0.4 nozzle" + ] +} \ 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 new file mode 100644 index 0000000000..17784799cb --- /dev/null +++ b/resources/profiles/Prusa/process/process_common_xl.json @@ -0,0 +1,90 @@ +{ + "type": "process", + "name": "process_common_xl", + "from": "system", + "instantiation": "false", + "inherits": "fdm_process_common", + "infill_combination": "1", + "infill_anchor": "2", + "wall_loops": "2", + "top_shell_layers": "5", + "bottom_shell_layers": "4", + "top_shell_thickness": "0.7", + "wall_generator": "arachne", + "gap_fill_target": "everywhere", + "bottom_shell_thickness": "0.5", + "infill_anchor_max": "12", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "skirt_height": "3", + "brim_type": "outer_only", + "brim_width": "0", + "support_threshold_angle": "45", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3", + "support_type": "tree(auto)", + "support_style": "organic", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_bottom_layers": "0", + "support_interface_pattern": "rectilinear", + "support_interface_spacing": "0.2", + "support_object_xy_distance": "80%", + "tree_support_branch_angle_organic": "40", + "tree_support_angle_slow": "30", + "tree_support_branch_diameter_organic": "2", + "tree_support_bramch_diameter_angle": "3", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_tip_diameter": "0.6", + "tree_support_top_rate": "30%", + "tree_support_branch_distance_organic": "1", + "initial_layer_speed": "25", + "initial_layer_infill_speed": "25", + "outer_wall_speed": "70", + "inner_wall_speed": "90", + "small_perimeter_speed": "40", + "sparse_infill_speed": "200", + "top_surface_speed": "40", + "internal_solid_infill_speed": "140", + "support_speed": "60", + "support_interface_speed": "70%", + "bridge_speed": "25", + "gap_infill_speed": "45", + "ironing_speed": "15", + "enable_overhang_speed": "1", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "15", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "25", + "travel_speed": "400", + "default_acceleration": "1250", + "outer_wall_acceleration": "1000", + "inner_wall_acceleration": "1200", + "top_surface_acceleration": "800", + "internal_solid_infill_acceleration": "2000", + "sparse_infill_acceleration": "3000", + "bridge_acceleration": "1000", + "initial_layer_acceleration": "600", + "travel_acceleration": "0", + "line_width": "0.45", + "initial_layer_line_width": "0.5", + "outer_wall_line_width": "0.45", + "inner_wall_line_width": "0.45", + "top_surface_line_width": "0.42", + "sparse_infill_line_width": "0.45", + "internal_solid_infill_line_width": "0.45", + "support_line_width": "0.37", + "infill_wall_overlap": "10%", + "slice_closing_radius": "0.049", + "resolution": "0.0125", + "enable_arc_fitting": "1", + "elefant_foot_compensation": "0.2", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wall_distribution_count": "1", + "min_bead_width": "85%", + "min_feature_size": "25%", + "filename_format": "{input_filename_base}_0.4n_{layer_height}mm_{printing_filament_types}_XL_{print_time}.gcode", + "gcode_label_objects": "1" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/xl.svg b/resources/profiles/Prusa/xl.svg new file mode 100644 index 0000000000..759d7d2fbf --- /dev/null +++ b/resources/profiles/Prusa/xl.svg @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/profiles/Prusa/xl_bed.stl b/resources/profiles/Prusa/xl_bed.stl new file mode 100644 index 0000000000..2ddf418317 Binary files /dev/null and b/resources/profiles/Prusa/xl_bed.stl differ