Week 07 - Computer Controlled Machining#
Week 7 is all about Computer Controlled Machining β this is the week where we go big. Literally. The brief is to design and fabricate a meter-scale object from sheet material using a CNC router. No more laser-cut cardboard prototypes, this time we’re cutting full sheets of plywood on a ShopBot.
I used this week as an opportunity to design something I actually wanted β a Lazy Boyβstyle recliner chair driven by a four-bar linkage mechanism. Mechanical engineering background finally coming in handy π
Group Assignment#
- Do your lab’s safety training
- Test runout, alignment, fixturing, speeds, feeds, materials, and toolpaths for your machine
Individual Assignment#
- Make (design + mill + assemble) something big (~meter-scale)
Extra Credit Goals
- Don’t use fasteners or glue
- Include curved surfaces
- Use three-axis toolpaths
What I Learned#
This week gave me a proper end-to-end understanding of the CNC machining workflow β from theory all the way through to a finished, sanded, assembled object.
Key things I picked up:
- How CNC milling parameters (feed rate, step-over, spindle speed) affect cut quality and material
- How to design a four-bar linkage using a custom HTML simulator I built with Claude
- Why parametric design in Fusion 360 + the Arrange feature makes CNC iteration dramatically faster
- How press-fit tolerances translate from a test gauge into a real assembly
- How to set up VCarve Pro toolpaths and send them to the ShopBot
- Post-processing techniques: tab removal, sanding, and edge filleting with a wood router
Software Used#
- Fusion 360 β parametric CAD modeling and part arrangement for DXF export
- VCarve Pro β CAM toolpath generation for the ShopBot
- Claude (AI) β HTML four-bar linkage simulator for determining link lengths
- CATIA β ergonomic analysis (RULA & REBA)
- Inkscape β opening and preparing DXF files for laser cutter prototype
- ShopBot Software β machine control and file sending
Tools Used#
| Tool | Purpose |
|---|---|
| Cordless drill | Screwing the plywood to the CNC bed |
| Screws | Securing plywood to the |
| Mallet | Assembling press-fit joints |
| Chisel | Removing tabs and cleaning edges |
| Hammer | General assembly work |
| Sandpaper (80 grit) | Rough sanding and smoothing surfaces |
| Rasp file | Shaping and removing material from edges |
| Half-round file | Smoothing curved surfaces and slots |
| Reciprocating sander | Faster surface finishing |
| Wood router | Edge filleting and chamfering |
| F-clamp | Holding pieces during assembly and gluing |
Weekly Schedule#
| Day | What I Did |
|---|---|
| WED | Lecture on computer-controlled machining |
| THU | Group Assignment |
| FRI | Design of the chair |
| SAT | Rula and Reba analysis and testing out by cutting the deign in cardboard |
| SUN | Cnc Milling the Plywood and post processing |
| MON | Assembly of the chair |
| TUE | Regional review |
Group Assignment β CNC Test Gauge#
For the group assignment, we designed and milled a runoff test gauge to characterise the ShopBot’s capabilities and determine the correct press-fit tolerances for our plywood stock.
Understanding the ShopBot#

Our instructors Mr. Mufeed and Mr. Ravishankar introduced us to the ShopBot CNC router available in our lab. The machine has a bed size of 8 feet Γ 4 feet, which is large enough to mill full standard sheets of plywood in a single setup.
Before touching the machine, we went through the necessary safety briefing.

PPE required at all times while the machine is running:
| Equipment | Purpose |
|---|---|
| Safety goggles | Eye protection from flying chips and debris |
| Dust mask / respirator | Prevents inhalation of wood dust and fine particles |
| Ear protection | The spindle and vacuum extraction system generate continuous high noise levels |
Clothing rules:
- No loose clothing β can get caught in moving parts
- Long hair must be tied back
- No watches, bracelets, bangles, or dangling accessories

Press-fit tolerance result:#
The optimal slot width for a snug press-fit with our plywood was determined to be 0.1 mm β slightly less than the nominal material thickness to account for the machine’s tolerance and any material variation.

Check out the full group documentation for all the test results and measurements: π https://fabacademy.org/2026/labs/kochi/group_assignmetns/week07/
Part 1 β Concept and Mechanism Design#
π‘ The Idea: A Lazy Boy Recliner#
For the individual assignment, I wanted to make something that was actually useful β not just a stool or a shelf like you see in a lot of CNC week projects. Since I’m a big fan of lying down , I decided to design a Lazy Boyβstyle recliner chair.
The challenge: most commercial recliners use pre-built metal mechanisms that are designed for mass manufacturing, not CNC fabrication from sheet material. I needed a simpler mechanical approach that I could actually mill and assemble.

βοΈ The Four-Bar Linkage Solution#
After thinking about it for a while, I realized the reclining motion could be replicated using a four-bar linkage β a classic mechanism I’d studied during my mechanical engineering coursework.
A four-bar linkage consists of four rigid links connected by pivot joints. By choosing the right link lengths, you can control the path and angle that any point on the mechanism follows β which is exactly what you need to make a seat recline smoothly while also adjusting the footrest.

π Resources for Manual Calculation#
If you want to understand the underlying math behind four-bar linkage analysis (position, velocity, acceleration), these resources are excellent references:
- π Four-Bar Linkage Tutorial β Alistair’s Tutorials β interactive walkthrough of the geometry and equations
- π Four-bar Linkage Analysis (PDF) β Mechanical Design 101 β detailed mathematical derivations for position analysis
π€ Building a Simulator with Claude#
Manually calculating the correct link lengths for the desired motion would involve a lot of iterative trial-and-error math. I first tried setting up the simulation in Desmos, but it quickly got cumbersome with the nested equations involved.
Instead, I used Claude (the AI assistant) β I described my design requirements: the range of motion, the seat-to-ground angle constraints, the footrest travel arc. Claude generated a clean HTML-based four-bar linkage simulator that let me drag sliders to adjust each link length and see the resulting motion in real time.
This tool was a huge time-saver β within 15 minutes ( wouldve taken 3-4 hpurs manually calculating or creating an excel sheet for the calculation ) I had the correct link lengths for both the seat mechanism and the footrest linkage.
Final link lengths determined from the simulator:
| Link | Length (mm) | Description |
|---|---|---|
| L1 Ground (AβD) | 471 mm | Fixed base distance between the two ground pivots |
| L2 Crank (AβB) | 182 mm | Backrest support arm |
| L3 Coupler (BβC) | 450 mm | Seat connecting link |
| L4 Rocker (CβD) | 205 mm | Footrest output link |
Part 2 β CAD Modeling in Fusion 360#
π₯οΈ Why Fusion 360?#
I chose Fusion 360 for this project instead of my usual SolidWorks. The deciding factor was its parametric workflow combined with the Arrange feature.
Here’s why that matters for CNC work specifically:
- All key dimensions (material thickness, link lengths, slot widths) are defined as parameters in one place
- Changing a parameter automatically propagates through every sketch and feature in the model
- The Arrange feature lets me lay out all parts flat on a virtual sheet, directly reflecting any design changes
- That arranged layout can be exported directly as a DXF β ready for VCarve or Inkscape
- No more: change design β export β open in nesting software β re-nest β re-export β repeat forever
This made the iteration loop dramatically faster, especially when I was tweaking the linkage geometry.

π Building the Model#
I started by building sketches using the link lengths from the simulator, then modeled the full chair structure around the four-bar linkage geometry.
Components in the design:
| Component | Description |
|---|---|
| Seat platform | Main sitting surface |
| Backrest | Reclines via the four-bar linkage |
| Footrest | Extends when reclining |
| Side frame (Γ2) | Main structural panels with pivot holes |
| Cross braces | Lateral stiffeners connecting the two side frames |
| Linkage arms | The actual four-bar links (cut from plywood) |
The complete model took almost a full day to build β getting all the pivot positions to line up correctly and ensuring the linkage moved through its full range without any part-to-part interference took a lot of back-and-forth.

π© Press-Fit Joinery Details#
Throughout the design, I incorporated the press-fit tolerances we measured during the group assignment. The joinery uses:
- Press-fit slot connections for the main structural frame joints
- Dogbone fillets at all interior corners of slots and pockets β essential for CNC work because the router leaves a circular radius at every corner, and without dogbones the mating piece won’t seat fully
𦴠Using the Nifty Dogbone Add-in#
Rather than manually sketching dogbone fillets at every interior corner (which would have taken forever with this many slots), I used the Nifty Dogbone add-in for Fusion 360. This automatically generates dogbone fillets for all selected edges in one click.
Step-by-step process:
-
Install the add-in β Go to Fusion 360 β Utilities β Add-Ins β Scripts and Add-Ins. Search for “Dogbone” in the Fusion App Store. Or go directly to https://apps.autodesk.com/FUSION/en/Detail/Index?id=3534533763590670806&appLang=en&os=Win64 and download and install it
-
Open Add-Ins Manager β Press
Shift + Sor go to Utilities β Add-Ins β Scripts and Add-Ins -
Enable Nifty Dogbone β Find “Nifty Dogbone” and enable it.

- Open Nifty β With the add-in enabled, you can open it from solid -> modifty -> Nifty Dogbone

-
Select the component β In the dialog, select the component containing slots that need dogbones. The add-in will automatically find all interior corners on that component.
-
Set the tool diameter β Enter the diameter of your CNC end mill (this determines the radius of the dogbone fillet). I used the same 6mm end mill diameter we were cutting with on the ShopBot.
-
Click OK β The add-in automatically finds all interior corners on the selected faces and adds dogbone fillets to each one

This saved me easily 2+ hours of tedious manual filleting β the chair design had dozens of interior corners across all the slots and joints.
π¦ Arranging Parts and Exporting DXF#
Once the design was finalized, I used Fusion’s Arrange feature to lay all parts flat on a virtual 8ft Γ 4ft sheet β mimicking the actual plywood dimensions.
Then I exported the arranged layout as a DXF file, which I could open directly in VCarve Pro for CAM setup.

Part 3 β Cardboard Prototype#
Before committing to milling full plywood, I scaled the design down and cut a cardboard prototype to verify that the mechanism actually worked.
Scaling down the design:
Since I had already arranged the files and exported the DXF for the full-scale plywood version, I used a simpler approach β I opened the DXF in Inkscape and used the Object β Transform β Scale functionality.
To calculate the correct scale ratio, I needed to account for both the material thickness change and the kerf difference:
- Original: 17.5 mm plywood
- Target: 3 mm cardboard with 0.33 mm kerf
Using the ratio calculation, I scaled the entire design proportionally to fit the cardboard dimensions while maintaining all the joint tolerances. This was much faster than going back to Fusion and re-exporting.

Assembly:
I assembled the cardboard prototype using aluminum shielded wire as pivot pins β perfect for testing linkage motion at this scale.
Result: The linkage worked perfectly. The backrest reclined smoothly, the footrest extended correctly, and no parts collided throughout the full range of motion. β
Part 4 β Ergonomic Analysis in CATIA#
Before cutting full-scale plywood, I performed an ergonomic analysis of the chair to confirm it would actually be comfortable to sit in.
π RULA Analysis#
I imported the chair design into CATIA and ran RULA (Rapid Upper Limb Assessment) β evaluates the posture of the upper body (neck, arms, wrists, shoulders)
This wasn’t my first time running ergonomic analyses on seating designs, so I was familiar with the process. The analysis was run for both the upright seated position and the reclined position.

Results:
| Analysis | Position | Score |
|---|---|---|
| RULA | Upright | 2 |
The results confirmed the chair provides a comfortable posture in both positions. Any minor issues flagged by RULA in the upright position were acceptable given that the primary use case is the reclined position.
Part 5 β CNC Machining on the ShopBot#
ποΈ VCarve Pro CAM Setup#
With the design confirmed and the ergonomics validated, it was time to set up the actual CNC toolpaths in VCarve Pro.
Cutting parameters used:
| Parameter | Value |
|---|---|
| End mill diameter | 6 mm |
| Pass depth | 4.5 mm |
| Feed rate | 1200.2 mm/min |
| Plunge rate | 1200 mm/min |
| Spindle speed | 1200 RPM |
| Tab width | 5 mm |
| Tab height | 3 mm |
Machine Setup Workflow#
Before running any job, we went through the standard ShopBot setup procedure:
- Set X and Y limits β establishing the machine’s coordinate reference point on the bed
- Secure the workpiece β the blank plywood sheet is screwed down to the bed to prevent any movement during machining
- Set X, Y, Z offsets relative to the workpiece β zeroing out the tool position relative to the top surface of the material
Toolpath Generation in VCarve Pro#
For generating toolpaths, we used VCarve Pro β the standard CAM software that ships with the ShopBot system. Here’s the complete workflow I followed to prepare my design for machining.
Step 1: Create a New Project#
Open VCarve Pro and select Create New File to start a new project.

Step 2: Set Material Dimensions#
Configure the job setup by entering the material dimensions and thickness. For my project, I set the sheet size to match the 8ft Γ 4ft plywood sheet with a thickness of 17.5 mm.

Step 3: Import the Vector File#
Import the DXF file exported from Fusion 360. Go to File β Import β Import Vectors and select your DXF file.

Step 4: Position the Design#
Move and align the imported vectors to fit properly on the workpiece canvas. Use the Move and Align tools to position all parts within the material boundaries.

Click Apply and Close to confirm the positioning.

Step 5: Create Screw Hole Markers#
Before cutting any parts, we need to secure the workpiece to the spoil board. Create circles at strategic locations (corners and center areas away from parts) to mark where screws will be drilled.

Step 6: Set Up the Drilling Toolpath#
Navigate to the Toolpath menu and select Drilling Toolpath. This will create the toolpath for drilling the screw holes.

Select the appropriate drill bit from the tool library and configure the drilling parameters:

#
Step 7: Create Inside Profile Toolpaths#
Select all vectors representing internal cuts (slots, holes, and interior pockets). Apply the Profile Toolpath with the Inside/Left cutting direction. This ensures the tool cuts on the inside of closed shapes.

Toolpath Types Summary#
| Toolpath Type | Purpose |
|---|---|
| Drilling | Creates screw holes to secure the workpiece |
| Profile (Inside) | Cuts internal slots, holes, and interior shapes |
| Profile (Outside) | Cuts the outer contour of parts to release them |
| Clears material from enclosed areas |
Recommended Cutting Order#
The sequence of operations matters for successful CNC machining:
- Drilling first β Secure the workpiece with screws before any cutting begins
- Pockets second β Clear any recessed areas while the material is still fully supported
- Inside profiles third β Cut all internal features (slots, holes)
- Outside profiles last β Final cuts to release parts, with tabs keeping everything in place until the job completes
Adding the z-offset
π§ Running the Job#
With the ShopBot set up and the workpiece secured, I sent the toolpath file and ran the job.

Part 6 β Post-Processing#
βοΈ Tab Removal#
After the CNC job finished, the first step was removing the parts from the sheet by cutting through the tabs.

πͺ΅ Sanding#
Once all the parts were freed, I sanded all surfaces to smooth out any machining marks and rough edges. I worked through grits progressively β starting coarser to remove tool marks, finishing finer for a smooth surface.
π΅ Edge Filleting with a Wood Router#
To improve both the aesthetics and user comfort of the chair (you don’t want sharp plywood edges digging into your legs), I used a wood router fitted with a fillet / roundover bit to round off all the exposed edges.
This step made a huge visible difference β the chair went from looking like a raw CNC project to looking like something deliberately designed.
Part 7 β Assembly#
With all parts post-processed, it was time to put it all together.
The press-fit joints assembled without any glue β the tolerances from the group assignment test gauge meant everything locked together firmly with hand pressure.
The pivot joints for the four-bar linkage were assembled using bolts and locking nuts, allowing the linkage to rotate freely while staying tight enough not to wobble.
Hero Shots#
Helpful Websites#
- ShopBot Documentation β https://www.shopbottools.com/support/
- VCarve Pro by Vectric β https://www.vectric.com/products/vcarve-pro
- Fusion 360 Arrange Feature β https://help.autodesk.com/view/fusion360/ENU/
- Chair 4-Bar Linkage Calculator (my simulator) β ../chair-4-bar-linkage-calculator/
- RULA Ergonomic Assessment β https://ergo.human.cornell.edu/ahRULA.html
- REBA Ergonomic Assessment β https://ergo.human.cornell.edu/ahREBA.html
Reflection#
This was probably the most satisfying week so far. Every previous week built up skills that I ended up using here β the parametric design thinking from Week 2, the press-fit knowledge from Week 3, the ergonomics background from before Fab Academy. It all came together in one object I can actually sit in.
The four-bar linkage was the part I was most nervous about β it’s one thing to see it work on paper or in a simulator, and a completely different thing to cut it out of plywood and have it actually move. When the cardboard prototype worked first try, I was honestly surprised. When the full-scale chair reclined smoothly on the first assembly attempt, that was a great feeling.
The parametric Fusion 360 workflow genuinely saved me hours β every time I tweaked the linkage dimensions the DXF update was automatic. That’s the kind of thing that sounds boring until you’ve done it the painful manual way a few times.
Next up: Electronics Production week. Time to actually mill the PCB I designed in Week 6 π