First layer temperature. #134

This commit is contained in:
Alessandro Ranellucci 2012-02-26 14:54:38 +01:00
parent f1f0545209
commit dccd7d19a9
6 changed files with 20 additions and 3 deletions

View File

@ -115,6 +115,8 @@ The author is Alessandro Ranellucci (me).
very little need to change this value, which is only useful to very little need to change this value, which is only useful to
compensate for filament packing (default: 1) compensate for filament packing (default: 1)
--temperature Extrusion temperature in degree Celsius, set 0 to disable (default: 200) --temperature Extrusion temperature in degree Celsius, set 0 to disable (default: 200)
--first-layer-temperature Extrusion temperature for the first layer, in degree Celsius,
set 0 to disable (default: same as --temperature)
Speed options: Speed options:
--travel-speed Speed of non-print moves in mm/s (default: 130) --travel-speed Speed of non-print moves in mm/s (default: 130)

View File

@ -61,6 +61,7 @@ our $gcode_comments = 0;
our $filament_diameter = 3; # mm our $filament_diameter = 3; # mm
our $extrusion_multiplier = 1; our $extrusion_multiplier = 1;
our $temperature = 200; our $temperature = 200;
our $first_layer_temperature;
# speed options # speed options
our $travel_speed = 130; # mm/s our $travel_speed = 130; # mm/s

View File

@ -91,6 +91,11 @@ our $Options = {
type => 'f', type => 'f',
aliases => [qw(filament_packing_density)], aliases => [qw(filament_packing_density)],
}, },
'first_layer_temperature' => {
label => 'First layer temperature (°C)',
cli => 'fisrt-layer-temperature=i',
type => 'i',
},
'temperature' => { 'temperature' => {
label => 'Temperature (°C)', label => 'Temperature (°C)',
cli => 'temperature=i', cli => 'temperature=i',
@ -594,6 +599,7 @@ sub validate {
$Slic3r::small_perimeter_speed ||= $Slic3r::perimeter_speed; $Slic3r::small_perimeter_speed ||= $Slic3r::perimeter_speed;
$Slic3r::bridge_speed ||= $Slic3r::infill_speed; $Slic3r::bridge_speed ||= $Slic3r::infill_speed;
$Slic3r::solid_infill_speed ||= $Slic3r::infill_speed; $Slic3r::solid_infill_speed ||= $Slic3r::infill_speed;
$Slic3r::first_layer_temperature //= $Slic3r::temperature; #/
} }
1; 1;

View File

@ -25,7 +25,7 @@ sub new {
}, },
filament => { filament => {
title => 'Filament', title => 'Filament',
options => [qw(filament_diameter extrusion_multiplier temperature)], options => [qw(filament_diameter extrusion_multiplier temperature first_layer_temperature)],
}, },
print_speed => { print_speed => {
title => 'Print speed', title => 'Print speed',

View File

@ -587,8 +587,8 @@ sub export_gcode {
# write start commands to file # write start commands to file
printf $fh "M104 %s%d ; set temperature\n", printf $fh "M104 %s%d ; set temperature\n",
($Slic3r::gcode_flavor eq 'mach3' ? 'P' : 'S'), $Slic3r::temperature ($Slic3r::gcode_flavor eq 'mach3' ? 'P' : 'S'), $Slic3r::first_layer_temperature
if $Slic3r::temperature; if $Slic3r::first_layer_temperature;
print $fh "$Slic3r::start_gcode\n"; print $fh "$Slic3r::start_gcode\n";
printf $fh "M109 %s%d ; wait for temperature to be reached\n", printf $fh "M109 %s%d ; wait for temperature to be reached\n",
($Slic3r::gcode_flavor eq 'mach3' ? 'P' : 'S'), $Slic3r::temperature ($Slic3r::gcode_flavor eq 'mach3' ? 'P' : 'S'), $Slic3r::temperature
@ -622,6 +622,12 @@ sub export_gcode {
# write gcode commands layer by layer # write gcode commands layer by layer
foreach my $layer (@{ $self->layers }) { foreach my $layer (@{ $self->layers }) {
if ($layer->id == 1) {
printf $fh "M104 %s%d ; set temperature\n",
($Slic3r::gcode_flavor eq 'mach3' ? 'P' : 'S'), $Slic3r::temperature
if $Slic3r::temperature && $Slic3r::temperature != $Slic3r::first_layer_temperature;
}
# go to layer # go to layer
print $fh $extruder->change_layer($layer); print $fh $extruder->change_layer($layer);

View File

@ -133,6 +133,8 @@ Usage: slic3r.pl [ OPTIONS ] file.stl
very little need to change this value, which is only useful to very little need to change this value, which is only useful to
compensate for filament packing (default: $Slic3r::extrusion_multiplier) compensate for filament packing (default: $Slic3r::extrusion_multiplier)
--temperature Extrusion temperature in degree Celsius, set 0 to disable (default: $Slic3r::temperature) --temperature Extrusion temperature in degree Celsius, set 0 to disable (default: $Slic3r::temperature)
--first-layer-temperature Extrusion temperature for the first layer, in degree Celsius,
set 0 to disable (default: same as --temperature)
Speed options: Speed options:
--travel-speed Speed of non-print moves in mm/s (default: $Slic3r::travel_speed) --travel-speed Speed of non-print moves in mm/s (default: $Slic3r::travel_speed)