Tuesday, February 21, 2012

3D Printing Software is Great!

A while back I had some terrible experiences using 3D printing software. Since then though, it has improved substantially! Because of my blog post a guy named Kliment started to work on improving the software. He wrote Printrun from scratch, which is a python based package containing code to communicate with your 3D printer. It also has a nice GUI frontend called "pronterface" which will make the experience even better. Even for beginners!
  • printcore.py is a library that makes writing reprap hosts easy
  • pronsole.py is an interactive command-line host software with tabcompletion goodness
  • pronterface.py is a graphical host software with the same functionality as pronsole

More info here as well.

I have been wanting to write about this for a while, but there has been so many improvements in short bursts, so as soon as I would have started, new cool things would have been added.

Just look at these screen shots:


Man that is sexy! The red lines in the middle there are also updated while printing so you can see where its at.


You are also able to click the middle area and get a new window where you can navigate through all the layers by scrolling the middle mouse wheel. You can also move around and zoom in and out in the grid with the mouse.

A long wanted feature was to show estimated time. Even when first reading the gcode, it gives you an estimate (which usually is quite correct. Just maybe a minute or so off). It will also show you the estimated time during print, and this will be updated during print, making it more accurate the longer it shows.

Before you use this program however, you need to take your 3D object and "slice" it up. For that there now exist a heavy updated and simplified program called Slic3r. Although, you can also use Slic3r through Pronterface! It's a simple program with many of the neccessary settings you want to tweak. There is also a trimmed down skeinforge program called SFACT, but personally I prefer Slic3r.

Here are two screenshots from the program:

Print Settings tab:

Printer and Filament tab



Here is a great blog about 3D printing and about Slic3r settings.

Slic3r is Nicer - Part 1 - Settings and Extruder Calibration
Slic3r is Nicer - Part 2 - filament and printing
Slic3r is Nicer - Part 3 - How low can you go?

Slic3r fill information can be found here.

After being on reliable skeinforge, I thought it was time to test Slic3r, as that is simpler and does a better job at creating great gcode. It's also faster generating that gcode data. Out of the box it was quite cool, although I had some flow issues. However, just the generation of the code went from minutes to seconds using Slic3r compared to skeinforge. The generated code was also cooler, as the movement was better. You can even specify % of slower speed for the first layers, to let it all settle and get a nice extrusion flow. After the first layer, the movement was just a joy to look at, compared to what I had in skeinforge. I will keep my skeinforge settings, and really, after coping over common values to Slic3r I ended up with a real, clean, and nice print!

I had start code which would:
1. Start heatbed (as soon as possible as this takes the longest time)
2. Home X and Y.
3. Wait for heatbed to reach temperature (say 70C), but I want to reach 80C so,
4. Heat extruder, and continue the heatbed to target.
5. When heats are reached for both, home in Z.
6. Print!

However, with a mix of Marlin firmware and Slic3r adding temperature gcode as well, there were issues with actually starting the print. It seemed to never continue even though the temperatures were reached, so I removed all that temp code added by Slic3r and went back to Sprinter firmware and it worked! I also simplified to:

1. Start heatbed (as soon as possible as this takes the longest time)
2. Home X and Y.
3. Wait for heatbed to reach temperature (80C).
4. Wait for extruder to reach temperature (225C).
5. Home in Z.
6. Print!

UPDATE: Setting temperature to 0 in Slic3r will make Slic3r not add any gcode for setting temperature, which is perfect, as I do that in my start code myself.

So, currently, I'm using Sprinter as firmware, Slic3r so slice up the 3D object(s), and pronterface to print and work with the 3D printer. Works great!

1 comment: