Design Considerations for 3D printing

Matt Donley 3D Printing, Fabrication, News, Tips & Tricks 7 Comments

When creating a model for 3D printing, there are several things you must keep in mind in order to be able to print successfully, especially when using a desktop printer. This article highlights some of the things to look out for.

As in any type of manufacturing, there are certain limitations to the materials and manufacturing processes that dictate how you must design a product. 3D printing is no different. Characteristics of hardware, software, temperature, and filament and many other factors play into how your digital model translates into a printed object.

The following tips are for desktop style printers, also known as FDM (Fused Deposition modeling), such as the MakerBot, Ultimaker, Afinia, or any RepRap style  printer. (I built a MendelMax 1.5 3D printer last year, which I’ve been having a lot of fun with.)

(UPDATE: 4/4/15 – I’m now printing on a MendelMax 3, which I’m really happy with. You can check out my full review of the MendelMax 3 right here.)

Mendelmax 1.5

I have mostly been printing structural parts with my 3D printer, so some of the following tips won’t apply as much for purely sculpture type models.

Design a strong base

With typical desktop 3D printers, the model is printed out one layer at a time. The plastic filament (typically PLA or ABS) is melted and extruded onto a surface, called a bed, and it is absolutely critical that this first layer adheres to the bed for the duration of the print. If the model loses adhesion during the print, game over.

Most of the times, prints will fail during the first layer due to lack of adhesion. I have a lot of experience with this…
Failed 3D Prints

There is a lot of fine tuning that needs to be done to the printer and the printing software in order for the first layer to print successfully. (I happen to use Cura to interface with my printer, there are a few different free programs out there you can use.) You need to physically “level the bed” using adjustment screws so the end of the extruder is perfectly parallel with the entire surface of the bed. You can also do things in the software like add a brim or raft, increase the first layer extrusion thickness, turn off fans for the first layer, etc.

You can have a perfectly configured printer, but it won’t help you if your model isn’t designed to support itself and stick to the bed during the printing process. You need to make sure you have a strong enough base designed into your model with the following characteristics:

  • Enough surface area to create positive adhesion to the printer bed. (Adding a raft in your printing software can help with this.)
  • Wide enough to support model and resist tipping over during the printing process.
  • Strong enough to resist warping caused by different cooling rates.

Grain Direction

3D printed objects have a grain direction, since each layer is extruded one layer at a time. Each layer is adhered to the next, and the joints between layers are susceptible to delamination. If your model is designed for a structural application, these layer joints can become a weak point in your model if your model is not oriented correctly.

Bracket

A way to overcome this potential problem is to simply orient your model so that the X/Y axis plane is where you need the most strength. Layers print in the Z axis direction. Continuous extrusion happens along the X/Y axis plane, so they are stronger.

Overhangs/Holes

Since each layer builds on top of the next, if you have parts of your model that are supported by thin air, there’s a good chance that the print will fail. Most printing software has the ability to add support material automatically to your model that can be broken away once the print is completed. However, there are many gaps that can be bridged by a printer without the use of support material.

These objects were printed without any support material. Pretty amazing, right?

Printing Overhang Example

Most small holes will print just fine. Also, as a rule of thumb, anything less than 45° overhang will print as well without the use of automated support material.

Wall Thickness

When you import your model into your printing software, you most likely have the ability to control many variables, including wall thickness. The wall thickness defines the number of times the extruder will lay filament around the perimeter of your model before switching to your infill factor. (Infill is defined separately as a percentage. Typically, 10% or 20% works well for infill.)

Your wall thickness should be defined as a multiple of your nozzle diameter, so a .4mm nozzle with a .8mm wall thickness would result in the printer laying a perimeter two thicknesses wide for each layer.

It is most important to keep this in mind when you are drawing very thin walls. When parts of your model are thin, the perimeter walls are so close together that it doesn’t leave much room for infill in between them. Sometimes, it may not properly fuse the walls to each other, leaving a hollow gap between the walls on the inside of the model.

Thin 3D printed walls

When you have thin walls like this, think about your defined wall thickness (.8mm), and either leave plenty of space for good infill in between, or have the walls touching so they fuse together by making the wall 1.6mm thick.

Rounded Corners

SketchUp is really great at making objects with flat faces and square edges using the Push/Pull tool. It get’s a little bit tricky when you want to round off corners.

But round corners, from a structural point of view, are stronger. They also apply less wear and tear on your printer because changes in direction are gradual instead of sudden.

I love using the RoundCorner Plugin to add round corners to my models.

Tolerances

If you’re designing parts that need to fit one another, you need to take that into account. For example, a 10mm peg won’t fit into a 10mm hole. You need to make the hole slightly larger.Thread tolerances

Another thing that comes into play is the segmentation of curves in your SketchUp model. Smoothed/Softened edges are irrelevant once you export your model to STL.

  • Leave enough clearance for parts to fit.
  • Make sure segmented curves are aligned with each other where they need to fit together.
  • Consider increasing the number of segments on your curves to make the model more smooth.

Mock-ups

When designing parts that have critical tolerances, see if you can isolate that part of your model and print it out separately. This will allow you to test fit that shape alone, without worrying about the rest of the model.

In the image below you’ll see the dashboard clip I’m designing for my truck. (I want to mount my cell phone to my dash, work in progress…) I printed out the top and bottom parts of the clip separately in order to confirm I had modeled the profiles of the dash correctly. Once I confirmed they were correct (after many iterations), I reincorporated those shapes back into the main model.

dashclip

You’ll likely have to make numerous iterations in order to get the fit just right, but once you’ve figured it out, just incorporate that shape back into your main model.

Unique Properties

You’re not limited to designing a rigid, solid object. Experiment with the unique properties of the material and the printer to exploit their characteristics. Here are some examples of models that take advantage of unique properties of the material or the printer.

  • This Jellyfish model uses the natural drooping effect caused by printing over thin air to create the tentacles of a jellyfish.
  • A stretchy bracelet design is printed with a single wall thickness, and its squiggly shape lends to its flexibility.
  • Taking advantage of the way a 3D printer prints layer by layer, this fully enclosed gear bearing uses careful tolerances to create a usable bearing straight off the printer. (I had some trouble printing this one, personally. I think I was printing too hot, everything was stuck together, lol)
  • NinjaFlex is a special type of filament that creates a flexible “rubber ducky” style model. I’ve seen this stuff in person, it’s really awesome!

Stretchy bracelet

Check your GCode

One thing I always like to do when I’m getting ready to print, is to look at a visualization of the GCode, before sending it to my printer. The GCode is the set of computer instructions that are generated to tell your printer step by step, how to print your model. A visualization will show what your model will look like, layer by layer, as it will be printed by your printer.

There are many things that can go wrong with a model, (for example, if your model isn’t “solid”) and if you didn’t change the mistake yet, looking at your GCode visualization will be your last chance to catch anything before it goes to the printer. See below for an animation of a GCode visualization from Cura.

gcode

Most 3D printing software has visualizers built in, but if yours doesn’t, you can view it right in your browser at http://gcode.ws/ Some of the things I’ve been able to catch by looking at a visualization have been:

  • I realized I didn’t have a raft, when I thought I had checked that option.
  • I saw the generated support material, and decided to make changes to the model to reduce the amount of support material needed.
  • The model wasn’t sitting flat on the bed, because I had accidentally rotated the model a few degrees.
  • My infill was set too high.
  • Major errors caused by model not being solid.

Do you have some design tips for 3D printing? Leave a comment below!

 

 

About the Author

Matt Donley

Facebook Twitter Google+

Matt has been creating SketchUp tutorials since 2012. After writing the book SketchUp to LayOut, he conducted the "Intro to LayOut" seminar at the official SketchUp conference in Colorado. Matt writes about how to use SketchUp for design, construction and 3D printing.

Comments 7

  1. Justin

    Great article. Thanks Matt. I wish i read this when i started. Took me a while to learn all this (after a bunch of fails, lol). Would love to read a followup on tolerances with some examples. I never seem to get threaded items to fit properly.

    1. Alex Kara

      Hi Justin, I make a few 3D threads generally 19mm and 25mm. I usually design a thread “skin” (arguably for 6TPI create a 7TPI length thread). I can the join multiples to the desired length. I “solidify” the centre to create the bolt. For the nut I take the skin and scale it up in the X/Y axis by a factor of 1.04 and tend to leave the Z axis asis. I work on the nut (usually at least 3TPI) in +/- .01 factor increments and test against the bolt that usually is not altered. Do not rescale an already scaled sample as the maths can overcomplicate things. Once you hone in on the nut then print to full size.

  2. Alex Kara

    Hi Matt, Great hints. The concept of “mock-ups” is essential to get fit and save on material. You didn’t make your mock-up sizes clear so I’ll just add what I do (if you don’t mind). I take a copy of the profile face and use the Push/Pull for only about 2mm thick/high. I only concentrate on one of the contact surface(s) and dumb down any other highlights. Printing this small piece is quick and doesn’t waste too much material. This way I can test and adjust until I’m happy. You can then work on any other contact surface using similar principles. After a satisfactory print I usually then push/pull to about 5mm-10mm to ensure that the 2mm was not a distortion fit. Once this larger piece fits I have confidence in printing full detail/size.

    1. Post
      Author
      Matt Donley

      Great clarification, thank you. Yes, that’s sort of what I was getting at with trying to isolate different parts of the model. Like you said, concentrating on one contact surface at a time will enable you to get that part of the design right before moving on to something else.

  3. Tony

    This really blows my mind… It’s not long before everyone has one of these in their homes and can download 3d models of replacement parts from manufacturers and print them.

    It gets me excited just thinking about it.

    1. Post
      Author

Leave a Reply

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