# 3-Axis Milling

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

## CNC Template

{% file src="<https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M3OxuIDv3bgv5lAJmz7%2F-M3OzRAoPVMgIgBCIUNJ%2FFabLab%20CNC%20Router%20Rhino%205%20Template.zip?alt=media&token=9d7fbf9d-c443-459f-a57b-d1c959a8b203>" %}
3 Axis CNC Template
{% endfile %}

At your initial consultation, the Fab Lab Technician will take you through the template and will advise how to set up your file in accordance with the guidelines.&#x20;

The technician will work with you to determine which machining operations your job will require. If you have multiple sheets, include them all in the one file as indicated on the template and label the material above each sheet.&#x20;

{% hint style="info" %}
**Hint:** Always ensure that you have the latest template file; we periodically make revisions and additions.
{% endhint %}

## CNC Template for Submission

### Create Stock Material

1\. Set layer to Stock.\
2\. Create `Box` beginning at Origin (0,0,0).\
3\. Enter Length - long edge must be on x-axis. \
4\. Enter Width. \
5\. Enter Height - must be a positive z-axis value. \
6\. Update sheet label with material type and dimensions. \
7\. Check that the stock fits within the maximum dimension. \
8\. Hide existing maximum dimension box layer.&#x20;

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-LY-_RJELbSjyOPlCm4x%2F-LY-a71a78cYqHfOnZDE%2Fimage.png?alt=media\&token=3f201837-6f10-4689-b0f1-fcb4063b5999)

{% hint style="info" %}
**COMMON MISTAKES:**&#x20;

• Incorrect orientation of box • Incorrect layer • Failure to update sheet label
{% endhint %}

{% embed url="<https://youtu.be/KkpZm-MdAgs>" %}

> 3 MINUTES

#### **NOTES**

* Download Fab Lab template from the website.
* Model your stock using the *\_Box* com
  {% endtab %}

{% tab title="Layers" %}

## Layer Parameters

3 Axis - Surface Mill - PART&#x20;

Place parts to be milled on this layer&#x20;

* 3 Axis - Surface Mill - CONTAINMENT REGION (Place closed curves on this layer)

![](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M63YsgM28NwjQhf0cdU%2F-M63Z2_yqBjQF3hyaY77%2Fcontainment%20regions.JPG?alt=media\&token=7e52a6aa-d312-46cd-901c-e8a89852eceb)

![Appropriate Layering structure for 3 Axis Surface Milling](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-LXv6YMOOFtdVk1N8jHK%2F-LXv6kJsszQJiUJZZIB8%2Fimage.png?alt=media\&token=21efcd71-03a5-4468-b869-52824c40cd7c)
{% endtab %}

{% tab title="Toolpath" %}

## Tool Pathing and Simulation

After submitting your clean file to the Fab Lab the file will go through a process of being 'Toolpathed' by a technician. This process will create the instructions to communicate with the CNC to output the desired result. We are able to simulate what the final model will look like to get a visual understanding before milling the file.

The 3 Axis process is as follows:

* **3 Axis Roughing**:
  * This toolpath removes large amounts of unwanted material leaving a small amount of stock before the desired geometry height
* **3 Axis Parallel Finishing**:&#x20;
  * &#x20;This toolpath mills the remaining stock to the finish geometry, this pass usually takes the longest
* **2 Axis Profiling**:
  * This toolpath will cut the geometry out of the stock to have a final model.&#x20;

![Site Model Geometry](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M63TzvE44XvMiyix0vK%2F-M63UiTRvmOtMPvvGMkW%2Fboolean%20site%20model.jpg?alt=media\&token=b3c37b69-fd45-4d74-a650-c03bbfa0c2cb)

### 3 Axis Roughing

![3 Axis Roughing Toolpath Simulation](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M63TzvE44XvMiyix0vK%2F-M63VoZHE0DSyZ33UDcz%2Fsimu.JPG?alt=media\&token=f46f9840-5e30-4878-9f91-7a0eb69a38f5)

### 3 Axis Parallel Finishing

![3 Axis Parallel Finishing Toolpath](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M63TzvE44XvMiyix0vK%2F-M63UaJb583E5Q9h28JK%2Ffin%20toolpath.JPG?alt=media\&token=42cfaecc-b163-47d5-ac45-16fc61d583be)

![3 Axis Toolpath Simulation](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M63TzvE44XvMiyix0vK%2F-M63UexEdhADfqyC5mB-%2Ffin%20simulation.JPG?alt=media\&token=1cf43ea5-e8b4-40ba-9c28-b5c82e5d1c2d)

![Final outcome](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-MFd4Fddd7jKi67hbjXN%2F-MFdLrrpUfAzpuosCGQb%2F3%20axis2.jpg?alt=media\&token=8016fb28-5015-4bb2-a252-8d05975ebdce)

## Deriving Toolpath Geometry from a Model

{% embed url="<https://youtu.be/rBFvbMpCFms>" %}

> 4 MINUTES

#### **NOTES**

* *\_Move*, V allows the user to move geometry along the Z axis.
* *\_Make2d* projects geometry to a chosen plane.
* *\_DupBorder* will duplicate the outline of a surface.
* *\_SetPt* allows the explicit setting of any, all or a combination of the X,Y,Z coordinates of any geometry.
* *\_CurveBoolean* allows the trimming, splitting and joining of a series of curves.
  {% endtab %}

{% tab title="Dog Bone" %}

## **Resources**

Download the Dog Bone Generator here:

{% embed url="<http://www.darcyz.com/resources-1#/resources/>" %}
Dog Bone Script
{% endembed %}

{% embed url="<https://www.grasshopper3d.com/forum/topics/dog-treat-dog-bone-corner-generator>" %}

## Operation

Dog-boning refers to the process of creating an arc around a sharp-angled corner to enable a circular cutting bit to fully remove material from the area that would otherwise prohibit other parts from fitting up against it properly.

This process can be done manually by circumscribing a circle an inset distance from each corner vertices before using the `Curve Boolean` command to subtract this area from the original curve. For even a small amount of curves this can take a considerable amount of time.

Instead, a[ Grasshopper Tool](https://www.food4rhino.com/resource/dog-treat) has been created to automate this process.

&#x20;**1.** Download the tool, drag and drop it onto the Grasshopper Canvas to add it as a User Object.

![A geometry sample consisting of a number of ninety degree corners](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-LY-pB9_xh-6Q44FKc_8%2F-LY-pR7u0TSlZPhjkllr%2F01.jpg?alt=media\&token=45f92b3d-7e8f-4619-b840-ff7b7f1a3893)

**2.** Drop Dog Treat onto the Grasshopper Canvas<br>

**3.** Reference all your curves into Grasshopper into a single Curve container and connect this to the `Input` input of Dog Treat.<br>

**4.** Assign a Bit Diameter relevant to the scale of the geometry needing to be cut, 6.35mm is generally enough.<br>

**5.** Connect other Curve containers to the `Interior` and `Exterior` outputs of Dog Treat.

![A sample workflow in Grasshopper for addressing these problems](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-LY-pB9_xh-6Q44FKc_8%2F-LY-pkbq7ODJ8fld8VTe%2F02.jpg?alt=media\&token=7630263e-7680-49f4-8704-d91b8bca6b47)

![Curves processed by Grasshopper (green) overlaid ontop of the original ones (black) in Rhino](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-LY-pB9_xh-6Q44FKc_8%2F-LY-pv8gE0hOC83kE8Wc%2F03.jpg?alt=media\&token=acf397db-8774-48d5-9cde-c39ffd581dff)

**6.** These curves can now be baked back out into Rhino and submitted for CNC machining. Please ensure you don't submit the original curves as they'll still exist underneath the ones that Grasshopper has processed.
{% endtab %}

{% tab title="Flip Milling" %}

## Part Geometry <a href="#flip-milling-partgeometry" id="flip-milling-partgeometry"></a>

Geometry to be flip-milled should ideally be a singular closed polysurface or a group of objects. Please include any additional geometry needed for toolpathing in this group. This means that Fab Lab technicians can move/orient your geometry if necessary without changing your part configuration.

## Stock Considerations <a href="#flip-milling-stockconsiderations" id="flip-milling-stockconsiderations"></a>

Whatever material you're planning on using for your part, please ensure that a border of at least 50mm is left between the part and edge of the stock material. This extra room is needed for tool clearance and the creation of bridging geometry where necessary. Bridging geometry are small extrusions that connect the part to the stock material and are needed to stock the part from moving or vibrating while being milled. These are generally removed after milling using the facilities in the machine workshop.

## Milling Jigs <a href="#flip-milling-millingjigs" id="flip-milling-millingjigs"></a>

Jigs are often used when flip milling to enable the part to be located easily after being flipped on the CNC bed. Jigs may take shape of an 'L' bracket to butt the stock up against, or form a negative for the stock material to be inserted into. if the later is the case, the negative but be slightly bigger than the outline of the stock material. This amount is generally around 0.35mm.

!['L' Jig ](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M62_vFcsIfOtwxsalPY%2F-M62gnnIfqdsK67Ma6dg%2Fflip%20mill.jpg?alt=media\&token=86fa1245-a775-43dc-8a30-2ac8f9deae0f)

![Complete Jig](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-M62_vFcsIfOtwxsalPY%2F-M62gtlXZRqdNoRAdFLf%2Fflip%20mill%20jig%20final.jpg?alt=media\&token=0faf7d7f-4262-4249-bb12-fd34242fcebf)

## Creating Bridges

When wanting to to flip mill a piece of given geometry, it may be beneficial to leave the geometry connected to the stock material and remove it by hand during post production. This is necessary when the geometry is either:

* Small
* Without at least one large flat face in line with the top/bottom of the stock material
* Requiring multiple flips
* Fragile

![This part is quite large with multiple fragile areas requiring bridging geometry to be added](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-LXunWo2WhKi0jbCXvzv%2F-LXuomHmonWchbsZ7h8U%2FBRIDGES_01.jpg?alt=media\&token=b2ff1a18-9ac5-481c-9ce5-9a731a161424)

![The outline of the part has been roughly offset to allow space for bridges to be created](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-LXunWo2WhKi0jbCXvzv%2F-LXupBpD9bnw3jGu2cJE%2FBRIDGES_02.jpg?alt=media\&token=fa8300c1-ddfe-4f9e-83fc-bd0bfeeaaac2)

![Bridges have been modeled in as simple extrusions where needed to maintain part rigidity while milling](https://1705907971-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXb8cACCUE4sAj3yO3X%2F-LXunWo2WhKi0jbCXvzv%2F-LXupMnx9LV_kjf6-d8c%2FBRIDGES_03.jpg?alt=media\&token=4c81d34b-5b42-4e33-920b-d426256b311a)
{% endtab %}
{% endtabs %}
