Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessandro Ranellucci <aar@cpan.org>2013-05-30 22:06:05 +0400
committerAlessandro Ranellucci <aar@cpan.org>2013-05-30 22:06:05 +0400
commit7baaf6bf5d3cdf68a877a16d5f27e76f0fbc6e35 (patch)
tree6ae9d439a034e3fa03f6efcd1d393e46a17ebb21 /t/skirt_brim.t
parent8f5a9589485fff618921685e7d70da67826587bd (diff)
Fixed regression causing skirt_height to he honored incorrectly when printing more than one object. Includes regression test #1200
Diffstat (limited to 't/skirt_brim.t')
-rw-r--r--t/skirt_brim.t46
1 files changed, 46 insertions, 0 deletions
diff --git a/t/skirt_brim.t b/t/skirt_brim.t
new file mode 100644
index 000000000..c78bf41e0
--- /dev/null
+++ b/t/skirt_brim.t
@@ -0,0 +1,46 @@
+use Test::More tests => 1;
+use strict;
+use warnings;
+
+BEGIN {
+ use FindBin;
+ use lib "$FindBin::Bin/../lib";
+}
+
+use List::Util qw(first);
+use Slic3r;
+use Slic3r::Test;
+
+{
+ my $config = Slic3r::Config->new_from_defaults;
+ $config->set('skirts', 1);
+ $config->set('skirt_height', 2);
+ $config->set('perimeters', 0);
+ $config->set('perimeter_speed', 99);
+ $config->set('cooling', 0); # to prevent speeds to be altered
+ $config->set('first_layer_speed', '100%'); # to prevent speeds to be altered
+
+ my $test = sub {
+ my ($conf) = @_;
+ $conf ||= $config;
+
+ my $print = Slic3r::Test::init_print(['20mm_cube','20mm_cube'], config => $config);
+
+ my %layers_with_skirt = (); # Z => $count
+ Slic3r::GCode::Reader->new(gcode => Slic3r::Test::gcode($print))->parse(sub {
+ my ($self, $cmd, $args, $info) = @_;
+
+ if (defined $self->Z) {
+ $layers_with_skirt{$self->Z} //= 0;
+ $layers_with_skirt{$self->Z} = 1
+ if $info->{extruding} && ($args->{F} // $self->F) == $config->perimeter_speed*60;
+ }
+ });
+ fail "wrong number of layers with skirt"
+ unless (grep $_, values %layers_with_skirt) == $config->skirt_height;
+ };
+
+ ok $test->(), "skirt_height is honored when printing multiple objects too";
+}
+
+__END__