Showing posts with label print quality. Show all posts
Showing posts with label print quality. Show all posts

Thursday, 8 January 2015

Slic3r - Advanced perimeter tuning - 3D Printing tutorial

Sometimes you need to have more control over the way your 3D printer wants to print an object. This tutorial provides an example of how to change and optimise perimeter widths, to make the most of part strength or surface finish. I'll also give some examples of output Gcode and point out what to look for in selecting 'good' 3D printing tool-paths.

For this tutorial we are using Slic3r Version 1.1.7, but any recent version has the same ability to manually define the width of a printed perimeter.


Slic3r, Cura, Simply3D, Craftware and other applications 'slice up' our 3D model and converts it into layer-by-layer Gcode (instructions a 3D printer can understand). For any 3D printer that uses a filament (FFF/FDM) to create a model, it's quite important how the gcode instructions are sequenced, and also what order each section of every layer is printed.

Slicing programs are constantly evolving better algorithms to do a smarter job of model and tool-path creation, but most will not always produce an optimal print path for every type of model, or 3D printer configuration.

I documented this tutorial after experimenting with a new material that had some particular properties causing material expansion (oozing). I wanted to make a very clean printed tool-path as the object was a set of herringbone gears that needed to mesh well with each other. After doing a test 'slice' it was clear that some manual settings were required to print the object how I wanted.

Herringbone Extruder Gear set - Printed with a special PLA+Kevlar+PTFE composite material 

The new Colorfabb material - is a Kevlar+PTFE composite material mix that is so slippery it shoots out the nozzle and has some tendency to ooze. I wanted to test wear resistance so an ideal object was a set of printed herringbone extruder gears. I'm not sure if/when Colorfabb will release this material, but if you get hold of any I suggest an extrusion temperature of only 155 Degrees C, this dramatically reduced ooze and helps to get really clean prints, if you also take the advice in this tutorial.

I almost always look at the output gcode produced by a slicing program before I hit print. Quite often I will adjust the settings after looking at the print path, and also how the material was planning to print out for certain aspects or features of the model.

For viewing the output gcode tool-paths I use Repetier-Host. It generates a clear way to visualize the plastic filament per layer, and also the movement path the extruder hot-end will take, to complete each layer. This is really useful to get an idea how a model will be printed on your machine. It also gives you an approximate print time, so again this is useful to compare print settings with gcode output and print time.

For this tutorial we are going to be using the Advanced tab under Print Settings, see below.
As standard, Slic3r defaults to automatic extrusion width for all tool paths, apart from the first layer width. This is made twice as wide in an attempt to get the first layer to stick, and also to reduce time as the first is almost always printed more slowly than subsequent layers. Having a 200% increase in first layer width is also not always a good thing, especially if you need fine feature detail from the very first layer or want a nicer looking base.

After slicing your model with the standard automatic settings above, take a look at what extrusion widths Slic3r automatically selected for you. You can do this by opening the .gcode file in almost any text editor or by loading it into Repetier-Host.

This is just an example below - your numbers will be different and depend on the version of Slic3r.

; generated by Slic3r 1.0.1 on 2014-10-11 at 19:03:23

; layer_height = 0.25
; perimeters = 2
; top_solid_layers = 4
; bottom_solid_layers = 3
; fill_density = 0.45
; perimeter_speed = 75
; infill_speed = 80
; travel_speed = 320
; nozzle_diameter = 0.58
; filament_diameter = 2.88
; extrusion_multiplier = 1
; perimeters extrusion width = 0.58mm
; infill extrusion width = 1.18mm
; solid infill extrusion width = 1.02mm
; top infill extrusion width = 1.02mm

You will see at the top of the file a set of parameters, some you entered or selected and many of the widths Slic3r selected for you.

This guide is a focus on perimeters, but it equally applies to any other aspect of the printed line width (infill, first layer, top, support material etc.) With many objects, by specifying exact widths of printed perimeters you can get cleaner and stronger printed objects.

Slic3r uses automatic calculation if set to '0'

For the purposes of this tutorial my 3D Printer nozzle size is 0.58mm and the selected layer height is 0.2mm - I have previously tuned the top solid and first layer extrusion width. I also leave others to default '0' (automatic) settings.

In this tutorial the only thing we will be altering is the perimeter width from the default '0' (shown above), all other settings stay exactly the same so you can see the impact one change has on the resultant print-tool-path.

As standard Slic3r decided the best width of extruded filament to use from the nozzle size and the layer height you entered in the basic information about your 3D Printer. For printing at different layer heights Slic3r will adjust automatically but sometimes the automatic width produces an output tool-path that's not ideal, lets look at an example below.

When I sliced (with Slic3r Version 1.1.7) my usual herringbone gear set and looked at the output gcode using Repieter-Host. I noticed that it was attempting to do a lot of little infill lines and also had only part perimeters where I wanted as many solid perimeters as possible.

Slic3r (and most other gcode engines) give you a level of control over how wide or fine each extruded line is, for a given layer height.

In all images below we will view exactly the same layer of the model or stack of layers, this way we can compare exactly what the Slic3r perimeter width setting is doing to our print-tool-path.

Fig 1 - Shows in blue how the plastic material will be deposited for Layer 25 of our model. This gear is quite small, diameter across from tooth-to-tooth is about 18mm.

Fig 2 - Shows a close up of the same layer and path, lets take a closer look at what this is telling us.

The green line is the path that the extruder nozzle will take to draw (deposit) the material on this layer. As you can see above, the nozzle jumps across each gear tooth to fill-in a tiny square in every tooth. It also has a section of short fills in one of the middle layers for no obvious reason other than it calculated that the material could not fit. A series of short gaps were required so as not to pack-in too much material.

If this model was printed using the Fig 2 gcode, especially with any material that's prone to expansion, oozing or foaming (like the new Polymakr - Polywood, for example) it will most likely have wisps of material between the teeth and not be a very clean print. You can alter other Slic3r settings to limit crossing of perimeters, but for many other reasons, it's just too hard to combat every issue just by altering other settings, like retraction or sequence of printing. Manually tweaking the perimeter width gives a lot of control. 

With printed gears it's a good idea to have a high level of infill and also many perimeters to add strength to the outer surface. If you can't do many outer perimeters because of a small teeth (features) - like out small gear above, then a fatter single perimeter is often better (and stronger) than a thin wall and a blob of infill.

Skipping forwards, below in Fig 3a - shows a comparison of the first 25 layers sliced with an automatic (0.58mm) perimeter and also a tuned 0.86mm perimeter.


On the left (0.86mm) machine movements are kept inside the gear teeth and the overall number of movements and extruder retractions is dramatically reduced.


Fig 3B - Above is a side view of the first 25 layers, this shows clearly how the wider perimeter produces a cleaner tool-path for the model print.

But how and why did I select 0.86mm as the ideal width? - well that still requires some trial and experimentation. You can't just guess as the next set of images below will show.  

As Fig 4 above shows,  Slic3r often does things that are not always expected, so you do need to test various widths before deciding on a suitable fit for the model you are going to print.

Analysis of each Fig 4 - image - 

Above we can see various perimeter widths (using the same model layer to compare).

0.6mm = Is almost ideal, but has a bigger gap between inner perimeters and outer, this can produce unconnected walls and a weaker part - this can sometimes also be fixed by changing the level of infill.

0.70mm = Inconsistent sections of infill and many travel / retraction moves, not ideal.

0.80mm = Jumps between gear teeth with travel moves and inconsistent infill, don't use.

0.82mm = Similar issues but now the infill is consistent and equally spaced.

0.84mm = Still has infill in the teeth and a jump across each tooth.

0.86mm = Perfect! - this has equally spaced infill and a single strong perimeter that will be fixed very well to the inner infill. Very few travel moves and almost no retraction.

0.88mm = Just 0.2mm more and we have inconsistent infill and gaps.

0.90mm = This will produce a tiny gap between the inner two and outer two perimeters and a weaker part than the 0.86mm.

The printed small gear using 0.86mm perimeter is strong, clean and will wear well in use.


Don't assume that selecting a bigger width is correct or will always improve things, often going smaller is also valid, especially for bigger parts.

I usually start tuning by selecting wider than default widths as they will reduce printing time, but if that's not working for your model, then go thinner.

As an example the matching larger herringbone gear (shown below) was perfect at the Slic3r Default (0.58mm) setting and also at a width of 0.90mm, everything in between was less than ideal.


Both 0.58mm and 0.9mm would print well. For a material like the Colorfabb Kevlar+PTFE composite that expands on extrusion, the 0.90mm was ideal because it's depositing material quicker with less movement and has solid circular infill.



I first printed (Fig 5 - above) to show how the unequally spaced infill shown in the 0.82mm image looks when printed - here you have a gap between inner and outer perimeters. The gear is considerably springy due both inner and outer perimeters not being joined. I'm sure there may be applications when you would actually want a springy gear, but not this time.



Next the printed plate of four large gears in PLA using the 0.58mm default.


Fig 6 - Shows a close-up (during half the print) of the 0.58mm print, showing three very neat and solid inner and outer perimeters joined well. This will give an ideal 3D Print for this object.

You can also see that all the other widths have various issues we have already seen, so don't use.

- Summary and general tips and tricks - 

As a general guide for most prints I tend to use a 0.5mm or 0.6mm  nozzle at 0.2mm layer height.

With low layer heights it is possible to make the width of a line smaller than the nozzle size, but that's not really always recommended.

It's more common to have a scale factor of around 1.5x the nozzle size for line width.

For example a 0.5mm nozzle will extrude correctly with a layer height between 0.1mm to 0.4mm layers. You can go for an even smaller layer height if desired, but balance that with time to print and final quality.

Some materials can be used with a ratio of almost 1:1 for nozzle width. For example PET materials like Taulman Tglase and Colorfabb_XT will benefit optically from thick layers that are not too squashed.

And for the maximum width, it's usually good to stick to under 2.2x the nozzle size.

It's always a good idea to look at the output Gcode that Slic3r generates, even if this is only once to see what sizes of line widths it has decided, if you leave the advanced settings as automatic (0)

As another example when generating spiral vase (single walled perimeter) prints I often see people leaving the default size for perimeter, that's fine but it often ends up with a delicate thin walled object, when really a fatter wall would be much more robust for handling the object after printing.

Instead of a 0.6mm perimeter you'll be amazed how well a 1.2mm or 1.4mm thick perimeter feels and looks to a finished 'spiral vase' object. It almost always makes the print more useful too.

I'm a big fan of bigger nozzles, I often print with a 0.8mm or even a 1.2mm nozzle especially with bigger objects. You can still get a lot of detail and a fine finish even with a bigger nozzle. Just make sure you have an extruder drive that can keep up with material flow demand, or slow down.

If you get a chance, do try this out where appropriate, tuning of width is still not yet an automatic feature in slicers so until we have more auto-intelligence, doing it by hand can give some very impressive results.


Slic3r Reference -
Slic3r is an open-source 3D model to Gcode converter (slicer), it's main author is Alessandro Ranellucci with contributions from the 3D Printing community. You can find out more about Slic3r and download it from Here.

Slic3r is licensed under the GNU Affero General Public License, version 3

The Slic3r icon was designed by Corey Daniels



I hope you found that of some use.

Did you read it all? - too long? complicated? not enough examples? or just right :)

Remember to give me some feedback, It's always good to know if this sort of post helps.

If you would like to see more tutorials and 3D Printing advice, do let me know. Especially if you have a specific area or focus, either materials, methods or on design etc. Leave a comment below, or catch me on Twitter @RichRap3D or Google+ Here


And a little late, but Happy New Year everyone - until next time.

Rich.

Friday, 7 October 2011

The 'Art' of failure - When 3D prints go wrong and lessons from failure

Everyone has the odd bad print or failure that results in something interesting or frustrating depending on how urgently you needed the part to print.

Here are some of my failures and tips on how to avoid them and lessons learnt. (And if you can help me explain what happened last weekend to one of my PLA filament rolls I would be most interested - see at the end).

It may sound odd, but it's really essential that you fail when doing 3D printing, It tells you so much about your machine, the boundaries you can operate in and how good or bad things can be. If all you do is print with safe settings or never play with the electronics or firmware the you are missing so much of this wonderful project.

You also can't just be told what settings to use and how fast to run etc. you need to feel how your particular machine works and what it's capable of. So experiment, and when you think you have the perfect settings, turn down the extruder temperature until your filament drive fails, that's then a good reference point.
Also increase print speed until your hot-end can't keep up even with a few tens of degrees C hotter than you think you should be running, that's another good reference point.

Below are a few of my print failures during the summer, and some reasons for the failure where I know what happened.

My most common form of failure with ABS is the hobbed bolt filament transport getting jammed up.

Usually there are two reasons for this -
If you print too fast for your hot-end to keep up melting the plastic then usually after the first slower layer layer it will start to jam and grind the filament in the hobbed bolt teeth, then you need to clean it all out.

I have also observed hobbed bolt jamming from using too much extruder reversal when printing lots of small complex parts (a set of many gears for example), the extra too-and-fro on the filament can cause grinding and jamming, but not with all ABS.
I have discovered that some of my ABS needs to be printed at a slower rate to stop this from happening, other ABS I can print faster and I don't get any problems. ABS for me is generally more of a pain to print with.

Pink ABS - This failure was inadequate heating in the hot-end for the speed of solid fill - Solution for me was to use a different hot-end design so I could print faster and get better heat transfer into the filament at speed.

ABS from China Orange - Printing too fast, this part is quite hard to print, it has a very small base to secure it to the heated bed and it's quite small so it prints too-quickly.

On the left it's printed as a shell, (80mm/sec) total disaster, the warp is significant as the layers have no time to cool and they just make a mess, eventually the extruder nozzle will kick the part off the heated bed.

On the right the same part but printed with infill, and 50% slower (40mm/sec), similar problem really, the part was kicked off the bed at this point.

When you print a small object too fast it's odd watching prints that are still mostly molten they bend and move around while more plastic is added, eventually it all ends in failure.

Solution  - Print more than one part at a time, or slow down the print quite a lot, my quick solution was to print the part in PLA, it printed fine at 80mm/sec.

A few things are wrong with this print, but other than the temperature being wrong the main issue was the Y motor had not enough drive current, Solution - Increase motor current on your stepper drive.

I have yet to have a hobbed-bolt failure with Makerbot ABS, only machine failures have caused prints to fail other ABS plastic seems to have very different properties to deal with.


PLA - I love this print - A more extreme version of under current motors, the red lines on the print show where i was playing with the motor current on the steppers, at the bottom the Y motor current is low causing slip every few layers, I then turned it down and you see a regular slip every layer change, I then turned it up to the correct setting and the top printed ok. I let this print finish just for the fun of it,

And it's also an awesome demonstration of overhang! Who needs support material.

This one is the opposite problem, the X motor current is too high also causing part sheer but this is due to the stepper driver overheating and shutting down. If you can identify this is happening, you may need to use a fan on your stepper drives depending on your mechanical make-up and motor type or you may be able to reduce your motor drive current a little.

Parts that are not anchored down really well can pop-off of the print bed, causing havoc and destruction everywhere they get pushed around by your hot-end.
This extruder gear came loose and slid itself into a bigger gear and the print continued for quite a few more layers before I spotted it. 

PLA Starfish, This was my fault, It just ran out of filament during the build! poor starfish.


The other thing you get in 3D printing is lots of bits and outlines, this was less than one month of evening printing.

If only we could recycle it.... one day.

Temperature
Temperature of your hot-end is very linked to extrusion speed and also print quality.
If you print at about 30mm/sec then a lower temperature of anything between 165 to 190 Degrees C is usually fine but as you increase temperature or speed (or both) things start to get interesting.

In this picture you can see the effect of temperature on translucent PLA at a fixed print speed.
The heated bed was 65 degrees C and the print speed is 60mm/Sec.

I started off at 205 Degrees C then increased to 215, at these temperatures the PLA starts to produce loads of tiny bubbles and gives the print a matt and frosted effect. Back to 195 and the PLA looks as you would expect.

Bonus points if you can guess what model this is (check out the reflection).

It's possible to produce nice effects on your models by altering print temperature.

Opaque PLA tends to go slightly matt at higher temperatures and low-to-normal speeds, I don't see evidence of bubbles, but it's hard to tell exactly what's happening.

When I print at over 120mm/sec I need to have Opaque PLA at +225 Degrees C, and translucent at +215 Deg C, at this speed and temperature you do not see the matt/frosted effect in the finished object, I guess that's just down to the limited time the Plastic spends in the heated chamber unless anyone can give a better explanation?

And talking of PLA and temperature - Last weekend I had a roll of PLA shatter on me!
This was one of the last rolls of China sourced 3mm PLA and it's about 4 months old, I keep them in plastic boxes and I have Makerbot Black PLA and Ultimachine White PLA rolls that are much more tightly wound than this PLA from China and they are also in the same sort of boxes, I also had Red and Yellow Chinese PLA from the same manufacturer stored in a similar way and that's still just fine. 

All my other Plastic is stored in plastic bags and cardboard boxes all the time.
Now, here in the UK we have experienced quite hot/cold weather changes for October, so I'm putting it down to that, but I still don't really understand why it happened just to this roll. Over a period of many hours I could hear the PLA 'ping' and shatter into lots of smaller pieces, very odd. It seems to have settled down and some parts of the coil are fine, even the centre section that was more tightly wound?

Hot-end Jamming - 
My only other odd failure was the jamming of hardened filament at the hot-end, this seems happen after many months of printing due to build-up of solid materials, probably because I tend to run PLA hotter and faster than 'normal' which leads me to my top-tip I'm still investigating - 
Top Tip - I would be interested if anyone else has spotted this  - If you start to see very, very fine 'hairs' of plastic on your printed parts for no real reason you can think of, this may be a sign that your hot-end is about fail, from build-up of hard material. I have spotted this on the last two times my hot-end needed cleaning, it will need disassembling and maybe drilling and cleaning out, after that it will be back to normal and work for many more months. as long as the PTFE sleeve or barrier has not degraded, then it will fail again quite quickly - keep an eye out for the 'hairs'

Some questions for you -
What's your best failure or most spectacular!
Any tips for testing the boundaries of your machine and 3D printing, please comment below -
Anyone done any 'Art' with failed prints?
Thanks for reading and go make something fail, you will learn loads!

Rich.

Tuesday, 13 September 2011

Upgrade your bed springs –> improve your print quality

Just a quick note and upgrade for you to consider - If you have a Prusa or any other machine with little springs on your build bed / heated bed especially if they are springs from biro pens think about upgrading them.

I was getting more and more issues going faster on my Prusa, most of these manifested themselves as less fine outer surfaces and less alignment on the vertical walls. So after fixing all my vertical Z issues (de-couple the Z motor mounts, make sure the rods are really straight, and adding Z rod bearing stabilisers) the only thing remaining was a little wobble on my build-bed. This wobble gets more and more the faster you print / accelerate / stop etc, so I changed my bed springs from the 'official' little ones from biro pens to ones usually used on the Extruder Idler.

On the left is a ground spring normally used on the extruder. On the right the 'official' bed spring is usually sourced from a disposable biro pen.

Change to a firm spring, under good compression.


Old Pen spring fitted, bit floppy

You need a firm spring, and make sure they are well compressed, mind you don't distort the build bed but keep them reasonably tight to stop wobble.

The change was really good and well worth doing.  I'll try to post the before and after printed objects, but I would recommend giving it a go especially if you are upping the print speeds on your machine past 80+mm/sec or having a fast machine travel speeds around ~200+mm/sec

Let me know if you change them and if it also improved your print quality.

Rich.