This is still work in progress, and here is what I have so far, but first:
A useful alternative for similar problems:
A problem very similar to this would be to use different settings for different parts of a model in Slic3r. For most settings, this can be achieved through modifier meshes.
Post processing scripts:
As far as I know, Slic3r does not give you the option of setting the speed of the first layer after a raft directly, but they do allow you to run post processing scripts; that is, to automatically run a set of operations - programmed by you - on the g-code output.
Although far from trivial, you can in theory make a program that runs through the output g-code, adjusts the settings to your preference, and then saves it again at the target destination.
Tuning overall printer speed through g-code:
As it turns out, there is a simple g-code command that sets the overall speed of your printer's operation:
M220 S[some number] ; see the link above for compatible firmware
A newsletter from Reprapwold explains that:
For example M220 S50 will reduce the speed to 50%
of the original sliced G-code. If you want to hurry your print to the finish in time
for dinner, use M220 S200, to print twice as fast (200%)
In other words, just like some printers allow you the change speed mid-print, you can use the M220 command to override the current speed used, either through a user interface such as PrintRun, or by fiddling with the original g-code itself.
Manipulating the g-code output to adjust speed settings:
The easiest way to achieve our goal would be to manually manipulate the output g-code file through a text editor, and insert our M220 command in appropriate places:
- Set M220 S50 just before the first perimeter layer (after the raft's interface layer), to slow down the first layer of the actual model.
- Set M220 S100 sometime after the first perimeter layer, to resume the normal speed settings.
In order to do this, though, we need to be able to distinguish these two points in the g-code output.
Distinguishing insertion points:
Slic3r offers a setting under
Print Settings -> Output options -> Verbose G-code that - when enabled - inserts written comments all throughout the g-code files generated.
If one inspects a g-code file outputted for a model with raft, one will find the comment:
; move to first perimeter point <- lets call this A
; move to next layer (x) <- lets call this B
littered several places throughout the gcode.
It is under my impression that the first occurrence of comment A happens right after the raft is finished, and before the actual model is being printed, while the first occurrence of comment B succeeding comment A can be used to set the speed back to normal.
It should be noted, however, that the comments in the output g-code does not seem fully consistent, and I would therefore not recommend anyone to automate this logic into a script without possibly finding other, more reliable breakpoints, and thoroughly verify these through several different models.
I have not looked into the details of writing an automatic script for this task as of yet.