mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-24 23:23:59 -06:00
New --solid-infill-extrusion-width option
This commit is contained in:
parent
c13d9e9fb3
commit
35bd5a3423
8 changed files with 36 additions and 19 deletions
|
@ -16,6 +16,7 @@ has 'layer' => (
|
|||
has 'region' => (is => 'ro', required => 1, handles => [qw(extruders)]);
|
||||
has 'perimeter_flow' => (is => 'rw');
|
||||
has 'infill_flow' => (is => 'rw');
|
||||
has 'solid_infill_flow' => (is => 'rw');
|
||||
has 'top_infill_flow' => (is => 'rw');
|
||||
has 'infill_area_threshold' => (is => 'lazy');
|
||||
has 'overhang_width' => (is => 'lazy');
|
||||
|
@ -59,15 +60,15 @@ sub _update_flows {
|
|||
return if !$self->region;
|
||||
|
||||
if ($self->id == 0) {
|
||||
$self->perimeter_flow
|
||||
($self->region->first_layer_flows->{perimeter} || $self->region->flows->{perimeter});
|
||||
$self->infill_flow
|
||||
($self->region->first_layer_flows->{infill} || $self->region->flows->{infill});
|
||||
$self->top_infill_flow
|
||||
($self->region->first_layer_flows->{top_infill} || $self->region->flows->{top_infill});
|
||||
for (qw(perimeter infill solid_infill top_infill)) {
|
||||
my $method = "${_}_flow";
|
||||
$self->$method
|
||||
($self->region->first_layer_flows->{$_} || $self->region->flows->{$_});
|
||||
}
|
||||
} else {
|
||||
$self->perimeter_flow($self->region->flows->{perimeter});
|
||||
$self->infill_flow($self->region->flows->{infill});
|
||||
$self->solid_infill_flow($self->region->flows->{solid_infill});
|
||||
$self->top_infill_flow($self->region->flows->{top_infill});
|
||||
}
|
||||
}
|
||||
|
@ -80,7 +81,7 @@ sub _build_overhang_width {
|
|||
|
||||
sub _build_infill_area_threshold {
|
||||
my $self = shift;
|
||||
return $self->infill_flow->scaled_spacing ** 2;
|
||||
return $self->solid_infill_flow->scaled_spacing ** 2;
|
||||
}
|
||||
|
||||
# build polylines from lines
|
||||
|
@ -160,7 +161,7 @@ sub make_perimeters {
|
|||
my $self = shift;
|
||||
|
||||
my $perimeter_spacing = $self->perimeter_flow->scaled_spacing;
|
||||
my $infill_spacing = $self->infill_flow->scaled_spacing;
|
||||
my $infill_spacing = $self->solid_infill_flow->scaled_spacing;
|
||||
my $gap_area_threshold = $self->perimeter_flow->scaled_width ** 2;
|
||||
|
||||
# this array will hold one arrayref per original surface (island);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue