From 95a41a689f5d6df1fb349dbfbe640eaf01075bd0 Mon Sep 17 00:00:00 2001 From: igiannakas <59056762+igiannakas@users.noreply.github.com> Date: Mon, 11 Sep 2023 19:01:48 +0100 Subject: [PATCH] Fixed bug in speed calculation and tweaked parameters for high speed printer Fixed bug in speed calculation and tweaked parameters for high speed printer --- src/libslic3r/GCode/ExtrusionProcessor.hpp | 12 ++++-------- src/libslic3r/SupportSpotsGenerator.hpp | 2 +- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/libslic3r/GCode/ExtrusionProcessor.hpp b/src/libslic3r/GCode/ExtrusionProcessor.hpp index 1019d287e8..5deb2f44d2 100644 --- a/src/libslic3r/GCode/ExtrusionProcessor.hpp +++ b/src/libslic3r/GCode/ExtrusionProcessor.hpp @@ -371,16 +371,12 @@ public: return final_speed; }; - float old_extrusion_speed = std::min(calculate_speed(curr.distance), calculate_speed(next.distance)); - float extrusion_speed = std::min(calculate_speed(curr.distance+artificial_distance_to_curled_lines), calculate_speed(next.distance+artificial_distance_to_curled_lines)); + float extrusion_speed = std::min(calculate_speed(curr.distance), calculate_speed(next.distance)); + float curled_speed = calculate_speed(artificial_distance_to_curled_lines); + extrusion_speed = std::min(curled_speed, extrusion_speed); // adjust extrusion speed based on what is smallest - the calculated overhang speed or the artificial curled speed + float overlap = std::min(1 - curr.distance * width_inv, 1 - next.distance * width_inv); - /*printf("artificial_distance_to_curled_lines %f, curr.distance %f, next.distance %f, calculate_speed(curr.distance)%f,calculate_speed(next.distance) %f, new A%f, new B%f \n",artificial_distance_to_curled_lines, curr.distance,next.distance, calculate_speed(curr.distance),calculate_speed(next.distance), - calculate_speed(curr.distance+artificial_distance_to_curled_lines), calculate_speed(next.distance+artificial_distance_to_curled_lines) );*/ - - //if(artificial_distance_to_curled_lines>0 ) {printf("Found curls. Artificial distance: %f\n",artificial_distance_to_curled_lines ); /*extrusion_speed=500;*/}// Temporary debug messages - //if(old_extrusion_speed>extrusion_speed ) printf("Reduced speed. Original: %f, New: %f\n",old_extrusion_speed,extrusion_speed); // Temporary debug messages - processed_points.push_back({ scaled(curr.position), extrusion_speed, overlap }); } return processed_points; diff --git a/src/libslic3r/SupportSpotsGenerator.hpp b/src/libslic3r/SupportSpotsGenerator.hpp index 252670b3db..5f133693dd 100644 --- a/src/libslic3r/SupportSpotsGenerator.hpp +++ b/src/libslic3r/SupportSpotsGenerator.hpp @@ -43,7 +43,7 @@ struct Params BrimType brim_type; const float brim_width; - const std::pair malformation_distance_factors = std::pair { 0.2, 1.1 }; + const std::pair malformation_distance_factors = std::pair { 0.35, 0.7 }; const float max_curled_height_factor = 10.0f; const float curling_tolerance_limit = 0.1f;