Configurable volumetric extrusion rate slope.

This commit is contained in:
bubnikv 2016-09-13 15:02:28 +02:00
parent 620c6c7378
commit 15c1edd552
6 changed files with 39 additions and 9 deletions

View file

@ -78,11 +78,13 @@ use Unicode::Normalize;
# Scaling between the float and integer coordinates.
# Floats are in mm.
use constant SCALING_FACTOR => 0.000001;
use constant LOOP_CLIPPING_LENGTH_OVER_NOZZLE_DIAMETER => 0.15;
# Following constants are used by the infill algorithms and integration tests.
# Resolution to simplify perimeters to. These constants are now used in C++ code only. Better to publish them to Perl from the C++ code.
# use constant RESOLUTION => 0.0125;
# use constant SCALED_RESOLUTION => RESOLUTION / SCALING_FACTOR;
use constant LOOP_CLIPPING_LENGTH_OVER_NOZZLE_DIAMETER => 0.15;
# use constant INFILL_OVERLAP_OVER_SPACING => 0.3;
use constant INFILL_OVERLAP_OVER_SPACING => 0.3;
# Keep track of threads we created. Each thread keeps its own list of threads it spwaned.
my @my_threads = ();

View file

@ -464,7 +464,8 @@ sub build {
infill_every_layers infill_only_where_needed
solid_infill_every_layers fill_angle solid_infill_below_area
only_retract_when_crossing_perimeters infill_first
max_print_speed max_volumetric_speed
max_print_speed max_volumetric_speed
max_volumetric_extrusion_rate_slope_positive max_volumetric_extrusion_rate_slope_negative
perimeter_speed small_perimeter_speed external_perimeter_speed infill_speed
solid_infill_speed top_solid_infill_speed support_material_speed
support_material_interface_speed bridge_speed gap_fill_speed
@ -627,6 +628,8 @@ sub build {
my $optgroup = $page->new_optgroup('Autospeed (advanced)');
$optgroup->append_single_option_line('max_print_speed');
$optgroup->append_single_option_line('max_volumetric_speed');
$optgroup->append_single_option_line('max_volumetric_extrusion_rate_slope_positive');
$optgroup->append_single_option_line('max_volumetric_extrusion_rate_slope_negative');
}
}

View file

@ -117,7 +117,8 @@ sub BUILD {
if $self->config->pressure_advance > 0;
$self->_pressure_equalizer(Slic3r::GCode::PressureEqualizer->new($self->config))
if defined($ENV{"SLIC3R_PRESSURE_EQUALIZER"}) && $ENV{'SLIC3R_PRESSURE_EQUALIZER'} == 1;
if ($self->config->max_volumetric_extrusion_rate_slope_positive > 0 ||
$self->config->max_volumetric_extrusion_rate_slope_negative > 0);
$self->_gcodegen->set_enable_extrusion_role_markers(defined $self->_pressure_equalizer);
}