mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-08-08 22:35:15 -06:00
Refactoring: keep height in Flow object and calculate spacing on demand
This commit is contained in:
parent
9bff6ccde7
commit
8ee11b3239
7 changed files with 86 additions and 73 deletions
|
@ -222,7 +222,7 @@ sub make_fill {
|
|||
);
|
||||
next unless @polylines;
|
||||
|
||||
my $mm3_per_mm = $flow->mm3_per_mm($h);
|
||||
my $mm3_per_mm = $flow->mm3_per_mm;
|
||||
|
||||
# save into layer
|
||||
push @fills, my $collection = Slic3r::ExtrusionPath::Collection->new;
|
||||
|
|
|
@ -43,19 +43,19 @@ sub make_perimeters {
|
|||
|
||||
# external perimeters
|
||||
my $ext_perimeter_flow = $self->flow(FLOW_ROLE_EXTERNAL_PERIMETER);
|
||||
my $ext_mm3_per_mm = $ext_perimeter_flow->mm3_per_mm($self->height);
|
||||
my $ext_mm3_per_mm = $ext_perimeter_flow->mm3_per_mm;
|
||||
my $ext_pwidth = $ext_perimeter_flow->scaled_width;
|
||||
my $ext_pspacing = $ext_perimeter_flow->scaled_spacing;
|
||||
|
||||
# other perimeters
|
||||
my $perimeter_flow = $self->flow(FLOW_ROLE_PERIMETER);
|
||||
my $mm3_per_mm = $perimeter_flow->mm3_per_mm($self->height);
|
||||
my $mm3_per_mm = $perimeter_flow->mm3_per_mm;
|
||||
my $pwidth = $perimeter_flow->scaled_width;
|
||||
my $pspacing = $perimeter_flow->scaled_spacing;
|
||||
|
||||
# overhang perimeters
|
||||
my $overhang_flow = $self->region->flow(FLOW_ROLE_PERIMETER, -1, 1, 0, undef, $self->layer->object);
|
||||
my $mm3_per_mm_overhang = $overhang_flow->mm3_per_mm(-1);
|
||||
my $mm3_per_mm_overhang = $overhang_flow->mm3_per_mm;
|
||||
|
||||
# solid infill
|
||||
my $solid_infill_flow = $self->flow(FLOW_ROLE_SOLID_INFILL);
|
||||
|
@ -418,7 +418,7 @@ sub _fill_gaps {
|
|||
my $flow = $self->flow(FLOW_ROLE_SOLID_INFILL, 0, $w);
|
||||
my %path_args = (
|
||||
role => EXTR_ROLE_GAPFILL,
|
||||
mm3_per_mm => $flow->mm3_per_mm($self->height),
|
||||
mm3_per_mm => $flow->mm3_per_mm,
|
||||
width => $flow->width,
|
||||
height => $self->height,
|
||||
);
|
||||
|
|
|
@ -704,7 +704,7 @@ sub make_skirt {
|
|||
bridge_flow_ratio => 0,
|
||||
);
|
||||
my $spacing = $flow->spacing;
|
||||
my $mm3_per_mm = $flow->mm3_per_mm($first_layer_height);
|
||||
my $mm3_per_mm = $flow->mm3_per_mm;
|
||||
|
||||
my @extruders_e_per_mm = ();
|
||||
my $extruder_idx = 0;
|
||||
|
@ -763,7 +763,7 @@ sub make_brim {
|
|||
layer_height => $first_layer_height,
|
||||
bridge_flow_ratio => 0,
|
||||
);
|
||||
my $mm3_per_mm = $flow->mm3_per_mm($first_layer_height);
|
||||
my $mm3_per_mm = $flow->mm3_per_mm;
|
||||
|
||||
my $grow_distance = $flow->scaled_width / 2;
|
||||
my @islands = (); # array of polygons
|
||||
|
|
|
@ -602,7 +602,7 @@ sub generate_toolpaths {
|
|||
);
|
||||
|
||||
# transform loops into ExtrusionPath objects
|
||||
my $mm3_per_mm = $interface_flow->mm3_per_mm($layer->height);
|
||||
my $mm3_per_mm = $interface_flow->mm3_per_mm;
|
||||
@loops = map Slic3r::ExtrusionPath->new(
|
||||
polyline => $_,
|
||||
role => EXTR_ROLE_SUPPORTMATERIAL_INTERFACE,
|
||||
|
@ -649,7 +649,7 @@ sub generate_toolpaths {
|
|||
layer_height => $layer->height,
|
||||
complete => 1,
|
||||
);
|
||||
my $mm3_per_mm = $params->{flow}->mm3_per_mm($layer->height);
|
||||
my $mm3_per_mm = $params->{flow}->mm3_per_mm;
|
||||
|
||||
push @paths, map Slic3r::ExtrusionPath->new(
|
||||
polyline => Slic3r::Polyline->new(@$_),
|
||||
|
@ -684,7 +684,7 @@ sub generate_toolpaths {
|
|||
} else {
|
||||
# draw a perimeter all around support infill
|
||||
# TODO: use brim ordering algorithm
|
||||
my $mm3_per_mm = $flow->mm3_per_mm($layer->height);
|
||||
my $mm3_per_mm = $flow->mm3_per_mm;
|
||||
push @paths, map Slic3r::ExtrusionPath->new(
|
||||
polyline => $_->split_at_first_point,
|
||||
role => EXTR_ROLE_SUPPORTMATERIAL,
|
||||
|
@ -705,7 +705,7 @@ sub generate_toolpaths {
|
|||
layer_height => $layer->height,
|
||||
complete => 1,
|
||||
);
|
||||
my $mm3_per_mm = $params->{flow}->mm3_per_mm($layer->height);
|
||||
my $mm3_per_mm = $params->{flow}->mm3_per_mm;
|
||||
|
||||
push @paths, map Slic3r::ExtrusionPath->new(
|
||||
polyline => Slic3r::Polyline->new(@$_),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue