Add external_perimeter_fan_speed setting (part1)

Adds a new setting and plumbs through the UI to independently control
the fan speed for external perimeters. Filed as issue #2776.

merill note: i only picked the setting definition, as the other part will need an almost compete re-write
This commit is contained in:
Justin Schuh 2019-08-18 18:12:40 -07:00 committed by supermerill
parent c68e94daf2
commit 3f6a9f2ebf
4 changed files with 16 additions and 0 deletions

View File

@ -88,6 +88,7 @@ bool Print::invalidate_state_by_config_options(const std::vector<t_config_option
"end_gcode",
"end_filament_gcode",
"external_perimeter_cut_corners",
"external_perimeter_fan_speed",
"extrusion_axis",
"extruder_clearance_height",
"extruder_clearance_radius",

View File

@ -723,6 +723,18 @@ void PrintConfigDef::init_fff_params()
def->mode = comExpert;
def->set_default_value(new ConfigOptionPercent(0));
def = this->add("external_perimeter_fan_speed", coInts);
def->label = L("External perimeter fan speed");
def->tooltip = L("When set to a non-zero value this fan speed is used only for external perimeters (visible ones). "
"When set to zero the normal fan speed is used on external perimeters. "
"External perimeters can benefit from higher fan speed to improve surface finish, "
"while internal perimeters, infill, etc. benefit from lower fan speed to improve layer adhesion.");
def->sidetext = L("%");
def->min = 0;
def->max = 100;
def->mode = comExpert;
def->set_default_value(new ConfigOptionInts { 0 });
def = this->add("external_perimeter_overlap", coPercent);
def->label = L("external periemter overlap");
def->full_label = L("Ext. peri. overlap");

View File

@ -1034,6 +1034,7 @@ public:
ConfigOptionFloat default_acceleration;
ConfigOptionInts disable_fan_first_layers;
ConfigOptionFloat duplicate_distance;
ConfigOptionInts external_perimeter_fan_speed;
ConfigOptionFloat extruder_clearance_height;
ConfigOptionFloat extruder_clearance_radius;
ConfigOptionStrings extruder_colour;
@ -1121,6 +1122,7 @@ protected:
OPT_PTR(default_acceleration);
OPT_PTR(disable_fan_first_layers);
OPT_PTR(duplicate_distance);
OPT_PTR(external_perimeter_fan_speed);
OPT_PTR(extruder_clearance_height);
OPT_PTR(extruder_clearance_radius);
OPT_PTR(extruder_colour);

View File

@ -564,6 +564,7 @@ const std::vector<std::string>& Preset::filament_options()
, "disable_fan_first_layers"
, "fan_below_layer_time", "slowdown_below_layer_time", "min_print_speed",
"start_filament_gcode", "end_filament_gcode",
"external_perimeter_fan_speed",
// Retract overrides
"filament_retract_length", "filament_retract_lift", "filament_retract_lift_above", "filament_retract_lift_below", "filament_retract_speed", "filament_deretract_speed", "filament_retract_restart_extra", "filament_retract_before_travel",
"filament_retract_layer_change", "filament_wipe", "filament_wipe_extra_perimeter", "filament_retract_before_wipe",