7 - Computer-Controlled Machining
Hero Shot

Summary
This week we learned how to use the CNC milling machine safely and how to design, mill, and assemble something large from sheet material.
Approach / idea / acknowledgements
For this assignment I wanted to make something useful for the steps outside my house, where I often sit in the sun with friends. I decided to design a small table that fits that specific spot and used a press-fit construction so the parts could slot together without screws.
Assignment
- group assignment
- individual assignment
- make (design+mill+assemble) something big (~meter-scale)
- extra credit: don't use fasteners or glue
- extra credit: include curved surfaces
- extra credit: use three-axis toolpaths
Safety training
At Waag there’s a ShopBot CNC: a big and slightly dangerous machine with a 20-year-old controller, a computer running VCarve and the ShopBot software, and a maximum spindle speed of 18,000 RPM. The largest material you can load is 2.50 × 1.30 × 0.20 m. It’s very precise and has no real limits — it will happily try to do whatever you tell it to do. That’s why it’s important to know how to use this beast safely, so Henk and Saco walked us through the safety procedures.

First off, a spindle rotating at those speeds is very dangerous, never has loose hair or clothing that can get caught in the spindle. Never leave the machine while it's running!
On the bottom of the CNC theres a big red stop button, that's the emergency button. The head of the machine is connected to a dust extraction system that removes chips and dust while cutting. It's in a separate closet in the back of the room, turn it on and leave the door open while using the CNC. If the closet gets to dusty the fire alarm could starting blaring.
To get accurate cuts we have to fasten our material to the CNC, at Waag we use screws. The layer of MDF that we fasten these screws to is called the sacrificial layer. If any of these screws hit the milling bit it will cause a spark, this spark will get sucked up by the extraction system and could cause a fire in the dust collection bag in the closet. If this happens you remove the dust bag by loosening it's tension strap and drag it to the window. Try to put out any sparks and make sure there's no fire in the bag. If there is a fire in the bag you throw the entire bag out of the window. If you're too late there's fire extinguisher by the window, even too late for that? Exit the space through the Fab Lab or emergency exit in the back of the CNC room and call 112.
Also always make sure you move around the machine freely and none of the material in the storage around the machine is restricting the movement of the bridge and spindle head. When working with two people there should always be one person in the lead. Only this person is allowed to touch and control the machine, the other person just assists and moves away from the machine when it's running.

Changing the milling bit
There are two wrenches you need to change the milling bit are stored above the power knob of the machine. One of them is connected to the key you use to turn on the spindle, this is so you're forced to turn off the spindle when replacing the milling bit. Always put the any tools back where they belong, including these wrenches.
To replace the milling bit lower the skirt by loosening the butterfly nut at the back of the machine head. Then grab the collet, nut, and milling bit. Make sure you are using the correct diameter collet for the shaft diameter of the bit; the milling bit diameter is not the same as the shaft diameter of the bit!
First insert the collet into the nut. It should snap into place with a small click. Then insert the milling bit into the collet, never the other way around.
Push the milling bit in until it reaches the point where the collet no longer touches it on the inside. Make sure your milling depth is always less than the length of the flutes on your milling bit.
Finally, tighten the nut onto the machine head using the wrenches, and put the skirt back in place.
Setting up the ShopBot
Just like the vinyl and laser cutter we used in week 3, the ShopBot listens to G-code commands. The computer connected to the ShopBot runs a version of VCarve specifically for ShopBot. Here you can draw shapes directly or load a design made elsewhere and translate these shapes into G-code instructions. To see how to use Vcarve have a look at my individual assignment. Once you've saved your G-code it's time to setup the machine.
To setup the machine:
- turn on the controller with the knob on the machine
- start the ShopBot software on the computer
- press the XY-icon in the toolbar to set the head to the table's 0,0 position
- press the K button on the keyboard and use the arrow keys to move the head to a flat bit of the sacrificial layer
- get the metal plate from the side of the head and touch the plate to the tip of the milling bit, the first input light in the software should light up, if it doesn't don't continue!
- put the plate flat under the milling bit tip and press firmly in place
- press the Z-icon in the toolbar, the head will move down twice to measure the bottom position of your material*
- now place your material on the machine
- press K and use the arrow keys to move the head to the bottom right corner of your material, use page up to lift the spindle and page down to lower
- when the head is in correct position for your materials x,y (0,0) take a picture of the heads coordinates in the software, you won't be able to find this back later
- in the menu bar select '[Z]ero' > 'zero [2] axes (X & Y)', you've now told the machine where the origin of your material is**
- don't forget to turn on the extraction before turning on the spindle with the key
- set the spindle's RPM on the box at the bottom of the machine
- you're now ready to start drilling the wholes to fasten your material to the sacrificial layer
- don't leave the machine while it's running, space bar will pause the machine, but not the spindle!
- clean up after yourself when you're done, vacuum the bed
*When generating you G-code you set the materials origin, we assume this to be set to the bottom right corner
**X & Y should stay the same as long as you're using the same slab of material, re-do the steps for Z when you change your milling bit
Group assignment
No matter if you're drawing on the machine directly or working from a design, the first thing you do should always be to drill the holes for fastening your material to the machine. This way you know exactly where your screws are and don't run the risk of hitting them with the milling bit if you leave enough space around them in the design. Henk shows how to make a drill toolpath in VCarve with a depth of 2mm. We make sure all the safety procedure have been taken and watch the machine drill little holes into our slab of plywood. Next we fasten the material to the sacrificial layer with screws.
Henk also adds some basic shapes and show us how to use both profile and pocket toolpaths. A profile toolpath traces along the edge of a shape, while a pocket toolpath removes all the material inside that shape.

The top right pocket was set to a speed of 80mm/s, the rest 60mm/s. You can see it's mostly pretty clean, some areas going against the grain are quite messy, we suspect the wood was in worse condition there since this is an old bit of material and you can see some moist staining.
We are then tasked to run a similar test and satisfy the group assignment:
test runout, alignment, fixturing, speeds, feeds, materials and toolpaths for your machine
To do this we select a piece of OBS and run a similar test. It turns out pretty similar, only the top layer is even more messy.

None of the shapes we cut out fit into the pockets of the same size we defined, the shapes were pretty accurate in size, but the pockets all turned out a little small. We look into how to fix this and found out you can set an allowance on the profile toolpaths in VCarve, but not the pocket toolpaths. Make sure to check 'Show advanced toolpath options' in the profile toolpath sidebar.
There didn't seem to be much runout – how much the spindle wobbles off its center – on the machine, since the shape we cut were accurate up to 0.05mm. Why the pockets turned out to be smaller than the specified size I'm not sure yet, is it a feature or a bug? I decide to do a little press-fit experiment before printing my final design like Michelle did on her assignment.
For the alignment we cut out a square and measure the angles, they all come out pretty much 90 degrees. The feeds and speeds we tried for our material are a little on the high side, you should always do a little test on your material before printing a job.
Make something big
In front of my house there are a few steps where I often sit in the sun, reading a book or having a drink with friends. It’s a familiar scene across Amsterdam whenever the weather is nice. The one thing that’s always missing is a small surface to put things on. Drinks end up on the steps and regularly get kicked over when someone stands up. The steps are often sandy, and when I’m working on a crafting project I’d rather not place my materials directly on them. There have been solutions popularized throughout the city to make our semi public spaces more enjoyable.
Images taken from Wikipedia by Christian Michelides, Cafe Tabac, Balkonbar, Amsterbarretje
Design
So for this week I decide to try and make a table or bar specifically made for my steps. I start by taking pictures of the steps and making some sketches. There's a few different concepts here, but I like the idea of modeling it after a typical 'terras' table for maximum vibes; the other ideas are cool, but could also feel a bit odd in a semi-public space.
The cats did some modelling for you
Next up I measure the stairs and model them in Blender so I can make a 3D model of my favorite sketch. Since there's an extra credit for not using fasteners or screws I decide to go with a press-fit design. I model the most basic version of a press-fit table existing of just three elements to get an idea off the scale based on the measurements I just took outside.

I like where this is going, the design is simple, but I think the uneven steps give it something playful. When hanging out with two people you usually just sit on the top step and the table would work quite nicely. However, when there's more people the lower levels wouldn't really benefit from the table much, it could even be a bit awkward sitting next to a towering table leg. So I decide to try the design with a split level table top.

This I think is kinda cool, it would still only require four elements, can be easily put up, taken down and stored away. I have some questions about the structural integrity, but decide it's worth the try. Next I play around with the size and scale until the table looks appropriate relative to the stairs. The final design needs to be very precise and Blender doesn't do great at technical drawings, so I draw out the elements and their sizes in my sketchbook and switch to Freecad.

Once I've drawn the two basic shapes, one leg and half a circle for the top, I proceed by taking little notches out of the tabs of the legs for extra stability. Of course this means I also need to update the slots in the top. Since it's very important I don't make mistakes in this part I add some parameters in a spreadsheet in Freecad for the material width, notch size, leg size, etc.

To make sure I don't make any mistakes in my thinking or arithmetics I export the shapes to Blender, extrude them and assemble my table.

I'm pretty happy with how it's looking and move on to fine-tuning my pieces to get rid of sharp corners and make the whole thing a little more designed. Once I think I'm happy with my shapes I export it to SVG, import in Blender and assemble. I repeat this cycle a few times until I'm happy with how it's looking.

Lastly I need to duplicate the elements and add the joint for where the legs cross each other. And finally I add a little press fit test like Michelle did during her CNC week.

Now I'm all set do to some milling!
Milling
To start my milling I export my sketches from Freecad to DXF format and use an USB stick to transfer the file onto the ShopBot machine. On the ShopBot computer I open up V-Carve and create a new file, and setup my material: a piece of plywood 122x250x1.2cm. I set the 'Material (Z)' to the machine bed and the 'XY Datum Position' to the lower left corner.
Then I import my DXF file and drag my press-fit tests to the lower left corner of the material view in V-Carve. To the outer line of the shapes I add a profile toolpath that cuts on the outside of the line. To the inner shapes (the slots) I add a profile toolpath that cuts on the inside of the line, both with tabs. Next up I add drilling holes around my shapes with the same diameter as the 5mm, 2-flute, flat-end milling bit we'll be using.
Luckily Irja, an intern at Waag Futurelab whose shadowed Fab Academy last year, reminds me to add dog and t-bones to the corners of the tabs and slots. This is done with the 'Create Fillets' button, which we have a bit of a hard time finding. Then I save the toolpaths to a G-code file, one for the drill holes and one for the press-fit test.

To setup the ShopBot I follow the instructions described above and load the drill holes G-code. I fasten the material to the sacrificial layer with screws and load the press-kit G-code. The machine does it's job perfectly, but I quickly realize I didn't update the material width parameter in my Freecad file. It's still set to 18mm instead of 12mm. I stop the job and start the whole thing over again.

The material is still screwed to the bed, so I don't have to setup the machine all over again. I do add two more drill holes and run that G-code first, and screw in those screws. Then I load up the G-code from the new press-fit kit and hit start. As soon as it sets to work I realize something if off and before I can stop the machine it has hit a screw. I try not to panic, stop the machine and use the keyboard controls to raise the still turning spindle. I semi calmly run to the extraction unit and make sure a spark didn't get into the bag and caught fire, luckily this isn't the case. I turn off the machine and after some very nice support from Irja, Henk and my class mate Christian, I set to work getting the material off the bed.

I'm pretty shaken and it takes me a while to figure out what I did wrong: I must have turned off the whole machine when going back to Freecad to update the material thickness. This resets the machine's X and Y coordinates to the machine's (0,0), which in my case wasn't that far off from my materials coordinates. This meant I didn't realize the drill holes where a few cm's off and only got into trouble when I ran a bigger job. Henk tells me to keep a log of every step I take on the next effort. I take a deep breath and start the whole process over again, this time the press-fit test comes out fine.

The fit of the test isn't bad, so I decide to not add any allowance. The rest of the job runs smoothly and the pieces come out cleanly. Due to the plywood there is a lot of sanding to do, both to get the slots to fit and to make the edges nice and smooth. At home I spend 4 to 5 hours sanding and finally the pieces fit together.

What would i do differently
Though I learned a lot this week, I can't say there's much I would do differently. Of course I wouldn't make the same mistakes again, but I worked cleanly this week and came well prepared. When things went wrong Henk's safety training kicked in and I took the right steps to prevent further disaster. I'm also proud of myself for continuing after hitting the screw and being quite frightened of the big scary machine.
Files & resources
Further exploration
- take better pictures of final product
Other ideas for this week
- nieuwe bakfiets bak
- inklapbare triptrap