Week 7 – Computer-Controlled Machining

This week is about learning how computer controls machine tools to cut, drill, mill or shape materials automatically.

The objective is to first design a 3D object in CAD software, then use a CAM software to create a toolpaths (G-Code), then do Machine setup, and lastly perform machining.

CAD Design >> Machine Setup >> G-Code >> Stay with the Machine >> Post Processing

Assignment Overview

Group Task:
  • Do the lab's safety training
  • Test runout, alignment, fixturing, speeds, feeds, materials, and toolpaths for your machine
Individual Task:
  • 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

Weekly Activity Log
Day Activity Status
🛠 Thursday Class - Computer Controlled Machining & Group Assignment Completed
🛠 Friday Individual - 3D Designing Completed
🛠 Saturday Remake 3D design -> Parametrically Scalable Model Completed
Make a downscale model using cardboard Completed
🛠 Sunday Machine-setup, generate G-Code and Plywood Machining/Cutting Completed
🛠 Monday Post-Procession Completed
Assembly and Testing Completed
📘 Tuesday Documentation and Regional Review Completed
Revisit global class recording and class notes Completed
📘 Wednesday Group assignment Documentation Completed
Work on Final Project-page and HTML of About me page Pending

Group Assignment

In our group assignment, we learned about the necessary safety equipment and precautions for operating the machine and post-processing. We then designed a jig with varying values to accurately measure the machine's runout. After testing the feed and speed rates, we created CAM toolpaths using VCarve software. Finally, we post-processed the jig and determined the runout value to be Ply_thickness - 0.1mm.

Group Assignment

Group Assignment - Test

3D Designing

First, I decided to make bird nest but after discussing with my instructor - the bird nest may not fulfill the dimensional criteria of meters scale object of the week's assignment and also I may not learns joints in making bird nest, thus I decide to make something else.

Bird's Nest

Then I explored furnisher projects from ShaperHub and I find an inspiration rocking chair and I decide to make that chair. The design was very minimalist but technically it involved concept of center of gravity center of gravity and balancing.

Rocking Chair but Simple

As this was a big design our instructor as informed us that before cutting the design on the wood at full scale we need to cut the design on cardboard and test the downscaled model thus we need to make the 3D design in using parametric so that we can downscale it and test it on cardboard. Thus I gave below parameter as I progressed through my 3D design.

Here, a few important parameters are Ply_Thickness which varies and depends on quality of Plywood and more importantly at the time of downscaling the model this value we need to replace with cardboard thickness. Then, Runout is the factor that we got from our group assignment. This is the access material that spindle and tool remove due to alignment. Thus this value is reduced from the thickness of plywood in order to get accurate cut. Seat_base_Angle and Recliner_Angle are angle that I defined for seating comfort. and most important is the scale, I can change the scale to for example 1/6 to downscale the model and cut on the cardboard. we can see that scale does not have any unit and I have multiplied with all the parameters except - ply_thickness, runout, Seat_base_Angle and Recliner_Angle.

Parametric Design

Steps that I followed to make this design are first I made one of the side ellipse and constructed two planes at 15° with horizon and called it Seat_base_Angle plane and 105° degree and called it Recliner_Angle, then constructed ellipse on these two planes extruded them with ply_thickenss. After that I used Projection operation to make the joints between these ellipse. and lastly I used the Mirror function to mirror the side ellipse.

Rocking Chair Design in Fusion

Unlike leaser cutting week when I made my fusion design in single body and thus I was not able to use arrange function, this time I made design in assembly so that each part appeared as individual body and thus I can use arrange function to arrange the assembly part in a single plane of plywood's overall dimensions that for my case is 1219mm X 2438mm (4ft X 8 ft). A few other things that need to be taken care is while using arrange function is Frame width and Object spacing, I defined frame width 20mm thus fusion will leave 20mm space from each side and then arrange the components, thus when this operation is executed by CNC router it will not cut on edges of the plywood. The object spacing should be more than twice of the tool dia meter because the tool will pass twice between the two components. Secondly, select all the components that need to be arranged in the defined frame size.

Arranging the Components
Arranging the Components

Then, I applied the Nifty Dogbone function. This is important to apply dog born type curves at the joining corners so that to components properly fits with each other. Nifty Dogbone is a plug-in to Fusion 360 that allows 30 days free trial. Click on Modify >> Nifty Dogbone >> select bodies >> Enter Tool diameter >> Types - Corners >> Ok . In my case, I was using 6mm tool thus I entered 6 mm as tool diameter. This will automatically apply Dogbone shape at the corners of the components.

Nifty Dogbone

Nifty Dogbone

At the last, I used Projection function to create sketch of all four components to do this first select any one component press "p" >> select remaining 3 components >> ok now we will see a new sketch created under sketches. Now, we can Right click on sketch >> Export DXF. Later while machining we can import this DXF file in Vcarve Pro software of ShopBot Machine.

Projection and Export DXF

3D Model Viewer


Testing on Cardboard

Downscaling - This is where making design parametric is very helpful, by changing the scale in my defined parameter I was able down scale my object by 1/6. The Ply_Thickness shall be changed with Cardboard Thickness.

My learning - Ensure that all bodies in the 3D model are properly constrained with respect to center of assembly and X, Y and Z movements. If they are not constrained, scaling the model will cause the bodies to remain in their original positions instead of scaling together as a single assembly, making the parts appear separated.

Constrained
Changing Scale and Thickness
Downscaled Model
Downscaled Model
Update cardboard dimensions

I generated the DXF file from fusion, Imported DXF file into Inkscape and updated the Fill as No Fill and Stroke as 255 (RED) and stroke width 0.1mm. Then, I used Trotec speedy 100 laser cutting machine machine to cut the cardboard. In the Trotec software, I kept the power as 80% and speed 3. (please refer my documentation from Computer-controlled cutting to learn more about laser cutting and related parameters).

Import to Inkscape
Setting Fill and Stroke
Laser Cutting

Downscaled Rocking Chair

Machine Set-up and Cutting

First of all, we need ot measure the thickness of the plywood that we are going to machine. I took about 20 reading, 5 from each side of the ply to get more accurate value, the Ply_Thickness was 17.1415 mm and I updated this value in to my Fusion parameters and also entered the Runover value of 0.1 mm exported the DXG from the fusion model.

Ply_Thickness Measurements

Next, I placed the Plywood on the top of sacrificing layer of the Shopbot machine.

Sacrificing layer

Next, I vacuumed the sacrificial layer, as it is important to remove any wood chips or dust. These particles can create an uneven surface, which may lead to improper zeroing of the machine.

Vacuumed the sacrificing layer

I aligned the plywood corners with the sacrificing layer and clamped it.

Clamp the Plywood

Next, we need to select the screwing location in the VCarve Pro software.

My learning : We can manually screw the plywood to the sacrificial layer, but doing so carries the risk that the cutting tool may collide with the screws, which can potentially damage or break the tool To avoid this, it is better to define the screw locations in the CAM software. This allows us to verify the toolpath before starting the main cutting operation, ensuring that the tool does not intersect with the screw positions.

In the VCarve Software, first I entered the Plywood X and Y dimensions and its thickness.

Enter Workpiece Dimensions

Press M and move the sketch to the center of the workpiece area.

Move and align within the work area

Now to do drill operation I selected the Drilling Toolpath entered drilling depth as only 6mm, so that screw gets grip with the plywood. Select the tool FAB END MIll (6mm) single >> Enter tool diameter 6mm >> Pass Depth 4.5mm >> Stepover 4.8 mm >> Spindle Speed 12000 r.p.m >> Feed Rate 1200 mm/min. There parameters depends on the tool datasheet, workpiece material and past observations.

Setting Parameters

Then using Draw circle tool I drew six screwing locations of 6 mm dia and then clicked calculate.

Draw the screwing circles on the workpiece

Now In the 3D View, we can see the tool path updated on the workpiece.

Toolpath of Drill Operation

Next I selected the 2D Profile Toolpath to cut the Super Fablab Kerala logo from the inside cut operation. Before doint this please make sure that the curves/sketch Vector lines are connected as one single line, otherwise we can use Join Vector with smooth curve tool to select then and connect them. Next I gave 18mm cut depth and selected inside cut operation and calculate.

Here I gave Cut Depth > 17.1415 mm to ensure that the ply is cut through properly because it was having uneven thickness at various locations.

Using add tabs, we can add small tabs that holds the inner cut material. Otherwise while cutting operation it can move and collide or come on top of the workpiece.

Then, I added Profile Toolpathoperation and gave 18 mm cut depth and selected Outer cut so that ir cuts from outside of my 3D object's bodies and added Tabs with dimension length 5 mm and thickness 3 mm.

Here, we cna see three different cutting paths - Drill Path is for screwing the workpiece, Pocket Path is for cutting the FABLAB kerala logo and Drill Path is for cutting the main bodies of the assembly.

We need to separate the Drill path with other paths, so that we can only run first G-code of Drill operation and fix the screws and then run the G-code of Pocket Operation and Drill Operation.

Generated G-Code for only Drill Operation
Generated G-Code for both Pocket Operation adn Drill Operation

Now, I open the command console of the ShopBot machine and set the X zero and Y zero, and Z zero using alligator pin and aluminum plate and it automatically reduces the thickness of aluminum plate from the Z zero settings.

Setting X Zero and Y Zero
Setting X Zero and Y Zero
Setting Z zero
Setting Z zero

After performing X zero, Y Zero and Z zero settings, I executed G-Code of Drill operation by File >> Open >> Drill1.sbp file >> Start.

Below is very important, we need to start the router with the manual start button and then click ok, otherwise the ShopBot will understand that the router is rotating and it will start moving the tool even if spindle is not rotating.

Only press "ok" after starting spindle
Spindle Start Button and Emergency Stop

Then I drilled through plywood and screw the plywood to sacrificing layer at all 6 selected locations.

Then, run the final operation G-code of pocketing and cutting final bodies.

Shopbot Executing the G-Code

Now, I moved the spindle up and then moved away from the screws and removed the screws.

Removing the screws
Removing the screws

Now, I braked the tabs with chisel and hammer and moved the workpiece out of the ShopBot.

Removing Tabs
Final Bodies of the Elliptical Rocking Chair

Post-processing and Assembling

Very first thing is to remove Tabs using chisel and hammer.

Then, I did manual routing to round the corners of seat and back rest ellipses because these are corners where we have user touch points.

Manual Routing Machine
Rounding the edges

I used half round file to file the curves of Fablab Kerala logo and regular file to file the edges of the Base ellipse which will be in contact of the ground so that it can swing smoothly.

File the sharp edges of two base ellipses

Now, I tried to assemble but it was very tight and did not assemble.

Assembly attempt-1

My learning: Initially, I did not sand the flat mating surfaces of the ellipses, which resulted in a very tight press-fit and prevented the parts from being inserted into each other. My instructor advised sanding all four ellipses, which meant preparing eight contact surfaces in total. Sanding helped remove the surface irregularities and thickness variations of the plywood, improving dimensional tolerance and making the press-fit assembly feasible.

Additionally, I had not added chamfers at the edges of the intersection slots during the design stage. Because of the sharp edges, the ellipses could not easily slide into each other during assembly. To solve this issue, I manually created small chamfers using a hand file, which eased the insertion process and improved the overall assembly fit and alignment.

Sanding Flat surface of all 4 ellipse
File the sharp edges of two base ellipses

Finally, after sand and a lot of filling the matting cuts and lastly hammering we were able to fit the four ellipse together.

Assembly attempt-2 continued..

We realized that the Ply_Thickness is the issue, it has a lot of variation as we can see in the below image it ranges from 16.35 mm to 17.79 mm, this more than 1.3 mm variation makes it harder to depth of 455.5 mm.

Ply_Thickness Variation
45 cm contact depth of two ellipses
Assembly attempt-2 Finished

Testing

Approved!

User Test
Relaxing

✨ Key Learnings This Week

  • Ensure that all bodies in the 3D model are properly constrained with respect to center of assembly and X, Y and Z movements. If they are not constrained, scaling the model will cause the bodies to remain in their original positions instead of scaling together as a single assembly, making the parts appear separated.
  • We can manually screw the plywood to the sacrificial layer, but doing so carries the risk that the cutting tool may collide with the screws, which can potentially damage or break the tool To avoid this, it is better to define the screw locations in the CAM software. This allows us to verify the toolpath before starting the main cutting operation, ensuring that the tool does not intersect with the screw positions.
  • Initially, I did not sand the flat mating surfaces of the ellipses, which resulted in a very tight press-fit and prevented the parts from being inserted into each other. My instructor advised sanding all four ellipses, which meant preparing eight contact surfaces in total. Sanding helped remove the surface irregularities and thickness variations of the plywood, improving dimensional tolerance and making the press-fit assembly feasible
  • We observed that the plywood thickness was the main issue. The thickness varied significantly across the sheet, ranging from 16.35 mm to 17.79 mm. This variation of more than 1.3 mm makes it difficult to achieve a consistent slot depth of 455.5 mm, which directly affects the fit and alignment of the assembled parts.

Reflection

This week made me reflect on my approach to design compared to Week 3. During Week 3, my engineering mindset pushed me toward over-complicating the design. I attempted to create rotating wheels and additional mechanisms within a 2D design, which made the model unnecessarily complex. Although the assignment requirements were technically satisfied, the design became difficult to assemble and I was unable to properly fit the grips in the final assembly.

In contrast, this week I deliberately chose a simpler and more practical design approach. Instead of over-engineering the solution, I focused on creating a simple and functional object. By keeping the design minimal and applying only a small amount of engineering logic, particularly considering the center of gravity, the final result worked much better than expected.

Relaxing

This experience reminded me that effective engineering is not always about complexity, but about choosing the simplest solution that works reliably. A thoughtful application of basic engineering principles can significantly improve the functionality of even a simple design.

Downloads

Copyright 2026 <Your name> - Creative Commons Attribution Non Commercial

Source code hosted at gitlab.fabcloud.org