Added a feature to increase gap between object in XY and generated supports.

Advanced feature, may not generate supports that are printable.
This commit is contained in:
Joseph Lenox 2016-04-09 12:47:08 -05:00 committed by bubnikv
parent 4b2bc29b14
commit f63c21f0f3

View File

@ -372,7 +372,7 @@ sub object_top {
# grow top surfaces so that interface and support generation are generated # grow top surfaces so that interface and support generation are generated
# with some spacing from object - it looks we don't need the actual # with some spacing from object - it looks we don't need the actual
# top shapes so this can be done here # top shapes so this can be done here
$top{ $layer->print_z } = offset($touching, $self->flow->scaled_width); $top{ $layer->print_z } = offset($touching, $self->flow->scaled_width + ($self->object_config->support_material_xy_spacing / 0.000001) );
} }
# remove the areas that touched from the projection that will continue on # remove the areas that touched from the projection that will continue on
@ -627,7 +627,7 @@ sub clip_with_object {
# We leave a gap equal to a full extrusion width. # We leave a gap equal to a full extrusion width.
$support->{$i} = diff( $support->{$i} = diff(
$support->{$i}, $support->{$i},
offset([ map @$_, map @{$_->slices}, @layers ], +$self->flow->scaled_width), offset([ map @$_, map @{$_->slices}, @layers ], +($self->flow->scaled_width +($self->object_config->support_material_xy_spacing / 0.000001))),
); );
} }
} }
@ -640,7 +640,7 @@ sub generate_toolpaths {
# shape of contact area # shape of contact area
my $contact_loops = $self->object_config->support_material_interface_contact_loops ? 1 : 0; my $contact_loops = $self->object_config->support_material_interface_contact_loops ? 1 : 0;
my $circle_radius = 1.5 * $interface_flow->scaled_width; my $circle_radius = 1.5 * $interface_flow->scaled_width - ($self->object_config->support_material_xy_spacing / 0.000001) ;
my $circle_distance = 3 * $circle_radius; my $circle_distance = 3 * $circle_radius;
my $circle = Slic3r::Polygon->new(map [ $circle_radius * cos $_, $circle_radius * sin $_ ], my $circle = Slic3r::Polygon->new(map [ $circle_radius * cos $_, $circle_radius * sin $_ ],
(5*PI/3, 4*PI/3, PI, 2*PI/3, PI/3, 0)); (5*PI/3, 4*PI/3, PI, 2*PI/3, PI/3, 0));
@ -710,7 +710,7 @@ sub generate_toolpaths {
# generate the outermost loop # generate the outermost loop
# find centerline of the external loop (or any other kind of extrusions should the loop be skipped) # find centerline of the external loop (or any other kind of extrusions should the loop be skipped)
$contact = offset($contact, -$_interface_flow->scaled_width/2); $contact = offset($contact, -($_interface_flow->scaled_width + ($self->object_config->support_material_xy_spacing / 0.000001)) /2);
my @loops0 = (); my @loops0 = ();
{ {