update first layer speed and rapid fan speed

This commit is contained in:
sunsets
2023-09-22 14:38:07 +08:00
parent 3e70923483
commit 019c6dbb10
8 changed files with 26 additions and 19 deletions

View File

@@ -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) {

View File

@@ -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();

View File

@@ -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";

View File

@@ -487,7 +487,7 @@ static std::vector<std::string> s_Preset_print_options {
//B36
,"first_layer_travel_speed"
//B37
,"first_layer_external_perimeter_speed"
,"first_layer_infill_speed"
};
static std::vector<std::string> s_Preset_filament_options {

View File

@@ -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);

View File

@@ -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);

View File

@@ -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))

View File

@@ -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");