Add minimum flow rates for spiral vase transitsions (#8333)

Add minimum flow ratios for spiral vase transitsions

Currently when starting the spiral vase the extrusion rate is ramped
from 0 to 100% on the first layer and from 100% to 0% on the last layer.
In some cases it can lead to underextrusion at the beginning and end of
the spiral.

This change adds minimum flow ratio options for the beginning and the end
of the vase. This means that instead of ramping from 0% to 100% it
instead ramps from for example 20% to 100%.

This issue has been reported in SuperSlicer
https://github.com/supermerill/SuperSlicer/issues/4195
This commit is contained in:
Kaarel Pärtel 2025-02-17 02:55:23 +02:00 committed by GitHub
parent a4289139b0
commit 830c1ac928
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 41 additions and 7 deletions

View file

@ -4421,6 +4421,26 @@ void PrintConfigDef::init_fff_params()
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionFloatOrPercent(200, true));
def = this->add("spiral_starting_flow_ratio", coFloat);
def->label = "Spiral starting flow ratio";
def->tooltip = L("Sets the starting flow ratio while transitioning from the last bottom layer to the spiral. "
"Normally the spiral transition scales the flow ratio from 0% to 100% during the first loop "
"which can in some cases lead to under extrusion at the start of the spiral.");
def->min = 0;
def->max = 1;
def->set_default_value(new ConfigOptionFloat(0));
def->mode = comAdvanced;
def = this->add("spiral_finishing_flow_ratio", coFloat);
def->label = "Spiral finishing flow ratio";
def->tooltip = L("Sets the finishing flow ratio while ending the spiral. "
"Normally the spiral transition scales the flow ratio from 100% to 0% during the last loop "
"which can in some cases lead to under extrusion at the end of the spiral.");
def->min = 0;
def->max = 1;
def->set_default_value(new ConfigOptionFloat(0));
def->mode = comAdvanced;
def = this->add("timelapse_type", coEnum);
def->label = L("Timelapse");
def->tooltip = L("If smooth or traditional mode is selected, a timelapse video will be generated for each print. "