mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-23 14:44:19 -06:00
Bugfix: some bridges being very close could lead to overlapping infill
This commit is contained in:
parent
d168ecbb4e
commit
2970e31540
2 changed files with 15 additions and 13 deletions
|
@ -55,22 +55,18 @@ sub group {
|
|||
my $params = ref $_[0] eq 'HASH' ? shift(@_) : {};
|
||||
my (@surfaces) = @_;
|
||||
|
||||
my $unique_type = sub {
|
||||
($params->{merge_solid} && $_[0]->surface_type =~ /top|bottom|solid/
|
||||
? 'solid' : $_[0]->surface_type) . "_" . ($_[0]->bridge_angle || '')
|
||||
. "_" . $_[0]->depth_layers;
|
||||
};
|
||||
my @unique_types = ();
|
||||
my %unique_types = ();
|
||||
foreach my $surface (@surfaces) {
|
||||
my $type = $unique_type->($surface);
|
||||
push @unique_types, $type unless grep $_ eq $type, @unique_types;
|
||||
my $type = ($params->{merge_solid} && $surface->surface_type =~ /top|bottom|solid/)
|
||||
? 'solid'
|
||||
: $surface->surface_type;
|
||||
$type .= "_" . ($_[0]->bridge_angle || '');
|
||||
$type .= "_" . $_[0]->depth_layers;
|
||||
$unique_types{$type} ||= [];
|
||||
push @{ $unique_types{$type} }, $surface;
|
||||
}
|
||||
|
||||
my @groups = ();
|
||||
foreach my $type (@unique_types) {
|
||||
push @groups, [ grep { $unique_type->($_) eq $type } @surfaces ];
|
||||
}
|
||||
return @groups;
|
||||
return values %unique_types;
|
||||
}
|
||||
|
||||
sub add_hole {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue