diff --git a/lib/Slic3r/Config.pm b/lib/Slic3r/Config.pm index 93f3d8152..82c54b584 100644 --- a/lib/Slic3r/Config.pm +++ b/lib/Slic3r/Config.pm @@ -325,7 +325,7 @@ sub validate { my $max_nozzle_diameter = max(@{ $self->nozzle_diameter }); die "Invalid extrusion width (too large)\n" if defined first { $_ > 10 * $max_nozzle_diameter } - map $self->get_value("${_}_extrusion_width"), + map $self->get_abs_value_over("${_}_extrusion_width", $self->layer_height), qw(perimeter infill solid_infill top_infill support_material first_layer); } @@ -355,6 +355,8 @@ sub validate { } } } + + return 1; } sub replace_options { diff --git a/t/config.t b/t/config.t index c9af472c7..7950dbb18 100644 --- a/t/config.t +++ b/t/config.t @@ -1,4 +1,4 @@ -use Test::More tests => 1; +use Test::More tests => 2; use strict; use warnings; @@ -17,4 +17,10 @@ use Slic3r::Test; is $ENV{SLIC3R_LAYER_HEIGHT}, '0.123', 'setenv'; } +{ + my $config = Slic3r::Config->new_from_defaults; + $config->set('perimeter_extrusion_width', '250%'); + ok $config->validate, 'percent extrusion width is validated'; +} + __END__