mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-13 21:15:56 +08:00
SPE-2542: Add first_layer_infill_speed
This commit is contained in:
parent
5430596a7e
commit
9490ae242f
@ -3408,8 +3408,14 @@ std::string GCodeGenerator::_extrude(
|
|||||||
}
|
}
|
||||||
if (m_volumetric_speed != 0. && speed == 0)
|
if (m_volumetric_speed != 0. && speed == 0)
|
||||||
speed = m_volumetric_speed / path_attr.mm3_per_mm;
|
speed = m_volumetric_speed / path_attr.mm3_per_mm;
|
||||||
if (this->on_first_layer())
|
if (this->on_first_layer()) {
|
||||||
|
const double first_layer_infill_speed{m_config.get_abs_value("first_layer_infill_speed", speed)};
|
||||||
|
if (path_attr.role == ExtrusionRole::SolidInfill && first_layer_infill_speed > 0) {
|
||||||
|
speed = first_layer_infill_speed;
|
||||||
|
} else {
|
||||||
speed = m_config.get_abs_value("first_layer_speed", speed);
|
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);
|
||||||
|
|
||||||
|
@ -485,7 +485,7 @@ static std::vector<std::string> s_Preset_print_options {
|
|||||||
"perimeter_speed", "small_perimeter_speed", "external_perimeter_speed", "infill_speed", "solid_infill_speed",
|
"perimeter_speed", "small_perimeter_speed", "external_perimeter_speed", "infill_speed", "solid_infill_speed",
|
||||||
"enable_dynamic_overhang_speeds", "overhang_speed_0", "overhang_speed_1", "overhang_speed_2", "overhang_speed_3",
|
"enable_dynamic_overhang_speeds", "overhang_speed_0", "overhang_speed_1", "overhang_speed_2", "overhang_speed_3",
|
||||||
"top_solid_infill_speed", "support_material_speed", "support_material_xy_spacing", "support_material_interface_speed",
|
"top_solid_infill_speed", "support_material_speed", "support_material_xy_spacing", "support_material_interface_speed",
|
||||||
"bridge_speed", "over_bridge_speed", "gap_fill_speed", "gap_fill_enabled", "travel_speed", "travel_speed_z", "first_layer_speed", "first_layer_speed_over_raft", "perimeter_acceleration", "infill_acceleration",
|
"bridge_speed", "over_bridge_speed", "gap_fill_speed", "gap_fill_enabled", "travel_speed", "travel_speed_z", "first_layer_speed", "first_layer_infill_speed", "first_layer_speed_over_raft", "perimeter_acceleration", "infill_acceleration",
|
||||||
"external_perimeter_acceleration", "top_solid_infill_acceleration", "solid_infill_acceleration", "travel_acceleration", "wipe_tower_acceleration",
|
"external_perimeter_acceleration", "top_solid_infill_acceleration", "solid_infill_acceleration", "travel_acceleration", "wipe_tower_acceleration",
|
||||||
"bridge_acceleration", "first_layer_acceleration", "first_layer_acceleration_over_raft", "default_acceleration", "skirts", "skirt_distance", "skirt_height", "draft_shield",
|
"bridge_acceleration", "first_layer_acceleration", "first_layer_acceleration_over_raft", "default_acceleration", "skirts", "skirt_distance", "skirt_height", "draft_shield",
|
||||||
"min_skirt_length", "brim_width", "brim_separation", "brim_type", "support_material", "support_material_auto", "support_material_threshold", "support_material_enforce_layers",
|
"min_skirt_length", "brim_width", "brim_separation", "brim_type", "support_material", "support_material_auto", "support_material_threshold", "support_material_enforce_layers",
|
||||||
|
@ -1630,6 +1630,18 @@ void PrintConfigDef::init_fff_params()
|
|||||||
def->mode = comAdvanced;
|
def->mode = comAdvanced;
|
||||||
def->set_default_value(new ConfigOptionFloatOrPercent(30, false));
|
def->set_default_value(new ConfigOptionFloatOrPercent(30, false));
|
||||||
|
|
||||||
|
def = this->add("first_layer_infill_speed", coFloatOrPercent);
|
||||||
|
def->label = L("First layer solid infill speed");
|
||||||
|
def->tooltip = L("If expressed as absolute value in mm/s, this speed will be applied to the solid infill print moves "
|
||||||
|
"of the first layer. If expressed as a percentage "
|
||||||
|
"(for example: 40%) it will be a percantage of the solid infill speed "
|
||||||
|
"(for example: 40% of the solid infill speed). "
|
||||||
|
"Note that 0 means that the \"First layer speed\" value will be used.");
|
||||||
|
def->sidetext = L("mm/s or %");
|
||||||
|
def->min = 0;
|
||||||
|
def->mode = comAdvanced;
|
||||||
|
def->set_default_value(new ConfigOptionFloatOrPercent(0, false));
|
||||||
|
|
||||||
def = this->add("first_layer_speed_over_raft", coFloatOrPercent);
|
def = this->add("first_layer_speed_over_raft", coFloatOrPercent);
|
||||||
def->label = L("Speed of object first layer over raft interface");
|
def->label = L("Speed of object first layer over raft interface");
|
||||||
def->tooltip = L("If expressed as absolute value in mm/s, this speed will be applied to all the print moves "
|
def->tooltip = L("If expressed as absolute value in mm/s, this speed will be applied to all the print moves "
|
||||||
|
@ -937,6 +937,7 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE(
|
|||||||
((ConfigOptionFloatOrPercent, first_layer_extrusion_width))
|
((ConfigOptionFloatOrPercent, first_layer_extrusion_width))
|
||||||
((ConfigOptionFloatOrPercent, first_layer_height))
|
((ConfigOptionFloatOrPercent, first_layer_height))
|
||||||
((ConfigOptionFloatOrPercent, first_layer_speed))
|
((ConfigOptionFloatOrPercent, first_layer_speed))
|
||||||
|
((ConfigOptionFloatOrPercent, first_layer_infill_speed))
|
||||||
((ConfigOptionInts, first_layer_temperature))
|
((ConfigOptionInts, first_layer_temperature))
|
||||||
((ConfigOptionIntsNullable, idle_temperature))
|
((ConfigOptionIntsNullable, idle_temperature))
|
||||||
((ConfigOptionInts, full_fan_speed_layer))
|
((ConfigOptionInts, full_fan_speed_layer))
|
||||||
|
@ -920,6 +920,7 @@ bool PrintObject::invalidate_state_by_config_options(
|
|||||||
|| opt_key == "external_perimeter_speed"
|
|| opt_key == "external_perimeter_speed"
|
||||||
|| opt_key == "small_perimeter_speed"
|
|| opt_key == "small_perimeter_speed"
|
||||||
|| opt_key == "solid_infill_speed"
|
|| opt_key == "solid_infill_speed"
|
||||||
|
|| opt_key == "first_layer_infill_speed"
|
||||||
|| opt_key == "top_solid_infill_speed") {
|
|| opt_key == "top_solid_infill_speed") {
|
||||||
invalidated |= m_print->invalidate_step(psGCodeExport);
|
invalidated |= m_print->invalidate_step(psGCodeExport);
|
||||||
} else if (
|
} else if (
|
||||||
|
@ -1602,6 +1602,7 @@ 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_infill_speed");
|
||||||
optgroup->append_single_option_line("first_layer_speed_over_raft");
|
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)"));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user