mirror of
https://github.com/QIDITECH/QIDISlicer.git
synced 2026-02-03 01:18:44 +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));
|
file.write(m_writer.set_fan(0));
|
||||||
|
//B39
|
||||||
|
file.write("M106 P3 S0\n");
|
||||||
// adds tag for processor
|
// 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());
|
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;
|
speed = m_volumetric_speed / path.mm3_per_mm;
|
||||||
//B37
|
//B37
|
||||||
if (this->on_first_layer())
|
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())
|
else if (this->object_layer_over_raft())
|
||||||
speed = m_config.get_abs_value("first_layer_speed_over_raft", speed);
|
speed = m_config.get_abs_value("first_layer_speed_over_raft", speed);
|
||||||
if (m_config.max_volumetric_speed.value > 0) {
|
if (m_config.max_volumetric_speed.value > 0) {
|
||||||
|
|||||||
@@ -757,6 +757,7 @@ std::string CoolingBuffer::apply_layer_cooldown(
|
|||||||
//B25
|
//B25
|
||||||
int enable_volume_fan = EXTRUDER_CONFIG(enable_volume_fan);
|
int enable_volume_fan = EXTRUDER_CONFIG(enable_volume_fan);
|
||||||
int fan_speed_new = EXTRUDER_CONFIG(fan_always_on) ? min_fan_speed : 0;
|
int fan_speed_new = EXTRUDER_CONFIG(fan_always_on) ? min_fan_speed : 0;
|
||||||
|
|
||||||
//B26
|
//B26
|
||||||
bool enable_advance_pressure = EXTRUDER_CONFIG(enable_advance_pressure);
|
bool enable_advance_pressure = EXTRUDER_CONFIG(enable_advance_pressure);
|
||||||
float advance_pressure = float(EXTRUDER_CONFIG(advance_pressure));
|
float advance_pressure = float(EXTRUDER_CONFIG(advance_pressure));
|
||||||
@@ -809,14 +810,14 @@ std::string CoolingBuffer::apply_layer_cooldown(
|
|||||||
fan_speed_new = 0;
|
fan_speed_new = 0;
|
||||||
custom_fan_speed_limits.second = 0;
|
custom_fan_speed_limits.second = 0;
|
||||||
}
|
}
|
||||||
//B15
|
//B15 //B39
|
||||||
if (int(layer_id) >= disable_fan_first_layers && fan_speed_new != m_fan_speed) {
|
if (int(layer_id) == disable_rapid_cooling_fan_first_layers && enable_auxiliary_fan!=0) {
|
||||||
std::ostringstream fan_gcode;
|
std::ostringstream fan_gcode;
|
||||||
fan_gcode << "M106 P2 S" << 255.0 * enable_auxiliary_fan / 100.0 << "\n";
|
fan_gcode << "M106 P2 S" << 255.0 * enable_auxiliary_fan / 100.0 << "\n";
|
||||||
new_gcode += fan_gcode.str();
|
new_gcode += fan_gcode.str();
|
||||||
}
|
}
|
||||||
//B25 //B39
|
//B25
|
||||||
if (int(layer_id) == disable_rapid_cooling_fan_first_layers && enable_volume_fan != 0 ) {
|
if (int(layer_id) == disable_fan_first_layers) {
|
||||||
std::ostringstream fan_gcode;
|
std::ostringstream fan_gcode;
|
||||||
fan_gcode << "M106 P3 S" << 255.0 * enable_volume_fan / 100.0 << "\n";
|
fan_gcode << "M106 P3 S" << 255.0 * enable_volume_fan / 100.0 << "\n";
|
||||||
new_gcode += fan_gcode.str();
|
new_gcode += fan_gcode.str();
|
||||||
|
|||||||
@@ -570,8 +570,8 @@ std::string GCodeWriter::set_fan(const GCodeFlavor gcode_flavor, bool gcode_comm
|
|||||||
case gcfSailfish:
|
case gcfSailfish:
|
||||||
gcode << "M127"; break;
|
gcode << "M127"; break;
|
||||||
default:
|
default:
|
||||||
//B15 //B25
|
//B15 //B25 //B39
|
||||||
gcode << "M107\nM106 P2 S0\nM106 P3 S0"; break;
|
gcode << "M107\nM106 P2 S0"; break;
|
||||||
}
|
}
|
||||||
if (gcode_comments)
|
if (gcode_comments)
|
||||||
gcode << " ; disable fan";
|
gcode << " ; disable fan";
|
||||||
|
|||||||
@@ -487,7 +487,7 @@ static std::vector<std::string> s_Preset_print_options {
|
|||||||
//B36
|
//B36
|
||||||
,"first_layer_travel_speed"
|
,"first_layer_travel_speed"
|
||||||
//B37
|
//B37
|
||||||
,"first_layer_external_perimeter_speed"
|
,"first_layer_infill_speed"
|
||||||
};
|
};
|
||||||
|
|
||||||
static std::vector<std::string> s_Preset_filament_options {
|
static std::vector<std::string> s_Preset_filament_options {
|
||||||
|
|||||||
@@ -227,7 +227,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
|
|||||||
//B36
|
//B36
|
||||||
|| opt_key == "first_layer_travel_speed"
|
|| opt_key == "first_layer_travel_speed"
|
||||||
//B37
|
//B37
|
||||||
|| opt_key == "first_layer_external_perimeter_speed"
|
|| opt_key == "first_layer_infill_speed"
|
||||||
|| opt_key == "z_offset") {
|
|| opt_key == "z_offset") {
|
||||||
steps.emplace_back(psWipeTower);
|
steps.emplace_back(psWipeTower);
|
||||||
steps.emplace_back(psSkirtBrim);
|
steps.emplace_back(psSkirtBrim);
|
||||||
|
|||||||
@@ -1384,17 +1384,17 @@ void PrintConfigDef::init_fff_params()
|
|||||||
def->aliases = {"travel_feed_rate"};
|
def->aliases = {"travel_feed_rate"};
|
||||||
def->min = 1;
|
def->min = 1;
|
||||||
def->mode = comAdvanced;
|
def->mode = comAdvanced;
|
||||||
def->set_default_value(new ConfigOptionFloat(130));
|
def->set_default_value(new ConfigOptionFloat(50));
|
||||||
|
|
||||||
//B37
|
//B37
|
||||||
def = this->add("first_layer_external_perimeter_speed", coFloat);
|
def = this->add("first_layer_infill_speed", coFloat);
|
||||||
def->label = L("First layer external perimeters");
|
def->label = L("First layer infill");
|
||||||
def->tooltip = L("Speed for external perimeters of the first layer (jumps between distant extrusion points).");
|
def->tooltip = L("Speed for infill of the first layer (jumps between distant extrusion points).");
|
||||||
def->sidetext = L("mm/s");
|
def->sidetext = L("mm/s");
|
||||||
def->aliases = {"external_perimeter_speed"};
|
def->aliases = {"infill_speed"};
|
||||||
def->min = 1;
|
def->min = 1;
|
||||||
def->mode = comAdvanced;
|
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);
|
def = this->add("first_layer_speed_over_raft", coFloatOrPercent);
|
||||||
|
|||||||
@@ -735,7 +735,7 @@ PRINT_CONFIG_CLASS_DEFINE(
|
|||||||
//B36
|
//B36
|
||||||
((ConfigOptionFloat, first_layer_travel_speed))
|
((ConfigOptionFloat, first_layer_travel_speed))
|
||||||
//B37
|
//B37
|
||||||
((ConfigOptionFloat, first_layer_external_perimeter_speed))
|
((ConfigOptionFloat, first_layer_infill_speed))
|
||||||
|
|
||||||
((ConfigOptionFloat, travel_speed_z))
|
((ConfigOptionFloat, travel_speed_z))
|
||||||
((ConfigOptionBool, use_firmware_retraction))
|
((ConfigOptionBool, use_firmware_retraction))
|
||||||
|
|||||||
@@ -1573,11 +1573,12 @@ void TabPrint::build()
|
|||||||
|
|
||||||
optgroup = page->new_optgroup(L("Modifiers"));
|
optgroup = page->new_optgroup(L("Modifiers"));
|
||||||
optgroup->append_single_option_line("first_layer_speed");
|
optgroup->append_single_option_line("first_layer_speed");
|
||||||
optgroup->append_single_option_line("first_layer_speed_over_raft");
|
|
||||||
//B36
|
//B36
|
||||||
optgroup->append_single_option_line("first_layer_travel_speed");
|
optgroup->append_single_option_line("first_layer_travel_speed");
|
||||||
//B37
|
//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 = page->new_optgroup(L("Acceleration control (advanced)"));
|
||||||
optgroup->append_single_option_line("external_perimeter_acceleration");
|
optgroup->append_single_option_line("external_perimeter_acceleration");
|
||||||
|
|||||||
Reference in New Issue
Block a user