07 - Computer-controlled machining

The ShopBot, a machine that can literally take your arm off and would feel no remorse… A week of caution!


This week’s assignment is again two-fold:

  • Group assignment:
    • Test runout, alignment, speeds, feeds, and toolpaths for your machine
    • Document your work (in a group or individually)
  • Individual project
    • Make (design+mill+assemble) something big



What I think I already know

  • Not much. This will a very interesting week for me.

What I want to learn

  • Designing for a large CNC mill
  • Finding a good workflow for operation
  • Operating a large CNC mill (safely)

What I learned

  • This machine is awesome!
  • It is important to check and recheck every step you take, every move you make.
  • Necessary fillets can best be placed during the CAM toolpath creation, not in the original design.
  • Make sure only one vector exista that should be converted to a toolpatch.

Project - discovering the machine

A CNC (Computer Numerical Control) mill is a machine that can move a rotating tool along various axis to remove material from an object.
Most CNC mills operate on a very simple principle. A gantry moves over a bed along the X axis. A head travels on the gantry in the Y axis. This is a 2d operation. The head can lower a rotating tool up and down along the Z axis. This is a 3d operation.


The node has a big ShopBot. It is a very powerful machine and with great power comes great responsibility…
machine controls

Safety instructions

FabAcademy is all about learning from mistakes. The shopbot however has a very small margin for it. The machine removes small clippings of material (typically wood) and these clippings are sucked away to a big shop vacuum. Small pieces of wood with lots of oxygen is very flammable stuff. If the mill bit hits a screw, the spark is also sucked into the bag with clippings -> brand @ waag…

In case of sparks
If a spark is sucked into the machine:

  1. hit the emergency stop on the machine to stop the movement (1)
  2. stop the vacuum (2)
  3. unclip the bag from the vacuum
  4. keep the bag closed to block fresh oxygen
  5. check the bag
    • if the bag is not on fire, take it outside for a closer inspection
    • if the bag is on fire, throw it out of the window
  6. do NOT use the fire extinguisher, this will generate lots of turbulence
This has not happened… yet.

The mill bit is a 5 mm, 2-flute end mill. It travels around 80-90 mm/s with an rpm of 18k. This rpm will generate a lot of friction = heat > fire @ waag.
Do not leave the bit milling for too long in one place.

Operating checklist

  • Be zen and only turn on the machine when you plan to operate it
  • Create the toolpaths using the V-Carve software (see below)
  • Make sure the bed is empty and clean
  • Sand down the “volcanos” left by screws from previous jobs in the sacreficial material
  • Make sure the surroundings of the machine are free from obstructions
  • Make sure to tighten any loose clothing and/or hair
  • Turn on the machine with switch 1
  • Calibrate the machine using the Shopbot software (see below)
  • Move the head with the keypad to a position where it can be reached easily
  • Lower the skirt of the vacuum with the wingnut at the back of the head
  • Insert the bit in the collet and attach the nut, have the mill bit stick out of the collet for about 5 mm + the material thickness
  • Insert the collet in the head and tighten it with the two spanners
  • Raise the skirt and tighten the wingnut
  • Start the vacuum with switch 2
  • Load the toolpath in the Shopbot software
  • Start the spindle with the key attached to one of the spanners in switch 3
  • Start the job in the Shopbot software and behold…
  • If a small problem occurs, pause the machine with the space bar
  • If a big problem occurs, see the red section “In case of sparks” above.
  • When the machine is finished, turn off the spindle with the key in switch 3
  • Remove the key
  • Stop the vacuum with switch 2
  • Depending on the job, switch the mill bit, load another toolpath, start the spindle, rinse and repeat
  • When all jobs are done, close the Shopbot software and turn off the machine with switch 1

Software V-carve

The V-Carve Pro software is used for generating the toolpath instructions for the machine. This is a dialect of gcode, the same language used for the 3d printers.

It has to know some basic properties to start with, like the size of the board, what mill is used and where it is placed. V-Carve tool setup

The machine can create various types of cuts.

  • Drill: use the tip of the mill bit to drill a hole in the material. Useful for creating screwholes at precise and well-known positions.
  • Pocket: use the side of the mill to remove areas of material. Useful for creating larger holes and indents.
  • Profile: use the side of the mill to remove a line of material. Useful for separating parts from the material. V-Carve toolpaths

When performing a profile, the part will separate from the material and come loose. This can cause problems if the mill has not finished yet. V-Carve has an option to create tabs, small parts where the mill will slightly lift and leave material in placce. These parts will hold the part attached to the material and can easily be removed after the job has finished.

When creating pockets, for example for creating slots where a tab will press-fit into, the inner angle is determined by the radius of the mill bit. Creating straight 90 degree inner angles is not possible. This has to be accounted for when designing the part.
An outside fillet has to be created that will clear enough material for the straight corner of the tab to fit into. These fillets are called dog bones or t bones, based on their shape.

When all toolpaths are created, they can be exported to jobs.
There are typically multiple jobs.

  • a drilling job for creating screw holes for attaching the material to the sacrificial layer
  • a job for each different tool / mill bit A job is created by assigning different toolpaths to it.
    Make sure that the drilling toolpath is deselected from every other job, otherwise the mill bit will lower down on the screw head, causing sparks -> fire @ waag.

Software Shopbot

The Shopbot software is used for controlling the machine and sending the toolpath.
Make sure the machine is on, otherwise the software will throw an error.

The K will open the manual keypad and will let you move the gantry and head. The arrow keys correspond to the real-world direction. The Pg Up and Pg Dn will move the spindle up and down.

Calibrating the machine

First calibrate the X and Y axis by pressing the middle XY calibration button.
The machine will now move and find its absolute zero.
Next, use the keypad to move the head to the X and Y position where you would like to position your design. In the “[Z]ero” menu, select “Zero [2] axis (X and Y)”.

Next, calibrate the Z axis by moving the head somewhere in the middle of the board (edged can curl up) and placing the metal calibrating strip (located on the left side of the head) under the collet. Tap the metal strip to the collet and see if the sensor detects the tap.
Then press the left Z calibration button.
The machine will now lower the head till the collet touches the plate and a known depth is set.
Raise the head using the Pg Up key and place the metal strip back in the holder on the left side of the head.

It is a good idea to record the offset, so when you have to reset the machine, new (related) jobs can be started from the same origin.

Starting a job

Import a toolpath file and press start. The software will warn you to turn on the machine. This is done with the key switch 3.

In case of problems
Press the Spacebar to pause the job and do any adjustments required. Careful, the spindle does not turn off automatically, only the movement of the head and gantry is stopped.

Project vinyl cutter case

For the individual project, I designed a case for the Silhouette Cameo 4 vinyl cutter. I recently managed to get a 2nd hand one for not too much money. (Yes, the same cutter I borrowed for the assignements in week 3.)
FreeCAD design
It is a case with two shelves for material storage and a drawer for equipment storage. The cutter will be placed on top and can be operated this way. The drawer will have a laser-cut foam insert in the future. The drawer can be placed in all shelves.
The side panels have in one row normal fillets, t bone fillets and dog bone fillets. This will give a nice indications of the strengths and challenges with each.

The design is made in FreeCAD. I made two designs, one with various dog bones and one without. I exported each body as flattened SVG. In Inkscape, I combined these to a single layout and added screw holes. Then I saved the file as .pdf, .eps and .dxf.

After setting up the machine, I found that the Z leveling was done on a piece of material that curved upwards. Because the first toolpath is for drilling screw holes, the remaining holes were very shallow.
Screw holes
THey were still visible, so fixing screwa in the right places was no problem. After fixing the material to the sacrifical layer, the board was straight and a proper Z leveling could be performed.

V-Carve did not like the .dxf file. All vectors were grouped in one clump. The .eps went a bit better, but a number of dogbones came out wrong. So I ended up using the .pdf in the end.
This file however did contain a lot of double vectors. Ths shapes consosted of four vectors on top of each other. Three were closed and one was comprised of open, unconnected vectors. I tried removing the first three, but the remaining vectors did not create a closed body V-Carve liked. V-Carve will ignore any overlapping vectors and automatically remove them. So the toolpaths looked totally fine. However…

A problem became apparent when the profile toolpath did not create any tabs… Luckily, this was a small piece of wood with an inside cut.

I paused the job and investigated. The tabs were created on vectors that were then automatically removed from the resulting toolpath. I tried to automatically add tabs to all vectors and have the double ones be removed automatically, but that did not fix it.
Ultimately, I created a new job for the outline toolpath by selecting the top most outside vectors, move them a known amount out of the board, delete everything else and move the outside vectors back by the same amount. Tabs were now created perfectly.
I stopped the job and re-uploaded the new job. Since the calibration of the machine was not changed, the new job started at exactly the right coordinates.

After a bit of sanding and a few friendly taps with a mallet, the whole case fits together very snugly.
The different types of fillets can be seen nicely on the side panel.
The drawer slides in easily, but needs a bit of glue to keep it firmly together.

As a finishing touch, I plan to make a foam inlay for the drawer.
foam inlay
This will hold all the knives and penholders in place. This foam is PE foam that can be cut in the laser cutter. The foam design is included in the “with bones” design file below.

Project files

with bones

The design for the case can be found here.
The individual panels can be found here.
The combined paths for the case can be found here.

without bones

The design for the case can be found here.
The combined paths for the case can be found here.
The individual panels can be found here.


What went right

  • The design works and the pieces fit snugly together.
  • I learned a ton…

What went wrong and how did I fix it

  • Various vector formats in various programs do not play nice with eachother. After importing, the first step is to check every path to see if it was imported correctly.

What would I do differently next time

  • The fillets were quite tricky in FreeCAD. Next time, I will de-double the vectors in X-Carve and add the necessary fillets there. This saves a lot of time in the design-proces.
  • There is a plugin for FreeCAD that places panels in their correct orientation and creates vectors for it. This is developed for laser cutting, but is equally applicable to CNC milling.
  • The Path workbench in FreeCAD is very powerful, but a daunting task for the uninitiated. Now that I have more experience with the machine and more time at hand, I will continu playing with it and see if it can create the required files for the Shopbot software.