Design for 3D printing – tips and tricks for functional parts

3D printers are more than just toys, used properly they can make highly functional parts and allow you to bootstap up to full CNC machines - I should know, I did just this with my first cheap Geeetech I3 Pro B. But unless you know what you are doing, it can be a bit of a headache. So, I wrote this article to add to the general knowledge base online, with tip and tricks I've figured out over the years.

I'll be talking about standard FDM printers, as that is what I have used, but many of the concepts can be applied to resin printers as well. I will also be assuming a certain degree of knowledge, and will skip over anything that I consider be to too basic.


We'll start with a simple one, a way to avoid exceeding your printers maximum overhang angle. This angle is something anyone who owns a 3d printer should already know, and can be figured out with a simple overhang test like this one. Where support is not possible or not necessary, e.g. on circular holes, I add "roofs" instead. Also, if I am printing a threaded hole horizontally, I'll cut it internally (simple extrude after the thread has been modelled) to give the same effect, see below for examples:


Warping is a pain for all materials, and even PLA will warp and peel off the bed if the print is large enough. To stop this from happening, add cuts to the base or walls:

(click the images to enlarge)

In the first image, the crosshatching on the base breaks up the contact area with the build plate into a number of discrete islands, the second image shows the same model the cuts running along the sides, top etc of the print, breaking up continuous print lines and allowing these surfaces to move slightly to absorb stresses.

Each cuts should be at a very minimum deep enough to reach or exceed the wall thickness of the part, so for instance in the first image if I have three layers on the base, each 0.2mm high, then the cuts should be 0.6mm or greater (I made them 1.5mm because there was no drawback to doing so). With the third image, this is a part that was designed to be filled with epoxy granite (see below), and so was printed as thin, solid walls. In this case the thickness of the cuts is at minimum the wall thickness - with an extra vertical cut in the middle that is much deeper.

The final image shows the first model again in Prusa Slic3r, with the choice of infill. This is another thing that is worth considering - if the infill is being printed in continuous lines, from one wall to the other, then as the plastic shrinks and contracts, it will naturally pull in and create warp. So in this case, since I only need the infill to have strength on the Z axis and am not concerned with X and Y strength, I've just chosen the "octogram spiral" in Prusa Slic3r. While not as strong as e.g. triangles, the individual lines are forced to take hard angles, meaning that contraction in the plastic can be easily absorbed during the print.

Strengthening with Screws

Sometimes you need parts to be be strong, but you also need to print vertically in a way that leaves them inherently weak. As anyone with familiarity with 3d printing knows, inter-layer adhesion is the weakest part. A good solution is to design in threaded holes for screws - once printed, maybe add epoxy to the inside of the holes, and then just drive the screws straight in. Generally no need to manually clean the hole with a tap, as the screw goes in the friction is usually enough to cause it to melt the plastic around it.


This part is a solid shaft coupling, designed to connect a small servo motor to a rotational axis shaft. Sure I "could" have just bought coupling off the shelf, but the machine I am designing will be running 5+ axis simultaneously, and D14 to D15 plum coupling is £10 a pop. So, I just 3d print it, which also allows me to shape each entrance to the shaft, with keys and all. First image is the design, second shows it on the print bed, with the obvious weakness over the inter-later boundary being exactly where I need it to be strong. And the third image with screws set in place. Although I haven't done it here, as I just used whatever screws I had lying around, but if you want the screws to be flush with the plastic then use countersunk and design in the recess for them.

Alternatively, if you dont want to use threaded holes, perhaps the size of screw you want to add is large enough that it could cause issues, then just design in a clearance hole instead, and epoxy the screw in place.

Epoxy Granite

Epoxy is great stuff!! If you are making a high strength part and the above screw trick just wont cut it, no problem, design the part as a thin wall and fill it with epoxy or even epoxy granite afterwards. I say epoxy granite, but I never use granite specifically - epoxy mixed with sand and rough stones works as well. Epoxy granite as a general concept was developed to be a way of creating very strong parts that dampen vibrations - perfect for CNC machines - and happily the addition of fillers also reduces cost. Just remember you wont be able to drill it very easily afterwards....

Check the picture of the blue coloured part above for an example of this, this part is actually the top of a clamp for a spindle motor. Bear in mind however, if you want to use this technique then the best epoxy to use is a very thin variety - as thin as possible, to allow it to easily flow into the parts, fill voids, and not trap too much air. I use a type sold by Easy Composites in the UK as "Infusion Resin" - note though to always check the data sheet for thinners, and avoid any such products, especially if printing ABS, which thinners could easily dissolve into. However, using a very thin resin presents another problem, as the name "infusion" suggests - it can leak through thin walls (and penetrate disposable gloves - so double up!). To solve this. mix up a small batch of pure epoxy first, and roll it around the inside of the part until it has covered all internal surfaces, effectively sealing the part, and then pour out the excess. The next pour can and ideally should be added when the first sealing layer is still a little tacky, for optimum adhesion.

Another thing to note with epoxy granite, make sure if using stones that the surfaces are properly rough - I once used sacks collected from local beaches, and many of the (flint) pebbles included had smoothed faces. This created a weakness as the epoxy wasnt able to fully bond to them, and when placed under high stress the weakest point actually broke on me. There are also good additional fillers designed for epoxy that you can use, I personally have a tub of milled carbon fibres that I use all the time.

Final note, in case you were wondering if you can save money and use polyester - no, it will not bond to PLA! I tested it, total fail.

Designed in Support

Another feature that is exampled in the blue design above, sometimes you need to create geometries that are impossible to print without support, but support just isn't viable. In this case, design the support into the part itself. So below, in this enormously complex part that is both the base of a spindle motor housing, and connects to the rail carriages plus the lead screw nut. I should note that this is an old design, if I was to do it again today there are a number of features I would change! But it shows the concept of internal support pretty well. See above for the other side of the spindle housing, also in blue. Anyway, you can see a number of internal walls that I created to support top surfaces - since this part was filled with epoxy granite, the crosshatched holes in the internal walls allows the epoxy to flow through and around, eliminating any weaknesses from the printed plastic alone. The underside arch was printed with standard generated support.

Smarter Infill

First, infill pattern matters - in this excellent video from CNC kitchen, Stephan tests out different infills for strength in different directions. My conclusion from the charts, was the triangular infill was the best all rounder for general strength, although different infills can be better depending on the direction of strength that you require. Of course, this doesn't cover warping, as mentioned above. Another thing to consider, is that much the strength of a part comes from the walls, so perhaps relying on infill isn't always wise. Alternatively, sometimes you might want lots of infill in some areas, but less elsewhere, or there may be specific strength requirement for your design - in these cases, consider adding shaped voids to the inside of the part.

Low Temperature Annealing

Annealed PLA is has surprisingly good temperature resistance, well for 3d printed parts anyway - better than ABS, ASA etc. Annealing involves keeping the printed part above the crystallisation temperature of the plastic for an extended period of time, causing structural changes visible under the microscope. This is commonly known, but less so is the temperature dependence of the annealing process, see below:

This chart was taken from a paper by "Turng and Srithep, 2014" - unfortunately it is now behind a paywall, because after all why should government  funded research projects be available to plebs like us? Truly, that makes sense. Anyway, the above chart is the most relevant part for us. Essentially, it shows that low temperature annealing can achieve the same effect as high temperature, if you leave it for long enough - I have tested this, and it is accurate. The main drawback of annealing is the warping and dimensional changes it introduces, so might lower temperature annealing itself reduce these issues as well? Unsure, although this paper says yes, but doesnt clarify how long he annealed for at different temperatures. However, long and low does give us another option. Take an appropriately sized contained, fill it with sand, and then add your part so that it is covered all over in the sand. Add a plate on top of the sand, and then a large weight on top of that - the sand itself will not be enough to constrain against movement. And then anneal the whole thing, very slowly. The sand etc will take time to heat up, but if you are not in a hurry, that's not a problem! Slowly increase unto you are on the edge of annealing it, let temperatures become uniform (check with a probe), then increase to 65-70C. And leave it for a couple of days. Now, I have not tested this in detail, only once or twice, but my impression was that it can reduce warping, sagging etc - worth giving a go anyway. Having a little kiln certainly helps - I built mine years ago from plywood, insulating wool, an incandescent light bulb as heating element, a fan to keep the air moving and a cooker thermostat temperature control knob! Ghetto, but hey it works. If I was to built one today, I'd use a cheap 3d printer hot plate for heating elements (staying at low voltages), and maybe an arduino for temperature control and display, but hey the cooker thermostat works too.

Note that annealing does increase stiffness of parts a tiny bit, and increases x-y strength a little also, but not a lot, and it doesnt improve inter-layer adhesion at all. Mostly, annealing is done to improve the temperature resistance of parts.

Thats all!

Thanks for reading, I hope this has been useful. If you have any tips you want to share, please let me know in the comments section below, and happy printing!