Bugfix: downwards interface detection might cause a crash
This commit is contained in:
parent
200130bc10
commit
d38503bf44
1 changed files with 16 additions and 14 deletions
|
@ -442,23 +442,25 @@ sub generate_bottom_interface_layers {
|
||||||
my $z = $support_z->[$layer_id];
|
my $z = $support_z->[$layer_id];
|
||||||
next unless $z > $top_z;
|
next unless $z > $top_z;
|
||||||
|
|
||||||
# get the support material area that should be considered interface
|
if ($base->{$layer_id}) {
|
||||||
my $interface_area = intersection(
|
# get the support material area that should be considered interface
|
||||||
$base->{$layer_id},
|
my $interface_area = intersection(
|
||||||
$this,
|
$base->{$layer_id},
|
||||||
);
|
$this,
|
||||||
|
);
|
||||||
|
|
||||||
# discard too small areas
|
# discard too small areas
|
||||||
$interface_area = [ grep abs($_->area) >= $area_threshold, @$interface_area ];
|
$interface_area = [ grep abs($_->area) >= $area_threshold, @$interface_area ];
|
||||||
|
|
||||||
# subtract new interface area from base
|
# subtract new interface area from base
|
||||||
$base->{$layer_id} = diff(
|
$base->{$layer_id} = diff(
|
||||||
$base->{$layer_id},
|
$base->{$layer_id},
|
||||||
$interface_area,
|
$interface_area,
|
||||||
);
|
);
|
||||||
|
|
||||||
# add new interface area to interface
|
# add new interface area to interface
|
||||||
push @{$interface->{$layer_id}}, @$interface_area;
|
push @{$interface->{$layer_id}}, @$interface_area;
|
||||||
|
}
|
||||||
|
|
||||||
$interface_layers++;
|
$interface_layers++;
|
||||||
last if $interface_layers == $self->object_config->support_material_interface_layers;
|
last if $interface_layers == $self->object_config->support_material_interface_layers;
|
||||||
|
|
Loading…
Add table
Reference in a new issue