7. Computer Controlled Machining - Students¶
Group Safety Training¶
Dogbone Joint Tolerance Test — Oliver Abbott¶
For this week’s CNC assignment, I designed and cut a test piece to determine the optimal fit for a 0.5” wide dogbone joint. Dogbone joints are commonly used in CNC milling because a standard end mill cannot cut perfectly square inside corners — the dogbone shape adds a small circular relief at each corner, allowing flat sheet parts to fit together cleanly.

This is the test made in Fusion.
Test Design¶
The test piece features seven slots, all designed for a 0.5” wide tab. The center slot is exactly 0.5”, and the remaining slots vary in width to test different clearances:
| Slot | Width (in) | Offset from 0.5” |
|---|---|---|
| 1 | 0.40 | -0.10 |
| 2 | 0.42 | -0.08 |
| 3 | 0.44 | -0.06 |
| 4 | 0.46 | -0.04 |
| 5 | 0.48 | -0.02 |
| 6 | 0.50 | 0.00 |
| 7 | 0.52 | +0.02 |
| 8 | 0.54 | +0.04 |
| 9 | 0.56 | +0.06 |
| 10 | 0.58 | +0.08 |
| 11 | 0.60 | +0.10 |
The slots decrease from 0.50” down to 0.40” in 0.02” increments, and increase from 0.50” up to 0.60” in 0.02” increments. This range tests both press-fit (undersized) and loose-fit (oversized) tolerances to find the sweet spot for our CNC machine.
Why Dogbone Joints?¶
When a CNC router cuts an inside corner, the round end mill leaves a radius equal to half the bit diameter. This means a square tab won’t fit into a square pocket. Dogbone joints solve this by adding a small circular cutout at each corner of the slot — the circle matches the end mill diameter, allowing the square tab to seat fully into the joint.
Purpose¶
By testing this range of tolerances, we can determine:
- Which slot provides a snug press-fit — tight enough to hold without glue but still assemblable by hand
- Which slot is too tight — the tab won’t fit or requires excessive force
- Which slot is too loose — the tab slides freely with visible gaps
- The actual kerf and deflection of our CNC machine, which affects how closely the cut matches the designed dimensions
This information is critical for designing accurate joints in future CNC projects, ensuring parts fit together as intended on the first cut.
You can download the dxf file by clicking here
Aspire¶
Dogbones were added to each corner inside the clearance test so a piece with 90 degree corners can properly fit in each slot. Dogbones were added in aspire not fusion.
Profile Settings

These are the only settings that were changed, all the other settings were left as default.
Vcarve Settings

A 60 degree Vcarve bit was used to cut the letters because they were small and close together. These are the settings that were used.

These are the toolpaths that were calculated.
Cutting on the ShopBot¶
Because we were unsure of our vcarve settings, we decided to test the numbers.

It took a few tries to get the numbers right, we adjusted things like flatdepth.
After we got the numbers right, we cut the whole test itself.

This is our test after being cut out.
Speeds and Feeds¶
Speeds and feeds are very important aspects of machining. Speeds is how fast the tool rotates, often measured in RPM. Feeds is how fast the tool moves in a certain direction, often measured in IPM (inches per minute).
Speeds Table
I asked AI to create a table showing the effects of different speeds when machining.
| Cutting Speed | Tool Life | Surface Finish | Heat Generation | Material Removal Rate | Tool Wear Type | Overall Effect |
|---|---|---|---|---|---|---|
| Very Low | Very Long | Poor (rough finish) | Minimal | Very Low | Minimal wear | Inefficient, may cause built-up edge |
| Low | Long | Fair | Low | Low | Slight wear | Stable but not productive |
| Moderate | Optimal | Good | Moderate | Moderate | Gradual wear | Best balance of quality and efficiency |
| High | Reduced | Very Good (smooth) | High | High | Accelerated wear | Productive but shortens tool life |
| Very High | Very Short | Excellent (initially) | Very High | Very High | Rapid failure (thermal) | Risk of tool damage, thermal distortion |
Feeds Table
I asked AI to create a similar table, but with feeds.
| Feed Rate | Tool Life | Surface Finish | Heat Generation | Material Removal Rate | Tool Wear Type | Overall Effect |
|---|---|---|---|---|---|---|
| Very Low | Moderate–Long | Very Good (smooth) | Low–Moderate | Very Low | Rubbing wear, BUE | Inefficient, may cause rubbing instead of cutting |
| Low | Long | Good | Low | Low | Light flank wear | Stable, but low productivity |
| Moderate | Optimal | Good–Fair | Moderate | Moderate | Balanced wear | Best balance of finish and efficiency |
| High | Reduced | Rough (visible feed marks) | Moderate–High | High | Increased flank wear | Productive but poorer finish |
| Very High | Very Short | Very Rough | High | Very High | Chipping, edge failure | Risk of tool breakage and poor accuracy |
Our CNC Machine — Oliver Abbott¶
Our lab uses the ShopBot PRS5 Alpha ATC. It is a full-size gantry-style CNC router built for production work. Here are the key specs:
| Spec | Value |
|---|---|
| Spindle | 5 HP HSD with pneumatic drawbar |
| Tool Holders | 9 × ISO30 with ER32 collets (up to 3/4” shank) |
| Max Cut Speed | 720 in/min (300 mm/s) |
| Max Rapid Speed | 1,800 in/min (750 mm/s) |
| Positional Resolution | 0.0004” (0.01 mm) |
| Control System | Closed-loop (Oriental Motor alphaStep) |
| Software | ShopBot control software + VCarve Pro |
Automatic Tool Changer (ATC)¶
The ATC is what sets this machine apart from a standard ShopBot. It has a 9-position tool bar where each slot holds a pre-loaded ISO30 tool holder with a bit already set in it. When a job requires multiple bits — for example a roughing pass with a 1/4” end mill, a finishing pass with a ball nose, and V-carving with a 60° V-bit — the machine automatically swaps between them mid-job without the operator having to stop, change the bit, and re-zero. The spindle uses a pneumatically actuated drawbar to grab and release tool holders, so it needs a compressed air supply (7 scfm at 90 psi). This dramatically cuts down production time on multi-tool jobs.
Materials¶
In our lab we have only used wood so far, but the ShopBot PRS5 Alpha ATC is advertised to cut a range of materials:
- Wood — Hardwoods, softwoods, plywood, MDF, and OSB. This is the most common CNC material and what we use for all our projects. Different wood types require different speeds and feeds.
- Plastics — Acrylic, HDPE, PVC, polycarbonate, and other rigid plastics. These cut well on a CNC but require slower feeds and careful chip clearing to avoid melting.
- High-Density Foam — Sign foam, insulation foam, and tooling foam. Foam cuts very fast and is often used for prototyping, mold making, and theatrical set pieces.
- Aluminum — Soft aluminum alloys (like 6061) can be machined on the ShopBot with the right bits and conservative speeds and feeds. It requires good chip evacuation and often uses a single-flute end mill to prevent chip packing.
- Composite Panels — ACM (aluminum composite material), Dibond, and similar sandwich panels used in signage.
Each material requires different tooling, speeds, and feeds. Wood is the most forgiving to work with, while aluminum is the most demanding — requiring slower cut speeds, shallower passes, and careful attention to chip clearing.
Alignment¶
When machining, alignment is a crucial aspect. Without proper alignment, the machine has no context of where it is. To align the Shopbot, in the terminal run the command C3. This homes machine which allows it to know where the zero point is.
Aligning Aircuts
Before running jobs on the shopbot, it is important to run an aircut. Aircuts allow the operater to preview the cut without cutting into the material. First, the machine is homed by using the command C3. Once all Axis are homed, the Z axis is jogged up (usually around 3 inches) using the Command JZ then a number in inches so the machine knows where omn the Z axis to jog to. Once the Z axis is a jogged, the command ZZ is used to zero the Z axis at whatever spot the Z axis is at. Now, the Z axis thinks zero is above the material.
Fixturing¶
On the shopbot, we use polymer composite nails. These nails are super strong in and up and down direction, perfect for fixing a material to the machine bed. The nails aren’t to strong in side to side movement which helps us remove the materials. Our lab used to use metal wood screws, we changed because if the tool hit one of these screws it could send shrapnel flying around the room and damage the machine.

These are the nails we use.
To use the nails, we use a nailgun. The nailgun is very simple to use. We insert the nails into the magazine, hook the nailgun to a compressor, then pull the trigger to shoot a nail.

This is the nailgun we use.
Runout Test - Yian Hu¶
Why Test for Runout?¶
Runout is the wobble or off-center rotation of a spindle as it spins. Ideally, when a CNC spindle rotates, the tool should spin in a perfectly straight line — but in practice, there is always a tiny amount of deviation. This deviation is called runout, and it is measured in thousandths of an inch (or hundredths of a millimeter).
Testing runout is important because even a small amount of it can have a big effect on cut quality. If the spindle wobbles while spinning, the cutting tool traces a slightly larger arc than it should. This means:
- Cuts come out slightly wider than designed, which throws off tolerances in joints, pockets, and holes
- Surface finish gets rougher, because the tool is taking uneven bites out of the material with each revolution
- Tool wear increases, since the cutting edges are loaded unevenly — one edge does more work than the others
- Vibration and chatter become worse, which can cause visible ridges on the cut surface and stress the machine
For something like our dogbone clearance test, where we are trying to measure 0.02” differences between slots, even 0.005” of runout would be enough to make the results meaningless. Knowing the runout of our machine helps us understand how precise our cuts actually are, and whether the machine is in good working condition.
Our Test Setup¶
To test the runout on our ShopBot, we used a Mitutoyo Test Indicator — a precision dial gauge that can measure very small amounts of movement. We mounted the indicator on a magnetic holder arm and positioned the tip of the indicator against the spindle. This gave us a stable setup where any wobble in the spindle would be picked up and displayed on the dial.

We then spun the ShopBot spindle by hand slowly and watched the needle on the indicator move. The indicator showed about 0.0025” of movement — meaning the spindle wobbles about two and a half thousandths of an inch as it rotates.
Results and Takeaways¶
0.0025” of runout is actually pretty good for a production CNC router. To put it in perspective, that is less than the thickness of a human hair. For most of the woodworking we do in the lab — cutting dogbone joints, pockets, profiles — this level of runout will not noticeably affect our results.
However, it is still worth knowing. When we design clearance tests and interpret the results, we factor in that our machine has about 0.0025” of inherent deviation just from spindle runout, on top of any other sources of error like bit deflection, material flex, or CAM settings. This helps us make smarter decisions when choosing which slot size to use for a press-fit joint.
Toolpath Test - Yian Hu¶
Toolpaths are tested before full machining to confirm that the cutter is following the intended geometry and removing material from the correct side of each vector. This prevents common CNC issues such as oversized or undersized parts, poor fit between mating pieces, wasted stock, and unnecessary tool wear. It also makes the ShopBot process more predictable by catching CAM mistakes early.
In Aspire profile toolpaths, the three main options are:
- Outside / Right: The cutter runs on the outside of a closed vector. This is used when the outside edge of the part needs to stay close to the designed size, with kerf pushed into the waste area.
- Inside / Left: The cutter runs on the inside of a closed vector. This is used for internal features such as slots, holes, and pockets where the inner dimension must be controlled.
- On: The cutter follows the centerline of the vector. This is used for engraving, marking, and centerline cuts where inside/outside compensation is not needed.
By testing these toolpath types first, the group can choose the correct strategy for each feature and improve part accuracy on the final cut.
Creating the Toolpaths¶
To start, I opened a new aspire file and confirmed its settings according to the wood I was to cut on. It ended up having dimension of 96.0” x 48.0” x 0.48”. I also set the z-zero position to Machine Bed. From there, I proceeded to create 3 2.5” x 2.5” squares in the workspace. Each square would test a separate profile toolpath orientation.
I then began on the first profile toolpath, which was the Outside / Right toolpath. I set the cut depth to 0.48”, selected the correct machine vector direction, and also added tabs for security. Once done, I calculated the toolpath.
The next toolpath was the Inside / Left toolpath. I followed the same steps used to create the outside toolpath, but instead selected the Inside / Left machine vector direction. Once calculated, I saw that there was a noticeable difference in size between the outside and inside toolpaths.
The last toolpath was the On toolpath. Once again, I created a profile toolpath, and this time selected On as the machine vector direction. This toolpath ended up being slightly smaller than the outside toolpath and slightly larger than the inside toolpath.
Here are the final toolpaths. As you can see, the size of each cut varies.
Before exporting and cutting my design on the ShopBot, I previewed the toolpaths to make sure they work. The preview produced a valid result.
Cutting on the ShopBot¶
I first opened my aspire file on the computer connected the our lab’s ShopBot. Since the wood on the machine was already used, I had to adjust the position of my design and recalculate each toolpath. Once done, I saved the toolpaths in one file. Then, following our lab’s ShopBot workflow, I cut my design through the software. Here is what the design looked like right after cutting.
I then removed each block from the board by cutting its tabs, and placed them side-by-side to compare sizes. As can be seen, there is a significant overall size difference between each toolpath type.