added min and max_layer_height options to extruder to be used as limits for adaptive layer heights

This commit is contained in:
florens 2014-08-14 16:36:35 +02:00
parent cdd7469c58
commit 078f3af9c2
4 changed files with 28 additions and 1 deletions

View File

@ -1013,7 +1013,7 @@ sub build {
$self->_build_extruder_pages;
}
sub _extruder_options { qw(nozzle_diameter extruder_offset retract_length retract_lift retract_speed retract_restart_extra retract_before_travel wipe
sub _extruder_options { qw(nozzle_diameter min_layer_height max_layer_height extruder_offset retract_length retract_lift retract_speed retract_restart_extra retract_before_travel wipe
retract_layer_change retract_length_toolchange retract_restart_extra_toolchange) }
sub _build_extruder_pages {
@ -1042,6 +1042,11 @@ sub _build_extruder_pages {
my $optgroup = $page->new_optgroup('Size');
$optgroup->append_single_option_line('nozzle_diameter', $extruder_idx);
}
{
my $optgroup = $page->new_optgroup('Limits');
$optgroup->append_single_option_line($_, $extruder_idx)
for qw(min_layer_height max_layer_height);
}
{
my $optgroup = $page->new_optgroup('Position (for multi-extruder printers)');
$optgroup->append_single_option_line('extruder_offset', $extruder_idx);

View File

@ -461,6 +461,12 @@ PrintConfigDef::build_def() {
Options["max_fan_speed"].min = 0;
Options["max_fan_speed"].max = 100;
Options["max_layer_height"].type = coFloats;
Options["max_layer_height"].label = "max";
Options["max_layer_height"].tooltip = "This is the highest printable layer height for this extruder and limits the resolution for adaptive slicing. Typical values are slightly smaller than nozzle_diameter.";
Options["max_layer_height"].sidetext = "mm";
Options["max_layer_height"].cli = "max-layer-height=f@";
Options["min_fan_speed"].type = coInt;
Options["min_fan_speed"].label = "Min";
Options["min_fan_speed"].tooltip = "This setting represents the minimum PWM your fan needs to work.";
@ -469,6 +475,12 @@ PrintConfigDef::build_def() {
Options["min_fan_speed"].min = 0;
Options["min_fan_speed"].max = 100;
Options["min_layer_height"].type = coFloats;
Options["min_layer_height"].label = "min";
Options["min_layer_height"].tooltip = "TThis is the lowest printable layer height for this extruder and limits the resolution for adaptive slicing. Typical values are 0.1 or 0.05.";
Options["min_layer_height"].sidetext = "mm";
Options["min_layer_height"].cli = "min-layer-height=f@";
Options["min_print_speed"].type = coInt;
Options["min_print_speed"].label = "Min print speed";
Options["min_print_speed"].tooltip = "Slic3r will not scale speed down below this speed.";

View File

@ -348,7 +348,9 @@ class PrintConfig : public virtual StaticPrintConfig
ConfigOptionBool infill_first;
ConfigOptionString layer_gcode;
ConfigOptionInt max_fan_speed;
ConfigOptionFloats max_layer_height;
ConfigOptionInt min_fan_speed;
ConfigOptionFloats min_layer_height;
ConfigOptionInt min_print_speed;
ConfigOptionFloat min_skirt_length;
ConfigOptionString notes;
@ -427,7 +429,11 @@ class PrintConfig : public virtual StaticPrintConfig
this->infill_first.value = false;
this->layer_gcode.value = "";
this->max_fan_speed.value = 100;
this->max_layer_height.values.resize(1);
this->max_layer_height.values[0] = 0.3;
this->min_fan_speed.value = 35;
this->min_layer_height.values.resize(1);
this->min_layer_height.values[0] = 0.1;
this->min_print_speed.value = 10;
this->min_skirt_length.value = 0;
this->notes.value = "";
@ -508,7 +514,9 @@ class PrintConfig : public virtual StaticPrintConfig
if (opt_key == "infill_first") return &this->infill_first;
if (opt_key == "layer_gcode") return &this->layer_gcode;
if (opt_key == "max_fan_speed") return &this->max_fan_speed;
if (opt_key == "max_layer_height") return &this->max_layer_height;
if (opt_key == "min_fan_speed") return &this->min_fan_speed;
if (opt_key == "min_layer_height") return &this->min_layer_height;
if (opt_key == "min_print_speed") return &this->min_print_speed;
if (opt_key == "min_skirt_length") return &this->min_skirt_length;
if (opt_key == "notes") return &this->notes;

View File

@ -143,6 +143,8 @@ PrintObject::invalidate_state_by_config_options(const std::vector<t_config_optio
steps.insert(posPerimeters);
} else if (*opt_key == "resolution"
|| *opt_key == "layer_height"
|| *opt_key == "min_layer_height"
|| *opt_key == "max_layer_height"
|| *opt_key == "first_layer_height"
|| *opt_key == "xy_size_compensation"
|| *opt_key == "adaptive_slicing"