mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-10-31 20:51:12 -06:00
Align infill across layers regardless of first-layer-specific extrusion width. Includes a good internal API refactoring and a fix to 3D honeycomb flow
This commit is contained in:
parent
93507bfd49
commit
64061267c8
8 changed files with 67 additions and 46 deletions
|
|
@ -7,22 +7,17 @@ use POSIX qw(ceil fmod);
|
|||
use Slic3r::Geometry qw(scale scaled_epsilon);
|
||||
use Slic3r::Geometry::Clipper qw(intersection_pl);
|
||||
|
||||
# require bridge flow since most of this pattern hangs in air
|
||||
sub use_bridge_flow { 1 }
|
||||
|
||||
sub fill_surface {
|
||||
my ($self, $surface, %params) = @_;
|
||||
|
||||
# use bridge flow since most of this pattern hangs in air
|
||||
my $flow = Slic3r::Flow->new(
|
||||
width => $params{flow}->width,
|
||||
height => $params{flow}->height,
|
||||
nozzle_diameter => $params{flow}->nozzle_diameter,
|
||||
bridge => 1,
|
||||
);
|
||||
|
||||
my $expolygon = $surface->expolygon;
|
||||
my $bb = $expolygon->bounding_box;
|
||||
my $size = $bb->size;
|
||||
|
||||
my $distance = $flow->scaled_spacing / $params{density};
|
||||
my $distance = scale($self->spacing) / $params{density};
|
||||
|
||||
# align bounding box to a multiple of our honeycomb grid
|
||||
{
|
||||
|
|
@ -71,7 +66,7 @@ sub fill_surface {
|
|||
}
|
||||
|
||||
# TODO: return ExtrusionLoop objects to get better chained paths
|
||||
return { flow => $flow}, @polylines;
|
||||
return @polylines;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue