Choosing software to make models

Introduction

When it comes to making a 3D printed model, the biggest struggle for people can often be where to begin. Formulating an idea and deciding how to begin can sometimes be the most difficult and time consuming part of the process. With so many types of software available to choose from, it can be a task in itself to decide which would be the best to use. One model might be really easy to make using MATLAB but extremely difficult to make in Blender. This guide will detail which software is best to use depending on the complexity, precision and speed of the process.

OpenSCAD

What does it do?

OpenSCAD is a programming language that is used to create three-dimensional models. The OpenSCAD desktop program provides an interface for writing scripts and viewing the results.

There are methods to import data and models from other programs such as MATLAB, R and .stl files.

Best designs to make

As OpenSCAD models are produced using code, it is very good at precise measurements. Each unit is equal to a millimetre on the program, so it is realistic to be able to work to the precision of the printer and still produce accurate models. Pieces that fit together or parts that fit with other real world objects are easy to construct in OpenSCAD.

It is also useful for creating modules and functions. If there is a specific combination of shapes and functions, these can be collected in a module and transformed together rather than having to work with multiple pieces. An input value can have a function applied to it to produce a different output value in the code which means rather than performing functions by hand, they can all be produced in the code.

Loops and recursion allow you to apply multiple transformations or run through a function many times to produce several iterations of similar objects. This would be much better than something like Tinkercad for example, where the best option would be to copy, paste, drag and drop.

Things to avoid

OpenSCAD can be difficult for users with no experience of coding. For first time users the code can be very overwhelming. Having features such as order of transformations, loops and functions could mean it takes a long time to make even fairly simple models, where other ’sandbox’ programs may be better.

Shapes with curves or complicated topology are difficult to create.

The rendering process can become very slow when working with objects with thousands of faces.

Links to manuals and tutorials

The two best resources for OpenSCAD are the wikibooks manual and the cheatsheet provided by the creators of OpenSCAD. The links for both are below, with the cheat sheet giving a good overview of creating models, and the manual going into lots of detail for each section. The cheat sheet also links you to the manual, so the pages work together with providing both breadth and depth of information.

Tinkercad

What does it do?

Tinkercad is a website where you can create your own models. All you need to do is create an account and then you can begin creating designs. The software uses a drag and drop style which means it’s very easy to use. Once shapes are dragged into the workspace, they can be transformed using sliders or manual measurements. This means there is no coding knowledge required to make a variety of models.

The simplest input for this program is the selection of shapes and other objects on the program. This means with a blank canvas, the model can be constructed from scratch and be made specific to how the user wants it.

.stl files can also be imported to Tinkercad to be edited. This means you find a file on a website such as Thingiverse as a .stl file, it can be imported to Tinkercad. This is very useful if a design needs a slight adjustment, as it doesn’t require everything to be created from scratch. You can make the change on Tinkercad and then export the design again as a .stl file.

The finished model can then be exported in a range of ways. A .obj or .stl file can be created so the design can be printed, or a .svg file can be created so the object can be laser cut. This is a feature not provided by other software, so if a laser cutting tool is available models can be put on Tinkercad and exported to be cut. If you link the relevant accounts, the design can also be shared directly to collaborative websites such as Thingiverse where others can view, edit and print the model themselves.

Best designs to make

As it is very accessible, Tinkercad is very good for first time users. If somebody is new to 3D printing, they can get to grips with working with shapes in three dimensions, and create a whole range of models without a great deal of coding knowledge. Any designs requiring uniform polygons, shapes like hearts or stars, or text can be made quickly and easily.

Also, as .stl files can be edited here, it’s straightforward to edit designs made by others.

There are also ready-made connectors, circuits, and kits so other designs can be printed with less work involved. This is useful if you require interlocking pieces to fit together and measurements are difficult or on a small scale.

Things to avoid

Tinkercad is a simple program, so for more complicated designs it may be harder to create them to a good level of precision. Due to the nature of the program it is difficult to get exact precision that we can get from other software.

Also, if multiple copies of a certain shape are required where some dimension or feature involves a loop or function, Tinkercad does not have this capability.

R

What does it do?

R can be used to create models with the rgl package. The code generates a representation of a 3D mesh which is exported as an .stl file.

Best designs to make

If you already have code which models an object you wish to print, you may as well just use that.

You can turn raw data into a 3d model of a heightmap ready to be printed.

Models can be made with great precision and accuracy that wouldn’t be possible in a graphical editor. This is particularly the case with complex models that have complicated surfaces that aren’t easily coded in OpenSCAD.

Things to be aware of

It can be difficult to code a model with little to no visualisation, so other programs like Blender may be better to see the model as it progresses. This is especially true for precise positioning and reproduction of models. It may be important to see the way pieces fit together, or to compare the design you have made to the object you are attempting to recreate.

Some models may require repair when imported into FlashPrint. These repairs may change the surface and cause inaccuracy in the print.

MATLAB

What does it do?

MATLAB is a programming platform primarily used by engineers and physicists.

Best designs to make

MATLAB is best used for creating mathematical surfaces and shapes. It is especially useful if you already have knowledge of MATLAB and have existing code you wish to print.

Things to avoid

If using MATLAB to directly create an .stl file of a surface, it will be very thin and could be printed off poorly.

Blender

What does it do?

Blender is a sophisticated 3D modelling program.

It’s designed more for creative use than precise engineering. Starting from primitive shapes, you can use a range of tools to manipulate and sculpt objects. Blender can reliably edit models with thousands or even millions of faces.

There’s a powerful Python scripting facility.

It is easy to import .stl files directly into Blender and then make changes to meshes before exporting as .stl again.

Best designs to make

For beginners, Blender is best used to make small edits to existing models (e.g. those made in OpenSCAD or Tinkercad) which would be hard to complete in the software originally used.

For users with more experience, Blender is a great tool to create models from meshes and can completely replace Tinkercad due to having much more precision and a vast array of tools for editing.

Things to avoid

Due to the initial complexity of using Blender, it is best to avoid using this software when first starting out. There is a steep learning curve so don’t be too put off if you struggle using it.

Blender has no facility for parameterising designs.

Links to manuals and tutorials

FlashPrint

What does it do?

FlashPrint controls the 3D printers. It has some simple tools to scale and rotate models.

FlashPrint is also capable of producing 3D objects from 2D images, without going through another modelling program.

FlashPrint accepts images in standard formats (.png, .jpeg etc) and produces a print based on the darkness of each part of the image. For example, a pure black and white image would have exactly two ’heights’ which the model would be printed at. A greyscale image would have a range of heights.

It is also good for testing out the printing times for different sized models by scaling one .stl file, rather than producing multiple .stl files in a range of sizes.

Best designs to make

The software can also be used to make final adjustments to imported 3d models, especially in instances where the object doesn’t fit within the set volume of available printing space.

FlashPrint can also project images onto different shaped objects. This can be very useful to visualise a two dimensional image in a three dimensional space. For example, it would be much trickier to produce the following model in OpenSCAD:

Figure 1 The available options when converting an image to a .stl

Figure 2 A projection of a chessboard onto a tube creates a patterned model

Things to avoid

This method is very good for heightmaps but very little else is better produced in this way in comparison to a model made on other software. Multicoloured images are a little unclear too, as a red and a blue may have the same level of light/dark so they print at the same height even if they are contrasting colours.

Links to manuals and tutorials