From 4f427f83876090cc970df17dce740084dd3520d9 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Fri, 2 Feb 2018 10:51:08 +0100 Subject: [PATCH 1/5] Updated the bundled Slic3r profiles to match the current stable release profiles, adjusted the speed / acceleration / jerk limits to match the current MK3 firmware. --- ...inal Prusa i3 MK2, MK2S, MK2MM and MK3.ini | 56 +++++++++---------- resources/profiles/Original Prusa i3 MK3.ini | 56 +++++++++---------- 2 files changed, 56 insertions(+), 56 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 5835cfdeb..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 @@ -1,4 +1,4 @@ -# generated by Slic3r Prusa Edition 1.39.0 on 2018-01-06 at 15:09:55 +# generated by Slic3r Prusa Edition 1.39.0.29-prusa3d-win64 on 2018-01-22 at 14:53:14 [print:0.05mm DETAIL] avoid_crossing_perimeters = 0 @@ -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 @@ -563,17 +563,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 = 170 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -601,7 +601,7 @@ 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 +627,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 @@ -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 @@ -1093,17 +1093,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 = 170 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -1131,7 +1131,7 @@ 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 +1157,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 @@ -1517,17 +1517,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 = 170 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -1555,7 +1555,7 @@ 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 +1582,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 @@ -2807,13 +2807,13 @@ 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 +first_layer_temperature = 275 +max_fan_speed = 50 +min_fan_speed = 50 min_print_speed = 5 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 @@ -3120,19 +3120,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 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 @@ -3560,7 +3560,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\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X15 Y15 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 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} toolchange_gcode = use_firmware_retraction = 0 use_relative_e_distances = 1 diff --git a/resources/profiles/Original Prusa i3 MK3.ini b/resources/profiles/Original Prusa i3 MK3.ini index 0afbb35cd..b53006b0f 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.39.0 on 2018-01-06 at 15:12:34 +# generated by Slic3r Prusa Edition 1.39.0 on 2018-02-02 at 10:48:46 [print:0.05mm DETAIL] avoid_crossing_perimeters = 0 @@ -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 @@ -563,17 +563,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 = 170 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -601,7 +601,7 @@ 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 +627,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 @@ -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 @@ -1093,17 +1093,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 = 170 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -1131,7 +1131,7 @@ 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 +1157,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 @@ -1517,17 +1517,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 = 170 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -1555,7 +1555,7 @@ 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 +1582,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 @@ -2807,13 +2807,13 @@ 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 +first_layer_temperature = 275 +max_fan_speed = 50 +min_fan_speed = 50 min_print_speed = 5 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 @@ -3120,19 +3120,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 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 @@ -3280,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\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X15 Y15 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 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} toolchange_gcode = use_firmware_retraction = 0 use_relative_e_distances = 1 From 36bbd6a73fdcb4d7b817674b6c827eda299fae6b Mon Sep 17 00:00:00 2001 From: bubnikv Date: Fri, 2 Feb 2018 11:32:32 +0100 Subject: [PATCH 2/5] Fix of https://github.com/prusa3d/Slic3r/issues/696 --- xs/xsp/GUI_Preset.xsp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xs/xsp/GUI_Preset.xsp b/xs/xsp/GUI_Preset.xsp index 67e1d5fc6..0033ebd0e 100644 --- a/xs/xsp/GUI_Preset.xsp +++ b/xs/xsp/GUI_Preset.xsp @@ -18,8 +18,8 @@ bool is_compatible_with_printer(Preset *active_printer) %code%{ RETVAL = THIS->is_compatible_with_printer(*active_printer); %}; - const char* name() %code%{ RETVAL = THIS->name.c_str(); %}; - const char* file() %code%{ RETVAL = THIS->file.c_str(); %}; + std::string name() %code%{ RETVAL = THIS->name; %}; + std::string file() %code%{ RETVAL = THIS->file; %}; bool loaded() %code%{ RETVAL = THIS->loaded; %}; From 8932055ed5262f43697cc0313059ca79a219f583 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Fri, 2 Feb 2018 11:38:30 +0100 Subject: [PATCH 3/5] Fixed spelling of Elephant foot compensation from Elefant to Elephant. Unfortunately the settings is out in the wild, so we did not fix the spelling of the config value name. --- xs/src/libslic3r/PrintConfig.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xs/src/libslic3r/PrintConfig.cpp b/xs/src/libslic3r/PrintConfig.cpp index 0dc6c9d43..5bbf20c4c 100644 --- a/xs/src/libslic3r/PrintConfig.cpp +++ b/xs/src/libslic3r/PrintConfig.cpp @@ -200,10 +200,10 @@ PrintConfigDef::PrintConfigDef() def->default_value = new ConfigOptionFloat(6); def = this->add("elefant_foot_compensation", coFloat); - def->label = "Elefant foot compensation"; + def->label = "Elephant foot compensation"; def->category = "Advanced"; def->tooltip = "The first layer will be shrunk in the XY plane by the configured value " - "to compensate for the 1st layer squish aka an Elefant Foot effect."; + "to compensate for the 1st layer squish aka an Elephant Foot effect."; def->sidetext = "mm"; def->cli = "elefant-foot-compensation=f"; def->min = 0; From b4483fdcbd28c537ccc7cdf786a317a0addfa3af Mon Sep 17 00:00:00 2001 From: bubnikv Date: Fri, 2 Feb 2018 11:49:09 +0100 Subject: [PATCH 4/5] Fix of "Conditional gcode with "<=" condition fails" https://github.com/prusa3d/Slic3r/issues/683 --- t/custom_gcode.t | 12 +++++++++--- xs/src/libslic3r/PlaceholderParser.cpp | 6 +++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/t/custom_gcode.t b/t/custom_gcode.t index 6a930a38a..bafcd4610 100644 --- a/t/custom_gcode.t +++ b/t/custom_gcode.t @@ -1,4 +1,4 @@ -use Test::More tests => 71; +use Test::More tests => 77; use strict; use warnings; @@ -91,8 +91,14 @@ use Slic3r::Test; is $parser->evaluate_boolean_expression('(12 == 2 * 6) ? (1 - 1 == 3) : (2 * 2 == 4)'), 0, 'boolean expression parser: ternary true'; is $parser->evaluate_boolean_expression('12 < 3'), 0, 'boolean expression parser: lower than - false'; is $parser->evaluate_boolean_expression('12 < 22'), 1, 'boolean expression parser: lower than - true'; - is $parser->evaluate_boolean_expression('12 > 3'), 1, 'boolean expression parser: lower than - true'; - is $parser->evaluate_boolean_expression('12 > 22'), 0, 'boolean expression parser: lower than - false'; + is $parser->evaluate_boolean_expression('12 > 3'), 1, 'boolean expression parser: greater than - true'; + is $parser->evaluate_boolean_expression('12 > 22'), 0, 'boolean expression parser: greater than - false'; + is $parser->evaluate_boolean_expression('12 <= 3'), 0, 'boolean expression parser: lower than or equal- false'; + is $parser->evaluate_boolean_expression('12 <= 22'), 1, 'boolean expression parser: lower than or equal - true'; + is $parser->evaluate_boolean_expression('12 >= 3'), 1, 'boolean expression parser: greater than or equal - true'; + is $parser->evaluate_boolean_expression('12 >= 22'), 0, 'boolean expression parser: greater than or equal - false'; + is $parser->evaluate_boolean_expression('12 <= 12'), 1, 'boolean expression parser: lower than or equal (same values) - true'; + is $parser->evaluate_boolean_expression('12 >= 12'), 1, 'boolean expression parser: greater than or equal (same values) - true'; is $parser->evaluate_boolean_expression('printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 and num_extruders>1'), 1, 'complex expression'; is $parser->evaluate_boolean_expression('printer_notes=~/.*PRINTER_VEwerfNDOR_PRUSA3D.*/ or printer_notes=~/.*PRINTertER_MODEL_MK2.*/ or (nozzle_diameter[0]==0.6 and num_extruders>1)'), 1, 'complex expression2'; diff --git a/xs/src/libslic3r/PlaceholderParser.cpp b/xs/src/libslic3r/PlaceholderParser.cpp index b91f4c99c..ba0efd6e4 100644 --- a/xs/src/libslic3r/PlaceholderParser.cpp +++ b/xs/src/libslic3r/PlaceholderParser.cpp @@ -974,10 +974,10 @@ namespace client relational_expression = additive_expression(_r1) [_val = _1] - >> *( (lit('<') > additive_expression(_r1) ) [px::bind(&expr::lower, _val, _1)] - | (lit('>') > additive_expression(_r1) ) [px::bind(&expr::greater, _val, _1)] - | ("<=" > additive_expression(_r1) ) [px::bind(&expr::leq, _val, _1)] + >> *( ("<=" > additive_expression(_r1) ) [px::bind(&expr::leq, _val, _1)] | (">=" > additive_expression(_r1) ) [px::bind(&expr::geq, _val, _1)] + | (lit('<') > additive_expression(_r1) ) [px::bind(&expr::lower, _val, _1)] + | (lit('>') > additive_expression(_r1) ) [px::bind(&expr::greater, _val, _1)] ); relational_expression.name("relational_expression"); From ea9920e5d679e2deb19e553ee504cafea7b89714 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Fri, 2 Feb 2018 19:48:16 +0100 Subject: [PATCH 5/5] Fix of Negative Feedrates: G1 F-3.84007e+006 stops smoothie The problem was caused by the gap fill algorithm, which worked with square extrusion width values as with rounded extrusion widths, which sometimes lead to negative extrusion cross sections for high height to width ratios. The extrusion width logic has been changed to consider the input width to be the extrusion spacing, not the extrusion width. The change certainly removed the negative feed rates, but it also certainly increased the gap fill width to some exent. It needs to be verified now, whether the gap fill does not extrude too much. https://github.com/prusa3d/Slic3r/issues/677 --- xs/src/libslic3r/PerimeterGenerator.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/xs/src/libslic3r/PerimeterGenerator.cpp b/xs/src/libslic3r/PerimeterGenerator.cpp index bffd46d0f..ea9c73fa4 100644 --- a/xs/src/libslic3r/PerimeterGenerator.cpp +++ b/xs/src/libslic3r/PerimeterGenerator.cpp @@ -483,8 +483,9 @@ PerimeterGenerator::_variable_width(const ThickPolylines &polylines, ExtrusionRo if (path.polyline.points.empty()) { path.polyline.append(line.a); path.polyline.append(line.b); - - flow.width = unscale(w); + // Convert from spacing to extrusion width based on the extrusion model + // of a square extrusion ended with semi circles. + flow.width = unscale(w) + flow.height * (1. - 0.25 * PI); #ifdef SLIC3R_DEBUG printf(" filling %f gap\n", flow.width); #endif