RepRapPro Slicer

From RepRap
Revision as of 15:16, 25 March 2013 by Adrianbowyer (talk | contribs) (Introduction)
Jump to: navigation, search

Introduction | Frame assembly | Y axis assembly | X axis assembly | Z axis assembly | Heated bed assembly | Extruder drive assembly | Hot end assembly | Wiring | Power supply | Commissioning | Printing | Multi‑colour/multi‑materials | Colour Printing - Slic3r | Colour Printing - RepRapPro Slicer | Maintenance | Troubleshooting | Improvements

A notice about these instructions!

These instructions are open to editing by everyone and anyone.
For the official, and most up to date, instructions, see the RepRapPro wiki here

This software is currently in Beta Release

It is functional, but may contain bugs. Check here on Github for the latest release.



This page describes RepRapPro Ltd's slicer software for taking STL files and slicing them to create G Codes to drive a RepRapPro Ltd RepRap printer (such as RepRapPro Tricolour or RepRapPro Huxley). It is heavily based on the original RepRap Java Host Software.

The reason we have created this software is that other software for slicing that we have looked at does not handle multiple colours and multiple materials well. This software is slightly slower than some others (we will work to improve this), but it does allow you to set-up and to slice multi-colour and multi-material prints in an easy, intuitive and graphical way. Specifically, it allows you:

  1. To see a 3D colour representation of the entire build on the build bed from any angle or position,
  2. To specify the order in which parts will be printed,
  3. To specify that some parts will be built with support material and others not,
  4. To reposition, to remove, and to add parts to the build pattern, to save the result, and to reload it and edit it further later,
  5. To build parts with any combination of colours/extruders in any order, and to not use some colours/extruders at all for some parts, and
  6. To have complete control over the shield that is built to purge and to clean multiple colours/extruders between colour changes.

These might seem like a simple set of requirements for slicer software, and indeed they are. But not all software allows all these.

When you run the RepRapPro slicer software it opens these two windows. The one on the left is a console that allows you to set up objects to be printed and to slice them. The one on the right is a 3D view of the base of the RepRap machine onto which you can load STL files of the parts that you want to make, and then position them where you want the machine to make them.

The software is on Github here. There are installation instructions on that page.

Loading things to print, then saving them as G-Codes

The Load RFO Button

Typically you start by clicking on the blue "Load RFO" button. This will put up a file-selector window, which you can use to find and select the RFO file that represents the things that you want to build.

The things will be loaded onto the bed wherever they were saved.

You can rotate the view of the RepRap machine's base in the right-hand window with the left mouse button. The middle button zooms the view, and the right button slides it sideways or up and down.

See here for details of RFO files.

The Save RFO Button

This allows you to save the entire arrangement that you have created on the build bed for use later.

The Load STL/CSG Button


To load up just one STL-file object of one colour, use the "Load STL/CSG" button. This will put up a file-selector window, which you can use to find and select the STL file that represents the thing that you want to build (CSG will be discussed in a moment).

The thing will be loaded at the centre of the bed. A pop-up window (shown) will appear for you to select how many copies of the thing to make, and what extruder to use to make them. Select the extruder you want for the surface of the object. (Relating infill and support extruders to surface extruders is described below.)

As supplied, the software has eight materials selectable. But some of these are actually just different rules for how to treat the same material. Usually you will want to select one of:

  1. PLA - this is for an object that you want to make with PLA in the first extruder in the machine.
  2. PLA-without-support - as above, but no support material will be laid down for overhangs in this object.
  3. PLA-green - the second extruder's material.
  4. PLA-red - the third extruder's material.

We will probably change these names to better ones later (this is in Beta...).

The pop-up window allows you to set the number of copies of the object that you want to build. It also tells you the volume of the object (which will generally be more than the volume of the material that you will use to print it, unless you use 100% infill, which is possible but not recommended).

Using CSG

In addition, the RepRapPro slicing software allows you to bypass the STL format for generating prints, and use more robust CSG files from OpenSCAD directly instead. This is handled completely automatically once you have generated the appropriate CSG file.

To do that, design (or download someone else's published design for) a model to be printed in OpenSCAD. Export the model from OpenSCAD as an STL file in the usual way (Design->Export as STL...). Call it, say, my_model.stl. In addition, export the CSG representation of the model (Design->Export as CSG) to a file called my_model.csg in the same folder as the STL file you saved. (In older versions of OpenSCAD you have to select Design->Display-CSG-tree..., then copy and paste all the text in the window that pops up into the file my_model.csg.)

When you then load the STL file into the RepRapPro Slicer software as described immediately above, the CSG file will also automatically be found and loaded too. The software will then use the STL file just to render its picture of the object on the build tray. However, all the slicing, outlining, and infilling code that actually prints the model will work directly with the CSG representation and won't use the STL data at all. This is both faster and much more reliable than using STL files to print with.

You don't have to use CSG. The software will work just with STL files alone. But CSG is an extra option.

So far the supported OpenSCAD primitives are cubes, cylinders (including frustums and cones), and spheres. We will soon add extruded polygons, extruded imported DXFs, polyhedra, and imported STL files (in that order, which is also the order of difficulty of doing it...). Note that the final one of those will implicitly (there's a mathematical joke there somewhere) allow any STL file to be converted to CSG.


This button opens another window that allows you to edit all the many variables that control the production of 3D prints. See this page for a complete list of them and a description of what they all do.


This button opens a web browser and displays this documentation.

Putting things where you want


You may not want to build the parts where they are loaded. If you point at a part with the mouse and left-click, it will change colour, indicating that it has been selected. You can then slide it about the base with the right mouse button to the position you want to build it in. The grid squares on the green base have 20 mm sides. You can rotate the selected object in 90o clicks about the X and Y coordinate axes by <ctrl> X and <ctrl> Y. Z rotation is done be <ctrl> Z, which rotates in 45o increments around Z. If your STL file was in inches you can scale the selected object to millimeters by multiplying by 25.4 with <ctrl> I. To delete the selected object use the <DELETE> key.

To see more options, including much finer Z rotation, click on the "Click here for help" tab.

To release the selected object, left-mouse-click on any other part of the grey base. You will then be able to use the mouse to zoom, rotate and slide everything as one again.

Printing more than one thing at once


You can load several STL files to build at once, either of different objects, or multiple copies of the same object. Just click on the blue "Load STL" button again, then position them in different places. Leave a gap of about two or three millimetres between different objects to be built. Make sure that previously-loaded objects are not selected when you load a new one (loading new objects attached to previous ones is a special feature for printing in multiple materials that is described below). If you are building a small object and a large object with a hole, and the smaller fits inside the larger, then doing that to save space is a good idea. Make sure they don't touch (look straight down from above).

By default parts are printed in the order in which you load them. But when you have multiple parts loaded it is sometimes hard to remember what that order is. If you select one of the parts, typing <ctrl> N (next) will show you the next in the printing order. The sequence cycles: when you get to the last one, it moves on to the first. If no part is selected, <ctrl> N selects the first to be built.

If you want to reorder the build sequence, type <ctrl> R (reorder). Then select the parts in turn with the mouse in the order that you want them built. The system will highlight them as you go along so you can remember what you've done. When you select the penultimate part it, then the ultimate part, are automatically added to the new order and the highlighting is reset. You can use <ctrl> N to check your new order.

The picture on the right shows a reasonable ordering, though it would probably be better if all the parts were nearer the middle of the bed. Put parts close to other parts of roughly the same height. Generate an order so that there are no long moves between parts. If you do all the low parts together (order numbers 2 through 5 here) when they are finished the machine will simply move straight from Part 1 to Part 6. Try to end the ordering with the last part near to the first part.

You can also load one or more RFO files with the "Load RFO" button, select individual parts in them, move them about, or delete them, and add extra STL files. You can then save the whole arrangement as a new (or the same) RFO file.

Finally, you can change the material that a part is made from by selecting it then typing <ctrl> M (material). A material selector will come up to allow you to specify a different material. (The selector is the same as the one that you used to specify material when the part was loaded, but with the number-of-copies option disabled.)

If you have several STL files loaded in a pattern that you may want to use again, you can save the whole lot by selecting the "Save RFO" button. Any CSG files that you are using will be saved in the RFO file as well, and will be re-acquired automatically when you re-load it.

Printing things made from more than one material


This picture shows three interlocking but separate shapes designed in OpenSCAD as a test piece.

Here is the OpenSCAD program:


module green()
			cube([30,30,2], center=true);

module white()
			cylinder(r=10,h=5,center=true, $fn=30);

module red()
				cube([35,35,3], center=true);
							cube([35,35,5], center=true);

Save the three separate coloured components as three STL (and CSG as well if you want) files by commenting out the two unwanted colours:


then evaluating and saving just the one object (white(); in this instance) as, say, white.stl.

You don't have to use OpenSCAD to generate coloured models in this way. Virtually any 3D CAD system will do as long as it saves its STL files in the correct location in the 3D space in which they were designed.

Reprappro-java-host-load-white.png Reprappro-java-host-load-green.png Reprappro-java-host-load-all.png

Then load the STL of the shape that is the base or reference object into the RepRapPro slicing program - here we have made that reference object the central white cylinder. Make sure to use a part of the multi-material object that you are building that will be on the build-base as a reference object. Don't use one that will be in mid air. Choose the material to make the reference object from, then select it (so it changes colour to selected, as in the left-hand picture) and leave it at the centre where it was loaded (though you can move it if you want).

Then load the second STL for the second shape (green.stl, say) and choose its material. It will be positioned in the correct (i.e. designed) position relative to the first, and they will both be locked together in this relative positioning. Leave both objects selected (and therefore coloured as in the middle picture).

Finally load the red STL, then click on the grey base to deselect the resulting composite object (right picture).

If you select the base shape (white in this instance), you can then move the composite object about the build base as one thing to the position where you want to build it. Remember that all the print heads have to reach the coloured parts of your print, so put it near the middle.

If you save one or more of these combined objects as an RFO file, they will be re-loaded in the correct orientation and position when you subsequently read that file in.

Infill and support

Obviously, to print in multiple colours, the RepRapPro slicing software is capable of dealing with multiple physical extruders depositing multiple materials. In addition, one physical material may have several logical extruders associated with it. These logical extruders can have different parameters associated with them, so that, for example, one might be used to extrude material-A finely for the surfaces of a part to be printed, another might be used to extrude material-A coarsely for quick solid infill of the part, and a third might extrude material-A in a deliberately weak pattern to form a support for overhangs that can easily be broken away. Alternatively, you can outline in material-A, infill in material-B and support with material-C.

You can change all the many parameters of each extruder by clicking on "Variables".

In the variables for each extruder are fields containing the names of two other extruders: InFillMaterialType(name) and SupportMaterialType(name). These are the extruders to use to build infill pattens and support patterns respectively for the material for the extruder that names them. See the description of variables for full details. To turn infill or support off for a particular material, change the appropriate material field to be called "null" (without the quotes).


The RepRapPro Slicer software allows you to set different layer heights for different extruders (which may correspond to different materials, or different settings for the same material). This allows you, for example, to outline an object with a very fine layer height (thus reducing the staircase effect on surfaces and producing much smoother vertical faces) whilst infilling with a much coarser height, thus working faster.

To use this start by getting the machine working well with all extruders set to have the same height. Choose a height that is easy to subdivide (such as 0.24 mm or 0.36mm) rather than one that isn't (such as 0.25 mm). 24 and 36 have many more prime factors than 25.

Then, to plot outlines as fine layers, select the default outline materials (PLA or PLA-no-support) from the Variables Menu, and set their layer heights to the value you want - say 0.12 mm.

That is one-half the height you used to get the machine working (0.24mm), so also set Extruder0_ExtrudeRatio(0..) to 0.5. This will extrude one half the material for a given distance than it did before.

Finally, you may want to increase the value of Extruder0_SurfaceLayers(0..N). This will ensure that upward and downward facing surfaces get finely infilled to a sufficient depth to give a good result.

You must always set extruder heights to simple integer multiples of each other. Thus if the thickest material is 0.24mm thick, others can be 0.01, 0.02, 0.03, 0.04, 0.06, 0.08, 0.12 and (of course) 0.24mm thick.

In practice, you will find that some objects won't print well with a layer height much less than 0.1mm because so little material is coming out of the nozzle for that that the bridging of overhangs and gaps between the print on the layer below.

Sending the G-Codes to a file

Before you generate a GCode file to send to your RepRap, you must first save the layout of parts on the bed with the "Save RFO" button if you want to keep it.

When you are happy with the layout select "Slice". This will put up another file-selector window to allow you to specify the G-Code file that you want to save the results in.

If you wish, before selecting "Slice" you can select "Show paths when slicing". This will open a graphics window that will show the paths that the machine will follow to make each Z-slice of the objects being printed.

You can also select "Pause between layers". This pauses the generation of output at the end of each layer to allow you to inspect the slice pattern. Then Continue/Cancel buttons will be displayed as each layer is about to be written to allow you to continue or to cancel the whole process.

If you have debugging turned on (See Variables) then comments will be written into the GCode file saying what each line does. That will more-or-less double the size of the file. If you turn debugging off you will get almost no comments: a couple of header comments will be written into the file saying when it was computed and how big the object being printed is, and a comment line will be written at the start of each new layer to track that.

When the GCode file has been written, the program will exit.

To print your GCode file that you just generated on your RepRap machine, see this page.

Saving as an OpenSCAD file

The "Save SCAD" button allows you to save the set of parts you've laid out on the tray as an OpenSCAD model.

It prompts you to specify a directory. All the STL files you have on the tray are copied into that, then the software creates an OpenSCAD program in that directory that moves the STLs to the right place and takes their set union. That is to say, the entire tray is then a single OpenSCAD object, which you can, for example, then write out as a single STL file.

Note that this will not preserve colour/material information.