Skip to content

8. Computer-Controlled Machining

  1. Study Plan
  2. Research / Group Assignment
  3. Individual Assignment

Assignment definition

Group assignment

Do your lab’s safety training : test runout, alignment, speeds, feeds, materials, and toolpaths for your machine

Individual assignment

Make (design+mill+assemble) something big (~meter-scale)

Group Assignment : Be Safe around the CNC

The group assignment is also detailed on the group page.

Understanding the milling bits

The first thing we did with to start working with the CNC is understanding the cutting tools and parameters.

First there is a big difference between drills and mills even if they look loosely the same. The difference is in what part of it cuts.

In a drilling bit, only the end cuts and the grooves and edges on the side are sharp but not cutting. They are there to evacuate the material.

In a milling bit, the cutting edges can be a bit everywhere depending on what you want to cut and how. Generally speaking, che cutting edges are on the side. Because milling bits are very different from one another.

There are whole catalogues of milling bits and their characteristics.

Milling Bit Catalogue

Once you dive in the catalogue, you quickly realize it’s a good thing to have a guide because there are a lot of different bits.

Milling Bit Variants

Fortunately, the pictograms and explanations in the book makes to understanding the parameters much easier.

Milling Bit Parameters Explanations

The important parameters are thus the following :

Cutting speed - Vc

This is the speed of the blade relative to the stock.

It is the product of the spindle rotational speed and the diameter of the bit. It is expressed in m / min.

Using this parameter and the diameter of the bit, we can define the spindle speed.

Advance per flute - Fz

This is the quantity of material that is chipped away by one single flute. In English, it’s named chip load but the French naming is much clearer in my opinion.

Using the advance per flute, the number of flutes of the milling bit and the spindle speed, we can compute the feed rate. which is the horizontal speed of the machine, which is expressed in mm / minute.

It varies a little if you are cutting through the stock or only on the contour, but as a general practice, using the lowest of the two is the safe option and does not change the overall duration of the work by much.

Cutting depth

Then there is the cutting depth which is the vertical dimension of the chip load. It answers the question : “How deep can I go in one pass ?”.

Our instructor gave us an acceptable rule of thumb for bits between diameter 3mm and 50mm, which is to never go higher than half the diameter, in wood at least.

This is apparently a bit more of an experimental parameter so you have to test it and check that everything goes well before increasing it.

Other parameters

Then there are lots of other parameters, starting with the shape of the bits, the angle of the flutes, the presence or absence of the central hole for chip evacuation, the end angle, …

A question that I still need to answer is what conditions the number of flutes. Apparently, some material “prefer” an odd or even number of flutes. It also greatly influence the chip evacuation.

Our milling bits

First, we checked our bits and discussed the errors of our peers.

The first lesson is a burned bit is a dead bit. Generally speaking, if our bits burn, they are no longer sharp and should be avoided.

A lot of our bits have been mistreated and are burned but we still have some acceptable, others have been ordered but have not arrived yet.

A burned bit

Some bits are only lightly burned and are still acceptable to continue.

An acceptable bit

We used the single flute bit that was on the machine and we found it in the book so we have its characteristics. We can now move on to the machine.

Our milling bit page

Understanding the machines and the safety rules

We have a CNC-Step machine interfaced with kinetic-NC as software controller, and that is the post-processor we will need to export the CAM programming.


The machine’s dimensions are 120 cm x 60cm x 40 cm (XYZ) and has doors to keep the dust inside and mostly keep us safe from flying chips of the stock and from getting tangled in it.

Because of that it’s a little less dangerous. However it is still a powerful and dangerous machine so it’s better not to leave the room while it runs ! It’s also a machine that will potentially create a fire if not run properly.

Once the bit is safely attached and the doors closed, we can go behind the computer.

The interface of Kinetic-NC is quite practical and once you have the gcode for the machines it is quite easy to use.

Jog menu of Kinetic-NC : Set the origin

We set up the zero of the machine and make sure to select G54 as reference origin as this is by default the origin of the piece.

Preview the path relative to the origin

For the Z alignment, we have a script and a probe that makes it super easy.

We checked for a first test the CAM tools available with SolidWorks, specifically HSMWorks.

Individual Assignment : Make something big

Designing the table

At first the design was a little different, much larger as a table should be but then I realised that the dimensions of the CNC were 60cm by 120 cm so my table was too wide. I thus reduced the dimensions to get a sort of stool.

Design of the stool

Off course from the beginning I had set up some parameters, so modifying it was not too difficult.

Adding parameters to my design

I ended up with a sort of nightstand / stool.

Design of the stool

Learning CAM

I first tried to stay on Onshape solution as it is the CAM system I like best, for the main reasons that I can run it on Ubuntu (it runs in a browser) and is super user-friendly. I found Kirimoto as an add-on app to do CAM but it did not load so I moved to Fusion360 on a Windows computer.

The “Fabrication” tab in Fusion360 is quite intuitive. As I had seen how to do it in SolidWorks, I knew what I had to do, I just had to figure out how to do it.

The different steps to follow are:

  1. Set up the stock (Configuration)
  2. Create the tool library
  3. Define the manufacturing passes

1. Configuration

Defining the stock looked easy but directly when I saw that it defined the stock based on the assembly. This is not what I wanted to do, as I planned to use planks of wood.


Asking around and checking on internet how to lay the elements flat, I saw it had to be done manually so I did in a new file, which made creating the configuration easier.

Plank based configuration

The important thing is to make sure the thickness of the material on top, below and on the sides is appropriate and fit the plank that you are using. Because of the dimensions of the machine, I divided the work in two parts.

Tool library

Before defining manufacturing commands, we must define our tool library. Because we checked the tools catalogue first, it is very easy to do.

A lot of parameters won’t actually be used so we can skip some of them.

Creating tools in the tool library

Here we see directly the link between the parameters such as the cutting speed and the spindle speed.

We add them to our custom tool library and move on to the next steps.

Define the manufacturing passes

When creating a manufacturing command, we first select the tool.

Defining the tool to use

The parameters of the tool can be set up in the tool library and changed for a specific command in the command line.

After that, we specify the parameters of the pass, the number of passes, their depths, the strategies, …

Defining the passes
As we said earlier, the rule of thumb for the pass depth is half of the mill bit diameter. You can also set up the parameters of displacement of the mill bit to optimize the path or to avoid some fixation screws for example but we don't change that. There are different types of cutting commands, depending on what is intended. We used 4 main ones : 1. Surfacing : For surfacing an area. 2. 2D pocket : to carve an area the stock down to a given contour. 3. 2D contour : to follow a 2D contour. 4. Ramp : To create a ramp, define by the object and two limiting contours.
Using a ramp to cut in 3D
When creating a contour, you can add tabs that are very useful to keep your piece attached to the stock and avoid it moving and getting damaged.
Adding tabs to the contour and keeping it attached to the stock

Making the table

Part of the contour was not cut so I went back on it with a jiggsaw

To fix the stock to the CNC, I drilled holes in the corners and screwed it in the spoilboard.

Once that was done, I started by the first leg of my table. Following the advice of Christophe, our instructor this week, I started with a feed rate of 30% of the programmed one to make sure I was not

Starting the milling

Once the milling was complete, I saw a problem.

The first leg is milled

The spoil board is not flat because so many students used it inappropriately that they destroyed the spoil board.

Fixing my plank to it made the plank not perfectly horizontal and the CNC failed to cut it through on the whole periphery.

Part of the contour was not cut so I went back on it with a jiggsaw

For the second half, the situation was not as problematic because no corners nor fixations were in a hole of the spoilboard.

Plate and second leg of the stool finished

In this case however, the ramp that I used to cut the edge of the table left a lot of material to be removed.

Therefore, I used a electric sanding machine and in 5 minutes it was done.

This needs some sanding

I checked at the fablab that it was assembling correctly and took the stool with me.

Checking the assembly of the stool

Travelling with it was super easy as I was riding my bike and it fitted perfectly in the bicycle fonts. I then assembled it and the press fit worked directly ! How lucky I was, I had not made sufficient test to verify it first !

Assembling it and pressing to get a press fit

The chair is in its new home and I have now two orders from a friend and my mother for another piece of furniture !

My mother loved it and my sister adopted it !


Last update: June 17, 2021