# Design for 3D Printing

### [3D Printing YouTube Playlist](https://www.youtube.com/watch?v=fImO0syvX84\&list=PLgGN9A-SZN9ndsdUZU3JBLqgxpDZ_Apor\&index=1)

{% tabs %}
{% tab title="Geometry" %}

## Basics

For a successful print, it's important that submitted prints **follow the outlined requirements**:

* Minimum of 1mm thickness of all elements
* 1:4 spanning ratio&#x20;
* Submission in the form of a closed geometry

Before submitting a print, read through all the necessary information for the selected printing type.

## Scale and Details

**Resizing geometry/models** down to an appropriate scale is essential when preparing a 3D print model. Display models are rarely produced at a 1:1 scale, and different printers will have different boundary sizes to adhere to.

### Not all digital models can be 3D printed

Due to digital constraints of geometry, or physical limitations of 3D printers, taking a digital model and **simply** **scaling it down for 3D printing will not always work.**&#x20;

{% hint style="info" %}
**NOTE**

Understand what thicknesses are being digitally worked with by using a **ruler** when adapting a design for 3D printing.

*E.g. Standard paper is 0.1mm, and is impossible to print successfully.*
{% endhint %}

### Adapt (or rebuild) a digital model

It will almost always be easier to rebuild a model for 3D printing. A properly adapted model can mean a higher quality return, and even save a lot of money in the long run.

&#x20;Adapting a model could mean:

* Simplification and/or reduction of design
* Converting thin frames and/or columns to surface details
* Elimination of elements

![\[1\] Before Adaptation \[2\] Post Adaptation.](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-LYeW4VbS3F_C8hVbdTr%2F-LYeWVWk5sNz2oWOhqfJ%2FCapture254.PNG?alt=media\&token=67ab66f1-71e6-4091-a19c-54a2fab82be0)

{% hint style="info" %}
**Note in the Above Image**

Delicate balustrades eliminated, stairs and columns thickened, roof and wall details simplifie&#x64;**.**
{% endhint %}

## Thickness to Span Ratio

In order to ensure **weak points will be** **less susceptible to damage** when getting handled during the post print processing phases, it's important to consider the thickness to span ratio.

### Spanning beams and columns

For beams and similar long, thin structures maintain the **1:4 thickness to span ratio** by inserting a supporting element at intersections.&#x20;

*E.g. 2mm thick beam will require a column at every 8mm length*

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-LYeWgesCxqK3nlGOgbU%2F-LYeWiNTghyZdTqy3g2c%2Fassets_-LXLdtzISfYtLhVnbofG_-LXzmJZwZqeUWaha2YUJ_-LXzx2dWr.PNG?alt=media\&token=42d0dedf-a0e3-41f5-a861-f243ab1bb491)

### Planar surfaces&#x20;

For thin **planar surfaces**, consider including a ribbing designed into the underside.

## Creating Closed Geometry

### Geometry types

**Models for 3D printing should only be composed of solids**. In Rhino it's important to understand what type of geometry you are working with:

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-LYeV0q7fntuOAh8Ec9W%2F-LYeVAiCOOqMQv40YhwV%2FCapture1.PNG?alt=media\&token=cf31bacd-537f-498e-a856-fe2fa8a0969f)

| Type             | Description                                                                                                                                                                                                                                                                                                                                                                               |
| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Point \[1]**   | Represents a coordinate, a single location in space                                                                                                                                                                                                                                                                                                                                       |
| **Line   \[2]**  | Whether it is straight or curved, is best thought of as a collection of points. It traces a path through 3D space. A line cut in section creates a point.                                                                                                                                                                                                                                 |
| **Surface \[3]** | Surfaces have a front and a back, but no inside (thickness) so they cannot be 3D printed. Surfaces can be joined together to create a polysurface. A surface cut in section creates a line.                                                                                                                                                                                               |
| **Solid \[4]**   | A solid is geometry which has a volume. Multiple surfaces can be joined together to enclose a volume, which is then called a closed polysurface. If there is a hole in the surface or the surfaces do not completely enclose the volume, they do not make a solid. Closing these holes to form a solid is known as making the model watertight. A solid cut in section creates a surface. |

### Volume

In Rhino, **geometry with a volume is known as a solid**.&#x20;

{% hint style="danger" %}
Surfaces **cannot be 3D printed** as they do not have a volume or thickness.
{% endhint %}

Objects which enclose a volume will have an inside and an outside. If you slice through a surface it will create a single line (Image 5). If you slice through a solid, it will create a closed profile (Image 6).

The easiest way to create solid models in Rhino is using the commands under the **solid tools tab** or the **solid menu option**.

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-LYeV0q7fntuOAh8Ec9W%2F-LYeVHvMN2lg0Q8fUtjg%2FCapture2.PNG?alt=media\&token=3b917705-1cbb-47cd-905f-d9cd61fe4ce1)

​

### Closed polysurfaces

In Rhino, joining surfaces together creates a polysurface, and if they completely enclose a volume, it creates a **closed polysurface**.

For the model to be 3D printable, the surfaces must be joined together into a single, closed polysurface (Image 8). To join surfaces, they must share an edge. If you are having trouble joining surfaces into a solid, it could be that some edges do not line up.

{% hint style="info" %}
**Did you Know?** When you select an object in Rhino, the properties panel will tell you whether it is open or closed geometry.
{% endhint %}

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-LYeV0q7fntuOAh8Ec9W%2F-LYeVPi7L5x3u6Ot4sPh%2FCapture23.PNG?alt=media\&token=62f9b509-ab2d-4555-9f01-163a5246b496)

### Watertight models

“Watertight” is a common term used to describe closed or solid geometry. A watertight object has no holes, gaps or unjoined edges. Edges which are around an opening or not properly joined to another surface are called **naked edges** (Image 9). A watertight model has no naked edges. You can highlight naked edges in Rhino using the `showedges > zoom` command.

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-LYeV0q7fntuOAh8Ec9W%2F-LYeVW59_iWgZTlbWGL_%2FCapture3.PNG?alt=media\&token=62144b63-3181-408d-9e39-cc7ccd2cdf36)

​

### Connected solids

Ensure components within a model are joined before 3D printing. Components not joined together may come out as 2 separate pieces (Image 12).

Solid objects are combined using the **BooleanUnion** command. To boolean objects together, they must either **overlap or have co-planar faces** (Image 12). If the command does not work it is an indication that they may be slightly separated or not connected. In this case, move the objects closer to together and try again.

{% hint style="info" %}
**Did you Know?** Use the `intersect` command to check whether objects are overlapping or sharing co-planar faces.
{% endhint %}

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-LYeV0q7fntuOAh8Ec9W%2F-LYeVfzmPXGb-a7JT1vf%2FCapture4.PNG?alt=media\&token=fc05e9f5-0ea1-49c8-83a2-846fe1d38594)
{% endtab %}

{% tab title="Optimisation" %}

## Optimization

In the following titles, the guidelines for an optimised 3D print model will be outlined.&#x20;

Different 3D printing methods will require different things to be considered. This may include:

* Cost efficiency
* Quick turnaround of time&#x20;
* High quality finish and/or surface detailing

By considering and adapting a design to the following topics, chances of obtaining a good quality print for a reasonable cost, are maximised.

## Hollowing a Model

### When should I hollow my model?

Hollowing a model is essential to keep outrageous costs and material waste down.&#x20;

Prints at the Maker Spaces are typically charged by material consumption, either calculated as the gram or volume (cm3). A hollowed model can at times reduce this number by up to 70%.

**Models should be hollowed wherever possible, regardless of the printer type.**&#x20;

{% hint style="info" %}
Some printers may require hollowed geometry to ensure a successful print.&#x20;

*E.g. 3D Resin Printing*
{% endhint %}

### 2mm rule of thumb

As a rule of thumb, hollow models enough to leave a **2mm shell thickness** to the final geometry. Always hollow out models when printing large, blocky components including bases and columns.

If needed, consider substantial structural components that may be required to be stronger and weightier to print successfully.

Here are some methods to hollowing out geometry.

### **Rhino: 'Shell' command**&#x20;

{% hint style="info" %}
**Hint**&#x20;

Effective for simple geometries, with minimal surface facets.
{% endhint %}

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M62SIZFMQaXi4qPAR_j%2F-M62UDHKPT2QLRsK6ogj%2FStep%201.jpg?alt=media\&token=35b1fa43-2b0f-4e12-bfc8-e0a3286f1731)

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M62SIZFMQaXi4qPAR_j%2F-M62V2s_NRfgo2U1yfGB%2FStep%202.jpg?alt=media\&token=ae5e3094-75db-443e-b89b-f20aaef4685e)

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M62SIZFMQaXi4qPAR_j%2F-M62ViAAxr__Cwkz6SKw%2FStep%205.jpg?alt=media\&token=ca237def-a92c-4c0b-931f-dc05d707f621)

### **Rhino: 'Offset' command**

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M62YG8_XUY6qViwtr8C%2F-M62jwRshxDjKo05lj-h%2FOffset%20Step%201-2.jpg?alt=media\&token=c2943ac1-8ba3-4f4b-b06d-132ce641ffcc)

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M62YG8_XUY6qViwtr8C%2F-M62kGJzFquQENsoJNkI%2FOffset%20Step%203-4.jpg?alt=media\&token=d5f34b5f-6a23-42e1-aa77-7d163738085f)

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M62kQm17V7ZfZpL5QXi%2F-M62kwSSFlDSZ6akIpHj%2FOffset%20Step%205-7.jpg?alt=media\&token=acd8b3d4-1d0e-413a-a696-b6d8723a1e99)

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M62kQm17V7ZfZpL5QXi%2F-M62lHuFS7PlDw4o_rO9%2FOffset%20Step%208.jpg?alt=media\&token=794dd3a4-def6-4bac-b053-e065e077c7b2)

### **Alternative Software: MeshMixer**

{% hint style="info" %}
**Hint**&#x20;

Effective for complex geometries
{% endhint %}

MeshMixer is a free program available for download, ideal for use when working to manipulate or clean up mesh geometry.

#### STEP 1

Download MeshMixer and run the program on your computer.

#### STEP 2

In Rhino, **BooleanUnion** all intersecting geometry and export as a **.stl** file format.

#### STEP 3

Import the geometry into the MeshMixer work space.

#### STEP 4

Enter the **EDIT** tab and select the **HOLLOW** command. MeshMixer will run a default hollow setting before providing parameters for control. Ensure the **OffsetDistance** parameter is set to **a minimum 2 mm.**

#### STEP 5

To ensure openings are then created for excess powder to exit the hollow from, toggle the **Holes per Hollow** parameter, then click **generate holes > update hollow** to create openings. The locations of these openings will be controlled by MeshMixer.&#x20;

#### STEP 6

Alternatively, to customise the openings, **double-click left** on desired points on the model surface before clicking **Update Hollow.**

#### STEP 7

Accept.

## Reducing the Mesh Size

It is essential to keep file sizes to a minimum for NExT Lab to receive and process a 3D print file.&#x20;

The most common reason for an inflated mesh file size will be due to the resolution of a created mesh upon conversion from a polysurface. Keep in mind that a higher resolution does not always mean a smoother surface finish, or better quality print.

The following are some ways to reduce a mesh.

### **Convert a polysurface to a mesh**

Converting a polysurface into a mesh **before exporting** is recommended as this will ensure control over the size.&#x20;

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M63FiX77nS4rmFQFkNO%2F-M63GL1aJYhV_lLJ7PVS%2Fmesh%20conversion%201.jpg?alt=media\&token=61471d2c-d067-4c20-97ab-86313265d1c1)

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M63Et3sUgKEQSU0T8b_%2F-M63F5BPcPdidcjMuAvr%2FMesh%20Conversion%202.jpg?alt=media\&token=eac90e8f-07a7-4992-9679-62d05acdc976)

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M631gvpxH7weZvEDrPU%2F-M63EUPlQ4D2NuKeQ_SK%2FMesh%20Conversion%203.jpg?alt=media\&token=09f9144d-97c6-4946-9a2f-5e26defa6383)

### **Reconstruct a mesh**

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M63FiX77nS4rmFQFkNO%2F-M63LxswZzatX_CEkB4Y%2FMesh%20reduction%20step%201.1.jpg?alt=media\&token=f377d9af-9278-42b8-8b95-652ba3e15a00)

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M63FiX77nS4rmFQFkNO%2F-M63M0gW_obZGKn_-LWw%2FMesh%20reduction%20step%201.2.jpg?alt=media\&token=3d5341c3-dcfe-4c62-87fb-26ba291518ff)

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M63FiX77nS4rmFQFkNO%2F-M63M9brJrvXQ8XY864_%2FMesh%20reduction%20step%202.jpg?alt=media\&token=2be9f5d7-545f-4310-8471-ae74215d5f6f)

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M63FiX77nS4rmFQFkNO%2F-M63M4YePMbYx4S75q4g%2FMesh%20reduction%20step%203.jpg?alt=media\&token=78e088b2-676e-49ef-a3df-e012c43ab283)
{% endtab %}

{% tab title="Segmentation" %}

## Segmenting a Model <a href="#id-1-0-segmenting-a-model" id="id-1-0-segmenting-a-model"></a>

A single model may need to be separated into multiple parts. This may be due to:

* The model being too big to be printed as a complete piece.
* An uneven distribution of weight across a model making it likely to snap in susceptible places.

{% hint style="info" %}
**Hint**&#x20;

Refer to different templates provided for each printer to keep aware of your printable dimensions.
{% endhint %}

### Segment your model

#### STEP 1

Create a planar surface to use as the cutting object and place them in the respective cut positions. The commands **split** and **boolean difference** will allow you to break the single object into smaller components \[Image 1].

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M63d-ex9WWPWEL-cXw5%2F-M63dmATrzhkVVjS5TLW%2FMesh%20segmentation%20s1.jpg?alt=media\&token=c58b5a40-c3a8-4f65-a757-e5d3b3efbd8f)

#### STEP 2

####

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M63d-ex9WWPWEL-cXw5%2F-M63dtJwIu0Hqi8dyy2S%2FMesh%20segmentation%20s2.jpg?alt=media\&token=3e46b91a-e39d-40ca-9bb7-afd7779408df)

#### STEP 3

Once the components have been broken into smaller components, create the connections to allow the components to fit comfortably together. This connection joint will allow the printed objects to be assembled with little or no additional gluing \[Image 2].

####

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M63d-ex9WWPWEL-cXw5%2F-M63dzIsakJSRQXOWSvQ%2FMesh%20segmentation%20s3.jpg?alt=media\&token=ba4df9ea-c0f5-41ab-b65c-5ab3d0f3d411)

#### STEP 4

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M63d-ex9WWPWEL-cXw5%2F-M63eRQpOfPr-3heFDwF%2FMesh%20segmentation%20s4.jpg?alt=media\&token=e2e2c835-0170-4d0a-b19f-9843d08d229d)

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M63eWa-n60n0iG3jsur%2F-M63eYP4YsapzeoJ-Gfx%2FMesh%20segmentation%20s5.jpg?alt=media\&token=5fb0fb4b-23cc-4cda-b564-d4de94777419)
{% endtab %}

{% tab title="Templates" %}

## Templates

In order to understand the size limitations of your 3D printing service, download the appropriate templates and nest your geometry within the provided boundaries before submitting.

#### Download 3D Printing Template file here:

{% content-ref url="../../job-submission/useful-submission-links-and-files" %}
[useful-submission-links-and-files](https://ms-kb.msd.unimelb.edu.au/the-fablab/job-submission/useful-submission-links-and-files)
{% endcontent-ref %}
{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ms-kb.msd.unimelb.edu.au/the-fablab/3d-printing/3d-print-submission-checklist/general-file-set-up.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
