diff --git a/README.markdown b/README.markdown index 94972b5f..764fe8ce 100644 --- a/README.markdown +++ b/README.markdown @@ -92,6 +92,7 @@ The author is Alessandro Ranellucci (me). (default: 100,100) --use-relative-e-distances Use relative distances for extrusion in GCODE output + --no-extrusion Do not output any E value in GCODE --z-offset Additional height in mm to add to vertical coordinates (+/-, default: 0) --gcode-arcs Use G2/G3 commands for native arcs (experimental, not supported diff --git a/lib/Slic3r.pm b/lib/Slic3r.pm index 790e5c5c..e59f9794 100644 --- a/lib/Slic3r.pm +++ b/lib/Slic3r.pm @@ -35,6 +35,7 @@ use Slic3r::Surface::Bridge; our $nozzle_diameter = 0.5; our $print_center = [100,100]; # object will be centered around this point our $use_relative_e_distances = 0; +our $no_extrusion = 0; our $z_offset = 0; our $gcode_arcs = 0; diff --git a/lib/Slic3r/Config.pm b/lib/Slic3r/Config.pm index 1c20ca59..581ebb30 100644 --- a/lib/Slic3r/Config.pm +++ b/lib/Slic3r/Config.pm @@ -22,6 +22,10 @@ our $Options = { label => 'Use relative E distances', type => 'bool', }, + 'no_extrusion' => { + label => 'No extrusion', + type => 'bool', + }, 'z_offset' => { label => 'Z offset', type => 'f', diff --git a/lib/Slic3r/Extruder.pm b/lib/Slic3r/Extruder.pm index 5bcfaabd..441ba8e3 100644 --- a/lib/Slic3r/Extruder.pm +++ b/lib/Slic3r/Extruder.pm @@ -222,7 +222,7 @@ sub _Gx { } # output extrusion distance - if ($e) { + if ($e && !$Slic3r::no_extrusion) { $self->extrusion_distance(0) if $Slic3r::use_relative_e_distances; $self->extrusion_distance($self->extrusion_distance + $e); $gcode .= sprintf " E%.5f", $self->extrusion_distance; diff --git a/lib/Slic3r/GUI/SkeinPanel.pm b/lib/Slic3r/GUI/SkeinPanel.pm index 878495da..77d2973c 100644 --- a/lib/Slic3r/GUI/SkeinPanel.pm +++ b/lib/Slic3r/GUI/SkeinPanel.pm @@ -17,7 +17,7 @@ sub new { my %panels = ( printer => Slic3r::GUI::OptionsGroup->new($self, title => 'Printer', - options => [qw(nozzle_diameter print_center use_relative_e_distances z_offset)], + options => [qw(nozzle_diameter print_center use_relative_e_distances no_extrusion z_offset)], ), filament => Slic3r::GUI::OptionsGroup->new($self, title => 'Filament', diff --git a/slic3r.pl b/slic3r.pl index 74eb88d4..7333d706 100755 --- a/slic3r.pl +++ b/slic3r.pl @@ -26,6 +26,7 @@ GetOptions( 'nozzle-diameter=f' => \$Slic3r::nozzle_diameter, 'print-center=s' => \$Slic3r::print_center, 'use-relative-e-distances' => \$Slic3r::use_relative_e_distances, + 'no-extrusion' => \$Slic3r::no_extrusion, 'z-offset=f' => \$Slic3r::z_offset, 'gcode-arcs' => \$Slic3r::gcode_arcs, @@ -129,6 +130,7 @@ Usage: slic3r.pl [ OPTIONS ] file.stl (default: $Slic3r::print_center->[0],$Slic3r::print_center->[1]) --use-relative-e-distances Use relative distances for extrusion in GCODE output + --no-extrusion Do not output any E value in GCODE --z-offset Additional height in mm to add to vertical coordinates (+/-, default: $Slic3r::z_offset) --gcode-arcs Use G2/G3 commands for native arcs (experimental, not supported