mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-12 23:19:01 +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)
|
||||
speed = m_volumetric_speed / path_attr.mm3_per_mm;
|
||||
if (this->on_first_layer())
|
||||
speed = m_config.get_abs_value("first_layer_speed", speed);
|
||||
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);
|
||||
}
|
||||
}
|
||||
else if (this->object_layer_over_raft())
|
||||
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",
|
||||
"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",
|
||||
"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",
|
||||
"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",
|
||||
|
@ -1630,6 +1630,18 @@ void PrintConfigDef::init_fff_params()
|
||||
def->mode = comAdvanced;
|
||||
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->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 "
|
||||
|
@ -937,6 +937,7 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE(
|
||||
((ConfigOptionFloatOrPercent, first_layer_extrusion_width))
|
||||
((ConfigOptionFloatOrPercent, first_layer_height))
|
||||
((ConfigOptionFloatOrPercent, first_layer_speed))
|
||||
((ConfigOptionFloatOrPercent, first_layer_infill_speed))
|
||||
((ConfigOptionInts, first_layer_temperature))
|
||||
((ConfigOptionIntsNullable, idle_temperature))
|
||||
((ConfigOptionInts, full_fan_speed_layer))
|
||||
|
@ -920,6 +920,7 @@ bool PrintObject::invalidate_state_by_config_options(
|
||||
|| opt_key == "external_perimeter_speed"
|
||||
|| opt_key == "small_perimeter_speed"
|
||||
|| opt_key == "solid_infill_speed"
|
||||
|| opt_key == "first_layer_infill_speed"
|
||||
|| opt_key == "top_solid_infill_speed") {
|
||||
invalidated |= m_print->invalidate_step(psGCodeExport);
|
||||
} else if (
|
||||
|
@ -1602,6 +1602,7 @@ void TabPrint::build()
|
||||
|
||||
optgroup = page->new_optgroup(L("Modifiers"));
|
||||
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 = page->new_optgroup(L("Acceleration control (advanced)"));
|
||||
|
Loading…
x
Reference in New Issue
Block a user