7 - Computer-Controlled Machining
Hero Shot

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
THIS PART OF THE DOCUMENTATION IS UNFINISHED, PROCEED WITH CAUTION

- export to dfx from freecad
-
load dfx in v-carve
-
closes all vectors
-
add dogbones everywhere
-
position pressfit elements
-
add circle shapes for drilling holes at 0.5 diameter
-
add drilling profile of 2mm to holes
- add outside profile of 12mm to press fit outer shape with tabs
-
add pocket of 12mm to press fit inner shape
-
save toolpaths to g-code in 2 files, one for drilling. one for the rest
-
turn on shopbot and shopbot software
- press 'Zero x/y'
- set index zero with plate
- move to job origin corner
- take picture of coordinates
-
press zero > zero axes (x & y)
-
turn on extraction
- turn on spindle
-
load file
-
wait
===================================================================
===================================================================
-
make coffee
-
closes all vectors
-
add dogbones everywhere
-
position elements
-
remove previous circle shapes
-
add circle shapes for drilling holes at 0.5 dia
-
add drilling profile of 2mm to holes
- add outside profile of 12mm to press fit outer shape with tabs
-
add pocket of 12mm to press fit inner shape
-
nest everything better as requested by henk
-
remove previous circle shapes
-
add circle shapes for drilling holes at 0.5 dia
-
turn on controller
-
move bed to z zero measure position in middle of bed flat bit of surface layer
-
z - zero with plate
-
move material in place
-
move head to job 0,0 position
-
click zero > zero axes (X&Y)
-
turn on extraction and spindle
-
run drill job
-
turn off extraction and spindle
-
drill screws
-
turn on extraction and spindle
-
run job
-
wait
What would i do differently
Files & resources
Done checklist
- assignment checklist check off?
- assignment learning outcomes learned?
- assignment questions answered?
- compressed assets?
- everything self hosted?
- pushed to main?
- are all links relative and working on server?
- removed this checklist?
Leftovers previous week
- which task from last week need finishing up?
Further exploration
- out of scope nice to have
Ideas
- borrel bar voor aan mijn leuningen
- nieuwe bakfiets bak
- inklapbare triptrap