make fixed overlap levels for dynamic overhang speed

This commit is contained in:
Pavel Mikus 2023-02-22 14:57:22 +01:00 committed by Pavel Mikuš
parent d4055cd2c5
commit a496444b7e
9 changed files with 89 additions and 64 deletions
src/libslic3r

View file

@ -534,36 +534,63 @@ void PrintConfigDef::init_fff_params()
def = this->add("enable_dynamic_overhang_speeds", coBool);
def->label = L("Enable dynamic overhang speeds");
def->category = L("Speed");
def->tooltip = L("This setting enables dynamic speed control on overhangs.");
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionBool(false));
def = this->add("overhang_overlap_levels", coPercents);
def->full_label = L("Overhang overlap levels");
def->category = L("Speed");
def->tooltip = L("Controls overhang levels, expressed as a percentage of overlap of the extrusion with the previous layer - "
def->tooltip = L("This setting enables dynamic speed control on overhangs."
"Controls overhang levels, expressed as a percentage of overlap of the extrusion with the previous layer - "
"100% represents full overlap - no overhang is present, while 0% represents full overhang (floating extrusion). "
"Each overhang level then corresponds with the overhang speed below. Speeds for overhang levels in between are "
"calculated via linear interpolation."
"If you set multiple different speeds for the same overhang level, only the largest speed is used. "
);
def->sidetext = L("%");
def->min = 0;
def->max = 100;
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionPercents({60, 40, 20, 0}));
def = this->add("dynamic_overhang_speeds", coFloatsOrPercents);
def->full_label = L("Dynamic speed on overhangs");
def->category = L("Speed");
def->tooltip = L("This setting controls the speed on the overhang with the overlap value set above. "
"This setting controls the speed on the overhang with the overlap value set above. "
"The speed of the extrusion is calculated as a linear interpolation of the speeds for higher and lower overlap. "
"If set as percentage, the speed is calculated over the external perimeter speed."
);
);
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionBool(false));
def = this->add("overhang_speed_0", coFloatOrPercent);
def->full_label = L("speed for 0\% overlap (bridge)");
def->category = L("Speed");
def->tooltip = L("Controls the speed for the corresponding extrusion overlap value.");
def->sidetext = L("mm/s or %");
def->min = 0;
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionFloatsOrPercents({{25, false}, {20, false}, {15, false}, {15, false}}));
def->set_default_value(new ConfigOptionFloatOrPercent(15, false));
def = this->add("overhang_speed_1", coFloatOrPercent);
def->full_label = L("speed for 20\% overlap");
def->category = L("Speed");
def->tooltip = L("Controls the speed for the corresponding extrusion overlap value.");
def->sidetext = L("mm/s or %");
def->min = 0;
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionFloatOrPercent(20, false));
def = this->add("overhang_speed_2", coFloatOrPercent);
def->full_label = L("speed for 40\% overlap");
def->category = L("Speed");
def->tooltip = L("Controls the speed for the corresponding extrusion overlap value.");
def->sidetext = L("mm/s or %");
def->min = 0;
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionFloatOrPercent(25, false));
def = this->add("overhang_speed_3", coFloatOrPercent);
def->full_label = L("speed for 60\% overlap");
def->category = L("Speed");
def->tooltip = L("Controls the speed for the corresponding extrusion overlap value.");
def->sidetext = L("mm/s or %");
def->min = 0;
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionFloatOrPercent(25, false));
def = this->add("overhang_speed_4", coFloatOrPercent);
def->full_label = L("speed for 80\% overlap");
def->category = L("Speed");
def->tooltip = L("Controls the speed for the corresponding extrusion overlap value.");
def->sidetext = L("mm/s or %");
def->min = 0;
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionFloatOrPercent(25, false));
def = this->add("brim_width", coFloat);
def->label = L("Brim width");