diff --git a/lib/Slic3r/Print.pm b/lib/Slic3r/Print.pm index dd96b0e15..ca18ff976 100644 --- a/lib/Slic3r/Print.pm +++ b/lib/Slic3r/Print.pm @@ -428,10 +428,10 @@ sub expanded_output_filepath { my $filename = my $filename_base = basename($input_file); $filename_base =~ s/\.[^.]+$//; # without suffix - my $extra = { - input_filename => $filename, - input_filename_base => $filename_base, - }; + + # set filename in placeholder parser so that it's available also in custom G-code + $self->placeholder_parser->set(input_filename => $filename); + $self->placeholder_parser->set(input_filename_base => $filename_base); if ($path && -d $path) { # if output path is an existing directory, we take that and append @@ -447,7 +447,7 @@ sub expanded_output_filepath { # make sure we use an up-to-date timestamp $self->placeholder_parser->update_timestamp; - return $self->placeholder_parser->process($path, $extra); + return $self->placeholder_parser->process($path); } # This method assigns extruders to the volumes having a material diff --git a/t/gcode.t b/t/gcode.t index aa15098a0..2bb18094c 100644 --- a/t/gcode.t +++ b/t/gcode.t @@ -1,4 +1,4 @@ -use Test::More tests => 20; +use Test::More tests => 21; use strict; use warnings; @@ -184,4 +184,12 @@ use Slic3r::Test; } } +{ + my $config = Slic3r::Config->new_from_defaults; + $config->set('start_gcode', 'START:[input_filename]'); + my $print = Slic3r::Test::init_print('20mm_cube', config => $config); + my $gcode = Slic3r::Test::gcode($print); + like $gcode, qr/START:20mm_cube/, '[input_filename] is also available in custom G-code'; +} + __END__