Testing 3D Printer Accuracy: Objet24 Tolerance Analysis
Lately in the Mindtribe Mechanical Engineering shop there has been one constant: the hum of our 3D printer as it tirelessly adds layer upon layer of plastic to each other, bringing into physical reality the ideas that the Mindtribe engineers model on their computers.
At an engineering consultancy firm that prides itself on flexibility and continuous iteration, little is constant – even our desks move around to suit the ebb and flood of projects. A time lapse video of our office space would appear akin to that of an industrious port, boats coming and going, tides rising and falling, pushing the leviathans with their cargo up and down on the thick lines that moor them. As the cargo containers on a dock are in constant motion, so too are the engineers and their ideas at Mindtribe.
Daily, engineers briefly convene to talk about ideas and how to improve them, then scatter as they build these ideas at their computers.
But the 3D printer – it sits in its corner, making its noises, humming its monotone tune, and building. For the last month or two here, our Objet24 has been constantly building – nearly every night and day, running almost 24/7. Building small things, large things, things for the medical industry, things for the space industry. A dizzying array of ingenious items is ‘baked fresh every day.’
At Mindtribe, we rely heavily on our Objet24 and by-and-large it performs. It is great for making both non-form-factor housings that don’t look too pretty (they just have to work, not look good), and printing items that industrial designers have spent countless hours making both beautiful and functional.
According to Objet, the printer’s accuracy is 0.1 mm (0.0039 in). With this level of accuracy, remarkably fine details can be accurately printed.
But…here’s the ‘but.’ There are some details where that accuracy (0.1 mm) just doesn’t cut it. More specifically (among others): snap fits.
Recently we were working with a client that needed a water resistant enclosure for a button cell battery. With something like this, when the fit is perfect there should be a ‘snap’ that the user feels as they close the lid and seal water out from the battery.
As one engineer and I were trying to fine tune this enclosure’s dimensions with 3D printed parts, another engineer from a different project piped in and said “you might want to be careful with the 3D printer’s tolerances. On [a previous project] we got bit in the butt because we tuned a snap fit with the 3D printer, but then didn’t take into account the printer’s tolerances.” Yet again, the value of having such free-flowing communication across different projects at Mindtribe proved invaluable.
This got me thinking: what are the actual tolerances that our Objet can handle?
Specifically, I wanted to test two things: how support material affects tolerances, and tolerances of some features independent of support material.
For those that may not know, many 3D printers have support material. As the name suggests – support material is printed just like the rest of the model to support the desired geometries of the part during the 3D printing process. After the print is done, the support material is removed, leaving only the part. On an Objet 24, the support material is like a very thick gelatin. However, it can be difficult to know when all of this support material is removed. After washing it with pressurized water, then even further scraping, there is what seems to be a thin film of support material that remains.
I often lie in bed awake at night, pondering the age old question that countless generations before have contemplated – “how much support material remains after washing?”
Well….not really. But you get the idea.
At any rate, to test the Objet24’s tolerances I quickly made a couple of items to 3D print with specific features and dimensions. After printing them, I would measure to see how close to the designed dimensions the 3D printed items turned out.
Here are the simple items that I designed:
…then scraped where appropriate.
For the part with features to test with no support material, I made sure to select a shiny finish on the Objet 3D printer. This way printer doesn’t add any support material. For the part where I was testing the dimensions with the support material, I printed that part “upside down.” This way, one side would be printed “shiny” on the top side and the bottom side would have the support material to remove.
To test thickness with different cleaning strategies, I removed the support material from the single side that had support using 5 different methods: water jet only, water jet then wipe with a cotton towel, water jet then scrape with a medical scraper, and water jet then scrape with an exacto knife. For those fabricators out there – when I say ‘water jet’ I don’t mean a “proper” waterjet for cutting sheet / bar stock with garnet and water at 800psi. This water jet is just a little water compressor with a nozzle in an enclosure that pumps water at about 80psi through a nozzle to specifically clean 3D printed parts.
Then I used a digital micrometer to test the thickness after the part had dried from using water to clean and scrape it. I took between 5 and 10 readings of the thickness and wrote down the thickest and the thinnest measurement.
With all of these tests, the precision of measuring and strict protocol were a bit ad-hoc. This test was more to get a good idea of the error in the printer – not to spend an entire day and get a super robust data set with statistical analysis.
Inasmuch, I use the term “average 3D printing error” very loosely – I just took the difference of the thickest reading from the nominal part thickness, did the same for the thinnest reading, added those two numbers up and divided by two.
Below are my findings for the thickness with different support material cleaning strategies.
The findings are mostly in line with what I figured. I am a bit surprised that I didn’t see any measurements below the nominal part thickness. I was expecting that the “water jet and scrape” strategy would get closest, and then the “water jet and scrape well” strategy would have taken too much material off and left me with an undersized part.
This was not the case:
Not too bad.
These findings are well within the tolerances that Objet advertises – but bear in mind that these findings would double if both sides of the model had support material (the error would be on both sides, not just one side as this test was).
Then I used a digital caliper to measure the bosses / features of the part that did not have support material. I thought perhaps there would be a difference between round / cylindrical features and square / cubic ones, so I printed various sizes of both.
When measuring, I would’ve used the micrometer for a bit more accuracy, but the geometry of the part made it a bit tricky to get the mic into position to get a good measurement.
Here are my findings, when I measured in the approximate middle of the features / bosses:
The measurements were off when measured at the base of each feature, where that feature met the large base that all of the features were attached to.
The disparity between measuring at the middle versus the base seemed a bit odd initially, but it makes sense the Objet can’t make a perfectly sharp corner – that there is a very small fillet within what should be a right angle.
Next, I used gage pins to measure the size of the holes in the base. Similar to the previous results, there was a small fillet at the “bottom” of the holes.
Consequently, the gage pin that measured the size of the hole wouldn’t go all the way through. To get an additional data point, I used gage pins to measure both the holes’ nominal diameter and the largest gage pin that would go all the way through the hole.
Here are the results:
Incidentally, the ‘medium’ and ‘small’ were measured with class ZZ minus pins ( +0.0000/ -0.0002) and the large diameter was measured with Z plus gage pins ( +0.0001 / -0.0000).
Lastly, for a bonus round I wanted to see how ‘locally flat’ a flat surface was, so I threw a dial test indicator in the mill and ran it across the shiny / “flat” surface from the thickness test (this was top, that was printed with no support material). When I say ‘locally flat’ I mean what the deviation is within half an inch. I wasn’t looking at the net thickness difference from one side to the other – rather, I was looking at how the dial test indicator ‘bounced around’ when it was dragged across an arbitrary inch of the shiny surface.
Like the tests before it, the results were a bit subjective – I just kinda “eye-balled” it to see what the dial test indicator did. And it bounced around approximately +/- 0.0003 inches. In other words, if the dial test indicator was centered at 0.0010 inches, the dial bounced around between 0.0007 and 0.0013.
So, all in all, the Objet 24 performed quite well – certainly within with advertised specs.
It’s kinda ironic – literally as I was writing this article, the UV lamp that cures each layer of material actually blew up. I wasn’t in the room but the engineer who was in the ME Shop said it sounded like someone threw a lightbulb against the wall; the crash was that audible. This is the first big issue with the 3D printer that we’ve had in a while.
I called the company that sold us the 3D printer and within a few hours, I had a new UV lamp in my hands thanks to a fast transbay courier. Not less than an hour after getting the printer back on line an engineer is feeding CAD files into the computational brain of the 3D printer. So starts another two months of nearly continuous humming and monotone tunes as our 3D printer lays layer upon layer of material.
Building – always building.