layer 1 As reported previously, printing on a heated build surface not only permits (almost) warp-free printing, but also eliminates the need for rafts for simple shaped objects (simple as in rectangular footprint).

As soon as the base shape of an object becomes more complex, things go likely wrong: Most of the time, the more complex perimeter lines don’t stick and ripped off the build surface by the passing nozzle.

To solve this problem, I played around with several parameters of the gcode files, like feed rate and flow rate.

It turns out that, if extruded “slow enough”, also complex shapes are easily printable without a raft.

IMG_4709 After testing this for a while by post-processing gcode files manually (i.e. editing the gcode files in a text editor), I started to write a new tool for the skeinforge tool chain.

By integrating a ‘Raftless’ tool into skeinforge, I not only save a lot of time (it’s rather time consuming to edit gcode files each time before printing), but I’ve also much more (and easy!) control over what to slow down. Although it’s possible to change each single line of gcode in a text editor, it’s quite a challenge to navigate through thousands of ‘G1 X Y Z F’ lines without getting lost or insane.

Anyway, I just finished a new tool for the skeinforge tool chain:


Raftless is a script to prepare a gcode file for raftless printing.

Raftless settings

The default ‘Activate Raftless’ checkbox is off, since the mutual exclusive ‘Raft’ script is activated by default. In order to use the Raftless script, you want to desactivate the Raft script first. If both scripts, Raft and Raftless, are activated, the Raftless script (which runs after the Raft script) automatically detects the already created raft. In this case, the Raftless script is skipped and a warning message is printed to the console.

The “1st Perimeter Feed Rate over Feed Rate” preference defines the feed rate during the extrusion of the 1st layer’s perimeter lines. The preference is a ratio of the normal extrusion feed rate as configured in the ‘Speed’ script. The default value is .5, which means half the normal feed rate.

The “1st Perimeter Flow Rate over Flow Rate” preference is the ratio of the filament feedrate during the extrusion of the 1st layer’s perimeter lines. Since the feed rate is slower than normal, you might want to reduce also the flow rate in this case. This preference is a ratio of the normal flow rate (as configured in the ‘Speed’ script). The default is 1. (same flow rate as normal).

If “Add Extrusion Intro” is on, an additional straight extrusion line is added to the start of the first perimeter. This line starts at the coordinates ‘Extrusion Intro Max X Absolute’/’Extrusion Intro Max Y Absolute’. These both values are absolute (positive) values. The script automatically negates one or both of these values, according to the location of the first regular extrusion.

Please note, that Add Extrusion Intro doesn’t check for collisions with the perimeter lines. If necessary, you want to change the max X/Y values manually.

Here’s a video of printing an object without a raft (yes, the gcode file was created with the Raftless tool…):

If you’re interested in raft-less printing, you should definitely give the ‘Raftless’ tool a try.

Download the Raftless Python source

I wrote the Raftless script based on the most recent version of skeinforge (“created at 2009-11-06”) as included in the not-released-yet newest Replicator G version. In the meantime, you can download this version of skeinforge from the public Makerbot GITHub repository. Please note, that all unreleased software in this repository is per definition “beta”. So: no guarantees.

In order to install the Raftless script within the skeinforge tool chain, copy raftless.py in the skeinforge_tool/craft_plugins folder. Then edit  skeinforge_tool/profile_plugins/extrusion.py and add the Raftless script to the tool chain sequence by inserting ‘raftless’ into the tool sequence  in getCraftSequence(). The best place is at the end of the sequence, right before ‘export’.

Any feedback is highly appreciated!



  1. If I switch off the raft plugin, to activate raftless, one g-code command missing, “M104 S240.0”. So I modified raftless to work even if raft is turned on, and in raft settings I set number of base and interface layers to 0 :-) Now it works ;-)

    @RepMan 10.0.8 I cant add “M104 S240.0” to start.gcode, it moves the objects somewhere out of print bed :-(

  2. Hi,
    I’m getting a heated build platform for my Makerbot soon. I’m tired of warping. I’m trying to install the python script, but I’m having problems. I copied the 14kb raftless python file to craft_plugins, but I’m not sure what you mean by “add the Raftless script to the tool chain sequence by inserting ‘raftless’ into the tool sequence in getCraftSequence()”. I don’t know where to write the getCraftSequence() command.

    I hope you can help me.

    Really great things you’re doing with your Makerbot. Keep up the good work:

  3. Christian, search for this line o file “extrusion.py”:

    return ‘carve,preface,widen,inset,fill,multiply,speed,raft,chamber,tower,jitter,comb,clip,cool,stretch,hop,wipe,oozebane,splodge,home,lash,fillet,unpause,export’.split( ‘,’ )

    And add to the end “raftless” – the line now will be:

    return ‘carve,preface,widen,inset,fill,multiply,speed,raft,chamber,tower,jitter,comb,clip,cool,stretch,hop,wipe,oozebane,splodge,home,lash,fillet,unpause,export,raftless’.split( ‘,’ )

  4. Casainho, I’ve already done that, but it gives me an error message every time I try to skeinforge something, and also when i press “raftless” in the craft settings. I opened the “extrusion.py” file in wordpad and edited the two lines to add “raftless” at the end of the sequence. I’m getting my heated platform soon, so it would de nice if I could get it working.


  5. Thanks Zaggo. Perhaps it didn’t work, because I had the wrong version of Skeinforge installed. I used Skeinforge 0007. Anyway, it works now. Can’t wait to get my heated build platform. Thanks and keep up the good work!

    • Unfortunately Enrique usually doesn’t care about “unofficial” 3rd party tools and changes Skeinforge and its tool API radically from version to version. It’s hard to keep track with the changes, especially since I didn’t like the recent GUI decisions Enrique made (and thus still use an older version of Skeinforge).
      However, “raftless” is (like Skeinforge) open source. Maybe someone can implement the necessary code changes to make it work in the most recent Skeinforge version.

  6. Hiya, I am still having some difficulties in handling the raftless plugin.
    Usually without HBP and raft, I would put the nozzle really, really close to the platform to get a real sticky raft. I assume that I can lift the nozzle higher again with raftless.
    The perimenter usually turns out fine, but for the infill I get lots of ooze. I take that as a sign, that either my distance to the platform is still to low, or that I should turn down the flow ratio. The later would make sense to me, I just wonder why the default is “1.0” somehow indicating that this is not strictly considered necessary. Can you give me some advice on parameters and nozzle distance, please? Regards Markus

Leave a Reply