diff options
author | Alessandro Ranellucci <aar@cpan.org> | 2013-11-15 18:52:11 +0400 |
---|---|---|
committer | Alessandro Ranellucci <aar@cpan.org> | 2013-11-15 18:52:11 +0400 |
commit | 5e78f8a0b07f01dea96d9e570626d1e3999af321 (patch) | |
tree | 4023b985a5b4b1dccb7961c7e4bb9e43db00e0ed /t/multi.t | |
parent | f733ef5f6b846248b5581f30db117d52ec173890 (diff) |
Make sure all extruders are outside skirt at toolchange when standby_temperature is enabled
Diffstat (limited to 't/multi.t')
-rw-r--r-- | t/multi.t | 14 |
1 files changed, 9 insertions, 5 deletions
@@ -10,19 +10,23 @@ BEGIN { use List::Util qw(first); use Math::ConvexHull::MonotoneChain qw(convex_hull); use Slic3r; +use Slic3r::Geometry qw(scale); use Slic3r::Test; { my $config = Slic3r::Config->new_from_defaults; + $config->set('raft_layers', 2); $config->set('infill_extruder', 2); + $config->set('support_material_extruder', 3); $config->set('standby_temperature', 1); - $config->set('temperature', [200, 180]); - $config->set('first_layer_temperature', [206, 186]); + $config->set('extruder_offset', [ [0,0], [20,0], [0,20] ]); + $config->set('temperature', [200, 180, 170]); + $config->set('first_layer_temperature', [206, 186, 166]); my $print = Slic3r::Test::init_print('20mm_cube', config => $config); my $tool = undef; - my @tool_temp = (0,0); + my @tool_temp = (0,0,0); my @toolchange_points = (); my @extrusion_points = (); Slic3r::GCode::Reader->new->parse(Slic3r::Test::gcode($print), sub { @@ -46,9 +50,9 @@ use Slic3r::Test; } $tool_temp[$t] = $args->{S}; } elsif ($cmd eq 'G1' && $info->{extruding} && $info->{dist_XY} > 0) { - push @extrusion_points, Slic3r::Point->new_scale($args->{X}, $args->{Y}); + push @extrusion_points, my $point = Slic3r::Point->new_scale($args->{X}, $args->{Y}); + $point->translate(map scale($_), @{ $config->extruder_offset->[$tool] }); } - # TODO: check that toolchanges retraction and restart happen outside skirt }); my $convex_hull = Slic3r::Polygon->new(@{convex_hull([ map $_->pp, @extrusion_points ])}); ok !(first { $convex_hull->encloses_point($_) } @toolchange_points), 'all toolchanges happen outside skirt'; |