Category Archives: Slicing

Ultimaker Cura Adaptive Layers – Reduce Printing Time Without Sacrificing Quality

In Ultimaker Cura v3.2.0, a new feature has been introduced called Adaptive Layers. This feature is a great way of reducing print time without sacrificing print quality.

The Adaptive Layers setting will automatically adjust the layer height throughout the object depending on the geometry of what’s being printed. Areas with significant curves will be printed with thinner layers, while areas without significant variations will be printed with thicker layers. This way, curved surfaces still look nice and smooth, but the overall print time is less than it would be if you just used a small layer height for the entire object.

In the video we produced to demonstrate this feature, we printed a chess piece with and without the Adaptive Layers setting. Without this setting, the print took 2 hrs 13 min. With the setting enabled, it took 1 hr 33 min – a reduction of 40 minutes (30%).

Check out the video demonstration here:


To use this feature, you must have Cura v3.2.0 or later. You can download it here:

Then, follow these steps:

  1. Make sure you’re in “Custom” mode, not “Recommended” mode.

2. Go to Preferences / Settings, and use the search box to find the Adaptive Layers settings and enable them.

3. Setup your print job and select the Adaptive Layers setting under the “Experimental” settings group.

4. Optionally, configure the advanced Adaptive Layers settings:

Adaptive layers minimum variation: This setting controls the maximum allowed layer height difference compared to the base layer height setting (as defined under Quality / Layer Height).

Adaptive layers variation step size:  The difference in height of the next layer compared to the previous one.

Adaptive layers threshold: Determines how likely thinner layers will be used. Smaller values result in more thinner layers, while larger values result in a tendency toward thicker layers.

5. After the print job slices, change the view mode from “Solid object” to “Layer view”, and change the color scheme to “Layer thickness”

6. Print!


How to Prepare Objects for SLA Printing

When printing objects on an FDM 3D printer (those that extrude melted material through a nozzle), the slicing software will take any solid object in STL format and automatically create an infill pattern according to your settings. This way, you can determine how solid you want the object to be in order to obtain the ideal balance between material usage and object strength.

With an SLA printer (those that use a laser or other light source to cure a photopolymer resin), the process is a little different. If your STL file is a solid 3D object, then the printer will print it solid, using far more resin than necessary.

In order to optimize an STL file for SLA printing, you’ll want to do two things:

  1.  Hollow out the object
  2.  Add draining holes on the bottom of the object (so any resin trapped inside can be drained out after printing, and so the alcohol used for cleaning the part can flow throughout the inside of the object)

First, you’ll want to download the free Autodesk Meshmixer software (available for Windows and Mac). You can download it here.

Open Meshmixer and click on Import to import your STL file.

Rotate your object so you can see the bottom (the part sitting on the print bed). 

On the View menu, uncheck “Show Printer Bed” so you can see the object bottom clearly.

Click the Edit button in the left-hand toolbar, then click on Hollow.


Configure the settings as desired. The Offset Distance determine how thick the object’s walls will be. 2mm is a good setting in most cases. I suggest setting “Holes Per Hollow” to 2 (which will create 2 holes for drainage) and “Hole Radius” should be at least 2mm in most cases. Then click on Generate Holes, and you’ll see red spheres that appear on the object to indicate where the holes will be placed. You can click and drag these red spheres to reposition the holes. Place them on the bottom of the object, preferably close to the edges, so it will be easy for the resin trapped inside to drain out.

Your object will now be hollowed out, and you will see holes in the bottom of the object where you placed them.

Now just choose Export from the File menu, give your new file a name, and select STL Binary as the file format. Load that file into your printing software for your SLA printer, and you’re ready to print!

Looking for a high quality, affordable SLA printer? Check out the XYZprinting Nobel 1.0A!

Ultimaker Announces Major Improvements for Cura Software

Today, Ultimaker announced some major upcoming improvements to their Cura software, which will be called Ultimaker Cura moving forward. The next version of Ultimaker Cura will be launched on October 17th, 2017. This version will feature seamless integration with SolidWorks and Siemens NX CAD software. It will also feature a new plugin platform allowing third-party developers to more easily create new plugins for Ultimaker Cura.

Even more exciting is something called Cura Connect, which will be added to Ultimaker Cura on November 7, 2017. Cura Connect will allow users to queue multiple print jobs for their Ultimaker printers. More importantly, it will enable the management of multiple Ultimaker printers. For example, if a university has a print farm with 20 Ultimaker printers, a user can queue up a print job, and Cura Connect will automatically identify which printer has the appropriate material loaded and will queue the job up for that printer.

The Cura Connect solution operates entirely within the local area network and does not require outside Internet connectivity. This means that in most cases, the IT department will not need to be involved with enabling the solution.

This opens up significant new possibilities for small-scale manufacturing and other commercial applications. Many companies are weighing the choice of buying a single SLS 3D printer (at a six-figure cost), or purchasing dozens of Ultimaker printers. With the addition of Cura Connect, the latter option is looking a lot more attractive.

To download Cura software, visit:

To shop for Ultimaker printers and products, visit:

Using Simplify3D to Print an Entire Cyborg Beast Prosthetic Hand on a Single 6 x 9″ Build Plate �

I recently taught my wife how to setup 3D prints using Simplify3D. She’s a natural and was setting up her very first print job within 10 minutes, with me helping only with verbal pointers from time to time.

2014-06-09 10.48.15 pm

These days, most of what I print is prosthetic limbs, so I was teaching Alina how to setup a print job for a Cyborg Beast e-NABLE Hand. It’s a pretty advanced print job to start off with. For best results, the support material needs to be customized so it only goes in specific places, which Simplify3D allows you to do, as shown here.

As if this print job wasn’t challenging enough already, Alina proposed something really interesting. I normally print a Cyborg Beast in two print jobs – one for all the hand parts, and another for the “gauntlet” – the part that fits over the arm. As Alina was setting up her very first print job, she asked if we could just position the smaller parts underneath the bigger parts. We did a test, and it came out surprisingly well! Check out the video (10 minutes) here.

To make a 3D printed hand for someone who needs one, please visit:

To buy Simplify3D, please visit:

To buy a FlashForge Creator X, please visit:

To buy a kit with the assembly materials you need to make your own Cyborg Beast 3D printed hand, please visit:

Review of Simplify3D All-in-One Software for 3D Printing

Simplify3D is designed to be a complete solution for 3D print preparation, and has features not found in other popular slicing programs. It also has a price tag of $140, with no evaluation version available, which makes many people hesitant to give it a shot.

To help with your buying decision, check out our four-part video review on YouTube:

Part 1 provides a 20 minute overview of what Simplify3D has to offer:


Part 2 shows a specific use-case where the custom support features of Simplify3D prove to be especially useful:

2014-05-24 02.01.41 pm

Part 3 demonstrates how the visualization features of Simplify3D can be used to avoid failed prints:

2014-05-24 02.06.21 pm

Part 4 shows how Simplify3D customized support allows for “stacking” parts, positioning smaller parts underneath the overhanging portions of larger parts:

2014-06-15 11.35.17 am


Purchase Simplify3D now at

Using Slic3r with a FlashForge Creator, Creator X, or Creator Pro

The FlashForge Creator family of printers are great printers for the price, but over the past several months, I have had to solve a number of problems and research a lot of answers in order to get everything working as I wanted. Some of these answers were easy to find, but others don’t seem to be addressed anywhere. I intend to summarize here the results of my testing and calibration, which will be most useful for those using a FlashForge Creator, Creator X, or Creator Pro.

My setup:

  • Flashforge Creator and Creator X (dual extruder models)
  • Sailfish firmware v7.6
  • Windows 8.1
  • Slic3r v1.1.7

Note: While this post shows how to set this up on Windows, I’ve posted a video tutorial that shows how to install on Mac OS X.

As outlined in a previous post, I spent a good deal of time testing out various slicing software. I was having a few issues with Slic3r (all of which were eventually solved and will be addressed here), so I went on to try Makerbot Makerware. The latest version does seem to handle the latest Sailfish firmware okay. Overall, the results were good, and I started to shift to using Makerware as my default software for slicing and generating the x3g files needed for printing. But after lots of further testing and careful comparisons, I became convinced that Slic3r has a more elegant slicing engine and produces higher quality results at better speeds, giving you more control along the way. It also produces more effective support material than Makerware. So, determined to use Slic3r, I went back to solve the problems I had run into previously. Hopefully, the following will save others with a FlashForge Creator or Creator X from having to invest as much time in this process as I did.

I recommend first installing the latest Sailfish firmware and following the Sailfish installation, setup, and tuning guides.


Setting Up Slic3r for a Flashforge Creator, Creator X, or Creator Pro

Download and install the latest stable version of Slic3r. Make sure you’re in “Expert mode” (File, Preferences).
Use the Configuration Wizard, or manually configure the printer settings. You’re going to want at least two printer profiles – one for single material prints and another for dual material prints. This is because we’ll use different Start and End G-Code to handle the appropriate number of extruders.
Choose “Sailfish (Makerbot)” for “G-Code flavor” and set the print bed dimensions (X=228, Y=150).
Set the number of extruders to 2.

Custom G-Code (Single Material Prints – Right Extruder)

Under “Custom G-Code” in your single material printer profile, try using the following. I like my G-Code to be well-documented for later reference, hence all the comments at the beginning.  Feel free to remove any line starting with a semi-colon.

Start G-Code:  start_gcode_single.txt
End G-Code:  end_gcode_single.txt
This Start/End g-code incorporates fixes for a number of issues I was having that seem to be related to the particularities of a Makerbot type printer.
In summary:
  • Slic3r’s default g-code wasn’t setting temperatures properly for my machine. This g-code uses the proper M-commands for the FlashForge and utilizes the Slic3r variables to fill in the temperatures you have set for the first layer.
  • Note the use of the “[first_layer_temperature_0]” variable. I couldn’t find this documented or addressed anywhere, but I tried something and got lucky. The variable seen in all the documentation and the Slic3r .ini files is “[first_layer_temperature]”, but on my dual extruder printer, that was returning two numbers separated by a comma. So the resulting g-code would be M104 S225, 225 T0 (which doesn’t compute). On a whim, I decided to try “[first_layer_temperature_0]” and found that yes, this will return just the value for the first extruder (and “[first_layer_temperature_1]” is for the second extruder).
  • The default Start g-code used a simple purge routine to extrude some plastic in a corner of the build plate before starting the job. I found that sometimes, especially if there was some oozing plastic already hanging on the extruder nozzle, the blob of plastic created by this initial purge routine would get caught on the nozzle and would then get dragged along, interfering with the first layer of the print. I greatly prefered Makerware’s approach, which extrudes a thin line of plastic along the front edge of the build plate before starting a job. It has a tendency to wipe off any oozing plastic that was already on the nozzle so you get a nice clean start to each print. I analyzed some g-code from Makerware and incorporated the appropriate bits here, with some modifications (i.e. it uses Slic3r’s “[first_layer_height]” variable.)

Custom G-Code (Single Material Prints – Left Extruder)

Start G-Code:  start_gcode_left.txt
End G-Code:  end_gcode_left.txt


Custom G-Code (Dual Material Prints)

Under “Custom G-Code” in your dual material printer profile, try using the following:
Start G-Code:  start_gcode_dual.txt
End G-Code:  end_gcode_dual.txt
And for Tool-Change G-Code:  tool_change_gcode_dual.txt
In summary:
  • Same use of temperature variables as discussed previously. Note the use of both “[first_layer_temperature_0]” and “[first_layer_temperature_1]” for the first and second extruders, respectively. These temperatures are determined by the material you’re using, as defined in the Filament profiles within Slic3r.
  • The same improved purge routine dicussed above, but modified so that it is repeated for each extruder. The second extruder uses a Y value that’s +1, so it lays the filament down right next to the filament from the first extruder.
  • Tool changes for dual extrusion prints weren’t working for me. When I looked at Slic3r’s g-code, I found that it was using “M108 T0” or “M108 T1” to change extruders. Looking at g-code from ReplicatorG/Skeinforge, I saw that the Makerbot type printers seem to be looking for a simple “T0” or “T1” and don’t seem to recognize the M108 commands. Using the above “Tool-Change G-Code” takes care of this issue by inserting the appropriate commands before each tool change. The M108 commands are still in the g-code, but they just get ignored by the printer.

Converting from G-Code to .X3G Using GPX as a Slic3r Post-Processor

You can download the GPX utility from here. Place it in a directory of your choice.
I found that if you just place the GPX executable into the “Post-processing scripts” field in Slic3r, it doesn’t work the way I want it too because Slic3r doesn’t let you pass command-line arguments to the script (for security reasons). To get around this, I created my own little Perl script to call GPX with the options I want.
If you don’t have a Perl interpreter installed, you can get one here.
In Slic3r’s “Print Settings” under “Output options”, I use the following for “Post-processing scripts” (modify according to where you have Slic3r installed):
D:\Slic3r\ is as follows:
#!/usr/bin/perl -i
use strict;
use warnings;
use File::Basename;
use Win32;
my $fname = $ARGV[0];
my ($name, $path, $suffix1) = fileparse($fname, qr’\.[^\.]*’);
my $shortname = “$name$suffix1”;
my $shortpath = Win32::GetShortPathName($path);
exec “D:/gpx-win32-1.3/gpx.exe -g -p -m r1d $shortpath$shortname D:/Dropbox/3DPRIN~2/$name.x3g”
You’ll need to modify the last line according to where you have gpx.exe and where you want the .x3g files placed.
This will call GPX, tell it that we’re using a Replicator 1 Dual (which is basically what the Flashforge Creator is), and tell it where to place the .x3g file. I like having all of the resulting .x3g files go into the same directory so they can then be easily copied to the SD card for printing.

Closing Comments

During testing, I discovered a couple of minor software bugs. I reported them to the developer, and he had them fixed within a few days!
Slic3r is excellent software, and has been released to the community free of charge. If you find the software useful, I encourage you to make a donation to support the hard work Alessandro is doing.
Have a Flashforge Creator or Creator X and know a better way of doing anything covered here? Post it in comments.
Good luck!

3D Printed Architectural Design Brings an Idea to Life

As I’ve said before, 3D printing has the power to bring ideas to life in a very real way. Here’s an example of how well this works for the smaller ideas as well as the big ones.

For the last 4+ years, my mom has owned and operated a wonderful vegetarian café in Woodstock, IL, called Expressly Leslie Vegetarian Specialties. You can check it out here.

We recently discussed possibilities for creating a Health-Department-approved production kitchen in her home so she could prepare certain dishes on a larger scale than what she can produce at the current café.

She laid out a design for a small production kitchen that would fit in a corner of her basement, and drew the following for me as an illustration:

Initial sketch of a design for a small production kitchen
Initial sketch of a design for a small production kitchen

I decided to surprise her by not only designing a 3D model of her concept kitchen, but also 3D printing a physical model of it for her. So I did a bit of searching and found a free piece of software for designing homes (or rooms in this case) that is able to export in a standard 3D file format. Using SweetHome3D (link below), I put together the following according to her instructions:

Production Kitchen Design - 2D View
Production Kitchen Design – 2D View
Production Kitchen Design - 3D View
Production Kitchen Design – 3D View


SweetHome3D lets you export as a Wavefront OBJ file. But when you export a room by default, it does not include the floor, which I wanted in my print. To get around this, I created a “wall” but set it to only 2″ high and with X and Y dimensions slightly larger than the rest of the room. Then, I edited the properties for each object in the room to increase the elevation value by 2″ so it would sit on top of the floor. There might be a better way to do this in the software, but I couldn’t find it, and this worked well for my needs.

I then used Blender (link below) to import the OBJ file and export it as an STL file. From there, I brought it into Slic3r and prepared it for printing.

And here is the result:

3D Printed Model of a Small Production Kitchen Design
3D Printed Model of a Small Production Kitchen Design

As is common with objects with large, flat surfaces like this one, there were some problems with warping and delamination. I treated those the best I could by brushing on a bit of acetone to seal those gaps as they appeared, but some of the issues occurred while I was sleeping and are still visible in the final print.

After printing, I treated the whole thing in an acetone vapor bath (using a large deep fryer and a version of the method outlined by Austin Wilson and Neil Underwood here.)

A time-lapse video of the print can be found here.

The model I used for the 3D printed sign on the font can be found here. Model credit: Steven Morlock

SweetHome3D software can be found here.

Blender software can be found here.


Fun with Slicers

I recently bought a Flashforge Creator 3D printer from Amazon. It’s essentially a Replicator 1 Dual with a different name. The first thing I did was update the firmware to the latest version of Sailfish firmware, currently v7.5 (

After that, it was a matter of getting everything calibrated and determining the optimal settings for slicing models (that means preparing them to print, for those not familiar with 3D printing). As anyone who has explored 3D printing knows, there are a lot of software options available for processing and slicing models, and none of them are perfect. I spent many days thoroughly testing and experimenting with three different slicing engines, so I thought I’d share some of my experiences for others who might be in a similar situation.

Approach #1: ReplicatorG with Skeinforge 

First, I used ReplicatorG with Skeinforge (as recommended for the Sailfish firmware). Skeinforge is a great slicer with lots and lots of configurable options. However, it is several years old and hasn’t really kept up with the rapidly increasing size and complexity of 3D models being processed. After lots of tuning and testing, I managed to get great quality prints at pretty fast print speeds (80-150mm/s). However, I then discovered that Skeinforge has a tendency to crash with out-of-memory errors when trying to slice larger or more complex models. It’s also the slowest of the slicing engines I tried.

ReplicatorG can be found here:

The Sailfish firmware, which includes the latest version of ReplicatorG, can be found here:

Approach #2: Cura

When I tried out Cura, after reading positive things about it, I was thrilled with the interface and the speed. It’s definitely the best overall user experience of all the tools I’ve tried. However, Cura does not yet seem to be aware of the acceleration capabilities of the new Sailfish firmware. The result is that, even after calibration, the printer’s movements tend to be overly jerky and the resulting print quality suffers significantly. Sadly, I had to put Cura aside until that changes.

Cura can be found here:

Approach #3: Slic3r

Finally, I moved to Slic3r v1.0.0RC1. ReplicatorG does have the ability to select Slic3r as the slicing engine, but the version of Slic3r included in the ReplicatorG package isn’t the latest. This is unfortunate, because ReplicatorG not only slices the STL files (3D models) and converts them to g-code, but also converts them further into the x3g format required for my printer (and other Replicator models).

Luckily, I was able to get GPX working as a post-processor within Slic3r. I’ll post more details about this some other time, but GPX is a command line tool for converting g-code files into x3g format, and it can be called from within the Slic3r program (or from within Cura).

Once this was setup, I went through another extensive round of testing and calibration. Slic3r isn’t as fast as Cura, but it’s faster than Skeinforge. Like Skeinforge, Slic3r gives you lots of options for controlling speed and other factors that affect print quality.

Now that I’ve got everything pretty well optimized, I’m getting great quality prints at good speeds. The Slic3r / GPX combination is working great. In a future post, I’ll share details about the specific settings I’m using, as it may benefit others using a Flashforge Creator or a Replicator 1 Dual. Others may find some useful information also, but keep in mind that settings are always going to be very specific to the type of printer used. They also vary based on the type of filament used, environmental conditions, and other factors, so you’ll need to do your own testing to see what works for you.

Slic3r can be found here:

GPX can be found here: