Refactoring: moved some low-level G-code generation methods to the new Slic3r::GCode::Base class

This commit is contained in:
Alessandro Ranellucci 2014-10-18 17:41:21 +02:00
parent d0a81dca28
commit e521475b7e
10 changed files with 315 additions and 192 deletions

View file

@ -773,8 +773,8 @@ sub write_gcode {
placeholder_parser => $self->placeholder_parser,
layer_count => $layer_count,
);
$gcodegen->config->apply_print_config($self->config);
$gcodegen->set_extruders($self->extruders, $self->config);
$gcodegen->apply_print_config($self->config);
$gcodegen->set_extruders($self->extruders);
print $fh "G21 ; set units to millimeters\n" if $self->config->gcode_flavor ne 'makerware';
print $fh $gcodegen->set_fan(0, 1) if $self->config->cooling && $self->config->disable_fan_first_layers;
@ -935,14 +935,13 @@ sub write_gcode {
}
# write end commands to file
print $fh $gcodegen->retract if $gcodegen->extruder; # empty prints don't even set an extruder
print $fh $gcodegen->retract;
print $fh $gcodegen->set_fan(0);
printf $fh "%s\n", $gcodegen->placeholder_parser->process($self->config->end_gcode);
$self->total_used_filament(0);
$self->total_extruded_volume(0);
foreach my $extruder_id (@{$self->extruders}) {
my $extruder = $gcodegen->extruders->{$extruder_id};
foreach my $extruder (@{$gcodegen->extruders}) {
# the final retraction doesn't really count as "used filament"
my $used_filament = $extruder->absolute_E + $extruder->retract_length;
my $extruded_volume = $extruder->extruded_volume($used_filament);