From b47777e73eb3c83003eedeb97fe632b10017818f Mon Sep 17 00:00:00 2001 From: SoftFever Date: Thu, 6 Jul 2023 00:01:06 +0800 Subject: [PATCH] optimize gcode generation --- src/libslic3r/GCode.cpp | 25 +------------------------ src/libslic3r/GCodeWriter.cpp | 7 +++---- 2 files changed, 4 insertions(+), 28 deletions(-) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 6d1ce40f2c..85f08d3e2f 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -3642,14 +3642,6 @@ std::string GCode::extrude_loop(ExtrusionLoop loop, std::string description, dou gcode += m_writer.extrude_to_xy(this->point_to_gcode(pt), 0,"move inwards before travel",true); } - //BBS: don't reset acceleration when printing first layer. During first layer, acceleration is always same value. - if (!this->on_first_layer()) { - // reset acceleration - if (m_config.default_acceleration.value > 0) - gcode += m_writer.set_acceleration((unsigned int)(m_config.default_acceleration.value + 0.5)); - if (m_config.default_jerk.value > 0) - gcode += m_writer.set_jerk_xy(m_config.default_jerk.value); - } return gcode; } @@ -3673,14 +3665,7 @@ std::string GCode::extrude_multi_path(ExtrusionMultiPath multipath, std::string } m_wipe.path.reverse(); } - //BBS: don't reset acceleration when printing first layer. During first layer, acceleration is always same value. - if (!this->on_first_layer()) { - // reset acceleration - if (m_config.default_acceleration.value > 0) - gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5)); - if(m_config.default_jerk.value > 0) - gcode += m_writer.set_jerk_xy(m_config.default_jerk.value); - } + return gcode; } @@ -3705,15 +3690,7 @@ std::string GCode::extrude_path(ExtrusionPath path, std::string description, dou m_wipe.path = std::move(path.polyline); m_wipe.path.reverse(); } - //BBS: don't reset acceleration when printing first layer. During first layer, acceleration is always same value. - if (!this->on_first_layer()){ - // reset acceleration - if (m_config.default_acceleration.value > 0) - gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5)); - if(m_config.default_jerk.value > 0) - gcode += m_writer.set_jerk_xy(m_config.default_jerk.value); - } return gcode; } diff --git a/src/libslic3r/GCodeWriter.cpp b/src/libslic3r/GCodeWriter.cpp index 0b78ce96ae..e52b413b4b 100644 --- a/src/libslic3r/GCodeWriter.cpp +++ b/src/libslic3r/GCodeWriter.cpp @@ -177,14 +177,13 @@ std::string GCodeWriter::set_acceleration(unsigned int acceleration) // Use M204 P, we don't want to override travel acc by M204 S (which is deprecated anyway). gcode << "M204 P" << acceleration; } else if (FLAVOR_IS(gcfKlipper) && this->config.accel_to_decel_enable) { - gcode << "SET_VELOCITY_LIMIT ACCEL_TO_DECEL=" << acceleration * this->config.accel_to_decel_factor / 100; + gcode << "SET_VELOCITY_LIMIT ACCEL=" << acceleration + << " ACCEL_TO_DECEL=" << acceleration * this->config.accel_to_decel_factor / 100; if (GCodeWriter::full_gcode_comment) gcode << " ; adjust ACCEL_TO_DECEL"; - gcode << "\nM204 S" << acceleration; - // Set max accel to decel to half of acceleration } else gcode << "M204 S" << acceleration; - + //BBS if (GCodeWriter::full_gcode_comment) gcode << " ; adjust acceleration"; gcode << "\n";