mirror of
https://github.com/QIDITECH/QIDISlicer.git
synced 2026-01-31 07:58:43 +03:00
update first layer speed and rapid fan speed
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user