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 filament / 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 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 reduce this tendency, if you dont have a good enclosure to bring up ambient temperature, 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 more easily absorbed during 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. That is, epoxy with rough granite gravel used as a filler - you can buy sacks of granite surprisingly cheap, although other stone fillers will work also. 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, since epoxy is expensive. 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 though, that epoxies contract when they set, at least every epoxy I have tested does, and most will do so in a manner that pulls the 3d printed plastic walls in to them, causing serious dimensional issues. I am in the UK, and after testing many different epoxies I now exclusively use Easy Composites High Temperature Laminating Resin, which while not as strong as other resins (it is extremely stiff instead), it sets in a manner that doesnt cause warping, you can pour to any depth you like, and as a bonus it is extremely thermally stable - useful if e.g. clamping a spindle motor. It also has a respectably low viscosity at 550mpa.s, compared to the very lowest viscosity "infusion resins" which are around 300+ mpa.s, or other epoxies that go up to 2,000+mpa.s (water is 1, olive oil 100). This is very useful, as it means the epoxy can easily flow into parts, fill voids, release air, and allow the use of fillers without becoming too thick. Bear in mind though, a potential problem of using very low viscosity resins is that they can leak through thin walls (and penetrate disposable gloves - so double up!). I find 1.8mm tends to be water tight, that is three lines with my 0.5mm print head, though I sometimes use 1.2mm if I dont want too much plastic, however for larger or more complex parts there can still be flaws either way - so it's best to seal them first before doing the full pour. To do this, mix up a small batch of pure epoxy, and roll it around the inside of the part until it has covered all internal surfaces, and then pour out the excess. The next pour can and ideally should be added when the first sealing layer is still tacky, for optimum adhesion.

So far in this article I've been talking only about filament printers, but epoxy fill technique may be even better for resin printers, since the printing software has built in functionality to turn models into a hollow shell and add drain holes, internal support, etc. This is because being UV cured, thick solid parts simply cannot cure past a couple of mm unless they are translucent. Plus the prints are more dimensionally accurate. However, resin printers are more limited in size of parts, and I have not done much testing for this application with my own resin printer.

Another thing to note, if you use stones other than rough granite, make sure 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. The same will likely happen with other products, depending on their surface roughness. 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, and lay in glass fibres to areas of parts where I need increased strength. Or you can add aluminium powder to increase thermal conductivity. Bear in mind though that powders will, after about 5-10% fill, start to decrease part strength, so unless your absolute priority is thermal conductivity, use sparingly!

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!

Leave a Reply

Your email address will not be published. Required fields are marked *