Factor out some hard-coded settings

This commit is contained in:
Alessandro Ranellucci 2012-10-29 00:23:33 +01:00
parent 1ecadc10fb
commit f2389682b6
5 changed files with 6 additions and 4 deletions

View File

@ -60,6 +60,8 @@ use constant SCALING_FACTOR => 0.000001;
use constant RESOLUTION => 0.01; use constant RESOLUTION => 0.01;
use constant OVERLAP_FACTOR => 0.5; use constant OVERLAP_FACTOR => 0.5;
use constant SMALL_PERIMETER_LENGTH => (6.5 / SCALING_FACTOR) * 2 * PI; use constant SMALL_PERIMETER_LENGTH => (6.5 / SCALING_FACTOR) * 2 * PI;
use constant LOOP_CLIPPING_LENGTH_OVER_WIDTH => 0.15;
use constant PERIMETER_INFILL_OVERLAP_OVER_WIDTH => 0.4;
# The following variables hold the objects used throughout the slicing # The following variables hold the objects used throughout the slicing
# process. They should belong to the Print object, but we are keeping # process. They should belong to the Print object, but we are keeping

View File

@ -63,7 +63,7 @@ sub fill_surface {
my $path = $loop->split_at_index($index); my $path = $loop->split_at_index($index);
# clip the path to avoid the extruder to get exactly on the first point of the loop # clip the path to avoid the extruder to get exactly on the first point of the loop
$path->clip_end(($self->layer ? $self->layer->flow->scaled_width : $Slic3r::flow->scaled_width) * 0.15); $path->clip_end(($self->layer ? $self->layer->flow->scaled_width : $Slic3r::flow->scaled_width) * &Slic3r::LOOP_CLIPPING_LENGTH_OVER_WIDTH);
push @paths, $path->points if @{$path->points}; push @paths, $path->points if @{$path->points};
} }

View File

@ -21,7 +21,7 @@ sub fill_surface {
# infill math # infill math
my $min_spacing = scale $params{flow_spacing}; my $min_spacing = scale $params{flow_spacing};
my $distance = $min_spacing / $params{density}; my $distance = $min_spacing / $params{density};
my $overlap_distance = ($self->layer ? $self->layer->flow->scaled_width : $Slic3r::flow->scaled_width) * 0.4; my $overlap_distance = ($self->layer ? $self->layer->flow->scaled_width : $Slic3r::flow->scaled_width) * &Slic3r::PERIMETER_INFILL_OVERLAP_OVER_WIDTH;
my $cache_id = sprintf "d%s_s%s_a%s", my $cache_id = sprintf "d%s_s%s_a%s",
$params{density}, $params{flow_spacing}, $rotate_vector->[0][0]; $params{density}, $params{flow_spacing}, $rotate_vector->[0][0];

View File

@ -31,7 +31,7 @@ sub fill_surface {
$flow_spacing = unscale $distance_between_lines; $flow_spacing = unscale $distance_between_lines;
} }
my $overlap_distance = ($self->layer ? $self->layer->flow->scaled_width : $Slic3r::flow->scaled_width) * 0.4; my $overlap_distance = ($self->layer ? $self->layer->flow->scaled_width : $Slic3r::flow->scaled_width) * &Slic3r::PERIMETER_INFILL_OVERLAP_OVER_WIDTH;
my $x = $bounding_box->[X1]; my $x = $bounding_box->[X1];
my $is_line_pattern = $self->isa('Slic3r::Fill::Line'); my $is_line_pattern = $self->isa('Slic3r::Fill::Line');

View File

@ -112,7 +112,7 @@ sub extrude_loop {
# clip the path to avoid the extruder to get exactly on the first point of the loop; # clip the path to avoid the extruder to get exactly on the first point of the loop;
# if polyline was shorter than the clipping distance we'd get a null polyline, so # if polyline was shorter than the clipping distance we'd get a null polyline, so
# we discard it in that case # we discard it in that case
$extrusion_path->clip_end($self->layer ? $self->layer->flow->scaled_width : $Slic3r::flow->scaled_width * 0.15); $extrusion_path->clip_end($self->layer ? $self->layer->flow->scaled_width : $Slic3r::flow->scaled_width * &Slic3r::LOOP_CLIPPING_LENGTH_OVER_WIDTH);
return '' if !@{$extrusion_path->polyline}; return '' if !@{$extrusion_path->polyline};
# extrude along the path # extrude along the path