From 019c6dbb1014689c73d720fa808f55f941d0c138 Mon Sep 17 00:00:00 2001 From: sunsets <845944018@qq.com> Date: Fri, 22 Sep 2023 14:38:07 +0800 Subject: [PATCH] update first layer speed and rapid fan speed --- src/libslic3r/GCode.cpp | 9 +++++++-- src/libslic3r/GCode/CoolingBuffer.cpp | 9 +++++---- src/libslic3r/GCodeWriter.cpp | 4 ++-- src/libslic3r/Preset.cpp | 2 +- src/libslic3r/Print.cpp | 2 +- src/libslic3r/PrintConfig.cpp | 12 ++++++------ src/libslic3r/PrintConfig.hpp | 2 +- src/slic3r/GUI/Tab.cpp | 5 +++-- 8 files changed, 26 insertions(+), 19 deletions(-) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 632bc12..cb0c6c4 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -1496,7 +1496,8 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato file.write(m_writer.set_fan(0)); - + //B39 + file.write("M106 P3 S0\n"); // adds tag for processor file.write_format(";%s%s\n", GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Role).c_str(), gcode_extrusion_role_to_string(GCodeExtrusionRole::Custom).c_str()); @@ -3097,7 +3098,11 @@ std::string GCode::_extrude(const ExtrusionPath &path, const std::string_view de speed = m_volumetric_speed / path.mm3_per_mm; //B37 if (this->on_first_layer()) - speed = path.role() == ExtrusionRole::ExternalPerimeter ? m_config.get_abs_value("first_layer_external_perimeter_speed") : m_config.get_abs_value("first_layer_speed", speed); + speed = path.role() == ExtrusionRole::InternalInfill ? + m_config.get_abs_value("first_layer_infill_speed") : + path.role() == ExtrusionRole::SolidInfill ? + m_config.get_abs_value("first_layer_infill_speed") : + m_config.get_abs_value("first_layer_speed", speed); else if (this->object_layer_over_raft()) speed = m_config.get_abs_value("first_layer_speed_over_raft", speed); if (m_config.max_volumetric_speed.value > 0) { diff --git a/src/libslic3r/GCode/CoolingBuffer.cpp b/src/libslic3r/GCode/CoolingBuffer.cpp index a518e97..1023a02 100644 --- a/src/libslic3r/GCode/CoolingBuffer.cpp +++ b/src/libslic3r/GCode/CoolingBuffer.cpp @@ -757,6 +757,7 @@ std::string CoolingBuffer::apply_layer_cooldown( //B25 int enable_volume_fan = EXTRUDER_CONFIG(enable_volume_fan); int fan_speed_new = EXTRUDER_CONFIG(fan_always_on) ? min_fan_speed : 0; + //B26 bool enable_advance_pressure = EXTRUDER_CONFIG(enable_advance_pressure); float advance_pressure = float(EXTRUDER_CONFIG(advance_pressure)); @@ -809,14 +810,14 @@ std::string CoolingBuffer::apply_layer_cooldown( fan_speed_new = 0; custom_fan_speed_limits.second = 0; } - //B15 - if (int(layer_id) >= disable_fan_first_layers && fan_speed_new != m_fan_speed) { + //B15 //B39 + if (int(layer_id) == disable_rapid_cooling_fan_first_layers && enable_auxiliary_fan!=0) { std::ostringstream fan_gcode; fan_gcode << "M106 P2 S" << 255.0 * enable_auxiliary_fan / 100.0 << "\n"; new_gcode += fan_gcode.str(); } - //B25 //B39 - if (int(layer_id) == disable_rapid_cooling_fan_first_layers && enable_volume_fan != 0 ) { + //B25 + if (int(layer_id) == disable_fan_first_layers) { std::ostringstream fan_gcode; fan_gcode << "M106 P3 S" << 255.0 * enable_volume_fan / 100.0 << "\n"; new_gcode += fan_gcode.str(); diff --git a/src/libslic3r/GCodeWriter.cpp b/src/libslic3r/GCodeWriter.cpp index 52080c7..9635f3b 100644 --- a/src/libslic3r/GCodeWriter.cpp +++ b/src/libslic3r/GCodeWriter.cpp @@ -570,8 +570,8 @@ std::string GCodeWriter::set_fan(const GCodeFlavor gcode_flavor, bool gcode_comm case gcfSailfish: gcode << "M127"; break; default: - //B15 //B25 - gcode << "M107\nM106 P2 S0\nM106 P3 S0"; break; + //B15 //B25 //B39 + gcode << "M107\nM106 P2 S0"; break; } if (gcode_comments) gcode << " ; disable fan"; diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index 55e06b5..c5513df 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -487,7 +487,7 @@ static std::vector s_Preset_print_options { //B36 ,"first_layer_travel_speed" //B37 - ,"first_layer_external_perimeter_speed" + ,"first_layer_infill_speed" }; static std::vector s_Preset_filament_options { diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 855548c..a71bd44 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -227,7 +227,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n //B36 || opt_key == "first_layer_travel_speed" //B37 - || opt_key == "first_layer_external_perimeter_speed" + || opt_key == "first_layer_infill_speed" || opt_key == "z_offset") { steps.emplace_back(psWipeTower); steps.emplace_back(psSkirtBrim); diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 477d7f3..3c31e44 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -1384,17 +1384,17 @@ void PrintConfigDef::init_fff_params() def->aliases = {"travel_feed_rate"}; def->min = 1; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionFloat(130)); + def->set_default_value(new ConfigOptionFloat(50)); //B37 - def = this->add("first_layer_external_perimeter_speed", coFloat); - def->label = L("First layer external perimeters"); - def->tooltip = L("Speed for external perimeters of the first layer (jumps between distant extrusion points)."); + def = this->add("first_layer_infill_speed", coFloat); + def->label = L("First layer infill"); + def->tooltip = L("Speed for infill of the first layer (jumps between distant extrusion points)."); def->sidetext = L("mm/s"); - def->aliases = {"external_perimeter_speed"}; + def->aliases = {"infill_speed"}; def->min = 1; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionFloat(130)); + def->set_default_value(new ConfigOptionFloat(50)); def = this->add("first_layer_speed_over_raft", coFloatOrPercent); diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index efc1c7b..2178fcc 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -735,7 +735,7 @@ PRINT_CONFIG_CLASS_DEFINE( //B36 ((ConfigOptionFloat, first_layer_travel_speed)) //B37 - ((ConfigOptionFloat, first_layer_external_perimeter_speed)) + ((ConfigOptionFloat, first_layer_infill_speed)) ((ConfigOptionFloat, travel_speed_z)) ((ConfigOptionBool, use_firmware_retraction)) diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index ac75760..ab492d4 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1573,11 +1573,12 @@ void TabPrint::build() optgroup = page->new_optgroup(L("Modifiers")); optgroup->append_single_option_line("first_layer_speed"); - optgroup->append_single_option_line("first_layer_speed_over_raft"); //B36 optgroup->append_single_option_line("first_layer_travel_speed"); //B37 - optgroup->append_single_option_line("first_layer_external_perimeter_speed"); + optgroup->append_single_option_line("first_layer_infill_speed"); + + optgroup->append_single_option_line("first_layer_speed_over_raft"); optgroup = page->new_optgroup(L("Acceleration control (advanced)")); optgroup->append_single_option_line("external_perimeter_acceleration");