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

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorAlessandro Ranellucci <aar@cpan.org>2016-03-19 00:19:49 +0300
committerAlessandro Ranellucci <aar@cpan.org>2016-03-19 00:40:29 +0300
commit5ff7511a148bcfcd42c579f5c8e80306376c97d7 (patch)
tree447b56caa5419f698ae52837598e06576ef948b3 /t
parente2aae39f151edc5e77054288a95ecd8a8f382bf3 (diff)
Fixed regression in bridging caused by error in porting. Includes regression test. #3175
Diffstat (limited to 't')
-rw-r--r--t/bridges.t28
1 files changed, 27 insertions, 1 deletions
diff --git a/t/bridges.t b/t/bridges.t
index c7428a195..432d5e7a9 100644
--- a/t/bridges.t
+++ b/t/bridges.t
@@ -1,4 +1,4 @@
-use Test::More tests => 14;
+use Test::More tests => 16;
use strict;
use warnings;
@@ -107,4 +107,30 @@ sub check_angle {
return defined $result && $result>=0 && abs($delta) < $tolerance;
}
+{
+ my $config = Slic3r::Config->new_from_defaults;
+ $config->set('top_solid_layers', 0); # to prevent bridging on sparse infill
+ $config->set('bridge_speed', 99);
+
+ my $print = Slic3r::Test::init_print('bridge', config => $config);
+
+ my %extrusions = (); # angle => length
+ Slic3r::GCode::Reader->new->parse(Slic3r::Test::gcode($print), sub {
+ my ($self, $cmd, $args, $info) = @_;
+
+ if ($cmd eq 'G1' && ($args->{F} // $self->F)/60 == $config->bridge_speed) {
+ my $line = Slic3r::Line->new_scale(
+ [ $self->X, $self->Y ],
+ [ $info->{new_X}, $info->{new_Y} ],
+ );
+ my $angle = $line->direction;
+ $extrusions{$angle} //= 0;
+ $extrusions{$angle} += $line->length;
+ }
+ });
+ ok !!%extrusions, "bridge is generated";
+ my ($main_angle) = sort { $extrusions{$b} <=> $extrusions{$a} } keys %extrusions;
+ is $main_angle, 0, "bridge has the expected direction";
+}
+
__END__