From 167ec7a4e7a99efb10cef9d6834152d9f051a38c Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Mon, 3 Jun 2013 16:21:22 +0200 Subject: [PATCH] Use M135 for makerbot toolchange; also disable any G90 and G21 command. #1034 --- lib/Slic3r/GCode.pm | 16 +++++++--------- lib/Slic3r/Print.pm | 4 ++-- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/lib/Slic3r/GCode.pm b/lib/Slic3r/GCode.pm index 706ec8d44..7f5ed876f 100644 --- a/lib/Slic3r/GCode.pm +++ b/lib/Slic3r/GCode.pm @@ -588,18 +588,16 @@ sub set_extruder { # set the new extruder $self->extruder($extruder); - my $toolchange_gcode = sprintf "%s%d%s\n", - ($self->config->gcode_flavor =~ /^(?:makerbot|sailfish)$/ ? 'M108 T' : 'T'), + $gcode .= sprintf "%s%d%s\n", + ($self->config->gcode_flavor eq 'makerbot' + ? 'M135 T' + : $self->config->gcode_flavor eq 'sailfish' + ? 'M108 T' + : 'T'), $extruder->id, ($self->config->gcode_comments ? ' ; change extruder' : ''); - if ($self->config->gcode_flavor =~ /^(?:makerbot|sailfish)$/) { - $gcode .= $self->reset_e; - $gcode .= $toolchange_gcode; - } else { - $gcode .= $toolchange_gcode; - $gcode .= $self->reset_e; - } + $gcode .= $self->reset_e; return $gcode; } diff --git a/lib/Slic3r/Print.pm b/lib/Slic3r/Print.pm index 0d5830614..47c2bbadb 100644 --- a/lib/Slic3r/Print.pm +++ b/lib/Slic3r/Print.pm @@ -711,7 +711,7 @@ sub write_gcode { multiple_extruders => (@{$self->extruders} > 1), layer_count => $self->layer_count, ); - print $fh "G21 ; set units to millimeters\n"; + print $fh "G21 ; set units to millimeters\n" if $Slic3r::Config->gcode_flavor ne 'makerbot'; print $fh $gcodegen->set_fan(0, 1) if $Slic3r::Config->cooling && $Slic3r::Config->disable_fan_first_layers; # write start commands to file @@ -729,7 +729,7 @@ sub write_gcode { printf $fh $gcodegen->set_temperature($self->extruders->[$t]->first_layer_temperature, 1, $t) if $self->extruders->[$t]->first_layer_temperature && $Slic3r::Config->start_gcode !~ /M(?:109|104)/i; } - print $fh "G90 ; use absolute coordinates\n"; + print $fh "G90 ; use absolute coordinates\n" if $Slic3r::Config->gcode_flavor ne 'makerbot'; if ($Slic3r::Config->gcode_flavor =~ /^(?:reprap|teacup)$/) { printf $fh $gcodegen->reset_e; if ($Slic3r::Config->gcode_flavor =~ /^(?:reprap|teacup|makerbot|sailfish)$/) {