8. Computer controlled machining
Tasks
Two inspiring quotes from the beginning of this week:
"This week we make big things" - Neil
"Don't get killed" - Henk
Before getting started, this video is worth a watch. It gives a nice overview of using milling machines: How to Design Parts for CNC Machining.
Here's Henk wearing the same t-shirt ~5 years apart (not on purpose).
The Sacrifical layer
(aka SL) is MDF.
Below are three tables to follow when using the ShopBot CNC milling machine. One for setup and safety, V-Carve, and the Shopbot software.
Setup and safety
Step # | Type | Description |
---|---|---|
1a | Clean | Vacuum clean woodsplinters from the SL and surrounding areas |
2a | Clean | Check the step motor rails for any obstructions |
3a | Clean | Double check surrounding areas and machines |
Surroundings | Do assignments alone = less distractions | |
Surroundings | Never lean on the machine | |
Surroundings | Know where the exits are | |
Surroundings | Know where the fire exstinquishers are | |
Dustbags | Dustbags are dangerous | |
1b | Dustbags | Milling bit hits something metal (eg. screws into the sacricifcial layer - makes sparks) |
2b | Dustbags | Turn off dust collector if the bit hits metal / a screw |
3b | Dustbags | Watch the dust collector for a while if it has hit metal |
4b | Dustbags | Throw burning bag out the window |
Prep | Tie up long hair | |
Prep | Don't wear a tie / necklace | |
Surroundings | It's very noisy | |
1c | Setup | Key is attached to spindle-changing wrench |
2c | Setup | Lower the dust shoe at the butterfly bolt |
3c | Setup | Use the special wrench + wrench to pry spindle fixture free |
4c | Setup | Clear dust from nut |
5c | Setup | Choose collet type correctly to match the bit diameter |
6c | Setup | Re-assembly order: collet goes through the nut first, then the bit into the collet |
7c | Setup | Don't push bit in too far or too little (past the collet shelf/ledge) |
8c | Setup | Fasten spindle rig to the machine using special wrench + wrench |
9c | Setup | Fasten tight, but not so tight that it can't be undone |
Surroundings | Always put the tools back in the same place | |
10c | Setup | Put shoe back up and fasten it at the butterfly nut |
Computer | Computer on | |
Computer | ShopBot software tries to connect to machine -- make sure machine is on (red switch) | |
Note | Machine can be on without the spindle being on |
Our trusty, dusty vacuum bot:
This switch turns on the machine, not the spindle.
This key turns on the spindle. The machine should already be turned on.
Special wrench, for changing the collet or bit, in action:
Dusty nuts are no good! Clean them regularly.
Make sure the collet size is correct for the diameter bit you're using.
Rule 7C -- be mindful about how far the bit is inside the collet:
These are called Woodies. They're fancy screws that we reuse to hold down material:
There's a butterfly bolt that needs undoing in order to maneuvre the shoe up and down.
This is where the key lives.
4b:
ShopBot
Step # | Type | Description |
---|---|---|
0a | ShopBot | Turn red knob ON |
0ab | ShopBot | Flip the Move/Cut switch on (in software) |
ShopBot | Command = k (opens keypad for spindle navigation) |
|
ShopBot | Use arrows to control tool X and Y direction | |
ShopBot | Z-axis is controlled by pageup + pagedown |
|
1a | ShopBot | FIRST: Make sure Jog Speed is set to 40 x 40 |
2a | X-Y | FIRST ALSO: Press the Zero XY button -- NB. I got this wrong! Make sure to click the XY button |
X-Y | The tool is now at the Machine Home aka the home x and y positions -- **NB. This is not the same as X = 0 & Y = 0 |
|
1b | Z-level | Home the Z-axis, aka Z-levelling: move the tool into the middle of the SL |
2b | Z-level | Place metal plate under bit (from side of the tool) |
3b | Z-level | Tap the metal plate to the tip of bit and check if the Shopbot program reads the contact = inp |
4b | Z-level | Run Z calibration |
5b | Z-level | Remove plate |
1c | ShopBot | Now set the Job Home |
2c | ShopBot | Press k |
3c | ShopBot | Navigate the tool to the desired starting point of your job |
4c | ShopBot | Zero > set XY home -- X & Y axis should both = 0 |
3a | ShopBot | Path file load to add file with GCODE |
Setup | Make sure everything is on (vacuum, machine, and spindle) | |
Note | V74X machine (below the table) controls spindle rotation speed | |
Cutting | Goggles on! | |
4a | Cutting | Part file load screen > Start |
5a | Cutting | NOW STARTING pop-up > select OK |
6a | Cutting | Have finger hovering over the space bar to push it in case of emergency |
Note | Screw holes that will be used are placed in designs and exported as GCODE separate to main cutting files | |
1c | Screws | First cuts should always be for the fastening screws |
2c | Screws | Add material to SL |
3c | Screws | Choose screws that meet the SL but dont go all the way through it |
4c | Screws | Use the nice Woodies screws |
5c | Screws | Put force on plate when drilling to avoid the board being lifted |
Setup | Return to step X1 and start process with main cut |
0ab
1a
2a: Machine homing of the XY axis.
2a: Complete
3c & 4c: This is the outcome of Job homing the X & Y axis.
5c: Put pressure on board when screwing, or this can happen:
V-Carve
NB. 2a. Make sure the XY Datum position is set correctly.
Step # | Type | Description |
---|---|---|
1a | V-Carve | Open V-carve pro |
V-Carve | Add Job Size measurements - dimensions of the material material being cut |
|
V-Carve | Material Z - the piece's thickness |
|
2a | V-Carve | Select the XY Datum position - the starting point of the bit |
3a | V-Carve | Import vectors - dxf, pdf, dwg, eps |
4a | V-Carve | Generate toolpaths (can create several) |
5a | Drilling | Also create a toolpath for the drilling holes -- 5mm end drill bit |
Drilling | Select drill holes to a toolpath | |
Profile | Profile toolpath (cuts material away from both sides of the line) | |
Profile | Select line > Profile toolpath > Cut depth 18mm > machine vectors - outside > add tabs | |
Profile | Tabs not in corners, more makes it stronger | |
Pocket toolpath > CD 5mm > 2 passes | ||
Offset vs raster > no pocket allowance > no ramp plunge > no other settings | ||
V-Carve | Tool > edit > stepover = 4mm (splinters with no stepover -- higher stepover for finished piece) | |
V-Carve | Edit > Join vectors -- important for fills | |
1b | Toolpath | Select Toolpath order -- shift it with the up/down arrow |
2b | Toolpath | Preview toolpaths |
3b | Drilling | Place woodies at least 1cm outside of the design |
4b | Export | Save toolpath for drilling holes first, with other layers deselected |
5b | Export | Then save the other layers 'output all visible toolpaths to one file' |
6b | Export | Save as .sbp file |
Join vectors that are multiple lines or your shapes will be cut in odd ways.
NB. This happened to me.
Make small indents for drill placements.
Group assignment
Checking previous year's group projects was useful for figuring out how to set ours up:
Sako's lecture ended with a slide that also gave us direction on what to test during our group project.
What to test?
We ran a Conventional vs Climb test (the circles), Feeds & Speeds test (the lines), Offset test (the squares).
Climb milling (down milling) is often preferred for CNC machines due to better surface finish, lower heat generation, and extended tool life.
NB. The direction the mill rotates, with climb milling can potentially unscrew the bit.
Conventional milling is typically used on manual machines or older CNCs with significant backlash to prevent the tool from pulling into the work
Speeds and Feeds:
Speed / cutting speed / surface speed: How quick the bit is turning.
NB. Cutting speed needs time to accelerate/decelerate.
Feed / feed rate: How fast the tool moves around the workpiece.
Pass depth: The maximum depth of material removed in a single pass of the cutting tool.
NB. Pass depth = half of the bit diameter.
Testing results
ShopBot definitely has some quirks. As first time users, it took us a while to get comfortable with setting up the toolpaths.
There was an issue where we had duplicate layers on top of one another. I often forgot to click Calculate
after setting up a toolpath. It's also important, for the workflow, to select Close
after calculating. The Toolpath creation process is, however, similar to using Lightburn.
Testing issues
We misunderstood the Cut Depth
setting, and so our first attempt at cutting out our squares didn't go all the way through the wood (we had it set at 2.5mm and the wood was 12mm thick).
Offsets
We misunderstood the Allowance Offset
setting. All of our squares ended up having the same border size. So, we weren't able to fit any of them into our pocket cut square. Here's a great guide for understanding that:
A bit more about offset allowance:
Basically if you set an allowance your cut will be oversized or undersized by the amount you specify. So, if you make a square that is 1 x 1 inch and set an offset allowance of .125, your final product will be 1.125 inches.
Other considerations
Dog boning: We also learned that when you're adding dogbones that not only must you must add the fillet (dogbone), but also remove the inner corner/line.
Grain direction: Our tests looked pretty messy, and that's because we hadn't considered the grain direction of the material we were using. That is defniitely something to consider when cutting.
Unjoined vectors: Trying to fill cut on a shape with unjoined vectors is going to give back errors.
Individual project
This weekend was my girlfriend's birthday and on Tuesday I'm going to her grandmother's funeral. It's definitely the most time constrained I've been since the course began. I crammed in a lot of work on Friday and Sunday, but instead of building something enormous (just for the sake of it), I focused my efforts on designing something that would be useful for my final project and would help me learn more about specific aspects of the CNC milling process.
My plan was to design a toilet seat that had an outline of the Waag logo cut into it, with the logo cut out of a different piece that would be pressfit into the outline.
My two main learning goals this week were to:
- Learn how to bevel (...the edges of the toilet): Chamfered edges V-Carve
- Pocket cut sharp edges (...of the Waag logo): Sharper pocket cuts
After reviewing toilet seat hinges, I had to adjust my previous designs so that they didn't have a built in hinge mechanism. Here's an example of the toilet seat hinges that I'd like to add to my toilet parts.
NB. My initial plan was to use Fusion to create toolpaths, but ultimately, I think it would be way easier in V-Carve (considering the relative simplicity of project).
Small note to remember about this week is that the recurring process of this week was:
V-Carve > Create toolpaths > SBP exports >
Shopbot calibration > Drill layer > Main mill layer
Computer-aided manufacturing (CAM)
My first step was to get the logo on the toilet seat, I added an image to Fusion design via creating a Sketch > import SVG > finish sketch > extrude as a cut.
When the model is ready, swap from the Design view to the Manufacture
view in Fusion, this tutorial was really helpful for learning how to use that: Fusion CNC 3D Carving for Beginners.
Fusion setup (attempt)
- Fusion > Manufacture > Setup > New Setup > Operation type = Milling > Stock side offset (to leave space for screws) > Define stock point (mill head origin)
- Stock tab is where I input the material's dimensions.
- Mode = Fixed size box --> Set this up when I have the material size.
- Define tool that we're using. Manage > Tool Library > import tool library (download from manufacturer websites)
Adaptive
Adaptive clearing is the first milling cut that clears away the bulk of the material.
- 3D > Adaptive clearing
- Set Machining boundary so that the machine doesn't do lots of unecessary cutting
- Stock Definition > Remaining stock > From set up stock (for first cut -- 'from previous stock' for other cuts)
- Maximum roughing stepdown = milling bit diameter
- Stock to leave: how much to leave for finishing mills (make sure to turn off for finishing mills)
Parallel
This is the milling cut that provides a nice finish, with a lower diameter / round-nosed miling bit.
- 3D > parallel pass
- Set machining boundary.
- Set Rest machining to 'From previous operation'.
- Adjust stepover = 5-9% of milling bit diameter (8%)
- No stock to leave.
Contour
Cutting the piece out of the material. The boundary cut.
- 2D > Contour
- Contour selection > select bottom edge
- Add tabs
- Leave rest machining unselected as this is the last operation and doesn't depend on the previous two operations
- Passes > Multiple depths > 6mm (diameter of bit)
File export
Save the file so that the GCODE file is compatible with ShopBot.
- Actions > Post Process > select ShopBot
- Go to the operations tab > select only one layer > download > repeat
Export the three different files. And execute them with the milling machine.
Carbide Create
This tutorial was also useful to watch: Fusion CNC design. It also introduced me to Carbide Create, which I forgot about until waaay later. Carbide Create is software that gives you suggestions on settings for Feeds + Speeds.It's a nicely laid out, simple-seeming software. I didn't have tons of time to mess around with (for now).
NB. From the image below, it's apparent from the way that the toolpath looks that the vectors aren't joined (more on that later).
Monday morning V-Carve Setup
NB.Because I didn't have much success getting my toolpaths set up correctly with Fusion, I planned to do them in V-Carve.
Design parts:
- Toilet lid & Toilet seat (mill time: 10m)
- Toilet lid pocket cut (mill time: 20m)
- Toilet seat male part (mill time: 1h15m)
I added my PDF file to V-Carve. Added screw holes. Made toolpaths. Choose the correct offset for inside and outside edges:
- inside = -0.05 (makes inner object bigger)
- outside = -0.05
NB. Review the offset infographic from earlier if you're confused about this.
I made sure to add to add a toolpath that cut down the whole face of the "male" part by 13mm. That way there's only 5mm left to press into the 5mm pocket I planned to cut into the toilet lid.
In order to bevel the seat and lid edges, I imported an .stl
file of my design. Then, the next steps were:
- V-Carve > Model > Import
- Zero plane position in model > bottom
Then, Henk showed me the Roughing toolpath option. The 3D render indicated I would get the results that I was looking for, however, when Henk and I tried to cut out the piece by it's borders, there weren't any vectors for the program to cut. That meant, without any extra steps, I would be able to mill the 3D features, without cutting out the whole piece.
This is what the roughing and finishing toolpath icons look like.
Over the weekend I had seen some YouTubers talking about making vector outlines, but Henk insisted that I soldier on in a different way. If I were to have continued on that path, the next step would have been to follow up the rough toolpath cut with a finishing cut. But that will be for another time.
NB. Make sure to set up V-Carve so that it takes into account the dimensions of the entire material that is being cut.
My board was: 100.4cm x 200.4cm x 1.8cm
NB. The Height and Width are defined based on how the board will lay on the SL (you can read about my mistake in a few sentences time).
The pocket cut and male part both had very sharp edges. Therefore I needed to add Dogbones, T-Bones, or fillets. I wasn't sure which one to choose for which, but V-Carve doesn't let you add options that wont work. Therefore, I used Dogbones.
When selecting a dogbone, I chose the ones that didn't create unusual cuts. Some of the dogbones made weird steps, or tiny extra corners. So, it's worth considering how much extra effort that's going to cost later.
Then, it was time to start using the machine.
This was the beginning of a comedy of errors
First, the dimensions of my material in V-Carve needed to match that of the entire board that I would be using. When that was updated, it was evident that the dimensions of my model were way too small.
Then, it turned out that I mistook the Job Home
setting for the Machine home
one. This could have been one of the reasons why the tool kept cutting off of the designated material layer.
After fixing that mistake though, the machine was still jumping off course.
Henk downloaded the GCode file, looked at it, and the X values were negative. But why?
Here's the bit about dimensions that I alluded to earlier in my documentation. It turns out that I had mistook my width and height settings - relative to how the material would sit on the sacrificial layer.
I think it's because I looked at the material standing upright against the wall. Therefore I set the height as the longer of the two dimensions. That meant that my X and Y axis were flipped, which is why the CNC was cutting into the negative X.
My last issue that needed resolving was that the wood was quite heavily warped. The tool didn't move at a high enough Z-axis height, so it kept cutting the end of the wood that was sticking up.
The solve here: I just flipped the wood over.
Also, I hadn't taken into consideration when mapping the toolpath of the male part what the updated material depth would be. Most of it was cut away already, so the machine did a few extra passes of air cuts.