From 5effea2e1a1a2187a255d6110c788ae578bb8615 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Fri, 5 Jan 2018 15:59:05 +0100 Subject: [PATCH 01/24] Updated printer profiles. --- ...inal Prusa i3 MK2, MK2S, MK2MM and MK3.ini | 160 +++---- resources/profiles/Original Prusa i3 MK3.ini | 452 +++++++----------- 2 files changed, 253 insertions(+), 359 deletions(-) diff --git a/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini b/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini index 0ee20e8ea..160bece78 100644 --- a/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini +++ b/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini @@ -1,4 +1,4 @@ -# generated by Slic3r Prusa Edition 1.38.4 on 2017-12-21 at 17:47:55 +# generated by Slic3r Prusa Edition 1.38.4.17-prusa3d-win32 on 2018-01-04 at 17:24:45 [print:0.05mm DETAIL] avoid_crossing_perimeters = 0 @@ -248,7 +248,7 @@ gcode_comments = 0 infill_acceleration = 800 infill_every_layers = 1 infill_extruder = 1 -infill_extrusion_width = 0.5 +infill_extrusion_width = 0.45 infill_first = 0 infill_only_where_needed = 0 infill_overlap = 25% @@ -307,7 +307,7 @@ support_material_with_sheath = 0 support_material_xy_spacing = 60% thin_walls = 0 threads = 4 -top_infill_extrusion_width = 0.45 +top_infill_extrusion_width = 0.4 top_solid_infill_speed = 20 top_solid_layers = 15 travel_speed = 180 @@ -532,7 +532,7 @@ xy_size_compensation = 0 [print:0.10mm DETAIL MK3] avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 +bottom_solid_layers = 7 bridge_acceleration = 1000 bridge_angle = 0 bridge_flow_ratio = 0.8 @@ -548,7 +548,7 @@ elefant_foot_compensation = 0 ensure_vertical_shell_thickness = 1 external_fill_pattern = rectilinear external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 40 +external_perimeter_speed = 35 external_perimeters_first = 0 extra_perimeters = 0 extruder_clearance_height = 20 @@ -586,7 +586,7 @@ overhangs = 0 perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 -perimeter_speed = 60 +perimeter_speed = 45 perimeters = 2 post_process = print_settings_id = @@ -627,7 +627,7 @@ thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 50 -top_solid_layers = 5 +top_solid_layers = 9 travel_speed = 250 wipe_tower = 0 wipe_tower_per_color_wipe = 15 @@ -1062,7 +1062,7 @@ xy_size_compensation = 0 [print:0.15mm OPTIMAL MK3] avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 +bottom_solid_layers = 5 bridge_acceleration = 1000 bridge_angle = 0 bridge_flow_ratio = 0.8 @@ -1078,7 +1078,7 @@ elefant_foot_compensation = 0 ensure_vertical_shell_thickness = 1 external_fill_pattern = rectilinear external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 40 +external_perimeter_speed = 35 external_perimeters_first = 0 extra_perimeters = 0 extruder_clearance_height = 20 @@ -1116,7 +1116,7 @@ overhangs = 0 perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 -perimeter_speed = 60 +perimeter_speed = 45 perimeters = 2 post_process = print_settings_id = @@ -1157,7 +1157,7 @@ thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 50 -top_solid_layers = 5 +top_solid_layers = 7 travel_speed = 250 wipe_tower = 1 wipe_tower_per_color_wipe = 15 @@ -1714,7 +1714,7 @@ elefant_foot_compensation = 0 ensure_vertical_shell_thickness = 1 external_fill_pattern = rectilinear external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 40 +external_perimeter_speed = 35 external_perimeters_first = 0 extra_perimeters = 0 extruder_clearance_height = 20 @@ -1752,7 +1752,7 @@ overhangs = 0 perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 -perimeter_speed = 60 +perimeter_speed = 45 perimeters = 2 post_process = print_settings_id = @@ -2243,16 +2243,16 @@ dont_support_bridges = 1 elefant_foot_compensation = 0 ensure_vertical_shell_thickness = 1 external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.6 -external_perimeter_speed = 40 +external_perimeter_extrusion_width = 0.45 +external_perimeter_speed = 35 external_perimeters_first = 0 extra_perimeters = 0 extruder_clearance_height = 20 extruder_clearance_radius = 20 extrusion_width = 0.45 fill_angle = 45 -fill_density = 20% -fill_pattern = cubic +fill_density = 10% +fill_pattern = rectilinear first_layer_acceleration = 1000 first_layer_extrusion_width = 0.42 first_layer_height = 0.2 @@ -2262,7 +2262,7 @@ gcode_comments = 0 infill_acceleration = 3500 infill_every_layers = 1 infill_extruder = 1 -infill_extrusion_width = 0.7 +infill_extrusion_width = 0.45 infill_first = 0 infill_only_where_needed = 0 infill_overlap = 25% @@ -2282,7 +2282,7 @@ overhangs = 0 perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 -perimeter_speed = 60 +perimeter_speed = 45 perimeters = 2 post_process = print_settings_id = @@ -2296,7 +2296,7 @@ small_perimeter_speed = 20 solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.7 +solid_infill_extrusion_width = 0.45 solid_infill_speed = 200 spiral_vase = 0 standby_temperature_delta = -5 @@ -2544,7 +2544,7 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[filament:ColorFabb Brass Bronze 1.75mm] +[filament:ColorFabb Brass Bronze] bed_temperature = 60 bridge_fan_speed = 100 compatible_printers = @@ -2567,13 +2567,13 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 210 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 210 -[filament:ColorFabb HT 1.75mm] +[filament:ColorFabb HT] bed_temperature = 105 bridge_fan_speed = 30 compatible_printers = @@ -2598,7 +2598,7 @@ first_layer_temperature = 270 max_fan_speed = 20 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 270 @@ -2625,13 +2625,13 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 215 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 210 -[filament:ColorFabb Woodfil 1.75mm] +[filament:ColorFabb Woodfil] bed_temperature = 60 bridge_fan_speed = 100 compatible_printers = @@ -2654,13 +2654,13 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 200 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 200 -[filament:ColorFabb XT 1.75mm] +[filament:ColorFabb XT] bed_temperature = 90 bridge_fan_speed = 50 compatible_printers = @@ -2685,11 +2685,11 @@ first_layer_temperature = 260 max_fan_speed = 50 min_fan_speed = 30 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 270 -[filament:ColorFabb XT-CF20 1.75mm] +[filament:ColorFabb XT-CF20] bed_temperature = 90 bridge_fan_speed = 50 compatible_printers = @@ -2714,11 +2714,11 @@ first_layer_temperature = 260 max_fan_speed = 50 min_fan_speed = 30 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 260 -[filament:ColorFabb nGen 1.75mm] +[filament:ColorFabb nGen] bed_temperature = 85 bridge_fan_speed = 40 compatible_printers = @@ -2743,7 +2743,7 @@ first_layer_temperature = 240 max_fan_speed = 35 min_fan_speed = 20 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 @@ -2772,7 +2772,7 @@ first_layer_temperature = 260 max_fan_speed = 35 min_fan_speed = 20 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 260 @@ -2801,11 +2801,11 @@ first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 -[filament:E3D PC-ABS 1.75mm] +[filament:E3D PC-ABS] bed_temperature = 100 bridge_fan_speed = 30 compatible_printers = @@ -2830,11 +2830,11 @@ first_layer_temperature = 270 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 270 -[filament:Fillamentum ABS 1.75mm] +[filament:Fillamentum ABS] bed_temperature = 100 bridge_fan_speed = 30 compatible_printers = @@ -2859,11 +2859,11 @@ first_layer_temperature = 240 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 240 -[filament:Fillamentum ASA 1.75mm] +[filament:Fillamentum ASA] bed_temperature = 100 bridge_fan_speed = 30 compatible_printers = @@ -2888,7 +2888,7 @@ first_layer_temperature = 265 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 265 @@ -2917,7 +2917,7 @@ first_layer_temperature = 260 max_fan_speed = 80 min_fan_speed = 80 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 260 @@ -2944,13 +2944,13 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 190 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 190 -[filament:Generic ABS 1.75mm] +[filament:Generic ABS] bed_temperature = 100 bridge_fan_speed = 30 compatible_printers = @@ -2975,11 +2975,11 @@ first_layer_temperature = 255 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 255 -[filament:Generic PET 1.75mm] +[filament:Generic PET] bed_temperature = 90 bridge_fan_speed = 50 compatible_printers = @@ -3004,11 +3004,11 @@ first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 -[filament:Generic PLA 1.75mm] +[filament:Generic PLA] bed_temperature = 60 bridge_fan_speed = 100 compatible_printers = @@ -3031,9 +3031,9 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 215 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 210 @@ -3062,7 +3062,7 @@ first_layer_temperature = 270 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 270 @@ -3089,13 +3089,13 @@ filament_type = PVA first_layer_bed_temperature = 60 first_layer_temperature = 195 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 195 -[filament:Prusa ABS 1.75mm] +[filament:Prusa ABS] bed_temperature = 100 bridge_fan_speed = 30 compatible_printers = @@ -3120,11 +3120,11 @@ first_layer_temperature = 255 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 255 -[filament:Prusa HIPS 1.75mm] +[filament:Prusa HIPS] bed_temperature = 100 bridge_fan_speed = 50 compatible_printers = @@ -3149,11 +3149,11 @@ first_layer_temperature = 220 max_fan_speed = 20 min_fan_speed = 20 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 220 -[filament:Prusa PET 1.75mm] +[filament:Prusa PET] bed_temperature = 90 bridge_fan_speed = 50 compatible_printers = @@ -3178,11 +3178,11 @@ first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 -[filament:Prusa PLA 1.75mm] +[filament:Prusa PLA] bed_temperature = 60 bridge_fan_speed = 100 compatible_printers = @@ -3205,9 +3205,9 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 215 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 210 @@ -3236,11 +3236,11 @@ first_layer_temperature = 220 max_fan_speed = 90 min_fan_speed = 70 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 230 -[filament:Taulman Bridge 1.75mm] +[filament:Taulman Bridge] bed_temperature = 50 bridge_fan_speed = 40 compatible_printers = @@ -3265,11 +3265,11 @@ first_layer_temperature = 240 max_fan_speed = 5 min_fan_speed = 0 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 250 -[filament:Taulman T-Glase 1.75mm] +[filament:Taulman T-Glase] bed_temperature = 90 bridge_fan_speed = 40 compatible_printers = @@ -3294,7 +3294,7 @@ first_layer_temperature = 240 max_fan_speed = 5 min_fan_speed = 0 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 240 @@ -3321,9 +3321,9 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 215 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 210 @@ -3352,7 +3352,7 @@ first_layer_temperature = 220 max_fan_speed = 100 min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 220 @@ -3641,7 +3641,7 @@ bed_shape = 0x0,250x0,250x210,0x210 before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n between_objects_gcode = deretract_speed = 0 -end_gcode = G4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors +end_gcode = G4 ; wait\nM221 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors extruder_colour = #FFFF00 extruder_offset = 0x0 gcode_flavor = reprap @@ -3656,7 +3656,7 @@ retract_before_travel = 1 retract_before_wipe = 0% retract_layer_change = 1 retract_length = 0.8 -retract_length_toolchange = 3 +retract_length_toolchange = 4 retract_lift = 0.6 retract_lift_above = 0 retract_lift_below = 209 @@ -3666,7 +3666,7 @@ retract_speed = 35 serial_port = serial_speed = 250000 single_extruder_multi_material = 0 -start_gcode = M115 U3.1.1-RC4 ; tell printer latest fw version\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 +start_gcode = M115 U3.1.1-RC4 ; tell printer latest fw version\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S95 toolchange_gcode = use_firmware_retraction = 0 use_relative_e_distances = 1 @@ -3676,6 +3676,6 @@ wipe = 1 z_offset = 0 [presets] -print = 0.15mm 100mms Linear Advance -printer = Original Prusa i3 MK2 -filament = Prusa PLA 1.75mm +print = 0.20mm NORMAL MK3 +printer = Original Prusa i3 MK3 +filament = Prusa PLA diff --git a/resources/profiles/Original Prusa i3 MK3.ini b/resources/profiles/Original Prusa i3 MK3.ini index e82c7c3cf..a4e0694ec 100644 --- a/resources/profiles/Original Prusa i3 MK3.ini +++ b/resources/profiles/Original Prusa i3 MK3.ini @@ -1,4 +1,4 @@ -# generated by Slic3r Prusa Edition 1.38.4 on 2017-12-21 at 20:14:54 +# generated by Slic3r Prusa Edition 1.38.6 on 2018-01-05 at 15:21:29 [print:0.05mm DETAIL] avoid_crossing_perimeters = 0 @@ -238,7 +238,7 @@ extruder_clearance_radius = 20 extrusion_width = 0.45 fill_angle = 45 fill_density = 25% -fill_pattern = cubic +fill_pattern = grid first_layer_acceleration = 500 first_layer_extrusion_width = 0.42 first_layer_height = 0.2 @@ -248,7 +248,7 @@ gcode_comments = 0 infill_acceleration = 800 infill_every_layers = 1 infill_extruder = 1 -infill_extrusion_width = 0.5 +infill_extrusion_width = 0.45 infill_first = 0 infill_only_where_needed = 0 infill_overlap = 25% @@ -307,7 +307,7 @@ support_material_with_sheath = 0 support_material_xy_spacing = 60% thin_walls = 0 threads = 4 -top_infill_extrusion_width = 0.45 +top_infill_extrusion_width = 0.4 top_solid_infill_speed = 20 top_solid_layers = 15 travel_speed = 180 @@ -548,7 +548,7 @@ elefant_foot_compensation = 0 ensure_vertical_shell_thickness = 1 external_fill_pattern = rectilinear external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 40 +external_perimeter_speed = 35 external_perimeters_first = 0 extra_perimeters = 0 extruder_clearance_height = 20 @@ -556,7 +556,7 @@ extruder_clearance_radius = 20 extrusion_width = 0.45 fill_angle = 45 fill_density = 20% -fill_pattern = cubic +fill_pattern = grid first_layer_acceleration = 1000 first_layer_extrusion_width = 0.42 first_layer_height = 0.2 @@ -586,7 +586,7 @@ overhangs = 0 perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 -perimeter_speed = 60 +perimeter_speed = 45 perimeters = 2 post_process = print_settings_id = @@ -1078,7 +1078,7 @@ elefant_foot_compensation = 0 ensure_vertical_shell_thickness = 1 external_fill_pattern = rectilinear external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 40 +external_perimeter_speed = 35 external_perimeters_first = 0 extra_perimeters = 0 extruder_clearance_height = 20 @@ -1086,7 +1086,7 @@ extruder_clearance_radius = 20 extrusion_width = 0.45 fill_angle = 45 fill_density = 20% -fill_pattern = cubic +fill_pattern = grid first_layer_acceleration = 1000 first_layer_extrusion_width = 0.42 first_layer_height = 0.2 @@ -1116,7 +1116,7 @@ overhangs = 0 perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 -perimeter_speed = 60 +perimeter_speed = 45 perimeters = 2 post_process = print_settings_id = @@ -1484,6 +1484,112 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:0.20mm FAST MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 4 +bridge_acceleration = 1000 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 30 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.45 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.45 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.42 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 3500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.45 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 25% +infill_speed = 200 +interface_shells = 0 +layer_height = 0.2 +max_print_speed = 250 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 800 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.45 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 20 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.45 +solid_infill_speed = 200 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.35 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 60% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.4 +top_solid_infill_speed = 50 +top_solid_layers = 5 +travel_speed = 250 +wipe_tower = 1 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [print:0.20mm NORMAL] avoid_crossing_perimeters = 0 bottom_solid_layers = 4 @@ -1696,112 +1802,6 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[print:0.20mm NORMAL MK3] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 30 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 3500 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 200 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 250 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 60 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 50 -top_solid_layers = 5 -travel_speed = 250 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - [print:0.20mm NORMAL SOLUBLE FULL] avoid_crossing_perimeters = 0 bottom_solid_layers = 4 @@ -2226,112 +2226,6 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[print:0.35mm FAST MK3] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 30 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.6 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 3500 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.7 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 200 -interface_shells = 0 -layer_height = 0.35 -max_print_speed = 250 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 60 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.7 -solid_infill_speed = 200 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 50 -top_solid_layers = 4 -travel_speed = 250 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - [print:0.35mm FAST sol full 0.6 nozzle] avoid_crossing_perimeters = 0 bottom_solid_layers = 3 @@ -2544,7 +2438,7 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[filament:ColorFabb Brass Bronze 1.75mm] +[filament:ColorFabb Brass Bronze] bed_temperature = 60 bridge_fan_speed = 100 compatible_printers = @@ -2567,13 +2461,13 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 210 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 210 -[filament:ColorFabb HT 1.75mm] +[filament:ColorFabb HT] bed_temperature = 105 bridge_fan_speed = 30 compatible_printers = @@ -2598,7 +2492,7 @@ first_layer_temperature = 270 max_fan_speed = 20 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 270 @@ -2625,13 +2519,13 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 215 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 210 -[filament:ColorFabb Woodfil 1.75mm] +[filament:ColorFabb Woodfil] bed_temperature = 60 bridge_fan_speed = 100 compatible_printers = @@ -2654,13 +2548,13 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 200 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 200 -[filament:ColorFabb XT 1.75mm] +[filament:ColorFabb XT] bed_temperature = 90 bridge_fan_speed = 50 compatible_printers = @@ -2685,11 +2579,11 @@ first_layer_temperature = 260 max_fan_speed = 50 min_fan_speed = 30 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 270 -[filament:ColorFabb XT-CF20 1.75mm] +[filament:ColorFabb XT-CF20] bed_temperature = 90 bridge_fan_speed = 50 compatible_printers = @@ -2714,11 +2608,11 @@ first_layer_temperature = 260 max_fan_speed = 50 min_fan_speed = 30 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 260 -[filament:ColorFabb nGen 1.75mm] +[filament:ColorFabb nGen] bed_temperature = 85 bridge_fan_speed = 40 compatible_printers = @@ -2743,7 +2637,7 @@ first_layer_temperature = 240 max_fan_speed = 35 min_fan_speed = 20 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 @@ -2772,7 +2666,7 @@ first_layer_temperature = 260 max_fan_speed = 35 min_fan_speed = 20 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 260 @@ -2801,11 +2695,11 @@ first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 -[filament:E3D PC-ABS 1.75mm] +[filament:E3D PC-ABS] bed_temperature = 100 bridge_fan_speed = 30 compatible_printers = @@ -2830,11 +2724,11 @@ first_layer_temperature = 270 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 270 -[filament:Fillamentum ABS 1.75mm] +[filament:Fillamentum ABS] bed_temperature = 100 bridge_fan_speed = 30 compatible_printers = @@ -2859,11 +2753,11 @@ first_layer_temperature = 240 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 240 -[filament:Fillamentum ASA 1.75mm] +[filament:Fillamentum ASA] bed_temperature = 100 bridge_fan_speed = 30 compatible_printers = @@ -2888,7 +2782,7 @@ first_layer_temperature = 265 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 265 @@ -2917,7 +2811,7 @@ first_layer_temperature = 260 max_fan_speed = 80 min_fan_speed = 80 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 260 @@ -2944,13 +2838,13 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 190 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 190 -[filament:Generic ABS 1.75mm] +[filament:Generic ABS] bed_temperature = 100 bridge_fan_speed = 30 compatible_printers = @@ -2975,11 +2869,11 @@ first_layer_temperature = 255 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 255 -[filament:Generic PET 1.75mm] +[filament:Generic PET] bed_temperature = 90 bridge_fan_speed = 50 compatible_printers = @@ -3004,11 +2898,11 @@ first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 -[filament:Generic PLA 1.75mm] +[filament:Generic PLA] bed_temperature = 60 bridge_fan_speed = 100 compatible_printers = @@ -3031,9 +2925,9 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 215 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 210 @@ -3062,7 +2956,7 @@ first_layer_temperature = 270 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 270 @@ -3089,13 +2983,13 @@ filament_type = PVA first_layer_bed_temperature = 60 first_layer_temperature = 195 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 195 -[filament:Prusa ABS 1.75mm] +[filament:Prusa ABS] bed_temperature = 100 bridge_fan_speed = 30 compatible_printers = @@ -3120,11 +3014,11 @@ first_layer_temperature = 255 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 255 -[filament:Prusa HIPS 1.75mm] +[filament:Prusa HIPS] bed_temperature = 100 bridge_fan_speed = 50 compatible_printers = @@ -3149,11 +3043,11 @@ first_layer_temperature = 220 max_fan_speed = 20 min_fan_speed = 20 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 220 -[filament:Prusa PET 1.75mm] +[filament:Prusa PET] bed_temperature = 90 bridge_fan_speed = 50 compatible_printers = @@ -3178,11 +3072,11 @@ first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 -[filament:Prusa PLA 1.75mm] +[filament:Prusa PLA] bed_temperature = 60 bridge_fan_speed = 100 compatible_printers = @@ -3205,9 +3099,9 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 215 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 210 @@ -3236,11 +3130,11 @@ first_layer_temperature = 220 max_fan_speed = 90 min_fan_speed = 70 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 230 -[filament:Taulman Bridge 1.75mm] +[filament:Taulman Bridge] bed_temperature = 50 bridge_fan_speed = 40 compatible_printers = @@ -3265,11 +3159,11 @@ first_layer_temperature = 240 max_fan_speed = 5 min_fan_speed = 0 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 250 -[filament:Taulman T-Glase 1.75mm] +[filament:Taulman T-Glase] bed_temperature = 90 bridge_fan_speed = 40 compatible_printers = @@ -3294,7 +3188,7 @@ first_layer_temperature = 240 max_fan_speed = 5 min_fan_speed = 0 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 240 @@ -3321,9 +3215,9 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 215 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 210 @@ -3352,7 +3246,7 @@ first_layer_temperature = 220 max_fan_speed = 100 min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 220 @@ -3361,7 +3255,7 @@ bed_shape = 0x0,250x0,250x210,0x210 before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n between_objects_gcode = deretract_speed = 0 -end_gcode = G4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors +end_gcode = G4 ; wait\nM221 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors extruder_colour = #FFFF00 extruder_offset = 0x0 gcode_flavor = reprap @@ -3386,7 +3280,7 @@ retract_speed = 35 serial_port = serial_speed = 250000 single_extruder_multi_material = 0 -start_gcode = M115 U3.1.1-RC4 ; tell printer latest fw version\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 +start_gcode = M115 U3.1.1-RC4 ; tell printer latest fw version\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S95 toolchange_gcode = use_firmware_retraction = 0 use_relative_e_distances = 1 @@ -3398,4 +3292,4 @@ z_offset = 0 [presets] print = 0.15mm OPTIMAL MK3 printer = Original Prusa i3 MK3 -filament = Prusa PLA 1.75mm +filament = Prusa PLA From 693b8003118b6df3792d5c48ff0e82baafe953c4 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Fri, 5 Jan 2018 16:10:23 +0100 Subject: [PATCH 02/24] Updated the printer profiles. --- .../Original Prusa i3 MK2 and MK2S.ini | 450 +++++++---------- ...inal Prusa i3 MK2, MK2S, MK2MM and MK3.ini | 338 +++++-------- .../profiles/Original Prusa i3 MK2MM.ini | 454 +++++++----------- 3 files changed, 462 insertions(+), 780 deletions(-) diff --git a/resources/profiles/Original Prusa i3 MK2 and MK2S.ini b/resources/profiles/Original Prusa i3 MK2 and MK2S.ini index c70b07b03..5cdb020f5 100644 --- a/resources/profiles/Original Prusa i3 MK2 and MK2S.ini +++ b/resources/profiles/Original Prusa i3 MK2 and MK2S.ini @@ -1,4 +1,4 @@ -# generated by Slic3r Prusa Edition 1.38.4 on 2017-12-21 at 17:48:59 +# generated by Slic3r Prusa Edition 1.38.6 on 2018-01-05 at 16:05:06 [print:0.05mm DETAIL] avoid_crossing_perimeters = 0 @@ -238,7 +238,7 @@ extruder_clearance_radius = 20 extrusion_width = 0.45 fill_angle = 45 fill_density = 25% -fill_pattern = cubic +fill_pattern = grid first_layer_acceleration = 500 first_layer_extrusion_width = 0.42 first_layer_height = 0.2 @@ -248,7 +248,7 @@ gcode_comments = 0 infill_acceleration = 800 infill_every_layers = 1 infill_extruder = 1 -infill_extrusion_width = 0.5 +infill_extrusion_width = 0.45 infill_first = 0 infill_only_where_needed = 0 infill_overlap = 25% @@ -307,7 +307,7 @@ support_material_with_sheath = 0 support_material_xy_spacing = 60% thin_walls = 0 threads = 4 -top_infill_extrusion_width = 0.45 +top_infill_extrusion_width = 0.4 top_solid_infill_speed = 20 top_solid_layers = 15 travel_speed = 180 @@ -548,7 +548,7 @@ elefant_foot_compensation = 0 ensure_vertical_shell_thickness = 1 external_fill_pattern = rectilinear external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 40 +external_perimeter_speed = 35 external_perimeters_first = 0 extra_perimeters = 0 extruder_clearance_height = 20 @@ -556,7 +556,7 @@ extruder_clearance_radius = 20 extrusion_width = 0.45 fill_angle = 45 fill_density = 20% -fill_pattern = cubic +fill_pattern = grid first_layer_acceleration = 1000 first_layer_extrusion_width = 0.42 first_layer_height = 0.2 @@ -586,7 +586,7 @@ overhangs = 0 perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 -perimeter_speed = 60 +perimeter_speed = 45 perimeters = 2 post_process = print_settings_id = @@ -1078,7 +1078,7 @@ elefant_foot_compensation = 0 ensure_vertical_shell_thickness = 1 external_fill_pattern = rectilinear external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 40 +external_perimeter_speed = 35 external_perimeters_first = 0 extra_perimeters = 0 extruder_clearance_height = 20 @@ -1086,7 +1086,7 @@ extruder_clearance_radius = 20 extrusion_width = 0.45 fill_angle = 45 fill_density = 20% -fill_pattern = cubic +fill_pattern = grid first_layer_acceleration = 1000 first_layer_extrusion_width = 0.42 first_layer_height = 0.2 @@ -1116,7 +1116,7 @@ overhangs = 0 perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 -perimeter_speed = 60 +perimeter_speed = 45 perimeters = 2 post_process = print_settings_id = @@ -1484,6 +1484,112 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:0.20mm FAST MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 4 +bridge_acceleration = 1000 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 30 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.45 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.45 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.42 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 3500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.45 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 25% +infill_speed = 200 +interface_shells = 0 +layer_height = 0.2 +max_print_speed = 250 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 800 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.45 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 20 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.45 +solid_infill_speed = 200 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.35 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 60% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.4 +top_solid_infill_speed = 50 +top_solid_layers = 5 +travel_speed = 250 +wipe_tower = 1 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [print:0.20mm NORMAL] avoid_crossing_perimeters = 0 bottom_solid_layers = 4 @@ -1696,112 +1802,6 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[print:0.20mm NORMAL MK3] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 30 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 3500 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 200 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 250 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 60 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 50 -top_solid_layers = 5 -travel_speed = 250 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - [print:0.20mm NORMAL SOLUBLE FULL] avoid_crossing_perimeters = 0 bottom_solid_layers = 4 @@ -2226,112 +2226,6 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[print:0.35mm FAST MK3] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 30 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.6 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 3500 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.7 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 200 -interface_shells = 0 -layer_height = 0.35 -max_print_speed = 250 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 60 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.7 -solid_infill_speed = 200 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 50 -top_solid_layers = 4 -travel_speed = 250 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - [print:0.35mm FAST sol full 0.6 nozzle] avoid_crossing_perimeters = 0 bottom_solid_layers = 3 @@ -2544,7 +2438,7 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[filament:ColorFabb Brass Bronze 1.75mm] +[filament:ColorFabb Brass Bronze] bed_temperature = 60 bridge_fan_speed = 100 compatible_printers = @@ -2567,13 +2461,13 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 210 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 210 -[filament:ColorFabb HT 1.75mm] +[filament:ColorFabb HT] bed_temperature = 105 bridge_fan_speed = 30 compatible_printers = @@ -2598,7 +2492,7 @@ first_layer_temperature = 270 max_fan_speed = 20 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 270 @@ -2625,13 +2519,13 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 215 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 210 -[filament:ColorFabb Woodfil 1.75mm] +[filament:ColorFabb Woodfil] bed_temperature = 60 bridge_fan_speed = 100 compatible_printers = @@ -2654,13 +2548,13 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 200 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 200 -[filament:ColorFabb XT 1.75mm] +[filament:ColorFabb XT] bed_temperature = 90 bridge_fan_speed = 50 compatible_printers = @@ -2685,11 +2579,11 @@ first_layer_temperature = 260 max_fan_speed = 50 min_fan_speed = 30 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 270 -[filament:ColorFabb XT-CF20 1.75mm] +[filament:ColorFabb XT-CF20] bed_temperature = 90 bridge_fan_speed = 50 compatible_printers = @@ -2714,11 +2608,11 @@ first_layer_temperature = 260 max_fan_speed = 50 min_fan_speed = 30 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 260 -[filament:ColorFabb nGen 1.75mm] +[filament:ColorFabb nGen] bed_temperature = 85 bridge_fan_speed = 40 compatible_printers = @@ -2743,7 +2637,7 @@ first_layer_temperature = 240 max_fan_speed = 35 min_fan_speed = 20 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 @@ -2772,7 +2666,7 @@ first_layer_temperature = 260 max_fan_speed = 35 min_fan_speed = 20 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 260 @@ -2801,11 +2695,11 @@ first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 -[filament:E3D PC-ABS 1.75mm] +[filament:E3D PC-ABS] bed_temperature = 100 bridge_fan_speed = 30 compatible_printers = @@ -2830,11 +2724,11 @@ first_layer_temperature = 270 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 270 -[filament:Fillamentum ABS 1.75mm] +[filament:Fillamentum ABS] bed_temperature = 100 bridge_fan_speed = 30 compatible_printers = @@ -2859,11 +2753,11 @@ first_layer_temperature = 240 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 240 -[filament:Fillamentum ASA 1.75mm] +[filament:Fillamentum ASA] bed_temperature = 100 bridge_fan_speed = 30 compatible_printers = @@ -2888,7 +2782,7 @@ first_layer_temperature = 265 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 265 @@ -2917,7 +2811,7 @@ first_layer_temperature = 260 max_fan_speed = 80 min_fan_speed = 80 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 260 @@ -2944,13 +2838,13 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 190 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 190 -[filament:Generic ABS 1.75mm] +[filament:Generic ABS] bed_temperature = 100 bridge_fan_speed = 30 compatible_printers = @@ -2975,11 +2869,11 @@ first_layer_temperature = 255 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 255 -[filament:Generic PET 1.75mm] +[filament:Generic PET] bed_temperature = 90 bridge_fan_speed = 50 compatible_printers = @@ -3004,11 +2898,11 @@ first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 -[filament:Generic PLA 1.75mm] +[filament:Generic PLA] bed_temperature = 60 bridge_fan_speed = 100 compatible_printers = @@ -3031,9 +2925,9 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 215 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 210 @@ -3062,7 +2956,7 @@ first_layer_temperature = 270 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 270 @@ -3089,13 +2983,13 @@ filament_type = PVA first_layer_bed_temperature = 60 first_layer_temperature = 195 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 195 -[filament:Prusa ABS 1.75mm] +[filament:Prusa ABS] bed_temperature = 100 bridge_fan_speed = 30 compatible_printers = @@ -3120,11 +3014,11 @@ first_layer_temperature = 255 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 255 -[filament:Prusa HIPS 1.75mm] +[filament:Prusa HIPS] bed_temperature = 100 bridge_fan_speed = 50 compatible_printers = @@ -3149,11 +3043,11 @@ first_layer_temperature = 220 max_fan_speed = 20 min_fan_speed = 20 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 220 -[filament:Prusa PET 1.75mm] +[filament:Prusa PET] bed_temperature = 90 bridge_fan_speed = 50 compatible_printers = @@ -3178,11 +3072,11 @@ first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 -[filament:Prusa PLA 1.75mm] +[filament:Prusa PLA] bed_temperature = 60 bridge_fan_speed = 100 compatible_printers = @@ -3205,9 +3099,9 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 215 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 210 @@ -3236,11 +3130,11 @@ first_layer_temperature = 220 max_fan_speed = 90 min_fan_speed = 70 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 230 -[filament:Taulman Bridge 1.75mm] +[filament:Taulman Bridge] bed_temperature = 50 bridge_fan_speed = 40 compatible_printers = @@ -3265,11 +3159,11 @@ first_layer_temperature = 240 max_fan_speed = 5 min_fan_speed = 0 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 250 -[filament:Taulman T-Glase 1.75mm] +[filament:Taulman T-Glase] bed_temperature = 90 bridge_fan_speed = 40 compatible_printers = @@ -3294,7 +3188,7 @@ first_layer_temperature = 240 max_fan_speed = 5 min_fan_speed = 0 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 240 @@ -3321,9 +3215,9 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 215 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 210 @@ -3352,7 +3246,7 @@ first_layer_temperature = 220 max_fan_speed = 100 min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 220 @@ -3477,6 +3371,6 @@ wipe = 1 z_offset = 0 [presets] -print = 0.15mm 100mms Linear Advance +print = 0.15mm OPTIMAL printer = Original Prusa i3 MK2 -filament = Prusa PLA 1.75mm +filament = Prusa PLA diff --git a/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini b/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini index 160bece78..9513eee36 100644 --- a/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini +++ b/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini @@ -1,4 +1,4 @@ -# generated by Slic3r Prusa Edition 1.38.4.17-prusa3d-win32 on 2018-01-04 at 17:24:45 +# generated by Slic3r Prusa Edition 1.38.6 on 2018-01-05 at 16:03:38 [print:0.05mm DETAIL] avoid_crossing_perimeters = 0 @@ -238,7 +238,7 @@ extruder_clearance_radius = 20 extrusion_width = 0.45 fill_angle = 45 fill_density = 25% -fill_pattern = cubic +fill_pattern = grid first_layer_acceleration = 500 first_layer_extrusion_width = 0.42 first_layer_height = 0.2 @@ -532,7 +532,7 @@ xy_size_compensation = 0 [print:0.10mm DETAIL MK3] avoid_crossing_perimeters = 0 -bottom_solid_layers = 7 +bottom_solid_layers = 4 bridge_acceleration = 1000 bridge_angle = 0 bridge_flow_ratio = 0.8 @@ -556,7 +556,7 @@ extruder_clearance_radius = 20 extrusion_width = 0.45 fill_angle = 45 fill_density = 20% -fill_pattern = cubic +fill_pattern = grid first_layer_acceleration = 1000 first_layer_extrusion_width = 0.42 first_layer_height = 0.2 @@ -627,7 +627,7 @@ thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 50 -top_solid_layers = 9 +top_solid_layers = 5 travel_speed = 250 wipe_tower = 0 wipe_tower_per_color_wipe = 15 @@ -1062,7 +1062,7 @@ xy_size_compensation = 0 [print:0.15mm OPTIMAL MK3] avoid_crossing_perimeters = 0 -bottom_solid_layers = 5 +bottom_solid_layers = 4 bridge_acceleration = 1000 bridge_angle = 0 bridge_flow_ratio = 0.8 @@ -1086,7 +1086,7 @@ extruder_clearance_radius = 20 extrusion_width = 0.45 fill_angle = 45 fill_density = 20% -fill_pattern = cubic +fill_pattern = grid first_layer_acceleration = 1000 first_layer_extrusion_width = 0.42 first_layer_height = 0.2 @@ -1157,7 +1157,7 @@ thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 50 -top_solid_layers = 7 +top_solid_layers = 5 travel_speed = 250 wipe_tower = 1 wipe_tower_per_color_wipe = 15 @@ -1484,6 +1484,112 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:0.20mm FAST MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 4 +bridge_acceleration = 1000 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 30 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.45 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.45 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.42 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 3500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.45 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 25% +infill_speed = 200 +interface_shells = 0 +layer_height = 0.2 +max_print_speed = 250 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 800 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.45 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 20 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.45 +solid_infill_speed = 200 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.35 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 60% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.4 +top_solid_infill_speed = 50 +top_solid_layers = 5 +travel_speed = 250 +wipe_tower = 1 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [print:0.20mm NORMAL] avoid_crossing_perimeters = 0 bottom_solid_layers = 4 @@ -1696,112 +1802,6 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[print:0.20mm NORMAL MK3] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 30 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 35 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 3500 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 200 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 250 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 45 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 50 -top_solid_layers = 5 -travel_speed = 250 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - [print:0.20mm NORMAL SOLUBLE FULL] avoid_crossing_perimeters = 0 bottom_solid_layers = 4 @@ -2226,112 +2226,6 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[print:0.35mm FAST MK3] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 30 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 35 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 10% -fill_pattern = rectilinear -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 3500 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 200 -interface_shells = 0 -layer_height = 0.35 -max_print_speed = 250 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 45 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 50 -top_solid_layers = 4 -travel_speed = 250 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - [print:0.35mm FAST sol full 0.6 nozzle] avoid_crossing_perimeters = 0 bottom_solid_layers = 3 @@ -3656,7 +3550,7 @@ retract_before_travel = 1 retract_before_wipe = 0% retract_layer_change = 1 retract_length = 0.8 -retract_length_toolchange = 4 +retract_length_toolchange = 3 retract_lift = 0.6 retract_lift_above = 0 retract_lift_below = 209 @@ -3676,6 +3570,6 @@ wipe = 1 z_offset = 0 [presets] -print = 0.20mm NORMAL MK3 +print = 0.05mm DETAIL MK3 printer = Original Prusa i3 MK3 filament = Prusa PLA diff --git a/resources/profiles/Original Prusa i3 MK2MM.ini b/resources/profiles/Original Prusa i3 MK2MM.ini index abcb90ec4..aba80c992 100644 --- a/resources/profiles/Original Prusa i3 MK2MM.ini +++ b/resources/profiles/Original Prusa i3 MK2MM.ini @@ -1,4 +1,4 @@ -# generated by Slic3r Prusa Edition 1.38.4 on 2017-12-21 at 19:24:41 +# generated by Slic3r Prusa Edition 1.38.6 on 2018-01-05 at 16:05:58 [print:0.05mm DETAIL] avoid_crossing_perimeters = 0 @@ -238,7 +238,7 @@ extruder_clearance_radius = 20 extrusion_width = 0.45 fill_angle = 45 fill_density = 25% -fill_pattern = cubic +fill_pattern = grid first_layer_acceleration = 500 first_layer_extrusion_width = 0.42 first_layer_height = 0.2 @@ -248,7 +248,7 @@ gcode_comments = 0 infill_acceleration = 800 infill_every_layers = 1 infill_extruder = 1 -infill_extrusion_width = 0.5 +infill_extrusion_width = 0.45 infill_first = 0 infill_only_where_needed = 0 infill_overlap = 25% @@ -307,7 +307,7 @@ support_material_with_sheath = 0 support_material_xy_spacing = 60% thin_walls = 0 threads = 4 -top_infill_extrusion_width = 0.45 +top_infill_extrusion_width = 0.4 top_solid_infill_speed = 20 top_solid_layers = 15 travel_speed = 180 @@ -548,7 +548,7 @@ elefant_foot_compensation = 0 ensure_vertical_shell_thickness = 1 external_fill_pattern = rectilinear external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 40 +external_perimeter_speed = 35 external_perimeters_first = 0 extra_perimeters = 0 extruder_clearance_height = 20 @@ -556,7 +556,7 @@ extruder_clearance_radius = 20 extrusion_width = 0.45 fill_angle = 45 fill_density = 20% -fill_pattern = cubic +fill_pattern = grid first_layer_acceleration = 1000 first_layer_extrusion_width = 0.42 first_layer_height = 0.2 @@ -586,7 +586,7 @@ overhangs = 0 perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 -perimeter_speed = 60 +perimeter_speed = 45 perimeters = 2 post_process = print_settings_id = @@ -1078,7 +1078,7 @@ elefant_foot_compensation = 0 ensure_vertical_shell_thickness = 1 external_fill_pattern = rectilinear external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 40 +external_perimeter_speed = 35 external_perimeters_first = 0 extra_perimeters = 0 extruder_clearance_height = 20 @@ -1086,7 +1086,7 @@ extruder_clearance_radius = 20 extrusion_width = 0.45 fill_angle = 45 fill_density = 20% -fill_pattern = cubic +fill_pattern = grid first_layer_acceleration = 1000 first_layer_extrusion_width = 0.42 first_layer_height = 0.2 @@ -1116,7 +1116,7 @@ overhangs = 0 perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 -perimeter_speed = 60 +perimeter_speed = 45 perimeters = 2 post_process = print_settings_id = @@ -1484,6 +1484,112 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:0.20mm FAST MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 4 +bridge_acceleration = 1000 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 30 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.45 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.45 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.42 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 3500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.45 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 25% +infill_speed = 200 +interface_shells = 0 +layer_height = 0.2 +max_print_speed = 250 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 800 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.45 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 20 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.45 +solid_infill_speed = 200 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.35 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 60% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.4 +top_solid_infill_speed = 50 +top_solid_layers = 5 +travel_speed = 250 +wipe_tower = 1 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [print:0.20mm NORMAL] avoid_crossing_perimeters = 0 bottom_solid_layers = 4 @@ -1696,112 +1802,6 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[print:0.20mm NORMAL MK3] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 30 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 3500 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 200 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 250 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 60 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 50 -top_solid_layers = 5 -travel_speed = 250 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - [print:0.20mm NORMAL SOLUBLE FULL] avoid_crossing_perimeters = 0 bottom_solid_layers = 4 @@ -2226,112 +2226,6 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[print:0.35mm FAST MK3] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 30 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.6 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 3500 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.7 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 200 -interface_shells = 0 -layer_height = 0.35 -max_print_speed = 250 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 60 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.7 -solid_infill_speed = 200 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 50 -top_solid_layers = 4 -travel_speed = 250 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - [print:0.35mm FAST sol full 0.6 nozzle] avoid_crossing_perimeters = 0 bottom_solid_layers = 3 @@ -2544,7 +2438,7 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[filament:ColorFabb Brass Bronze 1.75mm] +[filament:ColorFabb Brass Bronze] bed_temperature = 60 bridge_fan_speed = 100 compatible_printers = @@ -2567,13 +2461,13 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 210 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 210 -[filament:ColorFabb HT 1.75mm] +[filament:ColorFabb HT] bed_temperature = 105 bridge_fan_speed = 30 compatible_printers = @@ -2598,7 +2492,7 @@ first_layer_temperature = 270 max_fan_speed = 20 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 270 @@ -2625,13 +2519,13 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 215 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 210 -[filament:ColorFabb Woodfil 1.75mm] +[filament:ColorFabb Woodfil] bed_temperature = 60 bridge_fan_speed = 100 compatible_printers = @@ -2654,13 +2548,13 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 200 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 200 -[filament:ColorFabb XT 1.75mm] +[filament:ColorFabb XT] bed_temperature = 90 bridge_fan_speed = 50 compatible_printers = @@ -2685,11 +2579,11 @@ first_layer_temperature = 260 max_fan_speed = 50 min_fan_speed = 30 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 270 -[filament:ColorFabb XT-CF20 1.75mm] +[filament:ColorFabb XT-CF20] bed_temperature = 90 bridge_fan_speed = 50 compatible_printers = @@ -2714,11 +2608,11 @@ first_layer_temperature = 260 max_fan_speed = 50 min_fan_speed = 30 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 260 -[filament:ColorFabb nGen 1.75mm] +[filament:ColorFabb nGen] bed_temperature = 85 bridge_fan_speed = 40 compatible_printers = @@ -2743,7 +2637,7 @@ first_layer_temperature = 240 max_fan_speed = 35 min_fan_speed = 20 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 @@ -2772,7 +2666,7 @@ first_layer_temperature = 260 max_fan_speed = 35 min_fan_speed = 20 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 260 @@ -2801,11 +2695,11 @@ first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 -[filament:E3D PC-ABS 1.75mm] +[filament:E3D PC-ABS] bed_temperature = 100 bridge_fan_speed = 30 compatible_printers = @@ -2830,11 +2724,11 @@ first_layer_temperature = 270 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 270 -[filament:Fillamentum ABS 1.75mm] +[filament:Fillamentum ABS] bed_temperature = 100 bridge_fan_speed = 30 compatible_printers = @@ -2859,11 +2753,11 @@ first_layer_temperature = 240 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 240 -[filament:Fillamentum ASA 1.75mm] +[filament:Fillamentum ASA] bed_temperature = 100 bridge_fan_speed = 30 compatible_printers = @@ -2888,7 +2782,7 @@ first_layer_temperature = 265 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 265 @@ -2917,7 +2811,7 @@ first_layer_temperature = 260 max_fan_speed = 80 min_fan_speed = 80 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 260 @@ -2944,13 +2838,13 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 190 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 190 -[filament:Generic ABS 1.75mm] +[filament:Generic ABS] bed_temperature = 100 bridge_fan_speed = 30 compatible_printers = @@ -2975,11 +2869,11 @@ first_layer_temperature = 255 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 255 -[filament:Generic PET 1.75mm] +[filament:Generic PET] bed_temperature = 90 bridge_fan_speed = 50 compatible_printers = @@ -3004,11 +2898,11 @@ first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 -[filament:Generic PLA 1.75mm] +[filament:Generic PLA] bed_temperature = 60 bridge_fan_speed = 100 compatible_printers = @@ -3031,9 +2925,9 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 215 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 210 @@ -3062,7 +2956,7 @@ first_layer_temperature = 270 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 270 @@ -3089,13 +2983,13 @@ filament_type = PVA first_layer_bed_temperature = 60 first_layer_temperature = 195 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 195 -[filament:Prusa ABS 1.75mm] +[filament:Prusa ABS] bed_temperature = 100 bridge_fan_speed = 30 compatible_printers = @@ -3120,11 +3014,11 @@ first_layer_temperature = 255 max_fan_speed = 30 min_fan_speed = 10 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 255 -[filament:Prusa HIPS 1.75mm] +[filament:Prusa HIPS] bed_temperature = 100 bridge_fan_speed = 50 compatible_printers = @@ -3149,11 +3043,11 @@ first_layer_temperature = 220 max_fan_speed = 20 min_fan_speed = 20 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 220 -[filament:Prusa PET 1.75mm] +[filament:Prusa PET] bed_temperature = 90 bridge_fan_speed = 50 compatible_printers = @@ -3178,11 +3072,11 @@ first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 -[filament:Prusa PLA 1.75mm] +[filament:Prusa PLA] bed_temperature = 60 bridge_fan_speed = 100 compatible_printers = @@ -3205,9 +3099,9 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 215 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 210 @@ -3236,11 +3130,11 @@ first_layer_temperature = 220 max_fan_speed = 90 min_fan_speed = 70 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 230 -[filament:Taulman Bridge 1.75mm] +[filament:Taulman Bridge] bed_temperature = 50 bridge_fan_speed = 40 compatible_printers = @@ -3265,11 +3159,11 @@ first_layer_temperature = 240 max_fan_speed = 5 min_fan_speed = 0 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 250 -[filament:Taulman T-Glase 1.75mm] +[filament:Taulman T-Glase] bed_temperature = 90 bridge_fan_speed = 40 compatible_printers = @@ -3294,7 +3188,7 @@ first_layer_temperature = 240 max_fan_speed = 5 min_fan_speed = 0 min_print_speed = 5 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 240 @@ -3321,9 +3215,9 @@ filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 215 max_fan_speed = 100 -min_fan_speed = 85 +min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 210 @@ -3352,7 +3246,7 @@ first_layer_temperature = 220 max_fan_speed = 100 min_fan_speed = 100 min_print_speed = 15 -slowdown_below_layer_time = 10 +slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 220 @@ -3519,7 +3413,7 @@ z_offset = 0 [presets] print = 0.15mm OPTIMAL printer = Original Prusa i3 MK2 MultiMaterial -filament = Prusa PLA 1.75mm -filament_1 = Prusa PLA 1.75mm -filament_2 = Prusa PLA 1.75mm -filament_3 = Prusa PLA 1.75mm +filament = Prusa PLA +filament_1 = Prusa PLA +filament_2 = Prusa PLA +filament_3 = Prusa PLA From 75944feee14c4a09cb9a32537a65ad71d716ab6d Mon Sep 17 00:00:00 2001 From: bubnikv Date: Fri, 5 Jan 2018 16:10:53 +0100 Subject: [PATCH 03/24] Bumped up the version number. --- xs/src/libslic3r/libslic3r.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xs/src/libslic3r/libslic3r.h b/xs/src/libslic3r/libslic3r.h index e4d318e5e..d43098a6e 100644 --- a/xs/src/libslic3r/libslic3r.h +++ b/xs/src/libslic3r/libslic3r.h @@ -14,7 +14,7 @@ #include #define SLIC3R_FORK_NAME "Slic3r Prusa Edition" -#define SLIC3R_VERSION "1.38.6" +#define SLIC3R_VERSION "1.38.7" #define SLIC3R_BUILD "UNKNOWN" typedef long coord_t; From 49df8bb84cb87c3f98c47a8cb9b232d2bca15283 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Tue, 13 Feb 2018 12:19:43 +0100 Subject: [PATCH 04/24] Fixed merging errors of the Slic3r profiles: Profiles were copied from the master --- ...inal Prusa i3 MK2, MK2S, MK2MM and MK3.ini | 27 ------------------- .../profiles/Original Prusa i3 MK2MM.ini | 2 +- resources/profiles/Original Prusa i3 MK3.ini | 23 ---------------- 3 files changed, 1 insertion(+), 51 deletions(-) diff --git a/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini b/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini index 3bf7eadd6..64af7d9b2 100644 --- a/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini +++ b/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini @@ -1517,28 +1517,17 @@ first_layer_height = 0.2 first_layer_speed = 30 gap_fill_speed = 40 gcode_comments = 0 -<<<<<<< HEAD -infill_acceleration = 3500 -======= infill_acceleration = 1500 ->>>>>>> master infill_every_layers = 1 infill_extruder = 1 infill_extrusion_width = 0.45 infill_first = 0 infill_only_where_needed = 0 infill_overlap = 25% -<<<<<<< HEAD -infill_speed = 200 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 250 -======= infill_speed = 170 interface_shells = 0 layer_height = 0.2 max_print_speed = 170 ->>>>>>> master max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -1566,11 +1555,7 @@ solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 solid_infill_extrusion_width = 0.45 -<<<<<<< HEAD -solid_infill_speed = 200 -======= solid_infill_speed = 170 ->>>>>>> master spiral_vase = 0 standby_temperature_delta = -5 support_material = 0 @@ -1597,11 +1582,7 @@ threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 50 top_solid_layers = 5 -<<<<<<< HEAD -travel_speed = 250 -======= travel_speed = 170 ->>>>>>> master wipe_tower = 1 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -3579,11 +3560,7 @@ retract_speed = 35 serial_port = serial_speed = 250000 single_extruder_multi_material = 0 -<<<<<<< HEAD -start_gcode = M115 U3.1.1-RC4 ; tell printer latest fw version\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S95 -======= start_gcode = M115 U3.1.1-RC5 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} ->>>>>>> master toolchange_gcode = use_firmware_retraction = 0 use_relative_e_distances = 1 @@ -3593,10 +3570,6 @@ wipe = 1 z_offset = 0 [presets] -<<<<<<< HEAD -print = 0.05mm DETAIL MK3 -======= print = 0.15mm OPTIMAL MK3 ->>>>>>> master printer = Original Prusa i3 MK3 filament = Prusa PLA diff --git a/resources/profiles/Original Prusa i3 MK2MM.ini b/resources/profiles/Original Prusa i3 MK2MM.ini index bccc2db05..035d15515 100644 --- a/resources/profiles/Original Prusa i3 MK2MM.ini +++ b/resources/profiles/Original Prusa i3 MK2MM.ini @@ -1,4 +1,4 @@ -# generated by Slic3r Prusa Edition 1.38.6 on 2018-01-05 at 16:05:58 +# generated by Slic3r Prusa Edition 1.39.0 on 2018-01-06 at 15:12:06 [print:0.05mm DETAIL] avoid_crossing_perimeters = 0 diff --git a/resources/profiles/Original Prusa i3 MK3.ini b/resources/profiles/Original Prusa i3 MK3.ini index e610faca2..b53006b0f 100644 --- a/resources/profiles/Original Prusa i3 MK3.ini +++ b/resources/profiles/Original Prusa i3 MK3.ini @@ -1517,28 +1517,17 @@ first_layer_height = 0.2 first_layer_speed = 30 gap_fill_speed = 40 gcode_comments = 0 -<<<<<<< HEAD -infill_acceleration = 3500 -======= infill_acceleration = 1500 ->>>>>>> master infill_every_layers = 1 infill_extruder = 1 infill_extrusion_width = 0.45 infill_first = 0 infill_only_where_needed = 0 infill_overlap = 25% -<<<<<<< HEAD -infill_speed = 200 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 250 -======= infill_speed = 170 interface_shells = 0 layer_height = 0.2 max_print_speed = 170 ->>>>>>> master max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -1566,11 +1555,7 @@ solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 solid_infill_extrusion_width = 0.45 -<<<<<<< HEAD -solid_infill_speed = 200 -======= solid_infill_speed = 170 ->>>>>>> master spiral_vase = 0 standby_temperature_delta = -5 support_material = 0 @@ -1597,11 +1582,7 @@ threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 50 top_solid_layers = 5 -<<<<<<< HEAD -travel_speed = 250 -======= travel_speed = 170 ->>>>>>> master wipe_tower = 1 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -3299,11 +3280,7 @@ retract_speed = 35 serial_port = serial_speed = 250000 single_extruder_multi_material = 0 -<<<<<<< HEAD -start_gcode = M115 U3.1.1-RC4 ; tell printer latest fw version\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S95 -======= start_gcode = M115 U3.1.1-RC5 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} ->>>>>>> master toolchange_gcode = use_firmware_retraction = 0 use_relative_e_distances = 1 From 67668b13c95167b6d16fc4cdc345ea2c30baff86 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Thu, 15 Feb 2018 16:41:26 +0100 Subject: [PATCH 05/24] Fixed a bug, when a color selection popped up when clicking on the print or printer combo box icon. --- lib/Slic3r/GUI/Plater.pm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/Slic3r/GUI/Plater.pm b/lib/Slic3r/GUI/Plater.pm index 10d65475c..e38dfecfe 100644 --- a/lib/Slic3r/GUI/Plater.pm +++ b/lib/Slic3r/GUI/Plater.pm @@ -365,7 +365,9 @@ sub new { my $text = Wx::StaticText->new($self, -1, "$group_labels{$group}:", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT); $text->SetFont($Slic3r::GUI::small_font); my $choice = Wx::BitmapComboBox->new($self, -1, "", wxDefaultPosition, wxDefaultSize, [], wxCB_READONLY); - EVT_LEFT_DOWN($choice, sub { $self->filament_color_box_lmouse_down(0, @_); } ); + if ($group eq 'filament') { + EVT_LEFT_DOWN($choice, sub { $self->filament_color_box_lmouse_down(0, @_); } ); + } $self->{preset_choosers}{$group} = [$choice]; # setup the listener EVT_COMBOBOX($choice, $choice, sub { From c60d825b47c10e8cafa0702520ac73fdb83e13bc Mon Sep 17 00:00:00 2001 From: bubnikv Date: Thu, 22 Feb 2018 14:44:07 +0100 Subject: [PATCH 06/24] A workaround of the dreaded Intel HD Graphics driver issue at least on the laptop of @roesel. fixes https://github.com/prusa3d/Slic3r/issues/672 The Intel HD Graphics hangs on the glFinish() call for some reason with one particular graphics driver revision. Also the glFinish() call was superfluous and it only may have had negative effect over the performance. Both glFinish() and glFlush() were removed for performance reasons where they were not needed, see https://www.khronos.org/opengl/wiki/Common_Mistakes --- lib/Slic3r/GUI/3DScene.pm | 29 +++++++++++----------------- lib/Slic3r/GUI/Plater/2DToolpaths.pm | 2 -- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/lib/Slic3r/GUI/3DScene.pm b/lib/Slic3r/GUI/3DScene.pm index 730216a8b..9b733f55c 100644 --- a/lib/Slic3r/GUI/3DScene.pm +++ b/lib/Slic3r/GUI/3DScene.pm @@ -1157,18 +1157,17 @@ sub Render { glLightfv_p(GL_LIGHT1, GL_POSITION, 1, 0, 1, 0); if ($self->enable_picking) { - # Render the object for picking. - # FIXME This cannot possibly work in a multi-sampled context as the color gets mangled by the anti-aliasing. - # Better to use software ray-casting on a bounding-box hierarchy. - glPushAttrib(GL_ENABLE_BIT); - glDisable(GL_MULTISAMPLE) if ($self->{can_multisample}); - glDisable(GL_LIGHTING); - glDisable(GL_BLEND); - $self->draw_volumes(1); - glFlush(); - glFinish(); - if (my $pos = $self->_mouse_pos) { + # Render the object for picking. + # FIXME This cannot possibly work in a multi-sampled context as the color gets mangled by the anti-aliasing. + # Better to use software ray-casting on a bounding-box hierarchy. + glPushAttrib(GL_ENABLE_BIT); + glDisable(GL_MULTISAMPLE) if ($self->{can_multisample}); + glDisable(GL_LIGHTING); + glDisable(GL_BLEND); + $self->draw_volumes(1); + glPopAttrib(); + glFlush(); my $col = [ glReadPixels_p($pos->x, $self->GetSize->GetHeight - $pos->y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE) ]; my $volume_idx = $col->[0] + $col->[1]*256 + $col->[2]*256*256; $self->_hover_volume_idx(undef); @@ -1184,11 +1183,8 @@ sub Render { $self->on_hover->($volume_idx) if $self->on_hover; } + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); } - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - glFlush(); - glFinish(); - glPopAttrib(); } # draw fixed background @@ -1319,9 +1315,6 @@ sub Render { $self->draw_active_object_annotations; $self->SwapBuffers(); - - # Calling glFinish has a performance penalty, but it seems to fix some OpenGL driver hang-up with extremely large scenes. -# glFinish(); } sub draw_volumes { diff --git a/lib/Slic3r/GUI/Plater/2DToolpaths.pm b/lib/Slic3r/GUI/Plater/2DToolpaths.pm index e48793bb0..96a252a08 100644 --- a/lib/Slic3r/GUI/Plater/2DToolpaths.pm +++ b/lib/Slic3r/GUI/Plater/2DToolpaths.pm @@ -338,7 +338,6 @@ sub Render { glClear(GL_COLOR_BUFFER_BIT); if (!$self->GetParent->enabled || !$self->layers) { - glFlush(); $self->SwapBuffers; return; } @@ -486,7 +485,6 @@ sub Render { } gluDeleteTess($tess) if $tess; - glFlush(); $self->SwapBuffers; } From a731b0e406d46fc276dd76edc54e73ba4d03f3ba Mon Sep 17 00:00:00 2001 From: bubnikv Date: Thu, 26 Apr 2018 09:53:03 +0200 Subject: [PATCH 07/24] New cooling logic back-ported from 1.40. --- t/cooling.t | 6 +- xs/src/libslic3r/GCode/CoolingBuffer.cpp | 1009 ++++++++++++++-------- xs/src/libslic3r/GCode/CoolingBuffer.hpp | 28 +- 3 files changed, 664 insertions(+), 379 deletions(-) diff --git a/t/cooling.t b/t/cooling.t index ee4f6abea..f69b7e8a8 100644 --- a/t/cooling.t +++ b/t/cooling.t @@ -2,7 +2,7 @@ use Test::More; use strict; use warnings; -plan tests => 15; +plan tests => 14; BEGIN { use FindBin; @@ -203,8 +203,8 @@ $config->set('disable_fan_first_layers', [ 0 ]); ok $all_below, 'slowdown_below_layer_time is honored'; # check that all layers have at least one unaltered external perimeter speed - my $external = all { $_ > 0 } values %layer_external; - ok $external, 'slowdown_below_layer_time does not alter external perimeters'; +# my $external = all { $_ > 0 } values %layer_external; +# ok $external, 'slowdown_below_layer_time does not alter external perimeters'; } __END__ diff --git a/xs/src/libslic3r/GCode/CoolingBuffer.cpp b/xs/src/libslic3r/GCode/CoolingBuffer.cpp index bf56f449c..8a11f51d9 100644 --- a/xs/src/libslic3r/GCode/CoolingBuffer.cpp +++ b/xs/src/libslic3r/GCode/CoolingBuffer.cpp @@ -30,351 +30,578 @@ void CoolingBuffer::reset() m_current_pos[4] = float(m_gcodegen.config().travel_speed.value); } -#define EXTRUDER_CONFIG(OPT) config.OPT.get_at(m_current_extruder) +struct CoolingLine +{ + enum Type { + TYPE_SET_TOOL = 1 << 0, + TYPE_EXTRUDE_END = 1 << 1, + TYPE_BRIDGE_FAN_START = 1 << 2, + TYPE_BRIDGE_FAN_END = 1 << 3, + TYPE_G0 = 1 << 4, + TYPE_G1 = 1 << 5, + TYPE_ADJUSTABLE = 1 << 6, + TYPE_EXTERNAL_PERIMETER = 1 << 7, + // The line sets a feedrate. + TYPE_HAS_F = 1 << 8, + TYPE_WIPE = 1 << 9, + TYPE_G4 = 1 << 10, + TYPE_G92 = 1 << 11, + }; + + CoolingLine(unsigned int type, size_t line_start, size_t line_end) : + type(type), line_start(line_start), line_end(line_end), + length(0.f), time(0.f), time_max(0.f), slowdown(false) {} + + bool adjustable(bool slowdown_external_perimeters) const { + return (this->type & TYPE_ADJUSTABLE) && + (! (this->type & TYPE_EXTERNAL_PERIMETER) || slowdown_external_perimeters) && + this->time < this->time_max; + } + + bool adjustable() const { + return (this->type & TYPE_ADJUSTABLE) && this->time < this->time_max; + } + + size_t type; + // Start of this line at the G-code snippet. + size_t line_start; + // End of this line at the G-code snippet. + size_t line_end; + // XY Euclidian length of this segment. + float length; + // Current feedrate, possibly adjusted. + float feedrate; + // Current duration of this segment. + float time; + // Maximum duration of this segment. + float time_max; + // If marked with the "slowdown" flag, the line has been slowed down. + bool slowdown; +}; + +// Calculate the required per extruder time stretches. +struct PerExtruderAdjustments +{ + // Calculate the total elapsed time per this extruder, adjusted for the slowdown. + float elapsed_time_total() { + float time_total = 0.f; + for (const CoolingLine &line : lines) + time_total += line.time; + return time_total; + } + // Calculate the total elapsed time when slowing down + // to the minimum extrusion feed rate defined for the current material. + float maximum_time_after_slowdown(bool slowdown_external_perimeters) { + float time_total = 0.f; + for (const CoolingLine &line : lines) + if (line.adjustable(slowdown_external_perimeters)) { + if (line.time_max == FLT_MAX) + return FLT_MAX; + else + time_total += line.time_max; + } else + time_total += line.time; + return time_total; + } + // Calculate the adjustable part of the total time. + float adjustable_time(bool slowdown_external_perimeters) { + float time_total = 0.f; + for (const CoolingLine &line : lines) + if (line.adjustable(slowdown_external_perimeters)) + time_total += line.time; + return time_total; + } + // Calculate the non-adjustable part of the total time. + float non_adjustable_time(bool slowdown_external_perimeters) { + float time_total = 0.f; + for (const CoolingLine &line : lines) + if (! line.adjustable(slowdown_external_perimeters)) + time_total += line.time; + return time_total; + } + // Slow down the adjustable extrusions to the minimum feedrate allowed for the current extruder material. + // Used by both proportional and non-proportional slow down. + float slowdown_to_minimum_feedrate(bool slowdown_external_perimeters) { + float time_total = 0.f; + for (CoolingLine &line : lines) { + if (line.adjustable(slowdown_external_perimeters)) { + assert(line.time_max >= 0.f && line.time_max < FLT_MAX); + line.slowdown = true; + line.time = line.time_max; + line.feedrate = line.length / line.time; + } + time_total += line.time; + } + return time_total; + } + // Slow down each adjustable G-code line proportionally by a factor. + // Used by the proportional slow down. + float slow_down_proportional(float factor, bool slowdown_external_perimeters) { + assert(factor >= 1.f); + float time_total = 0.f; + for (CoolingLine &line : lines) { + if (line.adjustable(slowdown_external_perimeters)) { + line.slowdown = true; + line.time = std::min(line.time_max, line.time * factor); + line.feedrate = line.length / line.time; + } + time_total += line.time; + } + return time_total; + } + + // Sort the lines, adjustable first, higher feedrate first. + // Used by non-proportional slow down. + void sort_lines_by_decreasing_feedrate() { + std::sort(lines.begin(), lines.end(), [](const CoolingLine &l1, const CoolingLine &l2) { + bool adj1 = l1.adjustable(); + bool adj2 = l2.adjustable(); + return (adj1 == adj2) ? l1.feedrate > l2.feedrate : adj1; + }); + for (n_lines_adjustable = 0; n_lines_adjustable < lines.size(); ++ n_lines_adjustable) + if ((this->lines[n_lines_adjustable].type & CoolingLine::TYPE_ADJUSTABLE) == 0) + break; + time_non_adjustable = 0.f; + for (size_t i = n_lines_adjustable; i < lines.size(); ++ i) + time_non_adjustable += lines[i].time; + } + + // Calculate the maximum time stretch when slowing down to min_feedrate. + // Slowdown to min_feedrate shall be allowed for this extruder's material. + // Used by non-proportional slow down. + float time_stretch_when_slowing_down_to_feedrate(float min_feedrate) { + float time_stretch = 0.f; + assert(this->min_print_speed < min_feedrate + EPSILON); + for (size_t i = 0; i < n_lines_adjustable; ++ i) { + const CoolingLine &line = lines[i]; + if (line.feedrate > min_feedrate) + time_stretch += line.time * (line.feedrate / min_feedrate - 1.f); + } + return time_stretch; + } + + // Slow down all adjustable lines down to min_feedrate. + // Slowdown to min_feedrate shall be allowed for this extruder's material. + // Used by non-proportional slow down. + void slow_down_to_feedrate(float min_feedrate) { + assert(this->min_print_speed < min_feedrate + EPSILON); + for (size_t i = 0; i < n_lines_adjustable; ++ i) { + CoolingLine &line = lines[i]; + if (line.feedrate > min_feedrate) { + line.time *= std::max(1.f, line.feedrate / min_feedrate); + line.feedrate = min_feedrate; + line.slowdown = true; + } + } + } + + // Extruder, for which the G-code will be adjusted. + unsigned int extruder_id = 0; + // Is the cooling slow down logic enabled for this extruder's material? + bool cooling_slow_down_enabled = false; + // Slow down the print down to min_print_speed if the total layer time is below slowdown_below_layer_time. + float slowdown_below_layer_time = 0.f; + // Minimum print speed allowed for this extruder. + float min_print_speed = 0.f; + + // Parsed lines. + std::vector lines; + // The following two values are set by sort_lines_by_decreasing_feedrate(): + // Number of adjustable lines, at the start of lines. + size_t n_lines_adjustable = 0; + // Non-adjustable time of lines starting with n_lines_adjustable. + float time_non_adjustable = 0; + // Current total time for this extruder. + float time_total = 0; + // Maximum time for this extruder, when the maximum slow down is applied. + float time_maximum = 0; + + // Temporaries for processing the slow down. Both thresholds go from 0 to n_lines_adjustable. + size_t idx_line_begin = 0; + size_t idx_line_end = 0; +}; std::string CoolingBuffer::process_layer(const std::string &gcode, size_t layer_id) +{ + std::vector per_extruder_adjustments = this->parse_layer_gcode(gcode, m_current_pos); + float layer_time_stretched = this->calculate_layer_slowdown(per_extruder_adjustments); + return this->apply_layer_cooldown(gcode, layer_id, layer_time_stretched, per_extruder_adjustments); +} + +// Parse the layer G-code for the moves, which could be adjusted. +// Return the list of parsed lines, bucketed by an extruder. +std::vector CoolingBuffer::parse_layer_gcode(const std::string &gcode, std::vector ¤t_pos) const { const FullPrintConfig &config = m_gcodegen.config(); const std::vector &extruders = m_gcodegen.writer().extruders(); - const size_t num_extruders = extruders.size(); - - // Calculate the required per extruder time stretches. - struct Adjustment { - Adjustment(unsigned int extruder_id = 0) : extruder_id(extruder_id) {} - // Calculate the total elapsed time per this extruder, adjusted for the slowdown. - float elapsed_time_total() { - float time_total = 0.f; - for (const Line &line : lines) - time_total += line.time; - return time_total; - } - // Calculate the maximum time when slowing down. - float maximum_time(bool slowdown_external_perimeters) { - float time_total = 0.f; - for (const Line &line : lines) - if (line.adjustable(slowdown_external_perimeters)) { - if (line.time_max == FLT_MAX) - return FLT_MAX; - else - time_total += line.time_max; - } else - time_total += line.time; - return time_total; - } - // Calculate the non-adjustable part of the total time. - float non_adjustable_time(bool slowdown_external_perimeters) { - float time_total = 0.f; - for (const Line &line : lines) - if (! line.adjustable(slowdown_external_perimeters)) - time_total += line.time; - return time_total; - } - float slow_down_maximum(bool slowdown_external_perimeters) { - float time_total = 0.f; - for (Line &line : lines) { - if (line.adjustable(slowdown_external_perimeters)) { - assert(line.time_max >= 0.f && line.time_max < FLT_MAX); - line.slowdown = true; - line.time = line.time_max; - } - time_total += line.time; - } - return time_total; - } - float slow_down_proportional(float factor, bool slowdown_external_perimeters) { - assert(factor >= 1.f); - float time_total = 0.f; - for (Line &line : lines) { - if (line.adjustable(slowdown_external_perimeters)) { - line.slowdown = true; - line.time = std::min(line.time_max, line.time * factor); - } - time_total += line.time; - } - return time_total; - } - - bool operator<(const Adjustment &rhs) const { return this->extruder_id < rhs.extruder_id; } - - struct Line - { - enum Type { - TYPE_SET_TOOL = 1 << 0, - TYPE_EXTRUDE_END = 1 << 1, - TYPE_BRIDGE_FAN_START = 1 << 2, - TYPE_BRIDGE_FAN_END = 1 << 3, - TYPE_G0 = 1 << 4, - TYPE_G1 = 1 << 5, - TYPE_ADJUSTABLE = 1 << 6, - TYPE_EXTERNAL_PERIMETER = 1 << 7, - TYPE_WIPE = 1 << 8, - TYPE_G4 = 1 << 9, - TYPE_G92 = 1 << 10, - }; - - Line(unsigned int type, size_t line_start, size_t line_end) : - type(type), line_start(line_start), line_end(line_end), - length(0.f), time(0.f), time_max(0.f), slowdown(false) {} - - bool adjustable(bool slowdown_external_perimeters) const { - return (this->type & TYPE_ADJUSTABLE) && - (! (this->type & TYPE_EXTERNAL_PERIMETER) || slowdown_external_perimeters) && - this->time < this->time_max; - } - - size_t type; - // Start of this line at the G-code snippet. - size_t line_start; - // End of this line at the G-code snippet. - size_t line_end; - // XY Euclidian length of this segment. - float length; - // Current duration of this segment. - float time; - // Maximum duration of this segment. - float time_max; - // If marked with the "slowdown" flag, the line has been slowed down. - bool slowdown; - }; - - // Extruder, for which the G-code will be adjusted. - unsigned int extruder_id; - // Parsed lines. - std::vector lines; - }; - std::vector adjustments(num_extruders, Adjustment()); - for (size_t i = 0; i < num_extruders; ++ i) - adjustments[i].extruder_id = extruders[i].id(); - const std::string toolchange_prefix = m_gcodegen.writer().toolchange_prefix(); - // Parse the layer G-code for the moves, which could be adjusted. - { - float min_print_speed = float(EXTRUDER_CONFIG(min_print_speed)); - auto adjustment = std::lower_bound(adjustments.begin(), adjustments.end(), Adjustment(m_current_extruder)); - unsigned int initial_extruder = m_current_extruder; - const char *line_start = gcode.c_str(); - const char *line_end = line_start; - const char extrusion_axis = config.get_extrusion_axis()[0]; - // Index of an existing Adjustment::Line of the current adjustment, which holds the feedrate setting command - // for a sequence of extrusion moves. - size_t active_speed_modifier = size_t(-1); - for (; *line_start != 0; line_start = line_end) { - while (*line_end != '\n' && *line_end != 0) - ++ line_end; - // sline will not contain the trailing '\n'. - std::string sline(line_start, line_end); - // Adjustment::Line will contain the trailing '\n'. - if (*line_end == '\n') - ++ line_end; - Adjustment::Line line(0, line_start - gcode.c_str(), line_end - gcode.c_str()); - if (boost::starts_with(sline, "G0 ")) - line.type = Adjustment::Line::TYPE_G0; - else if (boost::starts_with(sline, "G1 ")) - line.type = Adjustment::Line::TYPE_G1; - else if (boost::starts_with(sline, "G92 ")) - line.type = Adjustment::Line::TYPE_G92; - if (line.type) { - // G0, G1 or G92 - // Parse the G-code line. - std::vector new_pos(m_current_pos); - const char *c = sline.data() + 3; - for (;;) { - // Skip whitespaces. - for (; *c == ' ' || *c == '\t'; ++ c); - if (*c == 0 || *c == ';') - break; - // Parse the axis. - size_t axis = (*c >= 'X' && *c <= 'Z') ? (*c - 'X') : - (*c == extrusion_axis) ? 3 : (*c == 'F') ? 4 : size_t(-1); - if (axis != size_t(-1)) { - new_pos[axis] = float(atof(++c)); - if (axis == 4) - // Convert mm/min to mm/sec. - new_pos[4] /= 60.f; - } - // Skip this word. - for (; *c != ' ' && *c != '\t' && *c != 0; ++ c); - } - bool external_perimeter = boost::contains(sline, ";_EXTERNAL_PERIMETER"); - bool wipe = boost::contains(sline, ";_WIPE"); - if (external_perimeter) - line.type |= Adjustment::Line::TYPE_EXTERNAL_PERIMETER; - if (wipe) - line.type |= Adjustment::Line::TYPE_WIPE; - if (boost::contains(sline, ";_EXTRUDE_SET_SPEED") && ! wipe) { - line.type |= Adjustment::Line::TYPE_ADJUSTABLE; - active_speed_modifier = adjustment->lines.size(); - } - if ((line.type & Adjustment::Line::TYPE_G92) == 0) { - // G0 or G1. Calculate the duration. - if (config.use_relative_e_distances.value) - // Reset extruder accumulator. - m_current_pos[3] = 0.f; - float dif[4]; - for (size_t i = 0; i < 4; ++ i) - dif[i] = new_pos[i] - m_current_pos[i]; - float dxy2 = dif[0] * dif[0] + dif[1] * dif[1]; - float dxyz2 = dxy2 + dif[2] * dif[2]; - if (dxyz2 > 0.f) { - // Movement in xyz, calculate time from the xyz Euclidian distance. - line.length = sqrt(dxyz2); - } else if (std::abs(dif[3]) > 0.f) { - // Movement in the extruder axis. - line.length = std::abs(dif[3]); - } - if (line.length > 0) - line.time = line.length / new_pos[4]; // current F - line.time_max = line.time; - if ((line.type & Adjustment::Line::TYPE_ADJUSTABLE) || active_speed_modifier != size_t(-1)) - line.time_max = (min_print_speed == 0.f) ? FLT_MAX : std::max(line.time, line.length / min_print_speed); - if (active_speed_modifier < adjustment->lines.size() && (line.type & Adjustment::Line::TYPE_G1)) { - Adjustment::Line &sm = adjustment->lines[active_speed_modifier]; - sm.length += line.length; - sm.time += line.time; - if (sm.time_max != FLT_MAX) { - if (line.time_max == FLT_MAX) - sm.time_max = FLT_MAX; - else - sm.time_max += line.time_max; - } - // Don't store this line. - line.type = 0; - } - } - m_current_pos = std::move(new_pos); - } else if (boost::starts_with(sline, ";_EXTRUDE_END")) { - line.type = Adjustment::Line::TYPE_EXTRUDE_END; - active_speed_modifier = size_t(-1); - } else if (boost::starts_with(sline, toolchange_prefix)) { - // Switch the tool. - line.type = Adjustment::Line::TYPE_SET_TOOL; - unsigned int new_extruder = (unsigned int)atoi(sline.c_str() + toolchange_prefix.size()); - if (new_extruder != m_current_extruder) { - m_current_extruder = new_extruder; - min_print_speed = float(EXTRUDER_CONFIG(min_print_speed)); - adjustment = std::lower_bound(adjustments.begin(), adjustments.end(), Adjustment(m_current_extruder)); - } - } else if (boost::starts_with(sline, ";_BRIDGE_FAN_START")) { - line.type = Adjustment::Line::TYPE_BRIDGE_FAN_START; - } else if (boost::starts_with(sline, ";_BRIDGE_FAN_END")) { - line.type = Adjustment::Line::TYPE_BRIDGE_FAN_END; - } else if (boost::starts_with(sline, "G4 ")) { - // Parse the wait time. - line.type = Adjustment::Line::TYPE_G4; - size_t pos_S = sline.find('S', 3); - size_t pos_P = sline.find('P', 3); - line.time = line.time_max = float( - (pos_S > 0) ? atof(sline.c_str() + pos_S + 1) : - (pos_P > 0) ? atof(sline.c_str() + pos_P + 1) * 0.001 : 0.); - } - if (line.type != 0) - adjustment->lines.emplace_back(std::move(line)); - } - m_current_extruder = initial_extruder; + unsigned int num_extruders = 0; + for (const Extruder &ex : extruders) + num_extruders = std::max(ex.id() + 1, num_extruders); + + std::vector per_extruder_adjustments(extruders.size()); + std::vector map_extruder_to_per_extruder_adjustment(num_extruders, 0); + for (size_t i = 0; i < extruders.size(); ++ i) { + PerExtruderAdjustments &adj = per_extruder_adjustments[i]; + unsigned int extruder_id = extruders[i].id(); + adj.extruder_id = extruder_id; + adj.cooling_slow_down_enabled = config.cooling.get_at(extruder_id); + adj.slowdown_below_layer_time = config.slowdown_below_layer_time.get_at(extruder_id); + adj.min_print_speed = config.min_print_speed.get_at(extruder_id); + map_extruder_to_per_extruder_adjustment[extruder_id] = i; } - // Sort the extruders by the increasing slowdown_below_layer_time. - std::vector by_slowdown_layer_time; - by_slowdown_layer_time.reserve(num_extruders); + const std::string toolchange_prefix = m_gcodegen.writer().toolchange_prefix(); + unsigned int current_extruder = m_current_extruder; + PerExtruderAdjustments *adjustment = &per_extruder_adjustments[map_extruder_to_per_extruder_adjustment[current_extruder]]; + const char *line_start = gcode.c_str(); + const char *line_end = line_start; + const char extrusion_axis = config.get_extrusion_axis()[0]; + // Index of an existing CoolingLine of the current adjustment, which holds the feedrate setting command + // for a sequence of extrusion moves. + size_t active_speed_modifier = size_t(-1); + + for (; *line_start != 0; line_start = line_end) + { + while (*line_end != '\n' && *line_end != 0) + ++ line_end; + // sline will not contain the trailing '\n'. + std::string sline(line_start, line_end); + // CoolingLine will contain the trailing '\n'. + if (*line_end == '\n') + ++ line_end; + CoolingLine line(0, line_start - gcode.c_str(), line_end - gcode.c_str()); + if (boost::starts_with(sline, "G0 ")) + line.type = CoolingLine::TYPE_G0; + else if (boost::starts_with(sline, "G1 ")) + line.type = CoolingLine::TYPE_G1; + else if (boost::starts_with(sline, "G92 ")) + line.type = CoolingLine::TYPE_G92; + if (line.type) { + // G0, G1 or G92 + // Parse the G-code line. + std::vector new_pos(current_pos); + const char *c = sline.data() + 3; + for (;;) { + // Skip whitespaces. + for (; *c == ' ' || *c == '\t'; ++ c); + if (*c == 0 || *c == ';') + break; + // Parse the axis. + size_t axis = (*c >= 'X' && *c <= 'Z') ? (*c - 'X') : + (*c == extrusion_axis) ? 3 : (*c == 'F') ? 4 : size_t(-1); + if (axis != size_t(-1)) { + new_pos[axis] = float(atof(++c)); + if (axis == 4) { + // Convert mm/min to mm/sec. + new_pos[4] /= 60.f; + if ((line.type & CoolingLine::TYPE_G92) == 0) + // This is G0 or G1 line and it sets the feedrate. This mark is used for reducing the duplicate F calls. + line.type |= CoolingLine::TYPE_HAS_F; + } + } + // Skip this word. + for (; *c != ' ' && *c != '\t' && *c != 0; ++ c); + } + bool external_perimeter = boost::contains(sline, ";_EXTERNAL_PERIMETER"); + bool wipe = boost::contains(sline, ";_WIPE"); + if (external_perimeter) + line.type |= CoolingLine::TYPE_EXTERNAL_PERIMETER; + if (wipe) + line.type |= CoolingLine::TYPE_WIPE; + if (boost::contains(sline, ";_EXTRUDE_SET_SPEED") && ! wipe) { + line.type |= CoolingLine::TYPE_ADJUSTABLE; + active_speed_modifier = adjustment->lines.size(); + } + if ((line.type & CoolingLine::TYPE_G92) == 0) { + // G0 or G1. Calculate the duration. + if (config.use_relative_e_distances.value) + // Reset extruder accumulator. + current_pos[3] = 0.f; + float dif[4]; + for (size_t i = 0; i < 4; ++ i) + dif[i] = new_pos[i] - current_pos[i]; + float dxy2 = dif[0] * dif[0] + dif[1] * dif[1]; + float dxyz2 = dxy2 + dif[2] * dif[2]; + if (dxyz2 > 0.f) { + // Movement in xyz, calculate time from the xyz Euclidian distance. + line.length = sqrt(dxyz2); + } else if (std::abs(dif[3]) > 0.f) { + // Movement in the extruder axis. + line.length = std::abs(dif[3]); + } + if (line.length > 0) { + line.feedrate = new_pos[4]; // current F + line.time = line.length / line.feedrate; + } + line.time_max = line.time; + if ((line.type & CoolingLine::TYPE_ADJUSTABLE) || active_speed_modifier != size_t(-1)) + line.time_max = (adjustment->min_print_speed == 0.f) ? FLT_MAX : std::max(line.time, line.length / adjustment->min_print_speed); + if (active_speed_modifier < adjustment->lines.size() && (line.type & CoolingLine::TYPE_G1)) { + // Inside the ";_EXTRUDE_SET_SPEED" blocks, there must not be a G1 Fxx entry. + assert((line.type & CoolingLine::TYPE_HAS_F) == 0); + CoolingLine &sm = adjustment->lines[active_speed_modifier]; + sm.length += line.length; + sm.time += line.time; + if (sm.time_max != FLT_MAX) { + if (line.time_max == FLT_MAX) + sm.time_max = FLT_MAX; + else + sm.time_max += line.time_max; + } + // Don't store this line. + line.type = 0; + } + } + current_pos = std::move(new_pos); + } else if (boost::starts_with(sline, ";_EXTRUDE_END")) { + line.type = CoolingLine::TYPE_EXTRUDE_END; + active_speed_modifier = size_t(-1); + } else if (boost::starts_with(sline, toolchange_prefix)) { + // Switch the tool. + line.type = CoolingLine::TYPE_SET_TOOL; + unsigned int new_extruder = (unsigned int)atoi(sline.c_str() + toolchange_prefix.size()); + if (new_extruder != current_extruder) { + current_extruder = new_extruder; + adjustment = &per_extruder_adjustments[map_extruder_to_per_extruder_adjustment[current_extruder]]; + } + } else if (boost::starts_with(sline, ";_BRIDGE_FAN_START")) { + line.type = CoolingLine::TYPE_BRIDGE_FAN_START; + } else if (boost::starts_with(sline, ";_BRIDGE_FAN_END")) { + line.type = CoolingLine::TYPE_BRIDGE_FAN_END; + } else if (boost::starts_with(sline, "G4 ")) { + // Parse the wait time. + line.type = CoolingLine::TYPE_G4; + size_t pos_S = sline.find('S', 3); + size_t pos_P = sline.find('P', 3); + line.time = line.time_max = float( + (pos_S > 0) ? atof(sline.c_str() + pos_S + 1) : + (pos_P > 0) ? atof(sline.c_str() + pos_P + 1) * 0.001 : 0.); + } + if (line.type != 0) + adjustment->lines.emplace_back(std::move(line)); + } + + return per_extruder_adjustments; +} + +// Slow down an extruder range proportionally down to slowdown_below_layer_time. +// Return the total time for the complete layer. +static inline float extruder_range_slow_down_proportional( + std::vector::iterator it_begin, + std::vector::iterator it_end, + // Elapsed time for the extruders already processed. + float elapsed_time_total0, + // Initial total elapsed time before slow down. + float elapsed_time_before_slowdown, + // Target time for the complete layer (all extruders applied). + float slowdown_below_layer_time) +{ + // Total layer time after the slow down has been applied. + float total_after_slowdown = elapsed_time_before_slowdown; + // Now decide, whether the external perimeters shall be slowed down as well. + float max_time_nep = elapsed_time_total0; + for (auto it = it_begin; it != it_end; ++ it) + max_time_nep += (*it)->maximum_time_after_slowdown(false); + if (max_time_nep > slowdown_below_layer_time) { + // It is sufficient to slow down the non-external perimeter moves to reach the target layer time. + // Slow down the non-external perimeters proportionally. + float non_adjustable_time = elapsed_time_total0; + for (auto it = it_begin; it != it_end; ++ it) + non_adjustable_time += (*it)->non_adjustable_time(false); + // The following step is a linear programming task due to the minimum movement speeds of the print moves. + // Run maximum 5 iterations until a good enough approximation is reached. + for (size_t iter = 0; iter < 5; ++ iter) { + float factor = (slowdown_below_layer_time - non_adjustable_time) / (total_after_slowdown - non_adjustable_time); + assert(factor > 1.f); + total_after_slowdown = elapsed_time_total0; + for (auto it = it_begin; it != it_end; ++ it) + total_after_slowdown += (*it)->slow_down_proportional(factor, false); + if (total_after_slowdown > 0.95f * slowdown_below_layer_time) + break; + } + } else { + // Slow down everything. First slow down the non-external perimeters to maximum. + for (auto it = it_begin; it != it_end; ++ it) + (*it)->slowdown_to_minimum_feedrate(false); + // Slow down the external perimeters proportionally. + float non_adjustable_time = elapsed_time_total0; + for (auto it = it_begin; it != it_end; ++ it) + non_adjustable_time += (*it)->non_adjustable_time(true); + for (size_t iter = 0; iter < 5; ++ iter) { + float factor = (slowdown_below_layer_time - non_adjustable_time) / (total_after_slowdown - non_adjustable_time); + assert(factor > 1.f); + total_after_slowdown = elapsed_time_total0; + for (auto it = it_begin; it != it_end; ++ it) + total_after_slowdown += (*it)->slow_down_proportional(factor, true); + if (total_after_slowdown > 0.95f * slowdown_below_layer_time) + break; + } + } + return total_after_slowdown; +} + +// Slow down an extruder range to slowdown_below_layer_time. +// Return the total time for the complete layer. +static inline void extruder_range_slow_down_non_proportional( + std::vector::iterator it_begin, + std::vector::iterator it_end, + float time_stretch) +{ + // Slow down. Try to equalize the feedrates. + std::vector by_min_print_speed(it_begin, it_end); + // Find the next highest adjustable feedrate among the extruders. + float feedrate = 0; + for (PerExtruderAdjustments *adj : by_min_print_speed) { + adj->idx_line_begin = 0; + adj->idx_line_end = 0; + assert(adj->idx_line_begin < adj->n_lines_adjustable); + if (adj->lines[adj->idx_line_begin].feedrate > feedrate) + feedrate = adj->lines[adj->idx_line_begin].feedrate; + } + assert(feedrate > 0.f); + // Sort by min_print_speed, maximum speed first. + std::sort(by_min_print_speed.begin(), by_min_print_speed.end(), + [](const PerExtruderAdjustments *p1, const PerExtruderAdjustments *p2){ return p1->min_print_speed > p2->min_print_speed; }); + // Slow down, fast moves first. + for (;;) { + // For each extruder, find the span of lines with a feedrate close to feedrate. + for (PerExtruderAdjustments *adj : by_min_print_speed) { + for (adj->idx_line_end = adj->idx_line_begin; + adj->idx_line_end < adj->n_lines_adjustable && adj->lines[adj->idx_line_end].feedrate > feedrate - EPSILON; + ++ adj->idx_line_end) ; + } + // Find the next highest adjustable feedrate among the extruders. + float feedrate_next = 0.f; + for (PerExtruderAdjustments *adj : by_min_print_speed) + if (adj->idx_line_end < adj->n_lines_adjustable && adj->lines[adj->idx_line_end].feedrate > feedrate_next) + feedrate_next = adj->lines[adj->idx_line_end].feedrate; + // Slow down, limited by max(feedrate_next, min_print_speed). + for (auto adj = by_min_print_speed.begin(); adj != by_min_print_speed.end();) { + // Slow down at most by time_stretch. + if ((*adj)->min_print_speed == 0.f) { + // All the adjustable speeds are now lowered to the same speed, + // and the minimum speed is set to zero. + float time_adjustable = 0.f; + for (auto it = adj; it != by_min_print_speed.end(); ++ it) + time_adjustable += (*it)->adjustable_time(true); + float rate = (time_adjustable + time_stretch) / time_adjustable; + for (auto it = adj; it != by_min_print_speed.end(); ++ it) + (*it)->slow_down_proportional(rate, true); + return; + } else { + float feedrate_limit = std::max(feedrate_next, (*adj)->min_print_speed); + bool done = false; + float time_stretch_max = 0.f; + for (auto it = adj; it != by_min_print_speed.end(); ++ it) + time_stretch_max += (*it)->time_stretch_when_slowing_down_to_feedrate(feedrate_limit); + if (time_stretch_max >= time_stretch) { + feedrate_limit = feedrate - (feedrate - feedrate_limit) * time_stretch / time_stretch_max; + done = true; + } else + time_stretch -= time_stretch_max; + for (auto it = adj; it != by_min_print_speed.end(); ++ it) + (*it)->slow_down_to_feedrate(feedrate_limit); + if (done) + return; + } + // Skip the other extruders with nearly the same min_print_speed, as they have been processed already. + auto next = adj; + for (++ next; next != by_min_print_speed.end() && (*next)->min_print_speed > (*adj)->min_print_speed - EPSILON; ++ next); + adj = next; + } + if (feedrate_next == 0.f) + // There are no other extrusions available for slow down. + break; + for (PerExtruderAdjustments *adj : by_min_print_speed) { + adj->idx_line_begin = adj->idx_line_end; + feedrate = feedrate_next; + } + } +} + +// Calculate slow down for all the extruders. +float CoolingBuffer::calculate_layer_slowdown(std::vector &per_extruder_adjustments) +{ + // Sort the extruders by an increasing slowdown_below_layer_time. + // The layers with a lower slowdown_below_layer_time are slowed down + // together with all the other layers with slowdown_below_layer_time above. + std::vector by_slowdown_time; + by_slowdown_time.reserve(per_extruder_adjustments.size()); // Only insert entries, which are adjustable (have cooling enabled and non-zero stretchable time). // Collect total print time of non-adjustable extruders. - float elapsed_time_total_non_adjustable = 0.f; - for (size_t i = 0; i < num_extruders; ++ i) { - if (config.cooling.get_at(extruders[i].id())) - by_slowdown_layer_time.emplace_back(i); - else - elapsed_time_total_non_adjustable += adjustments[i].elapsed_time_total(); + float elapsed_time_total0 = 0.f; + for (PerExtruderAdjustments &adj : per_extruder_adjustments) { + // Curren total time for this extruder. + adj.time_total = adj.elapsed_time_total(); + // Maximum time for this extruder, when all extrusion moves are slowed down to min_extrusion_speed. + adj.time_maximum = adj.maximum_time_after_slowdown(true); + if (adj.cooling_slow_down_enabled) { + by_slowdown_time.emplace_back(&adj); + if (! m_cooling_logic_proportional) + // sorts the lines, also sets adj.time_non_adjustable + adj.sort_lines_by_decreasing_feedrate(); + } else + elapsed_time_total0 += adj.elapsed_time_total(); } - std::sort(by_slowdown_layer_time.begin(), by_slowdown_layer_time.end(), - [&config, &extruders](const size_t idx1, const size_t idx2){ - return config.slowdown_below_layer_time.get_at(extruders[idx1].id()) < - config.slowdown_below_layer_time.get_at(extruders[idx2].id()); - }); + std::sort(by_slowdown_time.begin(), by_slowdown_time.end(), + [](const PerExtruderAdjustments *adj1, const PerExtruderAdjustments *adj2) + { return adj1->slowdown_below_layer_time < adj2->slowdown_below_layer_time; }); - // Elapsed time after adjustment. - float elapsed_time_total = 0.f; - { - // Elapsed time for the already adjusted extruders. - float elapsed_time_total0 = elapsed_time_total_non_adjustable; - for (size_t i_by_slowdown_layer_time = 0; i_by_slowdown_layer_time < by_slowdown_layer_time.size(); ++ i_by_slowdown_layer_time) { - // Idx in adjustments. - size_t idx = by_slowdown_layer_time[i_by_slowdown_layer_time]; - // Macro to sum or adjust all sections starting with i_by_slowdown_layer_time. - #define FORALL_UNPROCESSED(ACCUMULATOR, ACTION) \ - ACCUMULATOR = elapsed_time_total0;\ - for (size_t j = i_by_slowdown_layer_time; j < by_slowdown_layer_time.size(); ++ j) \ - ACCUMULATOR += adjustments[by_slowdown_layer_time[j]].ACTION - // Calculate the current adjusted elapsed_time_total over the non-finalized extruders. - float total; - FORALL_UNPROCESSED(total, elapsed_time_total()); - float slowdown_below_layer_time = float(config.slowdown_below_layer_time.get_at(adjustments[idx].extruder_id)) * 1.001f; - if (total > slowdown_below_layer_time) { - // The current total time is above the minimum threshold of the rest of the extruders, don't adjust anything. + for (auto cur_begin = by_slowdown_time.begin(); cur_begin != by_slowdown_time.end(); ++ cur_begin) { + PerExtruderAdjustments &adj = *(*cur_begin); + // Calculate the current adjusted elapsed_time_total over the non-finalized extruders. + float total = elapsed_time_total0; + for (auto it = cur_begin; it != by_slowdown_time.end(); ++ it) + total += (*it)->time_total; + float slowdown_below_layer_time = adj.slowdown_below_layer_time * 1.001f; + if (total > slowdown_below_layer_time) { + // The current total time is above the minimum threshold of the rest of the extruders, don't adjust anything. + } else { + // Adjust this and all the following (higher config.slowdown_below_layer_time) extruders. + // Sum maximum slow down time as if everything was slowed down including the external perimeters. + float max_time = elapsed_time_total0; + for (auto it = cur_begin; it != by_slowdown_time.end(); ++ it) + max_time += (*it)->time_maximum; + if (max_time > slowdown_below_layer_time) { + if (m_cooling_logic_proportional) + extruder_range_slow_down_proportional(cur_begin, by_slowdown_time.end(), elapsed_time_total0, total, slowdown_below_layer_time); + else + extruder_range_slow_down_non_proportional(cur_begin, by_slowdown_time.end(), slowdown_below_layer_time - total); } else { - // Adjust this and all the following (higher config.slowdown_below_layer_time) extruders. - // Sum maximum slow down time as if everything was slowed down including the external perimeters. - float max_time; - FORALL_UNPROCESSED(max_time, maximum_time(true)); - if (max_time > slowdown_below_layer_time) { - // By slowing every possible movement, the layer time could be reached. Now decide - // whether the external perimeters shall be slowed down as well. - float max_time_nep; - FORALL_UNPROCESSED(max_time_nep, maximum_time(false)); - if (max_time_nep > slowdown_below_layer_time) { - // It is sufficient to slow down the non-external perimeter moves to reach the target layer time. - // Slow down the non-external perimeters proportionally. - float non_adjustable_time; - FORALL_UNPROCESSED(non_adjustable_time, non_adjustable_time(false)); - // The following step is a linear programming task due to the minimum movement speeds of the print moves. - // Run maximum 5 iterations until a good enough approximation is reached. - for (size_t iter = 0; iter < 5; ++ iter) { - float factor = (slowdown_below_layer_time - non_adjustable_time) / (total - non_adjustable_time); - assert(factor > 1.f); - FORALL_UNPROCESSED(total, slow_down_proportional(factor, false)); - if (total > 0.95f * slowdown_below_layer_time) - break; - } - } else { - // Slow down everything. First slow down the non-external perimeters to maximum. - FORALL_UNPROCESSED(total, slow_down_maximum(false)); - // Slow down the external perimeters proportionally. - float non_adjustable_time; - FORALL_UNPROCESSED(non_adjustable_time, non_adjustable_time(true)); - for (size_t iter = 0; iter < 5; ++ iter) { - float factor = (slowdown_below_layer_time - non_adjustable_time) / (total - non_adjustable_time); - assert(factor > 1.f); - FORALL_UNPROCESSED(total, slow_down_proportional(factor, true)); - if (total > 0.95f * slowdown_below_layer_time) - break; - } - } - } else { - // Slow down to maximum possible. - FORALL_UNPROCESSED(total, slow_down_maximum(true)); - } + // Slow down to maximum possible. + for (auto it = cur_begin; it != by_slowdown_time.end(); ++ it) + (*it)->slowdown_to_minimum_feedrate(true); } - #undef FORALL_UNPROCESSED - // Sum the final elapsed time for all extruders up to i_by_slowdown_layer_time. - if (i_by_slowdown_layer_time + 1 == by_slowdown_layer_time.size()) - // Optimization for single extruder prints. - elapsed_time_total0 = total; - else - elapsed_time_total0 += adjustments[idx].elapsed_time_total(); } - elapsed_time_total = elapsed_time_total0; + elapsed_time_total0 += adj.elapsed_time_total(); } - // Transform the G-code. - // First sort the adjustment lines by their position in the source G-code. - std::vector lines; + return elapsed_time_total0; +} + +// Apply slow down over G-code lines stored in per_extruder_adjustments, enable fan if needed. +// Returns the adjusted G-code. +std::string CoolingBuffer::apply_layer_cooldown( + // Source G-code for the current layer. + const std::string &gcode, + // ID of the current layer, used to disable fan for the first n layers. + size_t layer_id, + // Total time of this layer after slow down, used to control the fan. + float layer_time, + // Per extruder list of G-code lines and their cool down attributes. + std::vector &per_extruder_adjustments) +{ + // First sort the adjustment lines by of multiple extruders by their position in the source G-code. + std::vector lines; { size_t n_lines = 0; - for (const Adjustment &adj : adjustments) + for (const PerExtruderAdjustments &adj : per_extruder_adjustments) n_lines += adj.lines.size(); lines.reserve(n_lines); - for (const Adjustment &adj : adjustments) - for (const Adjustment::Line &line : adj.lines) + for (const PerExtruderAdjustments &adj : per_extruder_adjustments) + for (const CoolingLine &line : adj.lines) lines.emplace_back(&line); - std::sort(lines.begin(), lines.end(), [](const Adjustment::Line *ln1, const Adjustment::Line *ln2) { return ln1->line_start < ln2->line_start; } ); + std::sort(lines.begin(), lines.end(), [](const CoolingLine *ln1, const CoolingLine *ln2) { return ln1->line_start < ln2->line_start; } ); } // Second generate the adjusted G-code. std::string new_gcode; @@ -382,8 +609,9 @@ std::string CoolingBuffer::process_layer(const std::string &gcode, size_t layer_ int fan_speed = -1; bool bridge_fan_control = false; int bridge_fan_speed = 0; - auto change_extruder_set_fan = [ this, layer_id, elapsed_time_total, &new_gcode, &fan_speed, &bridge_fan_control, &bridge_fan_speed ]() { + auto change_extruder_set_fan = [ this, layer_id, layer_time, &new_gcode, &fan_speed, &bridge_fan_control, &bridge_fan_speed ]() { const FullPrintConfig &config = m_gcodegen.config(); +#define EXTRUDER_CONFIG(OPT) config.OPT.get_at(m_current_extruder) int min_fan_speed = EXTRUDER_CONFIG(min_fan_speed); int fan_speed_new = EXTRUDER_CONFIG(fan_always_on) ? min_fan_speed : 0; if (layer_id >= EXTRUDER_CONFIG(disable_fan_first_layers)) { @@ -391,17 +619,18 @@ std::string CoolingBuffer::process_layer(const std::string &gcode, size_t layer_ float slowdown_below_layer_time = float(EXTRUDER_CONFIG(slowdown_below_layer_time)); float fan_below_layer_time = float(EXTRUDER_CONFIG(fan_below_layer_time)); if (EXTRUDER_CONFIG(cooling)) { - if (elapsed_time_total < slowdown_below_layer_time) { + if (layer_time < slowdown_below_layer_time) { // Layer time very short. Enable the fan to a full throttle. fan_speed_new = max_fan_speed; - } else if (elapsed_time_total < fan_below_layer_time) { + } else if (layer_time < fan_below_layer_time) { // Layer time quite short. Enable the fan proportionally according to the current layer time. - assert(elapsed_time_total >= slowdown_below_layer_time); - double t = (elapsed_time_total - slowdown_below_layer_time) / (fan_below_layer_time - slowdown_below_layer_time); + assert(layer_time >= slowdown_below_layer_time); + double t = (layer_time - slowdown_below_layer_time) / (fan_below_layer_time - slowdown_below_layer_time); fan_speed_new = int(floor(t * min_fan_speed + (1. - t) * max_fan_speed) + 0.5); } } bridge_fan_speed = EXTRUDER_CONFIG(bridge_fan_speed); +#undef EXTRUDER_CONFIG bridge_fan_control = bridge_fan_speed > fan_speed_new; } else { bridge_fan_control = false; @@ -413,61 +642,105 @@ std::string CoolingBuffer::process_layer(const std::string &gcode, size_t layer_ new_gcode += m_gcodegen.writer().set_fan(fan_speed); } }; - change_extruder_set_fan(); - size_t pos = 0; - for (const Adjustment::Line *line : lines) { - if (line->line_start > pos) - new_gcode.append(gcode.c_str() + pos, line->line_start - pos); - if (line->type & Adjustment::Line::TYPE_SET_TOOL) { - unsigned int new_extruder = (unsigned int)atoi(gcode.c_str() + line->line_start + toolchange_prefix.size()); + const char *pos = gcode.c_str(); + int current_feedrate = 0; + const std::string toolchange_prefix = m_gcodegen.writer().toolchange_prefix(); + change_extruder_set_fan(); + for (const CoolingLine *line : lines) { + const char *line_start = gcode.c_str() + line->line_start; + const char *line_end = gcode.c_str() + line->line_end; + if (line_start > pos) + new_gcode.append(pos, line_start - pos); + if (line->type & CoolingLine::TYPE_SET_TOOL) { + unsigned int new_extruder = (unsigned int)atoi(line_start + toolchange_prefix.size()); if (new_extruder != m_current_extruder) { m_current_extruder = new_extruder; change_extruder_set_fan(); } - new_gcode.append(gcode.c_str() + line->line_start, line->line_end - line->line_start); - } else if (line->type & Adjustment::Line::TYPE_BRIDGE_FAN_START) { + new_gcode.append(line_start, line_end - line_start); + } else if (line->type & CoolingLine::TYPE_BRIDGE_FAN_START) { if (bridge_fan_control) new_gcode += m_gcodegen.writer().set_fan(bridge_fan_speed, true); - } else if (line->type & Adjustment::Line::TYPE_BRIDGE_FAN_END) { + } else if (line->type & CoolingLine::TYPE_BRIDGE_FAN_END) { if (bridge_fan_control) new_gcode += m_gcodegen.writer().set_fan(fan_speed, true); - } else if (line->type & Adjustment::Line::TYPE_EXTRUDE_END) { + } else if (line->type & CoolingLine::TYPE_EXTRUDE_END) { // Just remove this comment. - } else if (line->type & (Adjustment::Line::TYPE_ADJUSTABLE | Adjustment::Line::TYPE_EXTERNAL_PERIMETER | Adjustment::Line::TYPE_WIPE)) { - // Start of the comment. The line type indicates there must be some comment present. - const char *end = strchr(gcode.c_str() + line->line_start, ';'); + } else if (line->type & (CoolingLine::TYPE_ADJUSTABLE | CoolingLine::TYPE_EXTERNAL_PERIMETER | CoolingLine::TYPE_WIPE | CoolingLine::TYPE_HAS_F)) { + // Find the start of a comment, or roll to the end of line. + const char *end = line_start; + for (; end < line_end && *end != ';'; ++ end); + // Find the 'F' word. + const char *fpos = strstr(line_start + 2, " F") + 2; + int new_feedrate = current_feedrate; + bool modify = false; + assert(fpos != nullptr); if (line->slowdown) { - // Replace the feedrate. - const char *pos = strstr(gcode.c_str() + line->line_start + 2, " F") + 2; - new_gcode.append(gcode.c_str() + line->line_start, pos - gcode.c_str() - line->line_start); - char buf[64]; - sprintf(buf, "%d", int(floor(60. * (line->length / line->time) + 0.5))); - new_gcode += buf; - // Skip the non-whitespaces up to the comment. - for (; *pos != ' ' && *pos != ';'; ++ pos); - // Append the rest of the line without the comment. - if (pos < end) - new_gcode.append(pos, end - pos); + modify = true; + new_feedrate = int(floor(60. * line->feedrate + 0.5)); } else { - // Append the line without the comment. - new_gcode.append(gcode.c_str() + line->line_start, end - gcode.c_str() - line->line_start); + new_feedrate = atoi(fpos); + if (new_feedrate != current_feedrate) { + // Append the line without the comment. + new_gcode.append(line_start, end - line_start); + current_feedrate = new_feedrate; + } else if ((line->type & (CoolingLine::TYPE_ADJUSTABLE | CoolingLine::TYPE_EXTERNAL_PERIMETER | CoolingLine::TYPE_WIPE)) || line->length == 0.) { + // Feedrate does not change and this line does not move the print head. Skip the complete G-code line including the G-code comment. + end = line_end; + } else { + // Remove the feedrate from the G0/G1 line. + modify = true; + } + } + if (modify) { + if (new_feedrate != current_feedrate) { + // Replace the feedrate. + new_gcode.append(line_start, fpos - line_start); + current_feedrate = new_feedrate; + char buf[64]; + sprintf(buf, "%d", int(current_feedrate)); + new_gcode += buf; + } else { + // Remove the feedrate word. + const char *f = fpos; + // Roll the pointer before the 'F' word. + for (f -= 2; f > line_start && (*f == ' ' || *f == '\t'); -- f); + // Append up to the F word, without the trailing whitespace. + new_gcode.append(line_start, f - line_start + 1); + } + // Skip the non-whitespaces of the F parameter up the comment or end of line. + for (; fpos != end && *fpos != ' ' && *fpos != ';' && *fpos != '\n'; ++fpos); + // Append the rest of the line without the comment. + if (fpos < end) + new_gcode.append(fpos, end - fpos); + // There should never be an empty G1 statement emited by the filter. Such lines should be removed completely. + assert(new_gcode.size() < 4 || new_gcode.substr(new_gcode.size() - 4) != "G1 \n"); + } + // Process the rest of the line. + if (end < line_end) { + if (line->type & (CoolingLine::TYPE_ADJUSTABLE | CoolingLine::TYPE_EXTERNAL_PERIMETER | CoolingLine::TYPE_WIPE)) { + // Process comments, remove ";_EXTRUDE_SET_SPEED", ";_EXTERNAL_PERIMETER", ";_WIPE" + std::string comment(end, line_end); + boost::replace_all(comment, ";_EXTRUDE_SET_SPEED", ""); + if (line->type & CoolingLine::TYPE_EXTERNAL_PERIMETER) + boost::replace_all(comment, ";_EXTERNAL_PERIMETER", ""); + if (line->type & CoolingLine::TYPE_WIPE) + boost::replace_all(comment, ";_WIPE", ""); + new_gcode += comment; + } else { + // Just attach the rest of the source line. + new_gcode.append(end, line_end - end); + } } - // Process the comments, remove ";_EXTRUDE_SET_SPEED", ";_EXTERNAL_PERIMETER", ";_WIPE" - std::string comment(end, gcode.c_str() + line->line_end); - boost::replace_all(comment, ";_EXTRUDE_SET_SPEED", ""); - if (line->type & Adjustment::Line::TYPE_EXTERNAL_PERIMETER) - boost::replace_all(comment, ";_EXTERNAL_PERIMETER", ""); - if (line->type & Adjustment::Line::TYPE_WIPE) - boost::replace_all(comment, ";_WIPE", ""); - new_gcode += comment; } else { - new_gcode.append(gcode.c_str() + line->line_start, line->line_end - line->line_start); + new_gcode.append(line_start, line_end - line_start); } - pos = line->line_end; + pos = line_end; } - if (pos < gcode.size()) - new_gcode.append(gcode.c_str() + pos, gcode.size() - pos); + const char *gcode_end = gcode.c_str() + gcode.size(); + if (pos < gcode_end) + new_gcode.append(pos, gcode_end - pos); return new_gcode; } diff --git a/xs/src/libslic3r/GCode/CoolingBuffer.hpp b/xs/src/libslic3r/GCode/CoolingBuffer.hpp index f85c470b3..486bc177f 100644 --- a/xs/src/libslic3r/GCode/CoolingBuffer.hpp +++ b/xs/src/libslic3r/GCode/CoolingBuffer.hpp @@ -9,23 +9,32 @@ namespace Slic3r { class GCode; class Layer; +class PerExtruderAdjustments; -/* -A standalone G-code filter, to control cooling of the print. -The G-code is processed per layer. Once a layer is collected, fan start / stop commands are edited -and the print is modified to stretch over a minimum layer time. -*/ - +// A standalone G-code filter, to control cooling of the print. +// The G-code is processed per layer. Once a layer is collected, fan start / stop commands are edited +// and the print is modified to stretch over a minimum layer time. +// +// The simple it sounds, the actual implementation is significantly more complex. +// Namely, for a multi-extruder print, each material may require a different cooling logic. +// For example, some materials may not like to print too slowly, while with some materials +// we may slow down significantly. +// class CoolingBuffer { public: CoolingBuffer(GCode &gcodegen); void reset(); void set_current_extruder(unsigned int extruder_id) { m_current_extruder = extruder_id; } std::string process_layer(const std::string &gcode, size_t layer_id); - GCode* gcodegen() { return &m_gcodegen; } + GCode* gcodegen() { return &m_gcodegen; } private: - CoolingBuffer& operator=(const CoolingBuffer&); + CoolingBuffer& operator=(const CoolingBuffer&) = delete; + std::vector parse_layer_gcode(const std::string &gcode, std::vector ¤t_pos) const; + float calculate_layer_slowdown(std::vector &per_extruder_adjustments); + // Apply slow down over G-code lines stored in per_extruder_adjustments, enable fan if needed. + // Returns the adjusted G-code. + std::string apply_layer_cooldown(const std::string &gcode, size_t layer_id, float layer_time, std::vector &per_extruder_adjustments); GCode& m_gcodegen; std::string m_gcode; @@ -34,6 +43,9 @@ private: std::vector m_axis; std::vector m_current_pos; unsigned int m_current_extruder; + + // Old logic: proportional. + bool m_cooling_logic_proportional = false; }; } From 81587d5af627da25951c72f2a6c6d11de65495c2 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Thu, 26 Apr 2018 18:56:48 +0200 Subject: [PATCH 08/24] Fix of the new cooling logic backport. --- xs/src/libslic3r/GCode/CoolingBuffer.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/xs/src/libslic3r/GCode/CoolingBuffer.cpp b/xs/src/libslic3r/GCode/CoolingBuffer.cpp index 8a11f51d9..683f2030d 100644 --- a/xs/src/libslic3r/GCode/CoolingBuffer.cpp +++ b/xs/src/libslic3r/GCode/CoolingBuffer.cpp @@ -50,7 +50,7 @@ struct CoolingLine CoolingLine(unsigned int type, size_t line_start, size_t line_end) : type(type), line_start(line_start), line_end(line_end), - length(0.f), time(0.f), time_max(0.f), slowdown(false) {} + length(0.f), feedrate(0.f), time(0.f), time_max(0.f), slowdown(false) {} bool adjustable(bool slowdown_external_perimeters) const { return (this->type & TYPE_ADJUSTABLE) && @@ -158,9 +158,9 @@ struct PerExtruderAdjustments bool adj2 = l2.adjustable(); return (adj1 == adj2) ? l1.feedrate > l2.feedrate : adj1; }); - for (n_lines_adjustable = 0; n_lines_adjustable < lines.size(); ++ n_lines_adjustable) - if ((this->lines[n_lines_adjustable].type & CoolingLine::TYPE_ADJUSTABLE) == 0) - break; + for (n_lines_adjustable = 0; + n_lines_adjustable < lines.size() && this->lines[n_lines_adjustable].adjustable(); + ++ n_lines_adjustable); time_non_adjustable = 0.f; for (size_t i = n_lines_adjustable; i < lines.size(); ++ i) time_non_adjustable += lines[i].time; @@ -329,10 +329,10 @@ std::vector CoolingBuffer::parse_layer_gcode(const std:: // Movement in the extruder axis. line.length = std::abs(dif[3]); } - if (line.length > 0) { - line.feedrate = new_pos[4]; // current F - line.time = line.length / line.feedrate; - } + line.feedrate = new_pos[4]; + assert((line.type & CoolingLine::TYPE_ADJUSTABLE) == 0 || line.feedrate > 0.f); + if (line.length > 0) + line.time = line.length / line.feedrate; line.time_max = line.time; if ((line.type & CoolingLine::TYPE_ADJUSTABLE) || active_speed_modifier != size_t(-1)) line.time_max = (adjustment->min_print_speed == 0.f) ? FLT_MAX : std::max(line.time, line.length / adjustment->min_print_speed); @@ -340,6 +340,7 @@ std::vector CoolingBuffer::parse_layer_gcode(const std:: // Inside the ";_EXTRUDE_SET_SPEED" blocks, there must not be a G1 Fxx entry. assert((line.type & CoolingLine::TYPE_HAS_F) == 0); CoolingLine &sm = adjustment->lines[active_speed_modifier]; + assert(sm.feedrate > 0.f); sm.length += line.length; sm.time += line.time; if (sm.time_max != FLT_MAX) { From b9d80a364c1e4809fdf2a5f285d0b76a7ec32181 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Fri, 27 Apr 2018 18:39:29 +0200 Subject: [PATCH 09/24] Updated slic3r version and Prusa3D bundled printer presets. --- .../Original Prusa i3 MK2 and MK2S.ini | 868 ++++++++++++++--- ...inal Prusa i3 MK2, MK2S, MK2MM and MK3.ini | 902 ++++++++++++++++-- .../profiles/Original Prusa i3 MK2MM.ini | 868 ++++++++++++++--- resources/profiles/Original Prusa i3 MK3.ini | 902 ++++++++++++++++-- xs/src/libslic3r/libslic3r.h | 2 +- 5 files changed, 3121 insertions(+), 421 deletions(-) diff --git a/resources/profiles/Original Prusa i3 MK2 and MK2S.ini b/resources/profiles/Original Prusa i3 MK2 and MK2S.ini index a186c3775..4b8fc6302 100644 --- a/resources/profiles/Original Prusa i3 MK2 and MK2S.ini +++ b/resources/profiles/Original Prusa i3 MK2 and MK2S.ini @@ -1,6 +1,6 @@ -# generated by Slic3r Prusa Edition 1.39.0 on 2018-01-06 at 15:10:57 +# generated by Slic3r Prusa Edition 1.39.0 on 2018-04-27 at 18:00:54 -[print:0.05mm DETAIL] +[print:0.05mm ULTRADETAIL] avoid_crossing_perimeters = 0 bottom_solid_layers = 10 bridge_acceleration = 300 @@ -79,10 +79,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.3 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -106,7 +106,7 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[print:0.05mm DETAIL 0.25 nozzle] +[print:0.05mm ULTRADETAIL 0.25 nozzle] avoid_crossing_perimeters = 0 bottom_solid_layers = 10 bridge_acceleration = 300 @@ -163,7 +163,7 @@ perimeter_acceleration = 300 perimeter_extruder = 1 perimeter_extrusion_width = 0 perimeter_speed = 20 -perimeters = 4 +perimeters = 3 post_process = print_settings_id = raft_layers = 0 @@ -185,10 +185,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.18 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 0 support_material_interface_spacing = 0.15 support_material_interface_speed = 100% @@ -204,7 +204,7 @@ threads = 4 top_infill_extrusion_width = 0 top_solid_infill_speed = 20 top_solid_layers = 15 -travel_speed = 200 +travel_speed = 170 wipe_tower = 0 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -212,7 +212,113 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[print:0.05mm DETAIL MK3] +[print:0.05mm ULTRADETAIL 0.25 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 10 +bridge_acceleration = 600 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 30 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.25 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.25 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.25 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.25 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.25 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 25% +infill_speed = 60 +interface_shells = 0 +layer_height = 0.05 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 600 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.25 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.25 +solid_infill_speed = 60 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.18 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 80% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.25 +top_solid_infill_speed = 50 +top_solid_layers = 15 +travel_speed = 170 +wipe_tower = 0 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + +[print:0.05mm ULTRADETAIL MK3] avoid_crossing_perimeters = 0 bottom_solid_layers = 10 bridge_acceleration = 300 @@ -222,7 +328,7 @@ bridge_speed = 20 brim_width = 0 clip_multipart_objects = 1 compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.4 complete_objects = 0 default_acceleration = 500 dont_support_bridges = 1 @@ -278,7 +384,7 @@ seam_position = nearest skirt_distance = 2 skirt_height = 3 skirts = 1 -small_perimeter_speed = 15 +small_perimeter_speed = 20 solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 @@ -291,10 +397,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.3 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -310,7 +416,7 @@ threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 20 top_solid_layers = 15 -travel_speed = 180 +travel_speed = 170 wipe_tower = 0 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -397,10 +503,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -481,7 +587,7 @@ perimeter_acceleration = 600 perimeter_extruder = 1 perimeter_extrusion_width = 0.25 perimeter_speed = 25 -perimeters = 4 +perimeters = 3 post_process = print_settings_id = raft_layers = 0 @@ -503,10 +609,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.18 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 0 support_material_interface_spacing = 0.15 support_material_interface_speed = 100% @@ -530,9 +636,221 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:0.10mm DETAIL 0.25 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 7 +bridge_acceleration = 600 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 30 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.25 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.25 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.25 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.25 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.25 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 25% +infill_speed = 60 +interface_shells = 0 +layer_height = 0.1 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 600 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.25 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.25 +solid_infill_speed = 60 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.2 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 80% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.25 +top_solid_infill_speed = 50 +top_solid_layers = 9 +travel_speed = 170 +wipe_tower = 0 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + +[print:0.10mm DETAIL 0.6 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 7 +bridge_acceleration = 1000 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 20 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.6 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.61 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.62 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.62 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.7 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 20% +infill_speed = 170 +interface_shells = 0 +layer_height = 0.1 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 800 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.62 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.62 +solid_infill_speed = 170 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.45 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 60% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.6 +top_solid_infill_speed = 50 +top_solid_layers = 9 +travel_speed = 170 +wipe_tower = 0 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [print:0.10mm DETAIL MK3] avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 +bottom_solid_layers = 7 bridge_acceleration = 1000 bridge_angle = 0 bridge_flow_ratio = 0.8 @@ -540,7 +858,7 @@ bridge_speed = 30 brim_width = 0 clip_multipart_objects = 1 compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.4 complete_objects = 0 default_acceleration = 1000 dont_support_bridges = 1 @@ -563,17 +881,17 @@ first_layer_height = 0.2 first_layer_speed = 30 gap_fill_speed = 40 gcode_comments = 0 -infill_acceleration = 3500 +infill_acceleration = 1500 infill_every_layers = 1 infill_extruder = 1 infill_extrusion_width = 0.45 infill_first = 0 infill_only_where_needed = 0 infill_overlap = 25% -infill_speed = 200 +infill_speed = 170 interface_shells = 0 layer_height = 0.1 -max_print_speed = 250 +max_print_speed = 200 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -596,12 +914,12 @@ seam_position = nearest skirt_distance = 2 skirt_height = 3 skirts = 1 -small_perimeter_speed = 20 +small_perimeter_speed = 25 solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 +solid_infill_speed = 170 spiral_vase = 0 standby_temperature_delta = -5 support_material = 0 @@ -627,8 +945,8 @@ thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 50 -top_solid_layers = 5 -travel_speed = 250 +top_solid_layers = 9 +travel_speed = 170 wipe_tower = 0 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -638,7 +956,7 @@ xy_size_compensation = 0 [print:0.15mm 100mms Linear Advance] avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 +bottom_solid_layers = 5 bridge_acceleration = 1000 bridge_angle = 0 bridge_flow_ratio = 0.95 @@ -733,7 +1051,7 @@ thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 70 -top_solid_layers = 5 +top_solid_layers = 7 travel_speed = 120 wipe_tower = 1 wipe_tower_per_color_wipe = 15 @@ -799,7 +1117,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 perimeter_speed = 50 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -821,10 +1139,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -927,10 +1245,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.2 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 0 support_material_interface_spacing = 0.15 support_material_interface_speed = 100% @@ -938,7 +1256,7 @@ support_material_pattern = rectilinear support_material_spacing = 1 support_material_speed = 50 support_material_synchronize_layers = 0 -support_material_threshold = 35 +support_material_threshold = 45 support_material_with_sheath = 0 support_material_xy_spacing = 150% thin_walls = 0 @@ -954,6 +1272,112 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:0.15mm OPTIMAL 0.25 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 5 +bridge_acceleration = 600 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 30 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.25 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.25 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.25 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.25 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.25 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 25% +infill_speed = 60 +interface_shells = 0 +layer_height = 0.15 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 600 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.25 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.25 +solid_infill_speed = 60 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.18 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 80% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.25 +top_solid_infill_speed = 50 +top_solid_layers = 7 +travel_speed = 170 +wipe_tower = 0 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [print:0.15mm OPTIMAL 0.6 nozzle] avoid_crossing_perimeters = 0 bottom_solid_layers = 5 @@ -1011,7 +1435,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.65 perimeter_speed = 50 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -1036,7 +1460,7 @@ support_material_enforce_layers = 0 support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -1060,9 +1484,115 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:0.15mm OPTIMAL 0.6 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 5 +bridge_acceleration = 1000 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 20 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.6 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.61 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.65 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.65 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.7 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 20% +infill_speed = 170 +interface_shells = 0 +layer_height = 0.15 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 800 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.62 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.65 +solid_infill_speed = 170 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.45 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 60% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.6 +top_solid_infill_speed = 50 +top_solid_layers = 7 +travel_speed = 170 +wipe_tower = 1 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [print:0.15mm OPTIMAL MK3] avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 +bottom_solid_layers = 5 bridge_acceleration = 1000 bridge_angle = 0 bridge_flow_ratio = 0.8 @@ -1070,7 +1600,7 @@ bridge_speed = 30 brim_width = 0 clip_multipart_objects = 1 compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.4 complete_objects = 0 default_acceleration = 1000 dont_support_bridges = 1 @@ -1093,17 +1623,17 @@ first_layer_height = 0.2 first_layer_speed = 30 gap_fill_speed = 40 gcode_comments = 0 -infill_acceleration = 3500 +infill_acceleration = 1500 infill_every_layers = 1 infill_extruder = 1 infill_extrusion_width = 0.45 infill_first = 0 infill_only_where_needed = 0 infill_overlap = 25% -infill_speed = 200 +infill_speed = 170 interface_shells = 0 layer_height = 0.15 -max_print_speed = 250 +max_print_speed = 200 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -1126,12 +1656,12 @@ seam_position = nearest skirt_distance = 2 skirt_height = 3 skirts = 1 -small_perimeter_speed = 20 +small_perimeter_speed = 25 solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 +solid_infill_speed = 170 spiral_vase = 0 standby_temperature_delta = -5 support_material = 0 @@ -1157,8 +1687,8 @@ thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 50 -top_solid_layers = 5 -travel_speed = 250 +top_solid_layers = 7 +travel_speed = 170 wipe_tower = 1 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -1223,7 +1753,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 perimeter_speed = 40 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -1266,7 +1796,7 @@ top_solid_infill_speed = 30 top_solid_layers = 7 travel_speed = 120 wipe_tower = 1 -wipe_tower_per_color_wipe = 20 +wipe_tower_per_color_wipe = 25 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 @@ -1329,7 +1859,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 perimeter_speed = 40 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -1364,7 +1894,7 @@ support_material_speed = 50 support_material_synchronize_layers = 1 support_material_threshold = 80 support_material_with_sheath = 0 -support_material_xy_spacing = 120% +support_material_xy_spacing = 80% thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.45 @@ -1372,7 +1902,7 @@ top_solid_infill_speed = 30 top_solid_layers = 7 travel_speed = 120 wipe_tower = 1 -wipe_tower_per_color_wipe = 20 +wipe_tower_per_color_wipe = 25 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 @@ -1494,7 +2024,7 @@ bridge_speed = 30 brim_width = 0 clip_multipart_objects = 1 compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.4 complete_objects = 0 default_acceleration = 1000 dont_support_bridges = 1 @@ -1517,17 +2047,17 @@ first_layer_height = 0.2 first_layer_speed = 30 gap_fill_speed = 40 gcode_comments = 0 -infill_acceleration = 3500 +infill_acceleration = 1500 infill_every_layers = 1 infill_extruder = 1 infill_extrusion_width = 0.45 infill_first = 0 infill_only_where_needed = 0 infill_overlap = 25% -infill_speed = 200 +infill_speed = 170 interface_shells = 0 layer_height = 0.2 -max_print_speed = 250 +max_print_speed = 200 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -1550,12 +2080,12 @@ seam_position = nearest skirt_distance = 2 skirt_height = 3 skirts = 1 -small_perimeter_speed = 20 +small_perimeter_speed = 25 solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 +solid_infill_speed = 170 spiral_vase = 0 standby_temperature_delta = -5 support_material = 0 @@ -1582,7 +2112,7 @@ threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 50 top_solid_layers = 5 -travel_speed = 250 +travel_speed = 170 wipe_tower = 1 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -1753,7 +2283,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.65 perimeter_speed = 50 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -1778,7 +2308,7 @@ support_material_enforce_layers = 0 support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -1802,6 +2332,112 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:0.20mm NORMAL 0.6 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 4 +bridge_acceleration = 1000 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 20 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.6 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.61 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.65 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.65 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.7 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 20% +infill_speed = 170 +interface_shells = 0 +layer_height = 0.2 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 800 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.62 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.65 +solid_infill_speed = 170 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.45 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 60% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.6 +top_solid_infill_speed = 50 +top_solid_layers = 5 +travel_speed = 170 +wipe_tower = 1 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [print:0.20mm NORMAL SOLUBLE FULL] avoid_crossing_perimeters = 0 bottom_solid_layers = 4 @@ -1894,7 +2530,7 @@ support_material_speed = 50 support_material_synchronize_layers = 1 support_material_threshold = 80 support_material_with_sheath = 1 -support_material_xy_spacing = 120% +support_material_xy_spacing = 60% thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 @@ -1902,7 +2538,7 @@ top_solid_infill_speed = 30 top_solid_layers = 5 travel_speed = 120 wipe_tower = 1 -wipe_tower_per_color_wipe = 20 +wipe_tower_per_color_wipe = 25 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 @@ -2000,7 +2636,7 @@ support_material_speed = 50 support_material_synchronize_layers = 1 support_material_threshold = 80 support_material_with_sheath = 0 -support_material_xy_spacing = 120% +support_material_xy_spacing = 80% thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 @@ -2008,7 +2644,7 @@ top_solid_infill_speed = 30 top_solid_layers = 5 travel_speed = 120 wipe_tower = 1 -wipe_tower_per_color_wipe = 20 +wipe_tower_per_color_wipe = 25 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 @@ -2093,10 +2729,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -2122,7 +2758,7 @@ xy_size_compensation = 0 [print:0.35mm FAST 0.6 nozzle] avoid_crossing_perimeters = 0 -bottom_solid_layers = 7 +bottom_solid_layers = 3 bridge_acceleration = 1000 bridge_angle = 0 bridge_flow_ratio = 0.8 @@ -2177,7 +2813,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.65 perimeter_speed = 50 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -2202,7 +2838,7 @@ support_material_enforce_layers = 0 support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -2217,7 +2853,7 @@ thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.6 top_solid_infill_speed = 50 -top_solid_layers = 9 +top_solid_layers = 4 travel_speed = 120 wipe_tower = 1 wipe_tower_per_color_wipe = 15 @@ -2462,7 +3098,7 @@ first_layer_bed_temperature = 60 first_layer_temperature = 210 max_fan_speed = 100 min_fan_speed = 100 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 210 @@ -2482,7 +3118,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2491,7 +3127,7 @@ first_layer_bed_temperature = 105 first_layer_temperature = 270 max_fan_speed = 20 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 270 @@ -2549,7 +3185,7 @@ first_layer_bed_temperature = 60 first_layer_temperature = 200 max_fan_speed = 100 min_fan_speed = 100 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 200 @@ -2569,7 +3205,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2578,7 +3214,7 @@ first_layer_bed_temperature = 90 first_layer_temperature = 260 max_fan_speed = 50 min_fan_speed = 30 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 270 @@ -2607,7 +3243,7 @@ first_layer_bed_temperature = 90 first_layer_temperature = 260 max_fan_speed = 50 min_fan_speed = 30 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 260 @@ -2627,7 +3263,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2636,7 +3272,7 @@ first_layer_bed_temperature = 85 first_layer_temperature = 240 max_fan_speed = 35 min_fan_speed = 20 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 @@ -2665,7 +3301,7 @@ first_layer_bed_temperature = 85 first_layer_temperature = 260 max_fan_speed = 35 min_fan_speed = 20 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 260 @@ -2685,7 +3321,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty MladeÄ PETG" filament_settings_id = filament_soluble = 0 @@ -2694,7 +3330,7 @@ first_layer_bed_temperature = 85 first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 @@ -2714,7 +3350,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2723,7 +3359,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 270 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 270 @@ -2743,7 +3379,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2752,7 +3388,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 240 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 240 @@ -2772,7 +3408,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2781,7 +3417,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 265 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 265 @@ -2801,19 +3437,19 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "CPE HG100 , CPE HM100" filament_settings_id = filament_soluble = 0 filament_type = PET first_layer_bed_temperature = 90 -first_layer_temperature = 260 -max_fan_speed = 80 -min_fan_speed = 80 -min_print_speed = 5 +first_layer_temperature = 275 +max_fan_speed = 50 +min_fan_speed = 50 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 260 +temperature = 275 [filament:Fillamentum Timberfil] bed_temperature = 60 @@ -2859,7 +3495,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty MladeÄ ABS" filament_settings_id = filament_soluble = 0 @@ -2868,7 +3504,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 255 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 255 @@ -2888,7 +3524,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty MladeÄ PETG" filament_settings_id = filament_soluble = 0 @@ -2897,7 +3533,7 @@ first_layer_bed_temperature = 85 first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 @@ -2946,7 +3582,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty MladeÄ ABS" filament_settings_id = filament_soluble = 0 @@ -2955,7 +3591,7 @@ first_layer_bed_temperature = 120 first_layer_temperature = 270 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 270 @@ -3004,7 +3640,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty MladeÄ ABS" filament_settings_id = filament_soluble = 0 @@ -3013,7 +3649,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 255 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 255 @@ -3033,7 +3669,7 @@ filament_colour = #FFFFD7 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "" filament_settings_id = filament_soluble = 1 @@ -3042,7 +3678,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 220 max_fan_speed = 20 min_fan_speed = 20 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 220 @@ -3062,7 +3698,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty MladeÄ PETG" filament_settings_id = filament_soluble = 0 @@ -3071,7 +3707,7 @@ first_layer_bed_temperature = 85 first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 @@ -3120,19 +3756,19 @@ filament_colour = #00CA0A filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 2.5 +filament_max_volumetric_speed = 1.5 filament_notes = "List of materials tested with FLEX print settings & FLEX material settings for MK2:\n\nFillamentum Flex 98A\nFillamentum Flex 92A\nPlasty MladeÄ PP\nPlasty MladeÄ TPE32 \nPlasty MladeÄ TPE88" filament_settings_id = filament_soluble = 0 filament_type = FLEX first_layer_bed_temperature = 50 -first_layer_temperature = 220 +first_layer_temperature = 240 max_fan_speed = 90 min_fan_speed = 70 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 230 +temperature = 240 [filament:Taulman Bridge] bed_temperature = 50 @@ -3149,7 +3785,7 @@ filament_colour = #DEE0E6 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -3158,7 +3794,7 @@ first_layer_bed_temperature = 90 first_layer_temperature = 240 max_fan_speed = 5 min_fan_speed = 0 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 250 @@ -3178,7 +3814,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -3187,7 +3823,7 @@ first_layer_bed_temperature = 90 first_layer_temperature = 240 max_fan_speed = 5 min_fan_speed = 0 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 240 diff --git a/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini b/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini index 64af7d9b2..b04459847 100644 --- a/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini +++ b/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini @@ -1,6 +1,6 @@ -# generated by Slic3r Prusa Edition 1.39.0.29-prusa3d-win64 on 2018-01-22 at 14:53:14 +# generated by Slic3r Prusa Edition 1.39.2-alpha+2-win64 on 2018-04-27 at 14:10:16 -[print:0.05mm DETAIL] +[print:0.05mm ULTRADETAIL] avoid_crossing_perimeters = 0 bottom_solid_layers = 10 bridge_acceleration = 300 @@ -79,10 +79,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.3 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -106,7 +106,7 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[print:0.05mm DETAIL 0.25 nozzle] +[print:0.05mm ULTRADETAIL 0.25 nozzle] avoid_crossing_perimeters = 0 bottom_solid_layers = 10 bridge_acceleration = 300 @@ -163,7 +163,7 @@ perimeter_acceleration = 300 perimeter_extruder = 1 perimeter_extrusion_width = 0 perimeter_speed = 20 -perimeters = 4 +perimeters = 3 post_process = print_settings_id = raft_layers = 0 @@ -185,10 +185,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.18 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 0 support_material_interface_spacing = 0.15 support_material_interface_speed = 100% @@ -204,7 +204,7 @@ threads = 4 top_infill_extrusion_width = 0 top_solid_infill_speed = 20 top_solid_layers = 15 -travel_speed = 200 +travel_speed = 170 wipe_tower = 0 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -212,7 +212,113 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[print:0.05mm DETAIL MK3] +[print:0.05mm ULTRADETAIL 0.25 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 10 +bridge_acceleration = 600 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 30 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.25 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.25 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.25 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.25 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.25 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 25% +infill_speed = 60 +interface_shells = 0 +layer_height = 0.05 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 600 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.25 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.25 +solid_infill_speed = 60 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.18 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 80% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.25 +top_solid_infill_speed = 50 +top_solid_layers = 15 +travel_speed = 170 +wipe_tower = 0 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + +[print:0.05mm ULTRADETAIL MK3] avoid_crossing_perimeters = 0 bottom_solid_layers = 10 bridge_acceleration = 300 @@ -222,7 +328,7 @@ bridge_speed = 20 brim_width = 0 clip_multipart_objects = 1 compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.4 complete_objects = 0 default_acceleration = 500 dont_support_bridges = 1 @@ -278,7 +384,7 @@ seam_position = nearest skirt_distance = 2 skirt_height = 3 skirts = 1 -small_perimeter_speed = 15 +small_perimeter_speed = 20 solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 @@ -291,10 +397,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.3 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -310,7 +416,7 @@ threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 20 top_solid_layers = 15 -travel_speed = 180 +travel_speed = 170 wipe_tower = 0 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -397,10 +503,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -481,7 +587,7 @@ perimeter_acceleration = 600 perimeter_extruder = 1 perimeter_extrusion_width = 0.25 perimeter_speed = 25 -perimeters = 4 +perimeters = 3 post_process = print_settings_id = raft_layers = 0 @@ -503,10 +609,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.18 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 0 support_material_interface_spacing = 0.15 support_material_interface_speed = 100% @@ -530,6 +636,218 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:0.10mm DETAIL 0.25 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 7 +bridge_acceleration = 600 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 30 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.25 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.25 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.25 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.25 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.25 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 25% +infill_speed = 60 +interface_shells = 0 +layer_height = 0.1 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 600 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.25 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.25 +solid_infill_speed = 60 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.2 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 80% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.25 +top_solid_infill_speed = 50 +top_solid_layers = 9 +travel_speed = 170 +wipe_tower = 0 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + +[print:0.10mm DETAIL 0.6 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 7 +bridge_acceleration = 1000 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 20 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.6 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.61 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.62 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.62 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.7 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 20% +infill_speed = 170 +interface_shells = 0 +layer_height = 0.1 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 800 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.62 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.62 +solid_infill_speed = 170 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.45 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 60% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.6 +top_solid_infill_speed = 50 +top_solid_layers = 9 +travel_speed = 170 +wipe_tower = 0 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [print:0.10mm DETAIL MK3] avoid_crossing_perimeters = 0 bottom_solid_layers = 7 @@ -540,7 +858,7 @@ bridge_speed = 30 brim_width = 0 clip_multipart_objects = 1 compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.4 complete_objects = 0 default_acceleration = 1000 dont_support_bridges = 1 @@ -573,7 +891,7 @@ infill_overlap = 25% infill_speed = 170 interface_shells = 0 layer_height = 0.1 -max_print_speed = 170 +max_print_speed = 200 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -596,7 +914,7 @@ seam_position = nearest skirt_distance = 2 skirt_height = 3 skirts = 1 -small_perimeter_speed = 20 +small_perimeter_speed = 25 solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 @@ -638,7 +956,7 @@ xy_size_compensation = 0 [print:0.15mm 100mms Linear Advance] avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 +bottom_solid_layers = 5 bridge_acceleration = 1000 bridge_angle = 0 bridge_flow_ratio = 0.95 @@ -733,7 +1051,7 @@ thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 70 -top_solid_layers = 5 +top_solid_layers = 7 travel_speed = 120 wipe_tower = 1 wipe_tower_per_color_wipe = 15 @@ -799,7 +1117,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 perimeter_speed = 50 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -821,10 +1139,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -927,10 +1245,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.2 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 0 support_material_interface_spacing = 0.15 support_material_interface_speed = 100% @@ -938,7 +1256,7 @@ support_material_pattern = rectilinear support_material_spacing = 1 support_material_speed = 50 support_material_synchronize_layers = 0 -support_material_threshold = 35 +support_material_threshold = 45 support_material_with_sheath = 0 support_material_xy_spacing = 150% thin_walls = 0 @@ -954,6 +1272,112 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:0.15mm OPTIMAL 0.25 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 5 +bridge_acceleration = 600 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 30 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.25 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.25 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.25 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.25 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.25 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 25% +infill_speed = 60 +interface_shells = 0 +layer_height = 0.15 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 600 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.25 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.25 +solid_infill_speed = 60 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.18 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 80% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.25 +top_solid_infill_speed = 50 +top_solid_layers = 7 +travel_speed = 170 +wipe_tower = 0 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [print:0.15mm OPTIMAL 0.6 nozzle] avoid_crossing_perimeters = 0 bottom_solid_layers = 5 @@ -1011,7 +1435,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.65 perimeter_speed = 50 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -1036,7 +1460,7 @@ support_material_enforce_layers = 0 support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -1060,6 +1484,112 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:0.15mm OPTIMAL 0.6 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 5 +bridge_acceleration = 1000 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 20 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.6 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.61 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.65 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.65 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.7 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 20% +infill_speed = 170 +interface_shells = 0 +layer_height = 0.15 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 800 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.62 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.65 +solid_infill_speed = 170 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.45 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 60% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.6 +top_solid_infill_speed = 50 +top_solid_layers = 7 +travel_speed = 170 +wipe_tower = 1 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [print:0.15mm OPTIMAL MK3] avoid_crossing_perimeters = 0 bottom_solid_layers = 5 @@ -1070,7 +1600,7 @@ bridge_speed = 30 brim_width = 0 clip_multipart_objects = 1 compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.4 complete_objects = 0 default_acceleration = 1000 dont_support_bridges = 1 @@ -1103,7 +1633,7 @@ infill_overlap = 25% infill_speed = 170 interface_shells = 0 layer_height = 0.15 -max_print_speed = 170 +max_print_speed = 200 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -1126,7 +1656,7 @@ seam_position = nearest skirt_distance = 2 skirt_height = 3 skirts = 1 -small_perimeter_speed = 20 +small_perimeter_speed = 25 solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 @@ -1223,7 +1753,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 perimeter_speed = 40 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -1266,7 +1796,7 @@ top_solid_infill_speed = 30 top_solid_layers = 7 travel_speed = 120 wipe_tower = 1 -wipe_tower_per_color_wipe = 20 +wipe_tower_per_color_wipe = 25 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 @@ -1329,7 +1859,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 perimeter_speed = 40 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -1364,7 +1894,7 @@ support_material_speed = 50 support_material_synchronize_layers = 1 support_material_threshold = 80 support_material_with_sheath = 0 -support_material_xy_spacing = 120% +support_material_xy_spacing = 80% thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.45 @@ -1372,7 +1902,7 @@ top_solid_infill_speed = 30 top_solid_layers = 7 travel_speed = 120 wipe_tower = 1 -wipe_tower_per_color_wipe = 20 +wipe_tower_per_color_wipe = 25 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 @@ -1494,7 +2024,7 @@ bridge_speed = 30 brim_width = 0 clip_multipart_objects = 1 compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.4 complete_objects = 0 default_acceleration = 1000 dont_support_bridges = 1 @@ -1527,7 +2057,7 @@ infill_overlap = 25% infill_speed = 170 interface_shells = 0 layer_height = 0.2 -max_print_speed = 170 +max_print_speed = 200 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -1550,7 +2080,7 @@ seam_position = nearest skirt_distance = 2 skirt_height = 3 skirts = 1 -small_perimeter_speed = 20 +small_perimeter_speed = 25 solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 @@ -1753,7 +2283,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.65 perimeter_speed = 50 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -1778,7 +2308,7 @@ support_material_enforce_layers = 0 support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -1802,6 +2332,112 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:0.20mm NORMAL 0.6 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 4 +bridge_acceleration = 1000 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 20 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.6 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.61 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.65 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.65 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.7 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 20% +infill_speed = 170 +interface_shells = 0 +layer_height = 0.2 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 800 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.62 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.65 +solid_infill_speed = 170 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.45 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 60% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.6 +top_solid_infill_speed = 50 +top_solid_layers = 5 +travel_speed = 170 +wipe_tower = 1 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [print:0.20mm NORMAL SOLUBLE FULL] avoid_crossing_perimeters = 0 bottom_solid_layers = 4 @@ -1894,7 +2530,7 @@ support_material_speed = 50 support_material_synchronize_layers = 1 support_material_threshold = 80 support_material_with_sheath = 1 -support_material_xy_spacing = 120% +support_material_xy_spacing = 60% thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 @@ -1902,7 +2538,7 @@ top_solid_infill_speed = 30 top_solid_layers = 5 travel_speed = 120 wipe_tower = 1 -wipe_tower_per_color_wipe = 20 +wipe_tower_per_color_wipe = 25 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 @@ -2000,7 +2636,7 @@ support_material_speed = 50 support_material_synchronize_layers = 1 support_material_threshold = 80 support_material_with_sheath = 0 -support_material_xy_spacing = 120% +support_material_xy_spacing = 80% thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 @@ -2008,7 +2644,7 @@ top_solid_infill_speed = 30 top_solid_layers = 5 travel_speed = 120 wipe_tower = 1 -wipe_tower_per_color_wipe = 20 +wipe_tower_per_color_wipe = 25 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 @@ -2093,10 +2729,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -2122,7 +2758,7 @@ xy_size_compensation = 0 [print:0.35mm FAST 0.6 nozzle] avoid_crossing_perimeters = 0 -bottom_solid_layers = 7 +bottom_solid_layers = 3 bridge_acceleration = 1000 bridge_angle = 0 bridge_flow_ratio = 0.8 @@ -2177,7 +2813,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.65 perimeter_speed = 50 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -2202,7 +2838,7 @@ support_material_enforce_layers = 0 support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -2217,7 +2853,7 @@ thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.6 top_solid_infill_speed = 50 -top_solid_layers = 9 +top_solid_layers = 4 travel_speed = 120 wipe_tower = 1 wipe_tower_per_color_wipe = 15 @@ -2462,7 +3098,7 @@ first_layer_bed_temperature = 60 first_layer_temperature = 210 max_fan_speed = 100 min_fan_speed = 100 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 210 @@ -2482,7 +3118,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2491,7 +3127,7 @@ first_layer_bed_temperature = 105 first_layer_temperature = 270 max_fan_speed = 20 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 270 @@ -2549,7 +3185,7 @@ first_layer_bed_temperature = 60 first_layer_temperature = 200 max_fan_speed = 100 min_fan_speed = 100 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 200 @@ -2569,7 +3205,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2578,7 +3214,7 @@ first_layer_bed_temperature = 90 first_layer_temperature = 260 max_fan_speed = 50 min_fan_speed = 30 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 270 @@ -2607,7 +3243,7 @@ first_layer_bed_temperature = 90 first_layer_temperature = 260 max_fan_speed = 50 min_fan_speed = 30 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 260 @@ -2627,7 +3263,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2636,7 +3272,7 @@ first_layer_bed_temperature = 85 first_layer_temperature = 240 max_fan_speed = 35 min_fan_speed = 20 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 @@ -2665,7 +3301,7 @@ first_layer_bed_temperature = 85 first_layer_temperature = 260 max_fan_speed = 35 min_fan_speed = 20 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 260 @@ -2685,7 +3321,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty MladeÄ PETG" filament_settings_id = filament_soluble = 0 @@ -2694,7 +3330,7 @@ first_layer_bed_temperature = 85 first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 @@ -2714,7 +3350,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2723,7 +3359,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 270 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 270 @@ -2743,7 +3379,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2752,7 +3388,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 240 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 240 @@ -2772,7 +3408,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2781,7 +3417,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 265 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 265 @@ -2801,7 +3437,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "CPE HG100 , CPE HM100" filament_settings_id = filament_soluble = 0 @@ -2810,7 +3446,7 @@ first_layer_bed_temperature = 90 first_layer_temperature = 275 max_fan_speed = 50 min_fan_speed = 50 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 275 @@ -2859,7 +3495,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty MladeÄ ABS" filament_settings_id = filament_soluble = 0 @@ -2868,7 +3504,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 255 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 255 @@ -2888,7 +3524,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty MladeÄ PETG" filament_settings_id = filament_soluble = 0 @@ -2897,7 +3533,7 @@ first_layer_bed_temperature = 85 first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 @@ -2946,7 +3582,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty MladeÄ ABS" filament_settings_id = filament_soluble = 0 @@ -2955,7 +3591,7 @@ first_layer_bed_temperature = 120 first_layer_temperature = 270 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 270 @@ -3004,7 +3640,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty MladeÄ ABS" filament_settings_id = filament_soluble = 0 @@ -3013,7 +3649,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 255 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 255 @@ -3033,7 +3669,7 @@ filament_colour = #FFFFD7 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "" filament_settings_id = filament_soluble = 1 @@ -3042,7 +3678,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 220 max_fan_speed = 20 min_fan_speed = 20 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 220 @@ -3062,7 +3698,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty MladeÄ PETG" filament_settings_id = filament_soluble = 0 @@ -3071,7 +3707,7 @@ first_layer_bed_temperature = 85 first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 @@ -3129,7 +3765,7 @@ first_layer_bed_temperature = 50 first_layer_temperature = 240 max_fan_speed = 90 min_fan_speed = 70 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 240 @@ -3149,7 +3785,7 @@ filament_colour = #DEE0E6 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -3158,7 +3794,7 @@ first_layer_bed_temperature = 90 first_layer_temperature = 240 max_fan_speed = 5 min_fan_speed = 0 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 250 @@ -3178,7 +3814,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -3187,7 +3823,7 @@ first_layer_bed_temperature = 90 first_layer_temperature = 240 max_fan_speed = 5 min_fan_speed = 0 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 240 @@ -3560,7 +4196,7 @@ retract_speed = 35 serial_port = serial_speed = 250000 single_extruder_multi_material = 0 -start_gcode = M115 U3.1.1-RC5 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} +start_gcode = M115 U3.1.3-RC1 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height<0.075}100{else}95{endif} toolchange_gcode = use_firmware_retraction = 0 use_relative_e_distances = 1 @@ -3569,6 +4205,84 @@ variable_layer_height = 1 wipe = 1 z_offset = 0 +[printer:Original Prusa i3 MK3 0.25 nozzle] +bed_shape = 0x0,250x0,250x210,0x210 +before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n +between_objects_gcode = +deretract_speed = 0 +end_gcode = G4 ; wait\nM221 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors +extruder_colour = #FFFF00 +extruder_offset = 0x0 +gcode_flavor = marlin +layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] +max_layer_height = 0.25 +min_layer_height = 0.07 +nozzle_diameter = 0.25 +octoprint_apikey = +octoprint_host = +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_VENDOR_PRUSA3D\nPRINTER_MODEL_MK3\n +retract_before_travel = 1 +retract_before_wipe = 0% +retract_layer_change = 1 +retract_length = 0.8 +retract_length_toolchange = 3 +retract_lift = 0.6 +retract_lift_above = 0 +retract_lift_below = 209 +retract_restart_extra = 0 +retract_restart_extra_toolchange = 0 +retract_speed = 35 +serial_port = +serial_speed = 250000 +single_extruder_multi_material = 0 +start_gcode = M115 U3.1.3-RC1 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height<0.075}100{else}100{endif} +toolchange_gcode = +use_firmware_retraction = 0 +use_relative_e_distances = 1 +use_volumetric_e = 0 +variable_layer_height = 1 +wipe = 1 +z_offset = 0 + +[printer:Original Prusa i3 MK3 0.6 nozzle] +bed_shape = 0x0,250x0,250x210,0x210 +before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n +between_objects_gcode = +deretract_speed = 0 +end_gcode = G4 ; wait\nM221 S100\nM220 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors +extruder_colour = #FFFF00 +extruder_offset = 0x0 +gcode_flavor = marlin +layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] +max_layer_height = 0.25 +min_layer_height = 0.07 +nozzle_diameter = 0.6 +octoprint_apikey = +octoprint_host = +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_VENDOR_PRUSA3D\nPRINTER_MODEL_MK3\n +retract_before_travel = 1 +retract_before_wipe = 0% +retract_layer_change = 1 +retract_length = 0.8 +retract_length_toolchange = 3 +retract_lift = 0.6 +retract_lift_above = 0 +retract_lift_below = 209 +retract_restart_extra = 0 +retract_restart_extra_toolchange = 0 +retract_speed = 35 +serial_port = +serial_speed = 250000 +single_extruder_multi_material = 0 +start_gcode = M115 U3.1.3-RC1 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height<0.075}100{else}95{endif}\nM220 S115 +toolchange_gcode = +use_firmware_retraction = 0 +use_relative_e_distances = 1 +use_volumetric_e = 0 +variable_layer_height = 1 +wipe = 0 +z_offset = 0 + [presets] print = 0.15mm OPTIMAL MK3 printer = Original Prusa i3 MK3 diff --git a/resources/profiles/Original Prusa i3 MK2MM.ini b/resources/profiles/Original Prusa i3 MK2MM.ini index 035d15515..4c32fad00 100644 --- a/resources/profiles/Original Prusa i3 MK2MM.ini +++ b/resources/profiles/Original Prusa i3 MK2MM.ini @@ -1,6 +1,6 @@ -# generated by Slic3r Prusa Edition 1.39.0 on 2018-01-06 at 15:12:06 +# generated by Slic3r Prusa Edition 1.39.0 on 2018-04-27 at 18:01:43 -[print:0.05mm DETAIL] +[print:0.05mm ULTRADETAIL] avoid_crossing_perimeters = 0 bottom_solid_layers = 10 bridge_acceleration = 300 @@ -79,10 +79,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.3 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -106,7 +106,7 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[print:0.05mm DETAIL 0.25 nozzle] +[print:0.05mm ULTRADETAIL 0.25 nozzle] avoid_crossing_perimeters = 0 bottom_solid_layers = 10 bridge_acceleration = 300 @@ -163,7 +163,7 @@ perimeter_acceleration = 300 perimeter_extruder = 1 perimeter_extrusion_width = 0 perimeter_speed = 20 -perimeters = 4 +perimeters = 3 post_process = print_settings_id = raft_layers = 0 @@ -185,10 +185,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.18 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 0 support_material_interface_spacing = 0.15 support_material_interface_speed = 100% @@ -204,7 +204,7 @@ threads = 4 top_infill_extrusion_width = 0 top_solid_infill_speed = 20 top_solid_layers = 15 -travel_speed = 200 +travel_speed = 170 wipe_tower = 0 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -212,7 +212,113 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[print:0.05mm DETAIL MK3] +[print:0.05mm ULTRADETAIL 0.25 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 10 +bridge_acceleration = 600 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 30 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.25 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.25 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.25 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.25 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.25 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 25% +infill_speed = 60 +interface_shells = 0 +layer_height = 0.05 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 600 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.25 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.25 +solid_infill_speed = 60 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.18 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 80% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.25 +top_solid_infill_speed = 50 +top_solid_layers = 15 +travel_speed = 170 +wipe_tower = 0 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + +[print:0.05mm ULTRADETAIL MK3] avoid_crossing_perimeters = 0 bottom_solid_layers = 10 bridge_acceleration = 300 @@ -222,7 +328,7 @@ bridge_speed = 20 brim_width = 0 clip_multipart_objects = 1 compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.4 complete_objects = 0 default_acceleration = 500 dont_support_bridges = 1 @@ -278,7 +384,7 @@ seam_position = nearest skirt_distance = 2 skirt_height = 3 skirts = 1 -small_perimeter_speed = 15 +small_perimeter_speed = 20 solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 @@ -291,10 +397,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.3 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -310,7 +416,7 @@ threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 20 top_solid_layers = 15 -travel_speed = 180 +travel_speed = 170 wipe_tower = 0 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -397,10 +503,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -481,7 +587,7 @@ perimeter_acceleration = 600 perimeter_extruder = 1 perimeter_extrusion_width = 0.25 perimeter_speed = 25 -perimeters = 4 +perimeters = 3 post_process = print_settings_id = raft_layers = 0 @@ -503,10 +609,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.18 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 0 support_material_interface_spacing = 0.15 support_material_interface_speed = 100% @@ -530,9 +636,221 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:0.10mm DETAIL 0.25 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 7 +bridge_acceleration = 600 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 30 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.25 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.25 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.25 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.25 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.25 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 25% +infill_speed = 60 +interface_shells = 0 +layer_height = 0.1 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 600 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.25 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.25 +solid_infill_speed = 60 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.2 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 80% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.25 +top_solid_infill_speed = 50 +top_solid_layers = 9 +travel_speed = 170 +wipe_tower = 0 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + +[print:0.10mm DETAIL 0.6 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 7 +bridge_acceleration = 1000 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 20 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.6 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.61 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.62 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.62 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.7 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 20% +infill_speed = 170 +interface_shells = 0 +layer_height = 0.1 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 800 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.62 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.62 +solid_infill_speed = 170 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.45 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 60% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.6 +top_solid_infill_speed = 50 +top_solid_layers = 9 +travel_speed = 170 +wipe_tower = 0 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [print:0.10mm DETAIL MK3] avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 +bottom_solid_layers = 7 bridge_acceleration = 1000 bridge_angle = 0 bridge_flow_ratio = 0.8 @@ -540,7 +858,7 @@ bridge_speed = 30 brim_width = 0 clip_multipart_objects = 1 compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.4 complete_objects = 0 default_acceleration = 1000 dont_support_bridges = 1 @@ -563,17 +881,17 @@ first_layer_height = 0.2 first_layer_speed = 30 gap_fill_speed = 40 gcode_comments = 0 -infill_acceleration = 3500 +infill_acceleration = 1500 infill_every_layers = 1 infill_extruder = 1 infill_extrusion_width = 0.45 infill_first = 0 infill_only_where_needed = 0 infill_overlap = 25% -infill_speed = 200 +infill_speed = 170 interface_shells = 0 layer_height = 0.1 -max_print_speed = 250 +max_print_speed = 200 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -596,12 +914,12 @@ seam_position = nearest skirt_distance = 2 skirt_height = 3 skirts = 1 -small_perimeter_speed = 20 +small_perimeter_speed = 25 solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 +solid_infill_speed = 170 spiral_vase = 0 standby_temperature_delta = -5 support_material = 0 @@ -627,8 +945,8 @@ thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 50 -top_solid_layers = 5 -travel_speed = 250 +top_solid_layers = 9 +travel_speed = 170 wipe_tower = 0 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -638,7 +956,7 @@ xy_size_compensation = 0 [print:0.15mm 100mms Linear Advance] avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 +bottom_solid_layers = 5 bridge_acceleration = 1000 bridge_angle = 0 bridge_flow_ratio = 0.95 @@ -733,7 +1051,7 @@ thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 70 -top_solid_layers = 5 +top_solid_layers = 7 travel_speed = 120 wipe_tower = 1 wipe_tower_per_color_wipe = 15 @@ -799,7 +1117,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 perimeter_speed = 50 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -821,10 +1139,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -927,10 +1245,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.2 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 0 support_material_interface_spacing = 0.15 support_material_interface_speed = 100% @@ -938,7 +1256,7 @@ support_material_pattern = rectilinear support_material_spacing = 1 support_material_speed = 50 support_material_synchronize_layers = 0 -support_material_threshold = 35 +support_material_threshold = 45 support_material_with_sheath = 0 support_material_xy_spacing = 150% thin_walls = 0 @@ -954,6 +1272,112 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:0.15mm OPTIMAL 0.25 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 5 +bridge_acceleration = 600 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 30 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.25 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.25 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.25 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.25 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.25 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 25% +infill_speed = 60 +interface_shells = 0 +layer_height = 0.15 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 600 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.25 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.25 +solid_infill_speed = 60 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.18 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 80% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.25 +top_solid_infill_speed = 50 +top_solid_layers = 7 +travel_speed = 170 +wipe_tower = 0 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [print:0.15mm OPTIMAL 0.6 nozzle] avoid_crossing_perimeters = 0 bottom_solid_layers = 5 @@ -1011,7 +1435,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.65 perimeter_speed = 50 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -1036,7 +1460,7 @@ support_material_enforce_layers = 0 support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -1060,9 +1484,115 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:0.15mm OPTIMAL 0.6 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 5 +bridge_acceleration = 1000 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 20 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.6 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.61 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.65 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.65 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.7 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 20% +infill_speed = 170 +interface_shells = 0 +layer_height = 0.15 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 800 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.62 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.65 +solid_infill_speed = 170 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.45 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 60% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.6 +top_solid_infill_speed = 50 +top_solid_layers = 7 +travel_speed = 170 +wipe_tower = 1 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [print:0.15mm OPTIMAL MK3] avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 +bottom_solid_layers = 5 bridge_acceleration = 1000 bridge_angle = 0 bridge_flow_ratio = 0.8 @@ -1070,7 +1600,7 @@ bridge_speed = 30 brim_width = 0 clip_multipart_objects = 1 compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.4 complete_objects = 0 default_acceleration = 1000 dont_support_bridges = 1 @@ -1093,17 +1623,17 @@ first_layer_height = 0.2 first_layer_speed = 30 gap_fill_speed = 40 gcode_comments = 0 -infill_acceleration = 3500 +infill_acceleration = 1500 infill_every_layers = 1 infill_extruder = 1 infill_extrusion_width = 0.45 infill_first = 0 infill_only_where_needed = 0 infill_overlap = 25% -infill_speed = 200 +infill_speed = 170 interface_shells = 0 layer_height = 0.15 -max_print_speed = 250 +max_print_speed = 200 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -1126,12 +1656,12 @@ seam_position = nearest skirt_distance = 2 skirt_height = 3 skirts = 1 -small_perimeter_speed = 20 +small_perimeter_speed = 25 solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 +solid_infill_speed = 170 spiral_vase = 0 standby_temperature_delta = -5 support_material = 0 @@ -1157,8 +1687,8 @@ thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 50 -top_solid_layers = 5 -travel_speed = 250 +top_solid_layers = 7 +travel_speed = 170 wipe_tower = 1 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -1223,7 +1753,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 perimeter_speed = 40 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -1266,7 +1796,7 @@ top_solid_infill_speed = 30 top_solid_layers = 7 travel_speed = 120 wipe_tower = 1 -wipe_tower_per_color_wipe = 20 +wipe_tower_per_color_wipe = 25 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 @@ -1329,7 +1859,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 perimeter_speed = 40 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -1364,7 +1894,7 @@ support_material_speed = 50 support_material_synchronize_layers = 1 support_material_threshold = 80 support_material_with_sheath = 0 -support_material_xy_spacing = 120% +support_material_xy_spacing = 80% thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.45 @@ -1372,7 +1902,7 @@ top_solid_infill_speed = 30 top_solid_layers = 7 travel_speed = 120 wipe_tower = 1 -wipe_tower_per_color_wipe = 20 +wipe_tower_per_color_wipe = 25 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 @@ -1494,7 +2024,7 @@ bridge_speed = 30 brim_width = 0 clip_multipart_objects = 1 compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.4 complete_objects = 0 default_acceleration = 1000 dont_support_bridges = 1 @@ -1517,17 +2047,17 @@ first_layer_height = 0.2 first_layer_speed = 30 gap_fill_speed = 40 gcode_comments = 0 -infill_acceleration = 3500 +infill_acceleration = 1500 infill_every_layers = 1 infill_extruder = 1 infill_extrusion_width = 0.45 infill_first = 0 infill_only_where_needed = 0 infill_overlap = 25% -infill_speed = 200 +infill_speed = 170 interface_shells = 0 layer_height = 0.2 -max_print_speed = 250 +max_print_speed = 200 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -1550,12 +2080,12 @@ seam_position = nearest skirt_distance = 2 skirt_height = 3 skirts = 1 -small_perimeter_speed = 20 +small_perimeter_speed = 25 solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 +solid_infill_speed = 170 spiral_vase = 0 standby_temperature_delta = -5 support_material = 0 @@ -1582,7 +2112,7 @@ threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 50 top_solid_layers = 5 -travel_speed = 250 +travel_speed = 170 wipe_tower = 1 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -1753,7 +2283,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.65 perimeter_speed = 50 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -1778,7 +2308,7 @@ support_material_enforce_layers = 0 support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -1802,6 +2332,112 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:0.20mm NORMAL 0.6 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 4 +bridge_acceleration = 1000 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 20 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.6 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.61 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.65 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.65 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.7 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 20% +infill_speed = 170 +interface_shells = 0 +layer_height = 0.2 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 800 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.62 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.65 +solid_infill_speed = 170 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.45 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 60% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.6 +top_solid_infill_speed = 50 +top_solid_layers = 5 +travel_speed = 170 +wipe_tower = 1 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [print:0.20mm NORMAL SOLUBLE FULL] avoid_crossing_perimeters = 0 bottom_solid_layers = 4 @@ -1894,7 +2530,7 @@ support_material_speed = 50 support_material_synchronize_layers = 1 support_material_threshold = 80 support_material_with_sheath = 1 -support_material_xy_spacing = 120% +support_material_xy_spacing = 60% thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 @@ -1902,7 +2538,7 @@ top_solid_infill_speed = 30 top_solid_layers = 5 travel_speed = 120 wipe_tower = 1 -wipe_tower_per_color_wipe = 20 +wipe_tower_per_color_wipe = 25 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 @@ -2000,7 +2636,7 @@ support_material_speed = 50 support_material_synchronize_layers = 1 support_material_threshold = 80 support_material_with_sheath = 0 -support_material_xy_spacing = 120% +support_material_xy_spacing = 80% thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 @@ -2008,7 +2644,7 @@ top_solid_infill_speed = 30 top_solid_layers = 5 travel_speed = 120 wipe_tower = 1 -wipe_tower_per_color_wipe = 20 +wipe_tower_per_color_wipe = 25 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 @@ -2093,10 +2729,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -2122,7 +2758,7 @@ xy_size_compensation = 0 [print:0.35mm FAST 0.6 nozzle] avoid_crossing_perimeters = 0 -bottom_solid_layers = 7 +bottom_solid_layers = 3 bridge_acceleration = 1000 bridge_angle = 0 bridge_flow_ratio = 0.8 @@ -2177,7 +2813,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.65 perimeter_speed = 50 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -2202,7 +2838,7 @@ support_material_enforce_layers = 0 support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -2217,7 +2853,7 @@ thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.6 top_solid_infill_speed = 50 -top_solid_layers = 9 +top_solid_layers = 4 travel_speed = 120 wipe_tower = 1 wipe_tower_per_color_wipe = 15 @@ -2462,7 +3098,7 @@ first_layer_bed_temperature = 60 first_layer_temperature = 210 max_fan_speed = 100 min_fan_speed = 100 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 210 @@ -2482,7 +3118,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2491,7 +3127,7 @@ first_layer_bed_temperature = 105 first_layer_temperature = 270 max_fan_speed = 20 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 270 @@ -2549,7 +3185,7 @@ first_layer_bed_temperature = 60 first_layer_temperature = 200 max_fan_speed = 100 min_fan_speed = 100 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 200 @@ -2569,7 +3205,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2578,7 +3214,7 @@ first_layer_bed_temperature = 90 first_layer_temperature = 260 max_fan_speed = 50 min_fan_speed = 30 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 270 @@ -2607,7 +3243,7 @@ first_layer_bed_temperature = 90 first_layer_temperature = 260 max_fan_speed = 50 min_fan_speed = 30 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 260 @@ -2627,7 +3263,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2636,7 +3272,7 @@ first_layer_bed_temperature = 85 first_layer_temperature = 240 max_fan_speed = 35 min_fan_speed = 20 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 @@ -2665,7 +3301,7 @@ first_layer_bed_temperature = 85 first_layer_temperature = 260 max_fan_speed = 35 min_fan_speed = 20 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 260 @@ -2685,7 +3321,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty MladeÄ PETG" filament_settings_id = filament_soluble = 0 @@ -2694,7 +3330,7 @@ first_layer_bed_temperature = 85 first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 @@ -2714,7 +3350,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2723,7 +3359,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 270 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 270 @@ -2743,7 +3379,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2752,7 +3388,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 240 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 240 @@ -2772,7 +3408,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2781,7 +3417,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 265 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 265 @@ -2801,19 +3437,19 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "CPE HG100 , CPE HM100" filament_settings_id = filament_soluble = 0 filament_type = PET first_layer_bed_temperature = 90 -first_layer_temperature = 260 -max_fan_speed = 80 -min_fan_speed = 80 -min_print_speed = 5 +first_layer_temperature = 275 +max_fan_speed = 50 +min_fan_speed = 50 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 260 +temperature = 275 [filament:Fillamentum Timberfil] bed_temperature = 60 @@ -2859,7 +3495,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty MladeÄ ABS" filament_settings_id = filament_soluble = 0 @@ -2868,7 +3504,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 255 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 255 @@ -2888,7 +3524,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty MladeÄ PETG" filament_settings_id = filament_soluble = 0 @@ -2897,7 +3533,7 @@ first_layer_bed_temperature = 85 first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 @@ -2946,7 +3582,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty MladeÄ ABS" filament_settings_id = filament_soluble = 0 @@ -2955,7 +3591,7 @@ first_layer_bed_temperature = 120 first_layer_temperature = 270 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 270 @@ -3004,7 +3640,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty MladeÄ ABS" filament_settings_id = filament_soluble = 0 @@ -3013,7 +3649,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 255 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 255 @@ -3033,7 +3669,7 @@ filament_colour = #FFFFD7 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "" filament_settings_id = filament_soluble = 1 @@ -3042,7 +3678,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 220 max_fan_speed = 20 min_fan_speed = 20 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 220 @@ -3062,7 +3698,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty MladeÄ PETG" filament_settings_id = filament_soluble = 0 @@ -3071,7 +3707,7 @@ first_layer_bed_temperature = 85 first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 @@ -3120,19 +3756,19 @@ filament_colour = #00CA0A filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 2.5 +filament_max_volumetric_speed = 1.5 filament_notes = "List of materials tested with FLEX print settings & FLEX material settings for MK2:\n\nFillamentum Flex 98A\nFillamentum Flex 92A\nPlasty MladeÄ PP\nPlasty MladeÄ TPE32 \nPlasty MladeÄ TPE88" filament_settings_id = filament_soluble = 0 filament_type = FLEX first_layer_bed_temperature = 50 -first_layer_temperature = 220 +first_layer_temperature = 240 max_fan_speed = 90 min_fan_speed = 70 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 230 +temperature = 240 [filament:Taulman Bridge] bed_temperature = 50 @@ -3149,7 +3785,7 @@ filament_colour = #DEE0E6 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -3158,7 +3794,7 @@ first_layer_bed_temperature = 90 first_layer_temperature = 240 max_fan_speed = 5 min_fan_speed = 0 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 250 @@ -3178,7 +3814,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -3187,7 +3823,7 @@ first_layer_bed_temperature = 90 first_layer_temperature = 240 max_fan_speed = 5 min_fan_speed = 0 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 240 diff --git a/resources/profiles/Original Prusa i3 MK3.ini b/resources/profiles/Original Prusa i3 MK3.ini index b53006b0f..60df920f6 100644 --- a/resources/profiles/Original Prusa i3 MK3.ini +++ b/resources/profiles/Original Prusa i3 MK3.ini @@ -1,6 +1,6 @@ -# generated by Slic3r Prusa Edition 1.39.0 on 2018-02-02 at 10:48:46 +# generated by Slic3r Prusa Edition 1.39.0 on 2018-04-27 at 17:59:37 -[print:0.05mm DETAIL] +[print:0.05mm ULTRADETAIL] avoid_crossing_perimeters = 0 bottom_solid_layers = 10 bridge_acceleration = 300 @@ -79,10 +79,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.3 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -106,7 +106,7 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[print:0.05mm DETAIL 0.25 nozzle] +[print:0.05mm ULTRADETAIL 0.25 nozzle] avoid_crossing_perimeters = 0 bottom_solid_layers = 10 bridge_acceleration = 300 @@ -163,7 +163,7 @@ perimeter_acceleration = 300 perimeter_extruder = 1 perimeter_extrusion_width = 0 perimeter_speed = 20 -perimeters = 4 +perimeters = 3 post_process = print_settings_id = raft_layers = 0 @@ -185,10 +185,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.18 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 0 support_material_interface_spacing = 0.15 support_material_interface_speed = 100% @@ -204,7 +204,7 @@ threads = 4 top_infill_extrusion_width = 0 top_solid_infill_speed = 20 top_solid_layers = 15 -travel_speed = 200 +travel_speed = 170 wipe_tower = 0 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -212,7 +212,113 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[print:0.05mm DETAIL MK3] +[print:0.05mm ULTRADETAIL 0.25 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 10 +bridge_acceleration = 600 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 30 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.25 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.25 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.25 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.25 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.25 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 25% +infill_speed = 60 +interface_shells = 0 +layer_height = 0.05 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 600 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.25 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.25 +solid_infill_speed = 60 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.18 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 80% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.25 +top_solid_infill_speed = 50 +top_solid_layers = 15 +travel_speed = 170 +wipe_tower = 0 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + +[print:0.05mm ULTRADETAIL MK3] avoid_crossing_perimeters = 0 bottom_solid_layers = 10 bridge_acceleration = 300 @@ -222,7 +328,7 @@ bridge_speed = 20 brim_width = 0 clip_multipart_objects = 1 compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.4 complete_objects = 0 default_acceleration = 500 dont_support_bridges = 1 @@ -278,7 +384,7 @@ seam_position = nearest skirt_distance = 2 skirt_height = 3 skirts = 1 -small_perimeter_speed = 15 +small_perimeter_speed = 20 solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 @@ -291,10 +397,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.3 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -310,7 +416,7 @@ threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 20 top_solid_layers = 15 -travel_speed = 180 +travel_speed = 170 wipe_tower = 0 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -397,10 +503,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -481,7 +587,7 @@ perimeter_acceleration = 600 perimeter_extruder = 1 perimeter_extrusion_width = 0.25 perimeter_speed = 25 -perimeters = 4 +perimeters = 3 post_process = print_settings_id = raft_layers = 0 @@ -503,10 +609,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.18 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 0 support_material_interface_spacing = 0.15 support_material_interface_speed = 100% @@ -530,6 +636,218 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:0.10mm DETAIL 0.25 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 7 +bridge_acceleration = 600 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 30 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.25 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.25 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.25 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.25 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.25 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 25% +infill_speed = 60 +interface_shells = 0 +layer_height = 0.1 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 600 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.25 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.25 +solid_infill_speed = 60 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.2 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 80% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.25 +top_solid_infill_speed = 50 +top_solid_layers = 9 +travel_speed = 170 +wipe_tower = 0 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + +[print:0.10mm DETAIL 0.6 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 7 +bridge_acceleration = 1000 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 20 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.6 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.61 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.62 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.62 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.7 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 20% +infill_speed = 170 +interface_shells = 0 +layer_height = 0.1 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 800 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.62 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.62 +solid_infill_speed = 170 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.45 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 60% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.6 +top_solid_infill_speed = 50 +top_solid_layers = 9 +travel_speed = 170 +wipe_tower = 0 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [print:0.10mm DETAIL MK3] avoid_crossing_perimeters = 0 bottom_solid_layers = 7 @@ -540,7 +858,7 @@ bridge_speed = 30 brim_width = 0 clip_multipart_objects = 1 compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.4 complete_objects = 0 default_acceleration = 1000 dont_support_bridges = 1 @@ -573,7 +891,7 @@ infill_overlap = 25% infill_speed = 170 interface_shells = 0 layer_height = 0.1 -max_print_speed = 170 +max_print_speed = 200 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -596,7 +914,7 @@ seam_position = nearest skirt_distance = 2 skirt_height = 3 skirts = 1 -small_perimeter_speed = 20 +small_perimeter_speed = 25 solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 @@ -638,7 +956,7 @@ xy_size_compensation = 0 [print:0.15mm 100mms Linear Advance] avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 +bottom_solid_layers = 5 bridge_acceleration = 1000 bridge_angle = 0 bridge_flow_ratio = 0.95 @@ -733,7 +1051,7 @@ thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 70 -top_solid_layers = 5 +top_solid_layers = 7 travel_speed = 120 wipe_tower = 1 wipe_tower_per_color_wipe = 15 @@ -799,7 +1117,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 perimeter_speed = 50 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -821,10 +1139,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -927,10 +1245,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.2 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 0 support_material_interface_spacing = 0.15 support_material_interface_speed = 100% @@ -938,7 +1256,7 @@ support_material_pattern = rectilinear support_material_spacing = 1 support_material_speed = 50 support_material_synchronize_layers = 0 -support_material_threshold = 35 +support_material_threshold = 45 support_material_with_sheath = 0 support_material_xy_spacing = 150% thin_walls = 0 @@ -954,6 +1272,112 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:0.15mm OPTIMAL 0.25 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 5 +bridge_acceleration = 600 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 30 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.25 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.25 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.25 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.25 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.25 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 25% +infill_speed = 60 +interface_shells = 0 +layer_height = 0.15 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 600 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.25 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.25 +solid_infill_speed = 60 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.18 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 80% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.25 +top_solid_infill_speed = 50 +top_solid_layers = 7 +travel_speed = 170 +wipe_tower = 0 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [print:0.15mm OPTIMAL 0.6 nozzle] avoid_crossing_perimeters = 0 bottom_solid_layers = 5 @@ -1011,7 +1435,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.65 perimeter_speed = 50 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -1036,7 +1460,7 @@ support_material_enforce_layers = 0 support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -1060,6 +1484,112 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:0.15mm OPTIMAL 0.6 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 5 +bridge_acceleration = 1000 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 20 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.6 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.61 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.65 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.65 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.7 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 20% +infill_speed = 170 +interface_shells = 0 +layer_height = 0.15 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 800 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.62 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.65 +solid_infill_speed = 170 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.45 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 60% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.6 +top_solid_infill_speed = 50 +top_solid_layers = 7 +travel_speed = 170 +wipe_tower = 1 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [print:0.15mm OPTIMAL MK3] avoid_crossing_perimeters = 0 bottom_solid_layers = 5 @@ -1070,7 +1600,7 @@ bridge_speed = 30 brim_width = 0 clip_multipart_objects = 1 compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.4 complete_objects = 0 default_acceleration = 1000 dont_support_bridges = 1 @@ -1103,7 +1633,7 @@ infill_overlap = 25% infill_speed = 170 interface_shells = 0 layer_height = 0.15 -max_print_speed = 170 +max_print_speed = 200 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -1126,7 +1656,7 @@ seam_position = nearest skirt_distance = 2 skirt_height = 3 skirts = 1 -small_perimeter_speed = 20 +small_perimeter_speed = 25 solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 @@ -1223,7 +1753,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 perimeter_speed = 40 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -1266,7 +1796,7 @@ top_solid_infill_speed = 30 top_solid_layers = 7 travel_speed = 120 wipe_tower = 1 -wipe_tower_per_color_wipe = 20 +wipe_tower_per_color_wipe = 25 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 @@ -1329,7 +1859,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.45 perimeter_speed = 40 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -1364,7 +1894,7 @@ support_material_speed = 50 support_material_synchronize_layers = 1 support_material_threshold = 80 support_material_with_sheath = 0 -support_material_xy_spacing = 120% +support_material_xy_spacing = 80% thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.45 @@ -1372,7 +1902,7 @@ top_solid_infill_speed = 30 top_solid_layers = 7 travel_speed = 120 wipe_tower = 1 -wipe_tower_per_color_wipe = 20 +wipe_tower_per_color_wipe = 25 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 @@ -1494,7 +2024,7 @@ bridge_speed = 30 brim_width = 0 clip_multipart_objects = 1 compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.4 complete_objects = 0 default_acceleration = 1000 dont_support_bridges = 1 @@ -1527,7 +2057,7 @@ infill_overlap = 25% infill_speed = 170 interface_shells = 0 layer_height = 0.2 -max_print_speed = 170 +max_print_speed = 200 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -1550,7 +2080,7 @@ seam_position = nearest skirt_distance = 2 skirt_height = 3 skirts = 1 -small_perimeter_speed = 20 +small_perimeter_speed = 25 solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 @@ -1753,7 +2283,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.65 perimeter_speed = 50 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -1778,7 +2308,7 @@ support_material_enforce_layers = 0 support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -1802,6 +2332,112 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:0.20mm NORMAL 0.6 nozzle MK3] +avoid_crossing_perimeters = 0 +bottom_solid_layers = 4 +bridge_acceleration = 1000 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 20 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.6 +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeter_extrusion_width = 0.61 +external_perimeter_speed = 35 +external_perimeters_first = 0 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.65 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.65 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 1500 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.7 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 20% +infill_speed = 170 +interface_shells = 0 +layer_height = 0.2 +max_print_speed = 170 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 0 +perimeter_acceleration = 800 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.62 +perimeter_speed = 45 +perimeters = 2 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +small_perimeter_speed = 25 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.65 +solid_infill_speed = 170 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_contact_distance = 0.15 +support_material_enforce_layers = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.45 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 0 +support_material_interface_layers = 2 +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 60% +thin_walls = 0 +threads = 4 +top_infill_extrusion_width = 0.6 +top_solid_infill_speed = 50 +top_solid_layers = 5 +travel_speed = 170 +wipe_tower = 1 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [print:0.20mm NORMAL SOLUBLE FULL] avoid_crossing_perimeters = 0 bottom_solid_layers = 4 @@ -1894,7 +2530,7 @@ support_material_speed = 50 support_material_synchronize_layers = 1 support_material_threshold = 80 support_material_with_sheath = 1 -support_material_xy_spacing = 120% +support_material_xy_spacing = 60% thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 @@ -1902,7 +2538,7 @@ top_solid_infill_speed = 30 top_solid_layers = 5 travel_speed = 120 wipe_tower = 1 -wipe_tower_per_color_wipe = 20 +wipe_tower_per_color_wipe = 25 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 @@ -2000,7 +2636,7 @@ support_material_speed = 50 support_material_synchronize_layers = 1 support_material_threshold = 80 support_material_with_sheath = 0 -support_material_xy_spacing = 120% +support_material_xy_spacing = 80% thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 @@ -2008,7 +2644,7 @@ top_solid_infill_speed = 30 top_solid_layers = 5 travel_speed = 120 wipe_tower = 1 -wipe_tower_per_color_wipe = 20 +wipe_tower_per_color_wipe = 25 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 @@ -2093,10 +2729,10 @@ support_material_angle = 0 support_material_buildplate_only = 0 support_material_contact_distance = 0.15 support_material_enforce_layers = 0 -support_material_extruder = 1 +support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -2122,7 +2758,7 @@ xy_size_compensation = 0 [print:0.35mm FAST 0.6 nozzle] avoid_crossing_perimeters = 0 -bottom_solid_layers = 7 +bottom_solid_layers = 3 bridge_acceleration = 1000 bridge_angle = 0 bridge_flow_ratio = 0.8 @@ -2177,7 +2813,7 @@ perimeter_acceleration = 800 perimeter_extruder = 1 perimeter_extrusion_width = 0.65 perimeter_speed = 50 -perimeters = 3 +perimeters = 2 post_process = print_settings_id = raft_layers = 0 @@ -2202,7 +2838,7 @@ support_material_enforce_layers = 0 support_material_extruder = 0 support_material_extrusion_width = 0.35 support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 +support_material_interface_extruder = 0 support_material_interface_layers = 2 support_material_interface_spacing = 0.2 support_material_interface_speed = 100% @@ -2217,7 +2853,7 @@ thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.6 top_solid_infill_speed = 50 -top_solid_layers = 9 +top_solid_layers = 4 travel_speed = 120 wipe_tower = 1 wipe_tower_per_color_wipe = 15 @@ -2462,7 +3098,7 @@ first_layer_bed_temperature = 60 first_layer_temperature = 210 max_fan_speed = 100 min_fan_speed = 100 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 210 @@ -2482,7 +3118,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2491,7 +3127,7 @@ first_layer_bed_temperature = 105 first_layer_temperature = 270 max_fan_speed = 20 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 270 @@ -2549,7 +3185,7 @@ first_layer_bed_temperature = 60 first_layer_temperature = 200 max_fan_speed = 100 min_fan_speed = 100 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 200 @@ -2569,7 +3205,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2578,7 +3214,7 @@ first_layer_bed_temperature = 90 first_layer_temperature = 260 max_fan_speed = 50 min_fan_speed = 30 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 270 @@ -2607,7 +3243,7 @@ first_layer_bed_temperature = 90 first_layer_temperature = 260 max_fan_speed = 50 min_fan_speed = 30 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 260 @@ -2627,7 +3263,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2636,7 +3272,7 @@ first_layer_bed_temperature = 85 first_layer_temperature = 240 max_fan_speed = 35 min_fan_speed = 20 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 @@ -2665,7 +3301,7 @@ first_layer_bed_temperature = 85 first_layer_temperature = 260 max_fan_speed = 35 min_fan_speed = 20 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 260 @@ -2685,7 +3321,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty MladeÄ PETG" filament_settings_id = filament_soluble = 0 @@ -2694,7 +3330,7 @@ first_layer_bed_temperature = 85 first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 @@ -2714,7 +3350,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2723,7 +3359,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 270 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 270 @@ -2743,7 +3379,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2752,7 +3388,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 240 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 240 @@ -2772,7 +3408,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -2781,7 +3417,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 265 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 265 @@ -2801,7 +3437,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "CPE HG100 , CPE HM100" filament_settings_id = filament_soluble = 0 @@ -2810,7 +3446,7 @@ first_layer_bed_temperature = 90 first_layer_temperature = 275 max_fan_speed = 50 min_fan_speed = 50 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 275 @@ -2859,7 +3495,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty MladeÄ ABS" filament_settings_id = filament_soluble = 0 @@ -2868,7 +3504,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 255 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 255 @@ -2888,7 +3524,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty MladeÄ PETG" filament_settings_id = filament_soluble = 0 @@ -2897,7 +3533,7 @@ first_layer_bed_temperature = 85 first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 @@ -2946,7 +3582,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty MladeÄ ABS" filament_settings_id = filament_soluble = 0 @@ -2955,7 +3591,7 @@ first_layer_bed_temperature = 120 first_layer_temperature = 270 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 270 @@ -3004,7 +3640,7 @@ filament_colour = #3A80CA filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty MladeÄ ABS" filament_settings_id = filament_soluble = 0 @@ -3013,7 +3649,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 255 max_fan_speed = 30 min_fan_speed = 10 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 255 @@ -3033,7 +3669,7 @@ filament_colour = #FFFFD7 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 13 +filament_max_volumetric_speed = 11 filament_notes = "" filament_settings_id = filament_soluble = 1 @@ -3042,7 +3678,7 @@ first_layer_bed_temperature = 100 first_layer_temperature = 220 max_fan_speed = 20 min_fan_speed = 20 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 220 @@ -3062,7 +3698,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty MladeÄ PETG" filament_settings_id = filament_soluble = 0 @@ -3071,7 +3707,7 @@ first_layer_bed_temperature = 85 first_layer_temperature = 230 max_fan_speed = 50 min_fan_speed = 30 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" temperature = 240 @@ -3129,7 +3765,7 @@ first_layer_bed_temperature = 50 first_layer_temperature = 240 max_fan_speed = 90 min_fan_speed = 70 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 240 @@ -3149,7 +3785,7 @@ filament_colour = #DEE0E6 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -3158,7 +3794,7 @@ first_layer_bed_temperature = 90 first_layer_temperature = 240 max_fan_speed = 5 min_fan_speed = 0 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 250 @@ -3178,7 +3814,7 @@ filament_colour = #FF8000 filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 10 +filament_max_volumetric_speed = 8 filament_notes = "" filament_settings_id = filament_soluble = 0 @@ -3187,7 +3823,7 @@ first_layer_bed_temperature = 90 first_layer_temperature = 240 max_fan_speed = 5 min_fan_speed = 0 -min_print_speed = 5 +min_print_speed = 15 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 240 @@ -3280,7 +3916,7 @@ retract_speed = 35 serial_port = serial_speed = 250000 single_extruder_multi_material = 0 -start_gcode = M115 U3.1.1-RC5 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} +start_gcode = M115 U3.1.3-RC1 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height<0.075}100{else}95{endif} toolchange_gcode = use_firmware_retraction = 0 use_relative_e_distances = 1 @@ -3289,6 +3925,84 @@ variable_layer_height = 1 wipe = 1 z_offset = 0 +[printer:Original Prusa i3 MK3 0.25 nozzle] +bed_shape = 0x0,250x0,250x210,0x210 +before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n +between_objects_gcode = +deretract_speed = 0 +end_gcode = G4 ; wait\nM221 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors +extruder_colour = #FFFF00 +extruder_offset = 0x0 +gcode_flavor = marlin +layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] +max_layer_height = 0.25 +min_layer_height = 0.07 +nozzle_diameter = 0.25 +octoprint_apikey = +octoprint_host = +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_VENDOR_PRUSA3D\nPRINTER_MODEL_MK3\n +retract_before_travel = 1 +retract_before_wipe = 0% +retract_layer_change = 1 +retract_length = 0.8 +retract_length_toolchange = 3 +retract_lift = 0.6 +retract_lift_above = 0 +retract_lift_below = 209 +retract_restart_extra = 0 +retract_restart_extra_toolchange = 0 +retract_speed = 35 +serial_port = +serial_speed = 250000 +single_extruder_multi_material = 0 +start_gcode = M115 U3.1.3-RC1 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height<0.075}100{else}100{endif} +toolchange_gcode = +use_firmware_retraction = 0 +use_relative_e_distances = 1 +use_volumetric_e = 0 +variable_layer_height = 1 +wipe = 1 +z_offset = 0 + +[printer:Original Prusa i3 MK3 0.6 nozzle] +bed_shape = 0x0,250x0,250x210,0x210 +before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n +between_objects_gcode = +deretract_speed = 0 +end_gcode = G4 ; wait\nM221 S100\nM220 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors +extruder_colour = #FFFF00 +extruder_offset = 0x0 +gcode_flavor = marlin +layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] +max_layer_height = 0.25 +min_layer_height = 0.07 +nozzle_diameter = 0.6 +octoprint_apikey = +octoprint_host = +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_VENDOR_PRUSA3D\nPRINTER_MODEL_MK3\n +retract_before_travel = 1 +retract_before_wipe = 0% +retract_layer_change = 1 +retract_length = 0.8 +retract_length_toolchange = 3 +retract_lift = 0.6 +retract_lift_above = 0 +retract_lift_below = 209 +retract_restart_extra = 0 +retract_restart_extra_toolchange = 0 +retract_speed = 35 +serial_port = +serial_speed = 250000 +single_extruder_multi_material = 0 +start_gcode = M115 U3.1.3-RC1 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height<0.075}100{else}95{endif}\nM220 S115 +toolchange_gcode = +use_firmware_retraction = 0 +use_relative_e_distances = 1 +use_volumetric_e = 0 +variable_layer_height = 1 +wipe = 0 +z_offset = 0 + [presets] print = 0.15mm OPTIMAL MK3 printer = Original Prusa i3 MK3 diff --git a/xs/src/libslic3r/libslic3r.h b/xs/src/libslic3r/libslic3r.h index e58b01582..359078748 100644 --- a/xs/src/libslic3r/libslic3r.h +++ b/xs/src/libslic3r/libslic3r.h @@ -14,7 +14,7 @@ #include #define SLIC3R_FORK_NAME "Slic3r Prusa Edition" -#define SLIC3R_VERSION "1.39.0" +#define SLIC3R_VERSION "1.39.2-beta" #define SLIC3R_BUILD "UNKNOWN" typedef int32_t coord_t; From a688a1931e066f4bb0fe56cdd785548d0a8940fa Mon Sep 17 00:00:00 2001 From: bubnikv Date: Thu, 3 May 2018 18:34:43 +0200 Subject: [PATCH 10/24] Fixed a crash on some multi-material objects due to the reworked cooling logic. --- xs/src/libslic3r/GCode/CoolingBuffer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xs/src/libslic3r/GCode/CoolingBuffer.cpp b/xs/src/libslic3r/GCode/CoolingBuffer.cpp index 683f2030d..552695204 100644 --- a/xs/src/libslic3r/GCode/CoolingBuffer.cpp +++ b/xs/src/libslic3r/GCode/CoolingBuffer.cpp @@ -536,7 +536,7 @@ float CoolingBuffer::calculate_layer_slowdown(std::vector 0) { by_slowdown_time.emplace_back(&adj); if (! m_cooling_logic_proportional) // sorts the lines, also sets adj.time_non_adjustable From 1a8c018bf11d8766fa2d2ed48177d6c815cc8a86 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Thu, 3 May 2018 18:36:15 +0200 Subject: [PATCH 11/24] Bumped up the version number to 1.39.2-rc --- xs/src/libslic3r/libslic3r.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xs/src/libslic3r/libslic3r.h b/xs/src/libslic3r/libslic3r.h index 359078748..c6aacfb75 100644 --- a/xs/src/libslic3r/libslic3r.h +++ b/xs/src/libslic3r/libslic3r.h @@ -14,7 +14,7 @@ #include #define SLIC3R_FORK_NAME "Slic3r Prusa Edition" -#define SLIC3R_VERSION "1.39.2-beta" +#define SLIC3R_VERSION "1.39.2-rc" #define SLIC3R_BUILD "UNKNOWN" typedef int32_t coord_t; From 8c93259d604693be4890ac4c6af15d3dd44f7995 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Fri, 4 May 2018 15:36:34 +0200 Subject: [PATCH 12/24] Bumped up the version number. --- xs/src/libslic3r/libslic3r.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xs/src/libslic3r/libslic3r.h b/xs/src/libslic3r/libslic3r.h index c6aacfb75..368906c38 100644 --- a/xs/src/libslic3r/libslic3r.h +++ b/xs/src/libslic3r/libslic3r.h @@ -14,7 +14,7 @@ #include #define SLIC3R_FORK_NAME "Slic3r Prusa Edition" -#define SLIC3R_VERSION "1.39.2-rc" +#define SLIC3R_VERSION "1.39.2" #define SLIC3R_BUILD "UNKNOWN" typedef int32_t coord_t; From f2836d47382fbc24a624ace592c9d6b6c5168e27 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Mon, 29 Oct 2018 13:29:10 +0100 Subject: [PATCH 13/24] Fix of issue 1368 (vector index out of bounds in the wipe tower generator) --- xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp b/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp index 61d8df035..3ef141829 100644 --- a/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp +++ b/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp @@ -643,7 +643,8 @@ WipeTower::ToolChangeResult WipeTowerPrusaMM::tool_change(unsigned int tool, boo "\n\n"); // Ask our writer about how much material was consumed: - m_used_filament_length[m_current_tool] += writer.get_and_reset_used_filament_length(); + if (m_current_tool < m_used_filament_length.size()) + m_used_filament_length[m_current_tool] += writer.get_and_reset_used_filament_length(); ToolChangeResult result; result.priming = false; @@ -1068,8 +1069,9 @@ WipeTower::ToolChangeResult WipeTowerPrusaMM::finish_layer() m_depth_traversed = m_wipe_tower_depth-m_perimeter_width; - // Ask our writer about how much material was consumed: - m_used_filament_length[m_current_tool] += writer.get_and_reset_used_filament_length(); + // Ask our writer about how much material was consumed. + if (m_current_tool < m_used_filament_length.size()) + m_used_filament_length[m_current_tool] += writer.get_and_reset_used_filament_length(); ToolChangeResult result; result.priming = false; @@ -1166,7 +1168,6 @@ void WipeTowerPrusaMM::save_on_last_wipe() } } - // Processes vector m_plan and calls respective functions to generate G-code for the wipe tower // Resulting ToolChangeResults are appended into vector "result" void WipeTowerPrusaMM::generate(std::vector> &result) @@ -1256,6 +1257,4 @@ void WipeTowerPrusaMM::make_wipe_tower_square() lay.extra_spacing = lay.depth / lay.toolchanges_depth(); } - - }; // namespace Slic3r From 440fbb1e74326ed07c4c5388eddc82f9de7abf2e Mon Sep 17 00:00:00 2001 From: Vojtech Kral Date: Thu, 8 Nov 2018 15:33:54 +0100 Subject: [PATCH 14/24] Fix rendering performance on macOS #1250 --- xs/src/slic3r/GUI/GLCanvas3D.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/xs/src/slic3r/GUI/GLCanvas3D.cpp b/xs/src/slic3r/GUI/GLCanvas3D.cpp index 062b57b49..ce1c55264 100644 --- a/xs/src/slic3r/GUI/GLCanvas3D.cpp +++ b/xs/src/slic3r/GUI/GLCanvas3D.cpp @@ -3436,8 +3436,14 @@ void GLCanvas3D::_refresh_if_shown_on_screen() { const Size& cnv_size = get_canvas_size(); _resize((unsigned int)cnv_size.get_width(), (unsigned int)cnv_size.get_height()); - if (m_canvas != nullptr) - m_canvas->Refresh(); + + // Because of performance problems on macOS, where PaintEvents are not delivered + // frequently enough, we call render() here directly when we can. + // We can't do that when m_force_zoom_to_bed_enabled == true, because then render() + // ends up calling back here via _force_zoom_to_bed(), causing a stack overflow. + if (m_canvas != nullptr) { + m_force_zoom_to_bed_enabled ? m_canvas->Refresh() : render(); + } } } From 6572e5980f56d6535d3089f4bee14cd414bd5ef5 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Mon, 12 Nov 2018 15:20:18 +0100 Subject: [PATCH 15/24] Fix of an invalid extruder ID assignment after switching from a multi-material printer to a single material printer (or a printer with a lower number of extruders). --- xs/src/libslic3r/Model.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/xs/src/libslic3r/Model.cpp b/xs/src/libslic3r/Model.cpp index e0097ce2e..9fe855aa1 100644 --- a/xs/src/libslic3r/Model.cpp +++ b/xs/src/libslic3r/Model.cpp @@ -455,10 +455,14 @@ void Model::adjust_min_z() unsigned int Model::get_auto_extruder_id(unsigned int max_extruders) { unsigned int id = s_auto_extruder_id; - - if (++s_auto_extruder_id > max_extruders) + if (id > max_extruders) { + // The current counter is invalid, likely due to switching the printer profiles + // to a profile with a lower number of extruders. reset_auto_extruder_id(); - + id = s_auto_extruder_id; + } else if (++s_auto_extruder_id > max_extruders) { + reset_auto_extruder_id(); + } return id; } From 4f676de1616c3942721e2431720c8de255be326b Mon Sep 17 00:00:00 2001 From: bubnikv Date: Mon, 12 Nov 2018 15:21:51 +0100 Subject: [PATCH 16/24] Bumped up version number. --- xs/src/libslic3r/libslic3r.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xs/src/libslic3r/libslic3r.h b/xs/src/libslic3r/libslic3r.h index 7ed001146..b8e7e0a4e 100644 --- a/xs/src/libslic3r/libslic3r.h +++ b/xs/src/libslic3r/libslic3r.h @@ -14,7 +14,7 @@ #include #define SLIC3R_FORK_NAME "Slic3r Prusa Edition" -#define SLIC3R_VERSION "1.41.1" +#define SLIC3R_VERSION "1.41.2-beta" #define SLIC3R_BUILD "UNKNOWN" typedef int32_t coord_t; From c1d46264ba3d37073a28241c4244cfea15c78c77 Mon Sep 17 00:00:00 2001 From: supermerill Date: Wed, 14 Nov 2018 20:03:22 +0100 Subject: [PATCH 17/24] Perimeter loop: - change seam function, old behavior for nearest is now on "hiding", nearest now prioritize the nearest heavily. - add lopping_peri seam option : rear => it put the externals ones on -y and the internal ones on +y, if possible. - debug looping_peri max_width (from 0.8 to 1.4) --- xs/src/libslic3r/GCode.cpp | 38 ++++++--- xs/src/libslic3r/MultiPoint.hpp | 4 +- xs/src/libslic3r/PerimeterGenerator.cpp | 105 ++++++++++++++++-------- xs/src/libslic3r/PerimeterGenerator.hpp | 1 + xs/src/libslic3r/PrintConfig.cpp | 27 +++++- xs/src/libslic3r/PrintConfig.hpp | 7 +- xs/src/libslic3r/PrintObject.cpp | 2 + xs/src/slic3r/GUI/Field.cpp | 37 ++++++++- xs/src/slic3r/GUI/GUI.cpp | 6 +- xs/src/slic3r/GUI/OptionsGroup.cpp | 8 +- xs/src/slic3r/GUI/Preset.cpp | 2 +- xs/src/slic3r/GUI/Tab.cpp | 24 ++++-- 12 files changed, 189 insertions(+), 72 deletions(-) diff --git a/xs/src/libslic3r/GCode.cpp b/xs/src/libslic3r/GCode.cpp index a5e8bd954..e603537f5 100644 --- a/xs/src/libslic3r/GCode.cpp +++ b/xs/src/libslic3r/GCode.cpp @@ -1920,7 +1920,7 @@ std::string GCode::extrude_loop(ExtrusionLoop loop, std::string description, dou #endif } } - + // extrude all loops ccw //no! this was decided in perimeter_generator bool was_clockwise = false;// loop.make_counter_clockwise(); @@ -1934,7 +1934,7 @@ std::string GCode::extrude_loop(ExtrusionLoop loop, std::string description, dou Point last_pos = this->last_pos(); if (m_config.spiral_vase) { loop.split_at(last_pos, false); - } else if (seam_position == spNearest || seam_position == spAligned || seam_position == spRear) { + } else if (seam_position == spNearest || seam_position == spAligned || seam_position == spRear || seam_position == spHidden) { Polygon polygon = loop.polygon(); const coordf_t nozzle_dmr = EXTRUDER_CONFIG(nozzle_diameter); const coord_t nozzle_r = coord_t(scale_(0.5 * nozzle_dmr) + 0.5); @@ -1949,11 +1949,18 @@ std::string GCode::extrude_loop(ExtrusionLoop loop, std::string description, dou last_pos_weight = 1.f; } break; + case spNearest: + last_pos_weight = 5.f; + break; case spRear: last_pos = m_layer->object()->bounding_box().center(); last_pos.y += coord_t(3. * m_layer->object()->bounding_box().radius()); last_pos_weight = 5.f; break; + case spHidden: + last_pos_weight = 0.1f; + break; + } // Insert a projection of last_pos into the polygon. @@ -1975,7 +1982,16 @@ std::string GCode::extrude_loop(ExtrusionLoop loop, std::string description, dou const float penaltySeam = 1.3f; const float penaltyOverhangHalf = 10.f; // Penalty for visible seams. - for (size_t i = 0; i < polygon.points.size(); ++ i) { + float dist_max = 0.1f * lengths.back();// 5.f * nozzle_dmr + if (this->config().seam_travel) { + dist_max = 0; + for (size_t i = 0; i < polygon.points.size(); ++i) { + dist_max = std::max(dist_max, (float)polygon.points[i].distance_to(last_pos_proj)); + } + } + //TODO: ignore the angle penalty if the new point is not in an external path (bot/top/ext_peri) + for (size_t i = 0; i < polygon.points.size(); ++i) { + //std::cout << "check point @" << unscale(polygon.points[i].x) << ":" << unscale(polygon.points[i].y); float ccwAngle = penalties[i]; if (was_clockwise) ccwAngle = - ccwAngle; @@ -1996,13 +2012,15 @@ std::string GCode::extrude_loop(ExtrusionLoop loop, std::string description, dou // Interpolate penalty between maximum and the penalty for a convex vertex. penalty = penaltyConvexVertex + (penaltyFlatSurface - penaltyConvexVertex) * bspline_kernel(ccwAngle * float(PI * 2. / 3.)); } - // Give a negative penalty for points close to the last point or the prefered seam location. - //float dist_to_last_pos_proj = last_pos_proj.distance_to(polygon.points[i]); - float dist_to_last_pos_proj = (i < last_pos_proj_idx) ? - std::min(lengths[last_pos_proj_idx] - lengths[i], lengths.back() - lengths[last_pos_proj_idx] + lengths[i]) : - std::min(lengths[i] - lengths[last_pos_proj_idx], lengths.back() - lengths[i] + lengths[last_pos_proj_idx]); - float dist_max = 0.1f * lengths.back(); // 5.f * nozzle_dmr - penalty -= last_pos_weight * bspline_kernel(dist_to_last_pos_proj / dist_max); + if (this->config().seam_travel) { + penalty += last_pos_weight * polygon.points[i].distance_to(last_pos_proj) / dist_max; + }else{ + // Give a negative penalty for points close to the last point or the prefered seam location. + float dist_to_last_pos_proj = (i < last_pos_proj_idx) ? + std::min(lengths[last_pos_proj_idx] - lengths[i], lengths.back() - lengths[last_pos_proj_idx] + lengths[i]) : + std::min(lengths[i] - lengths[last_pos_proj_idx], lengths.back() - lengths[i] + lengths[last_pos_proj_idx]); + penalty -= last_pos_weight * bspline_kernel(dist_to_last_pos_proj / dist_max); + } penalties[i] = std::max(0.f, penalty); } diff --git a/xs/src/libslic3r/MultiPoint.hpp b/xs/src/libslic3r/MultiPoint.hpp index 87b031851..7f96dd523 100644 --- a/xs/src/libslic3r/MultiPoint.hpp +++ b/xs/src/libslic3r/MultiPoint.hpp @@ -45,9 +45,9 @@ public: int idx = -1; if (! this->points.empty()) { idx = 0; - double dist_min = this->points.front().distance_to(point); + double dist_min = this->points.front().distance_to_sq(point); for (int i = 1; i < int(this->points.size()); ++ i) { - double d = this->points[i].distance_to(point); + double d = this->points[i].distance_to_sq(point); if (d < dist_min) { dist_min = d; idx = i; diff --git a/xs/src/libslic3r/PerimeterGenerator.cpp b/xs/src/libslic3r/PerimeterGenerator.cpp index 7763fa159..5b50b9dad 100644 --- a/xs/src/libslic3r/PerimeterGenerator.cpp +++ b/xs/src/libslic3r/PerimeterGenerator.cpp @@ -644,10 +644,10 @@ ExtrusionEntityCollection PerimeterGenerator::_traverse_loops( } PerimeterIntersectionPoint -get_nearest_point(const PerimeterGeneratorLoops &children, ExtrusionLoop &myPolylines, const coord_t dist_cut, const coord_t max_dist) { +PerimeterGenerator::_get_nearest_point(const PerimeterGeneratorLoops &children, ExtrusionLoop &myPolylines, const coord_t dist_cut, const coord_t max_dist) const { //find best points of intersections PerimeterIntersectionPoint intersect; - intersect.distance = 0x7FFFFFFF; + intersect.distance = 0x7FFFFFFF; // ! assumption on intersect type & max value intersect.idx_polyline_outter = -1; intersect.idx_children = -1; for (size_t idx_child = 0; idx_child < children.size(); idx_child++) { @@ -656,23 +656,54 @@ get_nearest_point(const PerimeterGeneratorLoops &children, ExtrusionLoop &myPoly if (myPolylines.paths[idx_poly].extruder_id == (unsigned int)-1) continue; if (myPolylines.paths[idx_poly].length() < dist_cut + SCALED_RESOLUTION) continue; - //first, try to find 2 point near enough - for (size_t idx_point = 0; idx_point < myPolylines.paths[idx_poly].polyline.points.size(); idx_point++) { - const Point &p = myPolylines.paths[idx_poly].polyline.points[idx_point]; - const Point &nearest_p = *child.polygon.closest_point(p); - const coord_t dist = (coord_t)nearest_p.distance_to(p); - if (dist + SCALED_EPSILON / 2 < intersect.distance) { - //ok, copy the idx - intersect.distance = dist; - intersect.idx_children = idx_child; - intersect.idx_polyline_outter = idx_poly; - intersect.outter_best = p; - intersect.child_best = nearest_p; + if ((myPolylines.paths[idx_poly].role() == erExternalPerimeter || child.is_external() ) + && this->object_config->seam_position.value != SeamPosition::spRandom) { + //first, try to find 2 point near enough + for (size_t idx_point = 0; idx_point < myPolylines.paths[idx_poly].polyline.points.size(); idx_point++) { + const Point &p = myPolylines.paths[idx_poly].polyline.points[idx_point]; + const Point &nearest_p = *child.polygon.closest_point(p); + const double dist = nearest_p.distance_to(p); + //Try to find a point in the far side, aligning them + if (dist + dist_cut / 20 < intersect.distance || + (config->perimeter_loop_seam.value == spRear && (intersect.idx_polyline_outter <0 || p.y > intersect.outter_best.y) + && dist <= max_dist && intersect.distance + dist_cut / 20)) { + //ok, copy the idx + intersect.distance = (coord_t)nearest_p.distance_to(p); + intersect.idx_children = idx_child; + intersect.idx_polyline_outter = idx_poly; + intersect.outter_best = p; + intersect.child_best = nearest_p; + } + } + } else { + //first, try to find 2 point near enough + for (size_t idx_point = 0; idx_point < myPolylines.paths[idx_poly].polyline.points.size(); idx_point++) { + const Point &p = myPolylines.paths[idx_poly].polyline.points[idx_point]; + const Point &nearest_p = *child.polygon.closest_point(p); + const double dist = nearest_p.distance_to(p); + if (dist + SCALED_EPSILON < intersect.distance || + (config->perimeter_loop_seam.value == spRear && (intersect.idx_polyline_outter<0 || p.y < intersect.outter_best.y) + && dist <= max_dist && intersect.distance + dist_cut / 20)) { + //ok, copy the idx + intersect.distance = (coord_t)nearest_p.distance_to(p); + intersect.idx_children = idx_child; + intersect.idx_polyline_outter = idx_poly; + intersect.outter_best = p; + intersect.child_best = nearest_p; + } } } - if (intersect.distance <= max_dist) { - return intersect; - } + } + } + if (intersect.distance <= max_dist) { + return intersect; + } + + for (size_t idx_child = 0; idx_child < children.size(); idx_child++) { + const PerimeterGeneratorLoop &child = children[idx_child]; + for (size_t idx_poly = 0; idx_poly < myPolylines.paths.size(); idx_poly++) { + if (myPolylines.paths[idx_poly].extruder_id == (unsigned int)-1) continue; + if (myPolylines.paths[idx_poly].length() < dist_cut + SCALED_RESOLUTION) continue; //second, try to check from one of my points //don't check the last point, as it's used to go outter, can't use it to go inner. @@ -692,9 +723,18 @@ get_nearest_point(const PerimeterGeneratorLoops &children, ExtrusionLoop &myPoly intersect.child_best = nearest_p; } } - if (intersect.distance <= max_dist) { - return intersect; - } + } + } + if (intersect.distance <= max_dist) { + return intersect; + } + + for (size_t idx_child = 0; idx_child < children.size(); idx_child++) { + const PerimeterGeneratorLoop &child = children[idx_child]; + for (size_t idx_poly = 0; idx_poly < myPolylines.paths.size(); idx_poly++) { + if (myPolylines.paths[idx_poly].extruder_id == (unsigned int)-1) continue; + if (myPolylines.paths[idx_poly].length() < dist_cut + SCALED_RESOLUTION) continue; + //lastly, try to check from one of his points for (size_t idx_point = 0; idx_point < child.polygon.points.size(); idx_point++) { const Point &p = child.polygon.points[idx_point]; @@ -898,17 +938,14 @@ PerimeterGenerator::_traverse_and_join_loops(const PerimeterGeneratorLoop &loop, //TODO change this->external_perimeter_flow.scaled_width() if it's the first one! const coord_t max_width_extrusion = this->perimeter_flow.scaled_width(); ExtrusionLoop my_loop = _extrude_and_cut_loop(loop, entry_point); - vector path_is_ccw; - - for (size_t idx_poly = 0; idx_poly < my_loop.paths.size(); idx_poly++) { - path_is_ccw.push_back(true); - } + int child_idx = 0; //Polylines myPolylines = { myPolyline }; //iterate on each point ot find the best place to go into the child vector childs = children; while (!childs.empty()) { - PerimeterIntersectionPoint nearest = get_nearest_point(childs, my_loop, this->perimeter_flow.scaled_width(), this->perimeter_flow.scaled_width()* 0.8); + child_idx++; + PerimeterIntersectionPoint nearest = this->_get_nearest_point(childs, my_loop, this->perimeter_flow.scaled_width(), this->perimeter_flow.scaled_width()* 1.42); if (nearest.idx_children == (size_t)-1) { //return ExtrusionEntityCollection(); break; @@ -920,9 +957,7 @@ PerimeterGenerator::_traverse_and_join_loops(const PerimeterGeneratorLoop &loop, //PerimeterGeneratorLoops less_childs = childs; //less_childs.erase(less_childs.begin() + nearest.idx_children); //create new node with recursive ask for the inner perimeter & COPY of the points, ready to be cut - const bool cut_path_is_ccw = path_is_ccw[nearest.idx_polyline_outter]; my_loop.paths.insert(my_loop.paths.begin() + nearest.idx_polyline_outter + 1, my_loop.paths[nearest.idx_polyline_outter]); - path_is_ccw.insert(path_is_ccw.begin() + nearest.idx_polyline_outter + 1, cut_path_is_ccw); ExtrusionPath *outer_start = &my_loop.paths[nearest.idx_polyline_outter]; ExtrusionPath *outer_end = &my_loop.paths[nearest.idx_polyline_outter + 1]; @@ -981,7 +1016,6 @@ PerimeterGenerator::_traverse_and_join_loops(const PerimeterGeneratorLoop &loop, const size_t child_paths_size = child_loop.paths.size(); if (child_paths_size == 0) continue; my_loop.paths.insert(my_loop.paths.begin() + nearest.idx_polyline_outter + 1, child_loop.paths.begin(), child_loop.paths.end()); - for (size_t i = 0; i < child_paths_size; i++) path_is_ccw.insert(path_is_ccw.begin() + nearest.idx_polyline_outter + 1, !cut_path_is_ccw); //add paths into my_loop => need to re-get the refs outer_start = &my_loop.paths[nearest.idx_polyline_outter]; @@ -1005,8 +1039,8 @@ PerimeterGenerator::_traverse_and_join_loops(const PerimeterGeneratorLoop &loop, else inner_start->polyline.clip_start(inner_start->polyline.length()/2); } else { - coord_t length_poly_1 = outer_start->polyline.length(); - coord_t length_poly_2 = outer_end->polyline.length(); + double length_poly_1 = outer_start->polyline.length(); + double length_poly_2 = outer_end->polyline.length(); coord_t length_trim_1 = outer_start_spacing / 2; coord_t length_trim_2 = outer_end_spacing / 2; if (length_poly_1 < length_trim_1) { @@ -1065,9 +1099,9 @@ PerimeterGenerator::_traverse_and_join_loops(const PerimeterGeneratorLoop &loop, my_loop.paths[idx].reverse(); } outer_start = &my_loop.paths[nearest.idx_polyline_outter]; - outer_end = &my_loop.paths[nearest.idx_polyline_outter + child_paths_size + 1]; inner_start = &my_loop.paths[nearest.idx_polyline_outter + 1]; inner_end = &my_loop.paths[nearest.idx_polyline_outter + child_paths_size]; + outer_end = &my_loop.paths[nearest.idx_polyline_outter + child_paths_size + 1]; } } @@ -1152,7 +1186,8 @@ PerimeterGenerator::_traverse_and_join_loops(const PerimeterGeneratorLoop &loop, travel_path_end[0].polyline.append(outer_end->polyline.points.front()); } //check if we add path or reuse bits - if (outer_start->polyline.points.size() == 1) { + //FIXME + /*if (outer_start->polyline.points.size() == 1) { outer_start->polyline = travel_path_begin.front().polyline; travel_path_begin.erase(travel_path_begin.begin()); outer_start->extruder_id = -1; @@ -1160,15 +1195,13 @@ PerimeterGenerator::_traverse_and_join_loops(const PerimeterGeneratorLoop &loop, outer_end->polyline = travel_path_end.back().polyline; travel_path_end.erase(travel_path_end.end() - 1); outer_end->extruder_id = -1; - } + }*/ //add paths into my_loop => after that all ref are wrong! for (int i = travel_path_end.size() - 1; i >= 0; i--) { my_loop.paths.insert(my_loop.paths.begin() + nearest.idx_polyline_outter + child_paths_size + 1, travel_path_end[i]); - path_is_ccw.insert(path_is_ccw.begin() + nearest.idx_polyline_outter + child_paths_size + 1, cut_path_is_ccw); } for (int i = travel_path_begin.size() - 1; i >= 0; i--) { my_loop.paths.insert(my_loop.paths.begin() + nearest.idx_polyline_outter + 1, travel_path_begin[i]); - path_is_ccw.insert(path_is_ccw.begin() + nearest.idx_polyline_outter + 1, cut_path_is_ccw); } } diff --git a/xs/src/libslic3r/PerimeterGenerator.hpp b/xs/src/libslic3r/PerimeterGenerator.hpp index 57d5f7d13..0aae5bdb1 100644 --- a/xs/src/libslic3r/PerimeterGenerator.hpp +++ b/xs/src/libslic3r/PerimeterGenerator.hpp @@ -103,6 +103,7 @@ private: ThickPolylines &thin_walls) const; ExtrusionLoop _traverse_and_join_loops(const PerimeterGeneratorLoop &loop, const PerimeterGeneratorLoops &childs, const Point entryPoint) const; ExtrusionLoop _extrude_and_cut_loop(const PerimeterGeneratorLoop &loop, const Point entryPoint, const Line &direction = Line(Point(0,0),Point(0,0))) const; + PerimeterIntersectionPoint _get_nearest_point(const PerimeterGeneratorLoops &children, ExtrusionLoop &myPolylines, const coord_t dist_cut, const coord_t max_dist) const; ExtrusionEntityCollection _variable_width (const ThickPolylines &polylines, ExtrusionRole role, Flow flow) const; }; diff --git a/xs/src/libslic3r/PrintConfig.cpp b/xs/src/libslic3r/PrintConfig.cpp index a77fbb15a..413f27dc2 100644 --- a/xs/src/libslic3r/PrintConfig.cpp +++ b/xs/src/libslic3r/PrintConfig.cpp @@ -400,13 +400,25 @@ PrintConfigDef::PrintConfigDef() def->default_value = new ConfigOptionBool(false); def = this->add("perimeter_loop", coBool); - def->label = L("Looping perimeters"); + def->label = L(" "); def->category = L("Layers and Perimeters"); def->tooltip = L("Join the perimeters to create only one continuous extrusion without any z-hop." " Long inside travel (from external to holes) are not extruded to give some place to the infill."); def->cli = "loop-perimeter!"; def->default_value = new ConfigOptionBool(false); - + + def = this->add("perimeter_loop_seam", coEnum); + def->label = L("Seam position"); + def->category = L("Layers and Perimeters"); + def->tooltip = L("Position of perimeters starting points."); + def->cli = "perimeter-seam-position=s"; + def->enum_keys_map = &ConfigOptionEnum::get_enum_values(); + def->enum_values.push_back("nearest"); + def->enum_values.push_back("rear"); + def->enum_labels.push_back(L("Nearest")); + def->enum_labels.push_back(L("Rear")); + def->default_value = new ConfigOptionEnum(spRear); + def = this->add("extra_perimeters", coBool); def->label = L("Extra perimeters if needed"); def->category = L("Layers and Perimeters"); @@ -1600,12 +1612,21 @@ PrintConfigDef::PrintConfigDef() def->enum_values.push_back("nearest"); def->enum_values.push_back("aligned"); def->enum_values.push_back("rear"); + def->enum_values.push_back("hidden"); def->enum_labels.push_back(L("Random")); def->enum_labels.push_back(L("Nearest")); def->enum_labels.push_back(L("Aligned")); - def->enum_labels.push_back(L("Rear")); + def->enum_labels.push_back(L("Rear")); + def->enum_labels.push_back(L("Hidden")); def->default_value = new ConfigOptionEnum(spAligned); + def = this->add("seam_travel", coBool); + def->label = L("Travel move reduced"); + def->category = L("Layers and Perimeters"); + def->tooltip = L("Add a big cost to travel paths when possible (when going into a loop), so it will prefer a less optimal seam posistion if it's nearer."); + def->cli = "seam-travel!"; + def->default_value = new ConfigOptionBool(false); + #if 0 def = this->add("seam_preferred_direction", coFloat); // def->gui_type = "slider"; diff --git a/xs/src/libslic3r/PrintConfig.hpp b/xs/src/libslic3r/PrintConfig.hpp index d870786d6..56314a6e0 100644 --- a/xs/src/libslic3r/PrintConfig.hpp +++ b/xs/src/libslic3r/PrintConfig.hpp @@ -42,7 +42,7 @@ enum SupportMaterialPattern { }; enum SeamPosition { - spRandom, spNearest, spAligned, spRear + spRandom, spNearest, spAligned, spRear, spHidden }; enum FilamentType { @@ -120,6 +120,7 @@ template<> inline t_config_enum_values& ConfigOptionEnum::get_enum keys_map["nearest"] = spNearest; keys_map["aligned"] = spAligned; keys_map["rear"] = spRear; + keys_map["hidden"] = spHidden; } return keys_map; } @@ -350,6 +351,7 @@ public: ConfigOptionFloat layer_height; ConfigOptionInt raft_layers; ConfigOptionEnum seam_position; + ConfigOptionBool seam_travel; // ConfigOptionFloat seam_preferred_direction; // ConfigOptionFloat seam_preferred_direction_jitter; ConfigOptionBool support_material; @@ -395,6 +397,7 @@ protected: OPT_PTR(layer_height); OPT_PTR(raft_layers); OPT_PTR(seam_position); + OPT_PTR(seam_travel); // OPT_PTR(seam_preferred_direction); // OPT_PTR(seam_preferred_direction_jitter); OPT_PTR(support_material); @@ -444,6 +447,7 @@ public: ConfigOptionFloatOrPercent external_perimeter_speed; ConfigOptionBool external_perimeters_first; ConfigOptionBool perimeter_loop; + ConfigOptionEnum perimeter_loop_seam; ConfigOptionBool extra_perimeters; ConfigOptionBool only_one_perimeter_top; ConfigOptionFloat fill_angle; @@ -499,6 +503,7 @@ protected: OPT_PTR(external_perimeter_speed); OPT_PTR(external_perimeters_first); OPT_PTR(perimeter_loop); + OPT_PTR(perimeter_loop_seam); OPT_PTR(extra_perimeters); OPT_PTR(only_one_perimeter_top); OPT_PTR(fill_angle); diff --git a/xs/src/libslic3r/PrintObject.cpp b/xs/src/libslic3r/PrintObject.cpp index 1425b8574..e9a4e1e2d 100644 --- a/xs/src/libslic3r/PrintObject.cpp +++ b/xs/src/libslic3r/PrintObject.cpp @@ -157,6 +157,7 @@ bool PrintObject::invalidate_state_by_config_options(const std::vector::get_enum_values(); + for (auto it : map_names) { + if (val == it.second) { + key = it.first; + break; + } + } + + size_t idx = 0; + for (auto el : m_opt.enum_values) { + if (el.compare(key) == 0) + break; + ++idx; + } + + val = idx == m_opt.enum_values.size() ? 0 : idx; + } else + val = 3; + } dynamic_cast(window)->SetSelection(val); break; } @@ -588,10 +609,18 @@ boost::any& Choice::get_value() else if (m_opt_id.compare("gcode_flavor") == 0) m_value = static_cast(ret_enum); else if (m_opt_id.compare("support_material_pattern") == 0) - m_value = static_cast(ret_enum); - else if (m_opt_id.compare("seam_position") == 0) + m_value = static_cast(ret_enum); + else if (m_opt_id.compare("seam_position") == 0) m_value = static_cast(ret_enum); - else if (m_opt_id.compare("host_type") == 0) + else if (m_opt_id.compare("perimeter_loop_seam") == 0) { + if (!m_opt.enum_values.empty()) { + std::string key = m_opt.enum_values[ret_enum]; + t_config_enum_values map_names = ConfigOptionEnum::get_enum_values(); + int value = map_names.at(key); + m_value = static_cast(value); + } else + m_value = static_cast(3); + } else if (m_opt_id.compare("host_type") == 0) m_value = static_cast(ret_enum); else if (m_opt_id.compare("infill_dense_algo") == 0) m_value = static_cast(ret_enum); diff --git a/xs/src/slic3r/GUI/GUI.cpp b/xs/src/slic3r/GUI/GUI.cpp index ff4ebd280..751af5d66 100644 --- a/xs/src/slic3r/GUI/GUI.cpp +++ b/xs/src/slic3r/GUI/GUI.cpp @@ -602,9 +602,9 @@ void change_opt_value(DynamicPrintConfig& config, const t_config_option_key& opt else if (opt_key.compare("gcode_flavor") == 0) config.set_key_value(opt_key, new ConfigOptionEnum(boost::any_cast(value))); else if (opt_key.compare("support_material_pattern") == 0) - config.set_key_value(opt_key, new ConfigOptionEnum(boost::any_cast(value))); - else if (opt_key.compare("seam_position") == 0) - config.set_key_value(opt_key, new ConfigOptionEnum(boost::any_cast(value))); + config.set_key_value(opt_key, new ConfigOptionEnum(boost::any_cast(value))); + else if (opt_key.compare("seam_position") == 0 || opt_key.compare("perimeter_loop_seam") == 0) + config.set_key_value(opt_key, new ConfigOptionEnum(boost::any_cast(value))); else if (opt_key.compare("host_type") == 0) config.set_key_value(opt_key, new ConfigOptionEnum(boost::any_cast(value))); else if (opt_key.compare("infill_dense_algo") == 0) diff --git a/xs/src/slic3r/GUI/OptionsGroup.cpp b/xs/src/slic3r/GUI/OptionsGroup.cpp index 4c4595517..fe9310fba 100644 --- a/xs/src/slic3r/GUI/OptionsGroup.cpp +++ b/xs/src/slic3r/GUI/OptionsGroup.cpp @@ -458,10 +458,10 @@ boost::any ConfigOptionsGroup::get_config_value(const DynamicPrintConfig& config } else if (opt_key.compare("support_material_pattern") == 0){ ret = static_cast(config.option>(opt_key)->value); - } - else if (opt_key.compare("seam_position") == 0){ - ret = static_cast(config.option>(opt_key)->value); - } + } + else if (opt_key.compare("seam_position") == 0 || opt_key.compare("perimeter_loop_seam") == 0) { + ret = static_cast(config.option>(opt_key)->value); + } else if (opt_key.compare("host_type") == 0){ ret = static_cast(config.option>(opt_key)->value); } diff --git a/xs/src/slic3r/GUI/Preset.cpp b/xs/src/slic3r/GUI/Preset.cpp index e3570fc6a..d0159dfb8 100644 --- a/xs/src/slic3r/GUI/Preset.cpp +++ b/xs/src/slic3r/GUI/Preset.cpp @@ -307,7 +307,7 @@ const std::vector& Preset::print_options() "wipe_tower", "wipe_tower_x", "wipe_tower_y", "wipe_tower_width", "wipe_tower_rotation_angle", "wipe_tower_bridging", "only_one_perimeter_top", "single_extruder_multi_material_priming", "compatible_printers", "compatible_printers_condition", "inherits", "infill_dense", "infill_dense_algo", "no_perimeter_unsupported", "min_perimeter_unsupported", "noperi_bridge_only", - "support_material_solid_first_layer", "perimeter_loop" + "support_material_solid_first_layer", "perimeter_loop", "perimeter_loop_seam", "seam_travel" }; return s_opts; } diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp index 18b556bff..ad7f235db 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/xs/src/slic3r/GUI/Tab.cpp @@ -818,10 +818,16 @@ void TabPrint::build() line.append_option(optgroup->get_option("noperi_bridge_only")); optgroup->append_line(line); - optgroup = page->new_optgroup(_(L("Advanced"))); - optgroup->append_single_option_line("seam_position"); + optgroup = page->new_optgroup(_(L("Advanced"))); + line = { _(L("Avoid unsupported perimeters")), "" }; + line.append_option(optgroup->get_option("seam_position")); + line.append_option(optgroup->get_option("seam_travel")); + optgroup->append_line(line); optgroup->append_single_option_line("external_perimeters_first"); - optgroup->append_single_option_line("perimeter_loop"); + line = { _(L("Looping perimeter")), "" }; + line.append_option(optgroup->get_option("perimeter_loop")); + line.append_option(optgroup->get_option("perimeter_loop_seam")); + optgroup->append_line(line); page = add_options_page(_(L("Infill")), "infill.png"); optgroup = page->new_optgroup(_(L("Infill"))); @@ -1167,11 +1173,13 @@ void TabPrint::update() } } - bool have_perimeters = m_config->opt_int("perimeters") > 0; - for (auto el : {"extra_perimeters", "only_one_perimeter_top", "ensure_vertical_shell_thickness", "thin_walls", "overhangs", - "seam_position", "external_perimeters_first", "external_perimeter_extrusion_width", - "perimeter_speed", "small_perimeter_speed", "external_perimeter_speed", "perimeter_loop" }) - get_field(el)->toggle(have_perimeters); + bool have_perimeters = m_config->opt_int("perimeters") > 0; + for (auto el : { "extra_perimeters", "only_one_perimeter_top", "ensure_vertical_shell_thickness", "thin_walls", "overhangs", + "seam_position", "external_perimeters_first", "external_perimeter_extrusion_width", + "perimeter_speed", "small_perimeter_speed", "external_perimeter_speed", "perimeter_loop", "perimeter_loop_seam" }) + get_field(el)->toggle(have_perimeters); + + get_field("perimeter_loop_seam")->toggle(m_config->opt_bool("perimeter_loop")); bool have_no_perimeter_unsupported = have_perimeters && m_config->opt_bool("no_perimeter_unsupported"); for (auto el : { "min_perimeter_unsupported", "noperi_bridge_only" }) From 5d92ab481f0936b7c0ca2637b7793091596ce04b Mon Sep 17 00:00:00 2001 From: supermerill Date: Mon, 26 Nov 2018 13:30:09 +0100 Subject: [PATCH 18/24] first layer speed is now a min(flspeed, speed) --- xs/src/libslic3r/GCode.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xs/src/libslic3r/GCode.cpp b/xs/src/libslic3r/GCode.cpp index e603537f5..83f466ae5 100644 --- a/xs/src/libslic3r/GCode.cpp +++ b/xs/src/libslic3r/GCode.cpp @@ -2403,7 +2403,7 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, } } if (this->on_first_layer()) - speed = m_config.get_abs_value("first_layer_speed", speed); + speed = std::min(m_config.get_abs_value("first_layer_speed", speed), speed); if (m_volumetric_speed != 0. && speed == 0) speed = m_volumetric_speed / path.mm3_per_mm; if (m_config.max_volumetric_speed.value > 0) { From 866bb8b811a2673fe883f8cb2d4c679132f8c1d6 Mon Sep 17 00:00:00 2001 From: supermerill Date: Tue, 27 Nov 2018 19:51:53 +0100 Subject: [PATCH 19/24] typos & cleaning --- xs/src/libslic3r/PrintConfig.cpp | 4 ++-- xs/src/slic3r/GUI/Tab.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/xs/src/libslic3r/PrintConfig.cpp b/xs/src/libslic3r/PrintConfig.cpp index 413f27dc2..42b3a64f5 100644 --- a/xs/src/libslic3r/PrintConfig.cpp +++ b/xs/src/libslic3r/PrintConfig.cpp @@ -937,7 +937,7 @@ PrintConfigDef::PrintConfigDef() def->tooltip = L("Enable the creation of a support layer under the first solid layer. Allow to use lower infill ratio without compromizing the top quality." " The dense infill is layed out with a 50% infill density."); def->cli = "infill-dense!"; - def->default_value = new ConfigOptionBool(1); + def->default_value = new ConfigOptionBool(false); def = this->add("infill_dense_algo", coEnum); def->label = L("Algorithm"); @@ -1342,7 +1342,7 @@ PrintConfigDef::PrintConfigDef() def->category = L("Layers and Perimeters"); def->tooltip = L("Experimental option to remove perimeters where there are nothing under and a bridged infill should be better."); def->cli = "no-perimeter-unsupported!"; - def->default_value = new ConfigOptionBool(true); + def->default_value = new ConfigOptionBool(false); def = this->add("min_perimeter_unsupported", coInt); def->label = L("Minimum perimeters"); diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp index ad7f235db..3b3d7b0de 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/xs/src/slic3r/GUI/Tab.cpp @@ -819,7 +819,7 @@ void TabPrint::build() optgroup->append_line(line); optgroup = page->new_optgroup(_(L("Advanced"))); - line = { _(L("Avoid unsupported perimeters")), "" }; + line = { _(L("Seam options")), "" }; line.append_option(optgroup->get_option("seam_position")); line.append_option(optgroup->get_option("seam_travel")); optgroup->append_line(line); From f3f9b2ce67a58a3dc6e3f036cda3f1235b2f1721 Mon Sep 17 00:00:00 2001 From: supermerill Date: Tue, 27 Nov 2018 19:47:02 +0100 Subject: [PATCH 20/24] option for Slic3r/issues/1364 : use a lower safety offset when slicing the geometry. --- xs/src/libslic3r/PrintConfig.cpp | 16 ++++++++++++---- xs/src/libslic3r/PrintConfig.hpp | 2 ++ xs/src/libslic3r/PrintObject.cpp | 1 + xs/src/libslic3r/TriangleMesh.cpp | 2 +- xs/src/libslic3r/TriangleMesh.hpp | 1 + xs/src/slic3r/GUI/Preset.cpp | 1 + xs/src/slic3r/GUI/Tab.cpp | 3 ++- 7 files changed, 20 insertions(+), 6 deletions(-) diff --git a/xs/src/libslic3r/PrintConfig.cpp b/xs/src/libslic3r/PrintConfig.cpp index 42b3a64f5..dc44f4959 100644 --- a/xs/src/libslic3r/PrintConfig.cpp +++ b/xs/src/libslic3r/PrintConfig.cpp @@ -26,14 +26,22 @@ PrintConfigDef::PrintConfigDef() // Maximum extruder temperature, bumped to 1500 to support printing of glass. const int max_temp = 1500; - def = this->add("avoid_crossing_perimeters", coBool); + def = this->add("avoid_crossing_perimeters", coBool); def->label = L("Avoid crossing perimeters"); - def->tooltip = L("Optimize travel moves in order to minimize the crossing of perimeters. " - "This is mostly useful with Bowden extruders which suffer from oozing. " - "This feature slows down both the print and the G-code generation."); + def->tooltip = L("Optimize travel moves in order to minimize the crossing of perimeters. " + "This is mostly useful with Bowden extruders which suffer from oozing. " + "This feature slows down both the print and the G-code generation."); def->cli = "avoid-crossing-perimeters!"; def->default_value = new ConfigOptionBool(false); + def = this->add("remove_small_gaps", coBool); + def->label = L("Remove small gaps"); + def->tooltip = L("Remove the small gaps in the 3D model when slicing. Disable it if you " + "are very confident on your model, or you want to print an item with a geometry " + "designed for vase mode."); + def->cli = "remove-small-gaps!"; + def->default_value = new ConfigOptionBool(true); + def = this->add("bed_shape", coPoints); def->label = L("Bed shape"); def->default_value = new ConfigOptionPoints { Pointf(0,0), Pointf(200,0), Pointf(200,200), Pointf(0,200) }; diff --git a/xs/src/libslic3r/PrintConfig.hpp b/xs/src/libslic3r/PrintConfig.hpp index 56314a6e0..658d1b268 100644 --- a/xs/src/libslic3r/PrintConfig.hpp +++ b/xs/src/libslic3r/PrintConfig.hpp @@ -341,6 +341,7 @@ class PrintObjectConfig : public StaticPrintConfig STATIC_PRINT_CONFIG_CACHE(PrintObjectConfig) public: ConfigOptionBool clip_multipart_objects; + ConfigOptionBool remove_small_gaps; ConfigOptionBool dont_support_bridges; ConfigOptionFloat elefant_foot_compensation; ConfigOptionFloatOrPercent extrusion_width; @@ -388,6 +389,7 @@ protected: void initialize(StaticCacheBase &cache, const char *base_ptr) { OPT_PTR(clip_multipart_objects); + OPT_PTR(remove_small_gaps); OPT_PTR(dont_support_bridges); OPT_PTR(elefant_foot_compensation); OPT_PTR(extrusion_width); diff --git a/xs/src/libslic3r/PrintObject.cpp b/xs/src/libslic3r/PrintObject.cpp index e9a4e1e2d..0b17ffec9 100644 --- a/xs/src/libslic3r/PrintObject.cpp +++ b/xs/src/libslic3r/PrintObject.cpp @@ -1856,6 +1856,7 @@ std::vector PrintObject::_slice_volumes(const std::vector &z, mesh.translate(- float(unscale(this->_copies_shift.x)), - float(unscale(this->_copies_shift.y)), -float(this->model_object()->bounding_box().min.z)); // perform actual slicing TriangleMeshSlicer mslicer(&mesh); + mslicer.safety_offset = (this->config.remove_small_gaps ? scale_(0.0499) : SCALED_EPSILON); mslicer.slice(z, &layers); } } diff --git a/xs/src/libslic3r/TriangleMesh.cpp b/xs/src/libslic3r/TriangleMesh.cpp index 544a5d00b..b8875d07d 100644 --- a/xs/src/libslic3r/TriangleMesh.cpp +++ b/xs/src/libslic3r/TriangleMesh.cpp @@ -1792,7 +1792,7 @@ void TriangleMeshSlicer::make_expolygons(const Polygons &loops, ExPolygons* slic //} // perform a safety offset to merge very close facets (TODO: find test case for this) - double safety_offset = scale_(0.0499); + //double safety_offset = scale_(0.0499); // now a config value //FIXME see https://github.com/prusa3d/Slic3r/issues/520 // double safety_offset = scale_(0.0001); diff --git a/xs/src/libslic3r/TriangleMesh.hpp b/xs/src/libslic3r/TriangleMesh.hpp index 24e903c0a..dad5b4010 100644 --- a/xs/src/libslic3r/TriangleMesh.hpp +++ b/xs/src/libslic3r/TriangleMesh.hpp @@ -168,6 +168,7 @@ public: const float min_z, const float max_z, IntersectionLine *line_out) const; void cut(float z, TriangleMesh* upper, TriangleMesh* lower) const; + double safety_offset = scale_(0.0499); private: const TriangleMesh *mesh; // Map from a facet to an edge index. diff --git a/xs/src/slic3r/GUI/Preset.cpp b/xs/src/slic3r/GUI/Preset.cpp index d0159dfb8..017e53d29 100644 --- a/xs/src/slic3r/GUI/Preset.cpp +++ b/xs/src/slic3r/GUI/Preset.cpp @@ -308,6 +308,7 @@ const std::vector& Preset::print_options() "only_one_perimeter_top", "single_extruder_multi_material_priming", "compatible_printers", "compatible_printers_condition", "inherits", "infill_dense", "infill_dense_algo", "no_perimeter_unsupported", "min_perimeter_unsupported", "noperi_bridge_only", "support_material_solid_first_layer", "perimeter_loop", "perimeter_loop_seam", "seam_travel" + , "remove_small_gaps" }; return s_opts; } diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp index 3b3d7b0de..6f3cf0da3 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/xs/src/slic3r/GUI/Tab.cpp @@ -819,7 +819,8 @@ void TabPrint::build() optgroup->append_line(line); optgroup = page->new_optgroup(_(L("Advanced"))); - line = { _(L("Seam options")), "" }; + optgroup->append_single_option_line("remove_small_gaps"); + line = { _(L("Avoid unsupported perimeters")), "" }; line.append_option(optgroup->get_option("seam_position")); line.append_option(optgroup->get_option("seam_travel")); optgroup->append_line(line); From 85e42194c4b63c8ae3cb92a1370e3b0f427bfe34 Mon Sep 17 00:00:00 2001 From: supermerill Date: Thu, 6 Dec 2018 17:21:29 +0100 Subject: [PATCH 21/24] gitignore build folders --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index d56825aca..8efb9c54f 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ xs/MANIFEST.bak xs/assertlib* .init_bundle.ini local-lib +build* From 9b330f4631a720a3debaee041061e4fdc122cc96 Mon Sep 17 00:00:00 2001 From: supermerill Date: Mon, 3 Dec 2018 20:11:21 +0100 Subject: [PATCH 22/24] thin_wall: improvements & bugfixes --- t/thin.t | 15 ++- xs/src/libslic3r/ExPolygon.cpp | 6 +- xs/src/libslic3r/MedialAxis.cpp | 163 +++++++++++++++++------- xs/src/libslic3r/MedialAxis.hpp | 1 + xs/src/libslic3r/PerimeterGenerator.cpp | 43 ++++--- xs/src/libslic3r/Polyline.cpp | 114 +++++++++-------- 6 files changed, 214 insertions(+), 128 deletions(-) diff --git a/t/thin.t b/t/thin.t index d091117a2..fcab28470 100644 --- a/t/thin.t +++ b/t/thin.t @@ -1,4 +1,4 @@ -use Test::More tests => 28; +use Test::More tests => 29; use strict; use warnings; @@ -102,7 +102,9 @@ if (0) { is scalar(@$res), 1, 'medial axis of a semicircumference is a single line'; # check whether turns are all CCW or all CW - my @lines = @{$res->[0]->lines}; + my @alllines = @{$res->[0]->lines}; + # remove lines taht are near the end. + my @lines = grep($_->a->y >= 1578184 || $_->b->y >= 1578184, @alllines); my @angles = map { $lines[$_-1]->ccw($lines[$_]->b) } 1..$#lines; ok !!(none { $_ < 0 } @angles) || (none { $_ > 0 } @angles), 'all medial axis segments of a semicircumference have the same orientation'; @@ -113,16 +115,25 @@ if (0) { [4.3, 4], [4.3, 0], [4,0], [4,4], [0,4], [0,4.5], [4,4.5], [4,10], [4.3,10], [4.3, 4.5], [6, 4.5], [6,10], [6.2,10], [6.2,4.5], [10,4.5], [10,4], [6.2,4], [6.2,0], [6, 0], [6, 4], )); + $expolygon->contour->make_counter_clockwise(); my $res = $expolygon->medial_axis(scale 0.55, scale 0.25); is scalar(@$res), 2, 'medial axis of a (bit too narrow) french cross is two lines'; ok unscale($res->[0]->length) >= (9.9) - epsilon, 'medial axis has reasonable length'; ok unscale($res->[1]->length) >= (9.9) - epsilon, 'medial axis has reasonable length'; + my @lines1 = @{$res->[0]->lines}; + my @angles1 = map { $lines1[$_-1]->ccw($lines1[$_]->b) } 1..$#lines1; + my @lines2 = @{$res->[1]->lines}; + my @angles2 = map { $lines2[$_-1]->ccw($lines2[$_]->b) } 1..$#lines2; + my @angles = (@angles1, @angles2); + ok !!(none { $_ != 0 } @angles), + 'medial axis of a (bit too narrow) french cross is two lines has only strait lines'; } { my $expolygon = Slic3r::ExPolygon->new(Slic3r::Polygon->new_scale( [0.86526705,1.4509841], [0.57696039,1.8637021], [0.4502297,2.5569978], [0.45626199,3.2965596], [1.1218851,3.3049455], [0.96681072,2.8243202], [0.86328971,2.2056997], [0.85367905,1.7790778], )); + $expolygon->contour->make_counter_clockwise(); my $res = $expolygon->medial_axis(scale 1, scale 0.25); is scalar(@$res), 1, 'medial axis of a (bit too narrow) french cross is two lines'; ok unscale($res->[0]->length) >= (1.4) - epsilon, 'medial axis has reasonable length'; diff --git a/xs/src/libslic3r/ExPolygon.cpp b/xs/src/libslic3r/ExPolygon.cpp index 82541545d..ffcdab1b6 100644 --- a/xs/src/libslic3r/ExPolygon.cpp +++ b/xs/src/libslic3r/ExPolygon.cpp @@ -237,11 +237,7 @@ ExPolygon::remove_point_too_near(const coord_t tolerance) { void ExPolygon::medial_axis(const ExPolygon &bounds, double max_width, double min_width, ThickPolylines* polylines, double height) const { - ExPolygon simplifiedBounds = bounds; - simplifiedBounds.remove_point_too_near(SCALED_RESOLUTION); - ExPolygon simplifiedPolygon = *this; - simplifiedPolygon.remove_point_too_near(SCALED_RESOLUTION); - Slic3r::MedialAxis ma(simplifiedPolygon, simplifiedBounds, max_width, min_width, height); + Slic3r::MedialAxis ma(*this, bounds, max_width, min_width, height); ma.build(polylines); } diff --git a/xs/src/libslic3r/MedialAxis.cpp b/xs/src/libslic3r/MedialAxis.cpp index 4fbbf5344..7be8c0958 100644 --- a/xs/src/libslic3r/MedialAxis.cpp +++ b/xs/src/libslic3r/MedialAxis.cpp @@ -359,21 +359,21 @@ add_point_same_percent(ThickPolyline* pattern, ThickPolyline* to_modify) /// return 1 for an angle of 90° and 0 for an angle of 0° or 180° double get_coeff_from_angle_countour(Point &point, const ExPolygon &contour, coord_t min_dist_between_point) { - double nearestDist = point.distance_to(contour.contour.points.front()); - Point nearest = contour.contour.points.front(); + double nearest_dist = point.distance_to(contour.contour.points.front()); + Point point_nearest = contour.contour.points.front(); size_t id_nearest = 0; - double nearDist = nearestDist; - Point near = nearest; + double near_dist = nearest_dist; + Point point_near = point_nearest; size_t id_near = 0; for (size_t id_point = 1; id_point < contour.contour.points.size(); ++id_point) { - if (nearestDist > point.distance_to(contour.contour.points[id_point])) { - //update near + if (nearest_dist > point.distance_to(contour.contour.points[id_point])) { + //update point_near id_near = id_nearest; - near = nearest; - nearDist = nearestDist; + point_near = point_nearest; + near_dist = nearest_dist; //update nearest - nearestDist = point.distance_to(contour.contour.points[id_point]); - nearest = contour.contour.points[id_point]; + nearest_dist = point.distance_to(contour.contour.points[id_point]); + point_nearest = contour.contour.points[id_point]; id_nearest = id_point; } } @@ -381,7 +381,7 @@ get_coeff_from_angle_countour(Point &point, const ExPolygon &contour, coord_t mi size_t id_before = id_nearest == 0 ? contour.contour.points.size() - 1 : id_nearest - 1; Point point_before = id_nearest == 0 ? contour.contour.points.back() : contour.contour.points[id_nearest - 1]; //Search one point far enough to be relevant - while (nearest.distance_to(point_before) < min_dist_between_point) { + while (point_nearest.distance_to(point_before) < min_dist_between_point) { point_before = id_before == 0 ? contour.contour.points.back() : contour.contour.points[id_before - 1]; id_before = id_before == 0 ? contour.contour.points.size() - 1 : id_before - 1; //don't loop @@ -394,7 +394,7 @@ get_coeff_from_angle_countour(Point &point, const ExPolygon &contour, coord_t mi size_t id_after = id_nearest == contour.contour.points.size() - 1 ? 0 : id_nearest + 1; Point point_after = id_nearest == contour.contour.points.size() - 1 ? contour.contour.points.front() : contour.contour.points[id_nearest + 1]; //Search one point far enough to be relevant - while (nearest.distance_to(point_after) < min_dist_between_point) { + while (point_nearest.distance_to(point_after) < min_dist_between_point) { point_after = id_after == contour.contour.points.size() - 1 ? contour.contour.points.front() : contour.contour.points[id_after + 1]; id_after = id_after == contour.contour.points.size() - 1 ? 0 : id_after + 1; //don't loop @@ -405,15 +405,15 @@ get_coeff_from_angle_countour(Point &point, const ExPolygon &contour, coord_t mi } } //compute angle - angle = nearest.ccw_angle(point_before, point_after); + angle = point_nearest.ccw_angle(point_before, point_after); if (angle >= PI) angle = 2 * PI - angle; // smaller angle //compute the diff from 90° angle = abs(angle - PI / 2); - if (near.coincides_with(nearest) && max(nearestDist, nearDist) + SCALED_EPSILON < nearest.distance_to(near)) { + if (point_near.coincides_with(point_nearest) && max(nearest_dist, near_dist) + SCALED_EPSILON < point_nearest.distance_to(point_near)) { //not only nearest Point point_before = id_near == 0 ? contour.contour.points.back() : contour.contour.points[id_near - 1]; Point point_after = id_near == contour.contour.points.size() - 1 ? contour.contour.points.front() : contour.contour.points[id_near + 1]; - double angle2 = min(nearest.ccw_angle(point_before, point_after), nearest.ccw_angle(point_after, point_before)); + double angle2 = min(point_nearest.ccw_angle(point_before, point_after), point_nearest.ccw_angle(point_after, point_before)); angle2 = abs(angle - PI / 2); angle = (angle + angle2) / 2; } @@ -613,8 +613,12 @@ MedialAxis::extends_line(ThickPolyline& polyline, const ExPolygons& anchors, con // polyline, after we extend the start point it will be caught by the intersection() // call, so we keep the inner point until we perform the second intersection() as well if (polyline.endpoints.second && !bounds.has_boundary_point(polyline.points.back())) { - Line line(*(polyline.points.end() - 2), polyline.points.back()); - + size_t first_idx = polyline.points.size() - 2; + Line line(*(polyline.points.begin() + first_idx), polyline.points.back()); + while (line.length() < SCALED_RESOLUTION && first_idx>0) { + first_idx--; + line.a = *(polyline.points.begin() + first_idx); + } // prevent the line from touching on the other side, otherwise intersection() might return that solution if (polyline.points.size() == 2) line.a = line.midpoint(); @@ -623,16 +627,39 @@ MedialAxis::extends_line(ThickPolyline& polyline, const ExPolygons& anchors, con if (this->expolygon.contour.has_boundary_point(polyline.points.back())) { new_back = polyline.points.back(); } else { + //TODO: verify also for holes. (void)this->expolygon.contour.first_intersection(line, &new_back); // safety check if no intersection - if (new_back.x == 0 && new_back.y == 0) return; + if (new_back.x == 0 && new_back.y == 0) { + if (!this->expolygon.contains(line.b)) { + //it's outside!!! + std::cout << "Error, a line is formed that start in a polygon, end outside of it can don't cross it!\n"; + } + new_back = line.b; + } polyline.points.push_back(new_back); polyline.width.push_back(polyline.width.back()); } Point new_bound; + //TODO: verify also for holes. (void)bounds.contour.first_intersection(line, &new_bound); // safety check if no intersection - if (new_bound.x == 0 && new_bound.y == 0) return; + if (new_bound.x == 0 && new_bound.y == 0) { + if (line.b.coincides_with_epsilon(polyline.points.back())) { + return; + } + //check if we don't over-shoot inside us + bool is_in_anchor = false; + for (const ExPolygon& a : anchors) { + if (a.contains(line.b)) { + is_in_anchor = true; + break; + } + } + if (!is_in_anchor) std::cout << "not in anchor:\n"; + if (!is_in_anchor) return; + new_bound = line.b; + } /* if (new_bound.coincides_with_epsilon(new_back)) { return; }*/ @@ -765,7 +792,7 @@ MedialAxis::main_fusion(ThickPolylines& pp) coord_t biggest_main_branch_length = 0; for (size_t k = 0; k < pp.size(); ++k) { //std::cout << "try to find main : " << k << " ? " << i << " " << j << " "; - if (k == i | k == j) continue; + if (k == i || k == j) continue; ThickPolyline& main = pp[k]; if (polyline.first_point().coincides_with(main.last_point())) { main.reverse(); @@ -993,19 +1020,22 @@ MedialAxis::remove_too_thin_extrusion(ThickPolylines& pp) while (polyline.points.size() > 1 && polyline.width.front() < this->min_width && polyline.endpoints.first) { //try to split if possible if (polyline.width[1] > min_width) { - double percent_can_keep = (min_width - polyline.width[0]) / (polyline.width[1] - polyline.width[0]); - if (polyline.points.front().distance_to(polyline.points[1]) * percent_can_keep > this->max_width / 2 - && polyline.points.front().distance_to(polyline.points[1])* (1 - percent_can_keep) > this->max_width / 2) { + double percent_can_keep = 1 - (min_width - polyline.width[0]) / (polyline.width[1] - polyline.width[0]); + if (polyline.points.front().distance_to(polyline.points[1]) * percent_can_keep > SCALED_RESOLUTION) { //Can split => move the first point and assign a new weight. //the update of endpoints wil be performed in concatThickPolylines polyline.points.front().x = polyline.points.front().x + - (coord_t)((polyline.points[1].x - polyline.points.front().x) * percent_can_keep); + (coord_t)((polyline.points[1].x - polyline.points.front().x) * (1 - percent_can_keep)); polyline.points.front().y = polyline.points.front().y + - (coord_t)((polyline.points[1].y - polyline.points.front().y) * percent_can_keep); + (coord_t)((polyline.points[1].y - polyline.points.front().y) * (1 - percent_can_keep)); polyline.width.front() = min_width; - changes = true; - break; + } else { + /// almost 0-length, Remove + polyline.points.erase(polyline.points.begin()); + polyline.width.erase(polyline.width.begin()); } + changes = true; + break; } polyline.points.erase(polyline.points.begin()); polyline.width.erase(polyline.width.begin()); @@ -1014,25 +1044,29 @@ MedialAxis::remove_too_thin_extrusion(ThickPolylines& pp) while (polyline.points.size() > 1 && polyline.width.back() < this->min_width && polyline.endpoints.second) { //try to split if possible if (polyline.width[polyline.points.size() - 2] > min_width) { - double percent_can_keep = (min_width - polyline.width.back()) / (polyline.width[polyline.points.size() - 2] - polyline.width.back()); - if (polyline.points.back().distance_to(polyline.points[polyline.points.size() - 2]) * percent_can_keep > this->max_width / 2 - && polyline.points.back().distance_to(polyline.points[polyline.points.size() - 2]) * (1 - percent_can_keep) > this->max_width / 2) { + double percent_can_keep = 1 - (min_width - polyline.width.back()) / (polyline.width[polyline.points.size() - 2] - polyline.width.back()); + if (polyline.points.back().distance_to(polyline.points[polyline.points.size() - 2]) * percent_can_keep > SCALED_RESOLUTION) { //Can split => move the first point and assign a new weight. //the update of endpoints wil be performed in concatThickPolylines polyline.points.back().x = polyline.points.back().x + - (coord_t)((polyline.points[polyline.points.size() - 2].x - polyline.points.back().x) * percent_can_keep); + (coord_t)((polyline.points[polyline.points.size() - 2].x - polyline.points.back().x) * (1 - percent_can_keep)); polyline.points.back().y = polyline.points.back().y + - (coord_t)((polyline.points[polyline.points.size() - 2].y - polyline.points.back().y) * percent_can_keep); + (coord_t)((polyline.points[polyline.points.size() - 2].y - polyline.points.back().y) * (1 - percent_can_keep)); polyline.width.back() = min_width; - changes = true; - break; + } else { + /// almost 0-length, Remove + polyline.points.erase(polyline.points.end() - 1); + polyline.width.erase(polyline.width.end() - 1); } + changes = true; + break; } polyline.points.erase(polyline.points.end() - 1); polyline.width.erase(polyline.width.end() - 1); changes = true; } - if (polyline.points.size() < 2) { + //remove points and bits that comes from a "main line" + if (polyline.points.size() < 2 || (changes && polyline.length() < max_width && polyline.points.size() ==2)) { //remove self if too small pp.erase(pp.begin() + i); --i; @@ -1056,7 +1090,6 @@ MedialAxis::concatenate_polylines_with_crossing(ThickPolylines& pp) Optimisation of the old algorithm : now we select the most "strait line" choice when we merge with an other line at a point with more than two meet. */ - bool changes = false; for (size_t i = 0; i < pp.size(); ++i) { ThickPolyline& polyline = pp[i]; if (polyline.endpoints.first && polyline.endpoints.second) continue; // optimization @@ -1066,8 +1099,11 @@ MedialAxis::concatenate_polylines_with_crossing(ThickPolylines& pp) size_t best_idx = 0; // find another polyline starting here - for (size_t j = i + 1; j < pp.size(); ++j) { + for (size_t j = 0; j < pp.size(); ++j) { + if (j == i) continue; ThickPolyline& other = pp[j]; + if (other.endpoints.first && other.endpoints.second) continue; + if (polyline.last_point().coincides_with(other.last_point())) { other.reverse(); } else if (polyline.first_point().coincides_with(other.last_point())) { @@ -1091,16 +1127,14 @@ MedialAxis::concatenate_polylines_with_crossing(ThickPolylines& pp) } } if (best_candidate != nullptr) { - polyline.points.insert(polyline.points.end(), best_candidate->points.begin() + 1, best_candidate->points.end()); polyline.width.insert(polyline.width.end(), best_candidate->width.begin() + 1, best_candidate->width.end()); polyline.endpoints.second = best_candidate->endpoints.second; assert(polyline.width.size() == polyline.points.size()); - changes = true; + if (best_idx < i) i--; pp.erase(pp.begin() + best_idx); } } - if (changes) concatThickPolylines(pp); } void @@ -1276,15 +1310,35 @@ void MedialAxis::build(ThickPolylines* polylines_out) { this->id++; - + //std::cout << layerid << "\n"; + //{ + // stringstream stri; + // stri << "medial_axis_0_enter_" << id << ".svg"; + // SVG svg(stri.str()); + // svg.draw(this->surface); + // svg.Close(); + //} this->expolygon = simplify_polygon_frontier(); + //{ + // stringstream stri; + // stri << "medial_axis_0.5_simplified_" << id << ".svg"; + // SVG svg(stri.str()); + // svg.draw(bounds); + // svg.draw(this->expolygon); + // svg.Close(); + //} + //safety check + if (this->expolygon.area() < this->min_width * this->min_width) this->expolygon = this->surface; + if (this->expolygon.area() < this->min_width * this->min_width) return; - + //std::cout << "simplify_polygon_frontier\n"; // compute the Voronoi diagram and extract medial axis polylines ThickPolylines pp; this->polyline_from_voronoi(this->expolygon.lines(), &pp); + concatThickPolylines(pp); + //std::cout << "concatThickPolylines\n"; //{ // stringstream stri; // stri << "medial_axis_1_voronoi_" << id << ".svg"; @@ -1313,7 +1367,6 @@ MedialAxis::build(ThickPolylines* polylines_out) // svg.Close(); //} - concatThickPolylines(pp); // Aligned fusion: Fusion the bits at the end of lines by "increasing thickness" // For that, we have to find other lines, @@ -1334,6 +1387,16 @@ MedialAxis::build(ThickPolylines* polylines_out) //fusion right-angle corners. fusion_corners(pp); + if (do_not_overextrude) { + const ExPolygons anchors = offset2_ex(diff_ex(this->bounds, this->expolygon), -SCALED_RESOLUTION, SCALED_RESOLUTION); + for (size_t i = 0; i < pp.size(); ++i) { + ThickPolyline& polyline = pp[i]; + extends_line(polyline, anchors, min_width); + polyline.reverse(); + extends_line(polyline, anchors, min_width); + } + } + //reduce extrusion when it's too thin to be printable remove_too_thin_extrusion(pp); //{ @@ -1359,12 +1422,14 @@ MedialAxis::build(ThickPolylines* polylines_out) // Loop through all returned polylines in order to extend their endpoints to the // expolygon boundaries - const ExPolygons anchors = offset2_ex(diff_ex(this->bounds, this->expolygon), -SCALED_RESOLUTION, SCALED_RESOLUTION); - for (size_t i = 0; i < pp.size(); ++i) { - ThickPolyline& polyline = pp[i]; - extends_line(polyline, anchors, min_width); - polyline.reverse(); - extends_line(polyline, anchors, min_width); + if (!do_not_overextrude) { + const ExPolygons anchors = offset2_ex(diff_ex(this->bounds, this->expolygon), -SCALED_RESOLUTION, SCALED_RESOLUTION); + for (size_t i = 0; i < pp.size(); ++i) { + ThickPolyline& polyline = pp[i]; + extends_line(polyline, anchors, min_width); + polyline.reverse(); + extends_line(polyline, anchors, min_width); + } } //{ // stringstream stri; diff --git a/xs/src/libslic3r/MedialAxis.hpp b/xs/src/libslic3r/MedialAxis.hpp index c65cbdb84..560e2bf03 100644 --- a/xs/src/libslic3r/MedialAxis.hpp +++ b/xs/src/libslic3r/MedialAxis.hpp @@ -22,6 +22,7 @@ namespace Slic3r { const double max_width; const double min_width; const double height; + bool do_not_overextrude = true; MedialAxis(const ExPolygon &_expolygon, const ExPolygon &_bounds, const double _max_width, const double _min_width, const double _height) : surface(_expolygon), bounds(_bounds), max_width(_max_width), min_width(_min_width), height(_height) { }; diff --git a/xs/src/libslic3r/PerimeterGenerator.cpp b/xs/src/libslic3r/PerimeterGenerator.cpp index 5b50b9dad..e1cbfb63b 100644 --- a/xs/src/libslic3r/PerimeterGenerator.cpp +++ b/xs/src/libslic3r/PerimeterGenerator.cpp @@ -249,16 +249,18 @@ void PerimeterGenerator::process() // detect edge case where a curve can be split in multiple small chunks. ExPolygons no_thin_onion = offset_ex(last, -(float)(ext_perimeter_width / 2)); - if (no_thin_onion.size()>0 && next_onion.size() > 3 * no_thin_onion.size()) { + float div = 2; + while (no_thin_onion.size() > 0 && next_onion.size() > no_thin_onion.size() && no_thin_onion.size() + next_onion.size() > 3) { + div += 0.5; //use a sightly smaller spacing to try to drastically improve the split ExPolygons next_onion_secondTry = offset2_ex( last, - -(float)(ext_perimeter_width / 2 + ext_min_spacing / 2.5 - 1), - +(float)(ext_min_spacing / 2.5 - 1)); - if (abs(((int32_t)next_onion.size()) - ((int32_t)no_thin_onion.size())) > - 2*abs(((int32_t)next_onion_secondTry.size()) - ((int32_t)no_thin_onion.size()))) { + -(float)(ext_perimeter_width / 2 + ext_min_spacing / div - 1), + +(float)(ext_min_spacing / div - 1)); + if (next_onion.size() > next_onion_secondTry.size()) { next_onion = next_onion_secondTry; } + if (div > 3) break; } // the following offset2 ensures almost nothing in @thin_walls is narrower than $min_width @@ -269,27 +271,32 @@ void PerimeterGenerator::process() // medial axis requires non-overlapping geometry ExPolygons thin_zones = diff_ex(last, no_thin_zone, true); //don't use offset2_ex, because we don't want to merge the zones that have been separated. - ExPolygons expp = offset_ex(thin_zones, (float)(-min_width / 2)); + //a very little bit of overlap can be created here with other thin polygons, but it's more useful than worisome. + ExPolygons half_thins = offset_ex(thin_zones, (float)(-min_width / 2)); + //simplify them + for (ExPolygon &half_thin : half_thins) { + half_thin.remove_point_too_near(SCALED_RESOLUTION); + } //we push the bits removed and put them into what we will use as our anchor - if (expp.size() > 0) { - no_thin_zone = diff_ex(last, offset_ex(expp, (float)(min_width / 2)), true); + if (half_thins.size() > 0) { + no_thin_zone = diff_ex(last, offset_ex(half_thins, (float)(min_width / 2) - SCALED_EPSILON), true); } // compute a bit of overlap to anchor thin walls inside the print. - for (ExPolygon &ex : expp) { + for (ExPolygon &half_thin : half_thins) { //growing back the polygon - //a very little bit of overlap can be created here with other thin polygons, but it's more useful than worisome. - ex.remove_point_too_near(SCALED_RESOLUTION); - ExPolygons ex_bigger = offset_ex(ex, (float)(min_width / 2)); - if (ex_bigger.size() != 1) continue; // impossible error, growing a single polygon can't create multiple or 0. - ExPolygons anchor = intersection_ex(offset_ex(ex, (float)(min_width / 2) + + ExPolygons thin = offset_ex(half_thin, (float)(min_width / 2)); + if (thin.size() != 1) continue; // impossible error, growing a single polygon can't create multiple or 0. + ExPolygons anchor = intersection_ex(offset_ex(half_thin, (float)(min_width / 2) + (float)(ext_perimeter_width / 2), jtSquare), no_thin_zone, true); - ExPolygons bounds = union_ex(ex_bigger, anchor, true); + ExPolygons bounds = union_ex(thin, anchor, true); for (ExPolygon &bound : bounds) { - if (!intersection_ex(ex_bigger[0], bound).empty()) { + if (!intersection_ex(thin[0], bound).empty()) { //be sure it's not too small to extrude reliably - if (ex_bigger[0].area() > min_width*(ext_perimeter_width + ext_perimeter_spacing2)) { + thin[0].remove_point_too_near(SCALED_RESOLUTION); + if (thin[0].area() > min_width*(ext_perimeter_width + ext_perimeter_spacing2)) { + bound.remove_point_too_near(SCALED_RESOLUTION); // the maximum thickness of our thin wall area is equal to the minimum thickness of a single loop - ex_bigger[0].medial_axis(bound, ext_perimeter_width + ext_perimeter_spacing2, min_width, + thin[0].medial_axis(bound, ext_perimeter_width + ext_perimeter_spacing2, min_width, &thin_walls, this->layer_height); } break; diff --git a/xs/src/libslic3r/Polyline.cpp b/xs/src/libslic3r/Polyline.cpp index 53f59c026..346924406 100644 --- a/xs/src/libslic3r/Polyline.cpp +++ b/xs/src/libslic3r/Polyline.cpp @@ -296,6 +296,11 @@ void concatThickPolylines(ThickPolylines& pp) { //concat polyline if only 2 polyline at a point for (size_t i = 0; i < pp.size(); ++i) { ThickPolyline *polyline = &pp[i]; + if (polyline->first_point().coincides_with(polyline->last_point())) { + polyline->endpoints.first = false; + polyline->endpoints.second = false; + continue; + } size_t id_candidate_first_point = -1; size_t id_candidate_last_point = -1; @@ -305,77 +310,78 @@ void concatThickPolylines(ThickPolylines& pp) { for (size_t j = 0; j < pp.size(); ++j) { if (j == i) continue; ThickPolyline *other = &pp[j]; + if (other->first_point().coincides_with(other->last_point())) continue; if (polyline->last_point().coincides_with(other->last_point())) { - other->reverse(); id_candidate_last_point = j; nbCandidate_last_point++; - } else if (polyline->first_point().coincides_with(other->last_point())) { - id_candidate_first_point = j; - nbCandidate_first_point++; - } else if (polyline->first_point().coincides_with(other->first_point())) { - id_candidate_first_point = j; - nbCandidate_first_point++; - other->reverse(); - } else if (polyline->last_point().coincides_with(other->first_point())) { + } + if (polyline->last_point().coincides_with(other->first_point())) { id_candidate_last_point = j; nbCandidate_last_point++; - } else { - continue; + } + if (polyline->first_point().coincides_with(other->last_point())) { + id_candidate_first_point = j; + nbCandidate_first_point++; + } + if (polyline->first_point().coincides_with(other->first_point())) { + id_candidate_first_point = j; + nbCandidate_first_point++; } } if (id_candidate_last_point == id_candidate_first_point && nbCandidate_first_point == 1 && nbCandidate_last_point == 1) { + if (polyline->first_point().coincides_with(pp[id_candidate_first_point].first_point())) pp[id_candidate_first_point].reverse(); // it's a trap! it's a loop! - if (pp[id_candidate_first_point].points.size() > 2) { - polyline->points.insert(polyline->points.begin(), pp[id_candidate_first_point].points.begin() + 1, pp[id_candidate_first_point].points.end() - 1); - polyline->width.insert(polyline->width.begin(), pp[id_candidate_first_point].width.begin() + 1, pp[id_candidate_first_point].width.end() - 1); - } + polyline->points.insert(polyline->points.end(), pp[id_candidate_first_point].points.begin() + 1, pp[id_candidate_first_point].points.end()); + polyline->width.insert(polyline->width.end(), pp[id_candidate_first_point].width.begin() + 1, pp[id_candidate_first_point].width.end()); pp.erase(pp.begin() + id_candidate_first_point); changes = true; polyline->endpoints.first = false; polyline->endpoints.second = false; - continue; - } + } else { - if (nbCandidate_first_point == 1) { - //concat at front - polyline->width[0] = std::max(polyline->width.front(), pp[id_candidate_first_point].width.back()); - polyline->points.insert(polyline->points.begin(), pp[id_candidate_first_point].points.begin(), pp[id_candidate_first_point].points.end() - 1); - polyline->width.insert(polyline->width.begin(), pp[id_candidate_first_point].width.begin(), pp[id_candidate_first_point].width.end() - 1); - polyline->endpoints.first = pp[id_candidate_first_point].endpoints.first; - pp.erase(pp.begin() + id_candidate_first_point); - changes = true; - if (id_candidate_first_point < i) { - i--; - polyline = &pp[i]; + if (nbCandidate_first_point == 1) { + if (polyline->first_point().coincides_with(pp[id_candidate_first_point].first_point())) pp[id_candidate_first_point].reverse(); + //concat at front + polyline->width[0] = std::max(polyline->width.front(), pp[id_candidate_first_point].width.back()); + polyline->points.insert(polyline->points.begin(), pp[id_candidate_first_point].points.begin(), pp[id_candidate_first_point].points.end() - 1); + polyline->width.insert(polyline->width.begin(), pp[id_candidate_first_point].width.begin(), pp[id_candidate_first_point].width.end() - 1); + polyline->endpoints.first = pp[id_candidate_first_point].endpoints.first; + pp.erase(pp.begin() + id_candidate_first_point); + changes = true; + if (id_candidate_first_point < i) { + i--; + polyline = &pp[i]; + } + if (id_candidate_last_point > id_candidate_first_point) { + id_candidate_last_point--; + } + } else if (nbCandidate_first_point == 0) { + //update endpoint + polyline->endpoints.first = true; } - if (id_candidate_last_point > id_candidate_first_point) { - id_candidate_last_point--; + if (nbCandidate_last_point == 1) { + if (polyline->last_point().coincides_with(pp[id_candidate_last_point].last_point())) pp[id_candidate_last_point].reverse(); + //concat at back + polyline->width[polyline->width.size() - 1] = std::max(polyline->width.back(), pp[id_candidate_last_point].width.front()); + polyline->points.insert(polyline->points.end(), pp[id_candidate_last_point].points.begin() + 1, pp[id_candidate_last_point].points.end()); + polyline->width.insert(polyline->width.end(), pp[id_candidate_last_point].width.begin() + 1, pp[id_candidate_last_point].width.end()); + polyline->endpoints.second = pp[id_candidate_last_point].endpoints.second; + pp.erase(pp.begin() + id_candidate_last_point); + changes = true; + if (id_candidate_last_point < i) { + i--; + polyline = &pp[i]; + } + } else if (nbCandidate_last_point == 0) { + //update endpoint + polyline->endpoints.second = true; } - } else if (nbCandidate_first_point == 0 && !polyline->endpoints.first && !polyline->first_point().coincides_with(polyline->last_point())) { - //update endpoint - polyline->endpoints.first = true; - } - if (nbCandidate_last_point == 1) { - //concat at back - polyline->width[polyline->width.size() - 1] = std::max(polyline->width.back(), pp[id_candidate_last_point].width.front()); - polyline->points.insert(polyline->points.end(), pp[id_candidate_last_point].points.begin() + 1, pp[id_candidate_last_point].points.end()); - polyline->width.insert(polyline->width.end(), pp[id_candidate_last_point].width.begin() + 1, pp[id_candidate_last_point].width.end()); - polyline->endpoints.second = pp[id_candidate_last_point].endpoints.second; - pp.erase(pp.begin() + id_candidate_last_point); - changes = true; - if (id_candidate_last_point < i) { - i--; - polyline = &pp[i]; - } - } else if (nbCandidate_last_point == 0 && !polyline->endpoints.second && !polyline->first_point().coincides_with(polyline->last_point())) { - //update endpoint - polyline->endpoints.second = true; - } - if (polyline->last_point().coincides_with(polyline->first_point())) { - //the concat has created a loop : update endpoints - polyline->endpoints.first = false; - polyline->endpoints.second = false; + if (polyline->last_point().coincides_with(polyline->first_point())) { + //the concat has created a loop : update endpoints + polyline->endpoints.first = false; + polyline->endpoints.second = false; + } } } } From cb65da2b3af1c8de0e58ff99b7356da28b2f8afc Mon Sep 17 00:00:00 2001 From: supermerill Date: Wed, 5 Dec 2018 15:55:43 +0100 Subject: [PATCH 23/24] Allow to skip the sparse infill "perimeters" --- xs/src/libslic3r/Fill/Fill.cpp | 1 + xs/src/libslic3r/Fill/Fill3DHoneycomb.cpp | 4 ++-- xs/src/libslic3r/Fill/FillGyroid.cpp | 4 ++-- xs/src/libslic3r/PrintConfig.cpp | 9 ++++++++- xs/src/libslic3r/PrintConfig.hpp | 2 ++ xs/src/libslic3r/PrintObject.cpp | 1 + xs/src/slic3r/GUI/Preset.cpp | 1 + xs/src/slic3r/GUI/Tab.cpp | 19 +++++++++++-------- xs/src/slic3r/GUI/Tab.hpp | 2 +- 9 files changed, 29 insertions(+), 14 deletions(-) diff --git a/xs/src/libslic3r/Fill/Fill.cpp b/xs/src/libslic3r/Fill/Fill.cpp index 0158221af..4cec6169a 100644 --- a/xs/src/libslic3r/Fill/Fill.cpp +++ b/xs/src/libslic3r/Fill/Fill.cpp @@ -279,6 +279,7 @@ void make_fill(LayerRegion &layerm, ExtrusionEntityCollection &out) params.density = 0.01 * density; params.dont_adjust = false; params.fill_exactly = layerm.region()->config.enforce_full_fill_volume.getBool(); + params.dont_connect = layerm.region()->config.infill_not_connected.getBool(); // calculate actual flow from spacing (which might have been adjusted by the infill // pattern generator) diff --git a/xs/src/libslic3r/Fill/Fill3DHoneycomb.cpp b/xs/src/libslic3r/Fill/Fill3DHoneycomb.cpp index aa9774784..92b70fe56 100644 --- a/xs/src/libslic3r/Fill/Fill3DHoneycomb.cpp +++ b/xs/src/libslic3r/Fill/Fill3DHoneycomb.cpp @@ -165,7 +165,7 @@ void Fill3DHoneycomb::_fill_surface_single( polylines = intersection_pl(polylines, (Polygons)expolygon); // connect lines - if (! params.dont_connect && ! polylines.empty()) { // prevent calling leftmost_point() on empty collections + if (! polylines.empty()) { // prevent calling leftmost_point() on empty collections ExPolygon expolygon_off; { ExPolygons expolygons_off = offset_ex(expolygon, SCALED_EPSILON); @@ -180,7 +180,7 @@ void Fill3DHoneycomb::_fill_surface_single( PolylineCollection::leftmost_point(polylines), false); // reverse allowed bool first = true; for (Polylines::iterator it_polyline = chained.begin(); it_polyline != chained.end(); ++ it_polyline) { - if (! first) { + if (!params.dont_connect && !first) { // Try to connect the lines. Points &pts_end = polylines_out.back().points; const Point &first_point = it_polyline->points.front(); diff --git a/xs/src/libslic3r/Fill/FillGyroid.cpp b/xs/src/libslic3r/Fill/FillGyroid.cpp index 46d6382f7..31a169e52 100644 --- a/xs/src/libslic3r/Fill/FillGyroid.cpp +++ b/xs/src/libslic3r/Fill/FillGyroid.cpp @@ -154,7 +154,7 @@ void FillGyroid::_fill_surface_single( polylines = intersection_pl(polylines, (Polygons)expolygon); // connect lines - if (! params.dont_connect && ! polylines.empty()) { // prevent calling leftmost_point() on empty collections + if (! polylines.empty()) { // prevent calling leftmost_point() on empty collections ExPolygon expolygon_off; { ExPolygons expolygons_off = offset_ex(expolygon, (float)SCALED_EPSILON); @@ -169,7 +169,7 @@ void FillGyroid::_fill_surface_single( PolylineCollection::leftmost_point(polylines), false); // reverse allowed bool first = true; for (Polyline &polyline : chained) { - if (! first) { + if (!params.dont_connect && !first) { // Try to connect the lines. Points &pts_end = polylines_out.back().points; const Point &first_point = polyline.points.front(); diff --git a/xs/src/libslic3r/PrintConfig.cpp b/xs/src/libslic3r/PrintConfig.cpp index dc44f4959..04156503e 100644 --- a/xs/src/libslic3r/PrintConfig.cpp +++ b/xs/src/libslic3r/PrintConfig.cpp @@ -778,7 +778,7 @@ PrintConfigDef::PrintConfigDef() def->default_value = new ConfigOptionPercent(20); def = this->add("fill_pattern", coEnum); - def->label = L("Fill pattern"); + def->label = L("Pattern"); def->category = L("Infill"); def->tooltip = L("Fill pattern for general low-density infill."); def->cli = "fill-pattern=s"; @@ -947,6 +947,13 @@ PrintConfigDef::PrintConfigDef() def->cli = "infill-dense!"; def->default_value = new ConfigOptionBool(false); + def = this->add("infill_not_connected", coBool); + def->label = ("Do not connect infill lines to each other."); + def->category = L("Infill"); + def->tooltip = L("If checked, the infill algorithm will try to not connect the lines near the infill. Can be useful for art or with high infill/perimeter overlap."); + def->cli = "infill-not-connected!"; + def->default_value = new ConfigOptionBool(false); + def = this->add("infill_dense_algo", coEnum); def->label = L("Algorithm"); def->tooltip = L("Choose the way the dense layer is lay out." diff --git a/xs/src/libslic3r/PrintConfig.hpp b/xs/src/libslic3r/PrintConfig.hpp index 658d1b268..cf41e152e 100644 --- a/xs/src/libslic3r/PrintConfig.hpp +++ b/xs/src/libslic3r/PrintConfig.hpp @@ -461,6 +461,7 @@ public: ConfigOptionInt infill_every_layers; ConfigOptionFloatOrPercent infill_overlap; ConfigOptionFloat infill_speed; + ConfigOptionBool infill_not_connected; ConfigOptionBool infill_dense; ConfigOptionEnum infill_dense_algo; ConfigOptionBool infill_first; @@ -518,6 +519,7 @@ protected: OPT_PTR(infill_overlap); OPT_PTR(infill_speed); OPT_PTR(infill_dense); + OPT_PTR(infill_not_connected); OPT_PTR(infill_dense_algo); OPT_PTR(infill_first); OPT_PTR(overhangs); diff --git a/xs/src/libslic3r/PrintObject.cpp b/xs/src/libslic3r/PrintObject.cpp index 0b17ffec9..96c57621c 100644 --- a/xs/src/libslic3r/PrintObject.cpp +++ b/xs/src/libslic3r/PrintObject.cpp @@ -206,6 +206,7 @@ bool PrintObject::invalidate_state_by_config_options(const std::vector& Preset::print_options() "infill_dense", "infill_dense_algo", "no_perimeter_unsupported", "min_perimeter_unsupported", "noperi_bridge_only", "support_material_solid_first_layer", "perimeter_loop", "perimeter_loop_seam", "seam_travel" , "remove_small_gaps" + , "infill_not_connected" }; return s_opts; } diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp index 6f3cf0da3..7c760c8f6 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/xs/src/slic3r/GUI/Tab.cpp @@ -830,15 +830,18 @@ void TabPrint::build() line.append_option(optgroup->get_option("perimeter_loop_seam")); optgroup->append_line(line); - page = add_options_page(_(L("Infill")), "infill.png"); - optgroup = page->new_optgroup(_(L("Infill"))); - optgroup->append_single_option_line("fill_density"); - optgroup->append_single_option_line("fill_pattern"); - optgroup->append_single_option_line("top_fill_pattern"); - optgroup->append_single_option_line("bottom_fill_pattern"); - optgroup->append_single_option_line("enforce_full_fill_volume"); + page = add_options_page(_(L("Infill")), "infill.png"); + optgroup = page->new_optgroup(_(L("Infill"))); + optgroup->append_single_option_line("fill_density"); + line = { _(L("Inside")), "" }; + line.append_option(optgroup->get_option("fill_pattern")); + line.append_option(optgroup->get_option("infill_not_connected")); + optgroup->append_line(line); + optgroup->append_single_option_line("top_fill_pattern"); + optgroup->append_single_option_line("bottom_fill_pattern"); + optgroup->append_single_option_line("enforce_full_fill_volume"); - optgroup = page->new_optgroup(_(L("Reducing printing time"))); + optgroup = page->new_optgroup(_(L("Reducing printing time"))); optgroup->append_single_option_line("infill_every_layers"); optgroup->append_single_option_line("infill_only_where_needed"); line = { _(L("Suporting dense layer")), "" }; diff --git a/xs/src/slic3r/GUI/Tab.hpp b/xs/src/slic3r/GUI/Tab.hpp index 230fe659e..2fa987f37 100644 --- a/xs/src/slic3r/GUI/Tab.hpp +++ b/xs/src/slic3r/GUI/Tab.hpp @@ -330,7 +330,7 @@ public: size_t m_sys_extruders_count; TabPrinter() {} - TabPrinter(wxNotebook* parent, bool no_controller) : Tab(parent, _(L("Printer Settings")), "printer", no_controller) {} + TabPrinter(wxNotebook* parent, bool no_controller) : Tab(parent, _(L("Hardware Settings")), "printer", no_controller) {} ~TabPrinter(){} void build() override; From ffb8cdca36f10d1bae9c9dfaaff125156da88ef2 Mon Sep 17 00:00:00 2001 From: supermerill Date: Thu, 6 Dec 2018 16:00:44 +0100 Subject: [PATCH 24/24] first layer infill speed --- xs/src/libslic3r/GCode.cpp | 5 ++++- xs/src/libslic3r/Print.cpp | 1 + xs/src/libslic3r/PrintConfig.cpp | 24 +++++++++++++++++++----- xs/src/libslic3r/PrintConfig.hpp | 2 ++ xs/src/slic3r/GUI/Preset.cpp | 1 + xs/src/slic3r/GUI/PresetHints.cpp | 13 ++++++++++--- xs/src/slic3r/GUI/Tab.cpp | 7 +++++-- 7 files changed, 42 insertions(+), 11 deletions(-) diff --git a/xs/src/libslic3r/GCode.cpp b/xs/src/libslic3r/GCode.cpp index 83f466ae5..3b346bf2d 100644 --- a/xs/src/libslic3r/GCode.cpp +++ b/xs/src/libslic3r/GCode.cpp @@ -2403,7 +2403,10 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, } } if (this->on_first_layer()) - speed = std::min(m_config.get_abs_value("first_layer_speed", speed), speed); + if (path.role() == erInternalInfill || path.role() == erSolidInfill) + speed = std::min(m_config.get_abs_value("first_layer_infill_speed", speed), speed); + else + speed = std::min(m_config.get_abs_value("first_layer_speed", speed), speed); if (m_volumetric_speed != 0. && speed == 0) speed = m_volumetric_speed / path.mm3_per_mm; if (m_config.max_volumetric_speed.value > 0) { diff --git a/xs/src/libslic3r/Print.cpp b/xs/src/libslic3r/Print.cpp index b4d670c12..ca567ca85 100644 --- a/xs/src/libslic3r/Print.cpp +++ b/xs/src/libslic3r/Print.cpp @@ -126,6 +126,7 @@ bool Print::invalidate_state_by_config_options(const std::vectorcli = "first-layer-height=s"; def->ratio_over = "layer_height"; def->default_value = new ConfigOptionFloatOrPercent(0.35, false); - + def = this->add("first_layer_speed", coFloatOrPercent); - def->label = L("First layer speed"); + def->label = L("default"); def->tooltip = L("If expressed as absolute value in mm/s, this speed will be applied to all the print moves " - "of the first layer, regardless of their type. If expressed as a percentage " - "(for example: 40%) it will scale the default speeds."); + "but infill of the first layer, it can be overwrite by the 'default' (default depends of the type of the path) " + "speed if it's lower than that. If expressed as a percentage " + "(for example: 40%) it will scale the 'default' speeds . " + "If expressed as absolute value, it can be overwrite by the 'default' speed if it's lower than that."); def->sidetext = L("mm/s or %"); def->cli = "first-layer-speed=s"; def->min = 0; def->default_value = new ConfigOptionFloatOrPercent(30, false); - + + def = this->add("first_layer_infill_speed", coFloatOrPercent); + def->label = L("infill"); + def->tooltip = L("If expressed as absolute value in mm/s, this speed will be applied to infill moves " + "of the first layer, it can be overwrite by the 'default' (solid infill or infill if not bottom) " + "speed if it's lower than that. If expressed as a percentage " + "(for example: 40%) it will scale the 'default' speed. " + "If expressed as absolute value, it can be overwrite by the 'default' speed if it's lower than that."); + def->sidetext = L("mm/s or %"); + def->cli = "first-layer-infill-speed=s"; + def->min = 0; + def->default_value = new ConfigOptionFloatOrPercent(30, false); + def = this->add("first_layer_temperature", coInts); def->label = L("First layer"); def->tooltip = L("Extruder temperature for first layer. If you want to control temperature manually " diff --git a/xs/src/libslic3r/PrintConfig.hpp b/xs/src/libslic3r/PrintConfig.hpp index cf41e152e..ad973eaa8 100644 --- a/xs/src/libslic3r/PrintConfig.hpp +++ b/xs/src/libslic3r/PrintConfig.hpp @@ -760,6 +760,7 @@ public: ConfigOptionInts first_layer_bed_temperature; ConfigOptionFloatOrPercent first_layer_extrusion_width; ConfigOptionFloatOrPercent first_layer_speed; + ConfigOptionFloatOrPercent first_layer_infill_speed; ConfigOptionInts first_layer_temperature; ConfigOptionFloat infill_acceleration; ConfigOptionInts max_fan_speed; @@ -831,6 +832,7 @@ protected: OPT_PTR(first_layer_bed_temperature); OPT_PTR(first_layer_extrusion_width); OPT_PTR(first_layer_speed); + OPT_PTR(first_layer_infill_speed); OPT_PTR(first_layer_temperature); OPT_PTR(infill_acceleration); OPT_PTR(max_fan_speed); diff --git a/xs/src/slic3r/GUI/Preset.cpp b/xs/src/slic3r/GUI/Preset.cpp index 98ad383b9..dce18e52a 100644 --- a/xs/src/slic3r/GUI/Preset.cpp +++ b/xs/src/slic3r/GUI/Preset.cpp @@ -310,6 +310,7 @@ const std::vector& Preset::print_options() "support_material_solid_first_layer", "perimeter_loop", "perimeter_loop_seam", "seam_travel" , "remove_small_gaps" , "infill_not_connected" + ,"first_layer_infill_speed" }; return s_opts; } diff --git a/xs/src/slic3r/GUI/PresetHints.cpp b/xs/src/slic3r/GUI/PresetHints.cpp index aad28766a..69fbc6fb9 100644 --- a/xs/src/slic3r/GUI/PresetHints.cpp +++ b/xs/src/slic3r/GUI/PresetHints.cpp @@ -106,6 +106,7 @@ std::string PresetHints::maximum_volumetric_flow_description(const PresetBundle const auto &support_material_extrusion_width = *print_config.option("support_material_extrusion_width"); const auto &top_infill_extrusion_width = *print_config.option("top_infill_extrusion_width"); const auto &first_layer_speed = *print_config.option("first_layer_speed"); + const auto &first_layer_infill_speed = *print_config.option("first_layer_infill_speed"); // Index of an extruder assigned to a feature. If set to 0, an active extruder will be used for a multi-material print. // If different from idx_extruder, it will not be taken into account for this hint. @@ -142,6 +143,12 @@ std::string PresetHints::maximum_volumetric_flow_description(const PresetBundle speed_normal = first_layer_speed.get_abs_value(speed_normal); return (speed_normal > 0.) ? speed_normal : speed_max; }; + auto limit_infill_by_first_layer_speed = [&first_layer_infill_speed, first_layer](double speed_normal, double speed_max) { + if (first_layer && first_layer_infill_speed.value > 0) + // Apply the first layer limit. + speed_normal = first_layer_infill_speed.get_abs_value(speed_normal); + return (speed_normal > 0.) ? speed_normal : speed_max; + }; if (perimeter_extruder_active) { double external_perimeter_rate = Flow::new_from_config_width(frExternalPerimeter, first_positive(first_layer_extrusion_width_ptr, external_perimeter_extrusion_width, extrusion_width), @@ -165,7 +172,7 @@ std::string PresetHints::maximum_volumetric_flow_description(const PresetBundle if (! bridging && infill_extruder_active) { double infill_rate = Flow::new_from_config_width(frInfill, first_positive(first_layer_extrusion_width_ptr, infill_extrusion_width, extrusion_width), - nozzle_diameter, lh, bfr).mm3_per_mm() * limit_by_first_layer_speed(infill_speed, max_print_speed); + nozzle_diameter, lh, bfr).mm3_per_mm() * limit_infill_by_first_layer_speed(infill_speed, max_print_speed); if (max_flow < infill_rate) { max_flow = infill_rate; max_flow_extrusion_type = _CHB(L("infill")); @@ -175,7 +182,7 @@ std::string PresetHints::maximum_volumetric_flow_description(const PresetBundle double solid_infill_rate = Flow::new_from_config_width(frInfill, first_positive(first_layer_extrusion_width_ptr, solid_infill_extrusion_width, extrusion_width), nozzle_diameter, lh, 0).mm3_per_mm() * - (bridging ? bridge_speed : limit_by_first_layer_speed(solid_infill_speed, max_print_speed)); + (bridging ? bridge_speed : limit_infill_by_first_layer_speed(solid_infill_speed, max_print_speed)); if (max_flow < solid_infill_rate) { max_flow = solid_infill_rate; max_flow_extrusion_type = _CHB(L("solid infill")); @@ -183,7 +190,7 @@ std::string PresetHints::maximum_volumetric_flow_description(const PresetBundle if (! bridging) { double top_solid_infill_rate = Flow::new_from_config_width(frInfill, first_positive(first_layer_extrusion_width_ptr, top_infill_extrusion_width, extrusion_width), - nozzle_diameter, lh, bfr).mm3_per_mm() * limit_by_first_layer_speed(top_solid_infill_speed, max_print_speed); + nozzle_diameter, lh, bfr).mm3_per_mm() * limit_infill_by_first_layer_speed(top_solid_infill_speed, max_print_speed); if (max_flow < top_solid_infill_rate) { max_flow = top_solid_infill_rate; max_flow_extrusion_type = _CHB(L("top solid infill")); diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp index 7c760c8f6..d334aa7aa 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/xs/src/slic3r/GUI/Tab.cpp @@ -913,8 +913,11 @@ void TabPrint::build() optgroup = page->new_optgroup(_(L("Speed for non-print moves"))); optgroup->append_single_option_line("travel_speed"); - optgroup = page->new_optgroup(_(L("Modifiers"))); - optgroup->append_single_option_line("first_layer_speed"); + optgroup = page->new_optgroup(_(L("Modifiers"))); + line = { _(L("First layer speed")), "" }; + line.append_option(optgroup->get_option("first_layer_speed")); + line.append_option(optgroup->get_option("first_layer_infill_speed")); + optgroup->append_line(line); optgroup = page->new_optgroup(_(L("Acceleration control (advanced)"))); optgroup->append_single_option_line("perimeter_acceleration");