8. Computer controlled machining¶
Introduction
Prior to the eight week of Fab Academy, I had only briefly experimented with our school’s CNC routers during an engineering course that I took during my freshman year of high school, during which I designed a basic desk in Fusion 360. While I knew hte basics of designing large furniture and other objects and Fusion to be milled on our CNC router, this week certainly provided an immensely useful platform to further my capabilities, and I did precisely that through the designing, milling, and assembling of my multi-tiered stool that I made over the course of week 8 of Fab Academy. I have documented the successes and plethora of tribulations in extensive detail below.
Assignment
- Group Assignment: do your lab's safety training and test runout, alignment, speeds, feeds, materials, and toolpaths for your machine.
- Individual project: make (design+mill+assemble) something big (~meter-scale)
Designing something big
This week’s individual assignment was to design something big, and I began by contemplating large objects that could potentially be utilized in the fabrication of my final project. However, the only component of my project that would have satisfied the requirement for this week’s assignment would have been the suitcase itself, and I figured that I would not be able to create a sturdy and non-squarish suitcase using 0.75” wood on our 3-axis CNC machine. I ultimately decided to create a multi-tiered stool that features a wide circle for sitting on and a smaller circle below the seat that locks into the supports to provide additional stability to users of the stool. After deciding what I wanted to make, I opened my CAD platform of choice, Fusion 360, and began designing my stool.
I began designing my stool by creating a circle and support shape in Fusion and extruding them to 0.75”, which was the expected thickness of the wood that I used as I was making furniture, which requires extra sturdiness to accommodate humans. After seeing what this version of the stool looked like, I noticed several issues and many places that I could approve upon the initial design prior to milling. During this week it was uniquely imperative that all of my issues be corrected in Fusion prior to milling, due to the material cost of failures as well as the time that is wasted when a CNC project fails, meaning that errors are significantly costlier when using the CNC machine compared to those that occur when using most other tools in the lab. Firstly, I noticed that my stool would lack support in the center because the legs were all parallel to each other, meaning that the stool would be very wobbly. Additionally, the stool would lack support due to the omission of a bottom circle that I eventually added in future iterations of the stool, further contributing to the lack of support of this first design. Finally, I quickly realized that the stool would not have been able to assemble properly due to the distance between tabs on the circle and the distance between tabs on the supports being drastically different. Needless to say, I quickly scrapped this original design entirely and began anew, intent on applying the many lessons that I learned from this failure to what would eventually evolve into the final iteration of the stool.
I began my second design by deciding how wide I wanted the circular seat of the stool to be. I initially decided to make the stool 10.5” wide, but this would eventually be changed in the future both because it was necessary to make my design work and I also postulated that a seat of 10.5” diameter likely would not provide the most comfortable experience after measuring the diameter of the stools in our lab to be around 12.5”.
Next, I added parameters to my file for the thickness of the wood and a second parameter that was 0.05” greater than that of the ‘WOODWIDTH’ parameter to allow for easier slotting of components during the assembly process. I defined the parameter as 0.774” originally, as I thought that I would be cutting on a different piece of wood than the 0.755” piece that I ultimately utilized.
Next, I created tabs on my circle that the four supports of the stool would be designed to slot into. As the tabs on the supports would be of the exact width of the material that I would be using, I assigned the width of the tabs on the circle to the ‘WOODWIDTHSLOT’ parameter, ensuring that a fitment would be as smooth as possible during the assembly process. I defined the length of the tabs as 2.00”, which was a number that I felt would provide sufficient sturdiness to the stool as the tabs would be placed in and cover the majority of the most important locations throughout the stool, these being the radii and central locations. After designing one of my tops as a ‘center rectangle’ along a diameter of the circle, I used the ‘dimension’ tool and constrained the original rectangular tab to be 0.5” away from the edge of the circle, as I wanted the outer edge of my supports to contact the edges of the upper circle. After attempting to use the ‘rectangular pattern’ tool to duplicate the original rectangles across the circle, I realized that the diameter of my circle would need to be slightly larger. As such, I increased it to the archetypal 12.5” diameter that I had observed throughout the stool in our lab, though this figure would ultimately be changed once again later on in the process of designing my stool. After increasing the diameter of the circle, I used the ‘rectangular pattern’ and ‘circular pattern’ tools in Fusion to duplicate my rectangular tabs so that 4 tabs laid along each axis of the circle, which would allow my supports to neatly slot into each side of the circle, maximizing the stability of the furniture.
As mentioned above, I wanted to increase the sturdiness of my stool by adding a second circular support below the circle that would be used as the seat of the stool. I decided that I would make this component 10.5” wide, featuring a 1.00” tab for it to slot into on each side of the circle as well as a single tab on each one of my supports, allowing the circle to slot in nicely and preventing me from doing the inevitable guesswork that would be necessitated by only including tabs on either the support circle or the support legs themselves. I created a rectangle of width ‘WOODWIDTHSLOT’ and length 1.00”, and used the ‘circular pattern’ tool to create four copies of this shape on each individual side of the support circle. I then used the ‘trim’ tool to remove the edges of each rectangle, creating tabs in the circle that would eventually be used to slot into tabs of these same dimensions on my support legs.
Next, I designed my supports. Following my previous failure, I decided that I also wanted to make my stool slightly taller than I did in the original version of the project. As a result, I increased the length of the supports by 4.00”, making them 16.50” tall, excluding the height of the tabs that are attached to the top of the supports. I began designing my tabs by drawing a rectangle of dimensions 16.50” x 5.50”, and then created tabs on the top. I drew a rectangle of width 2.00” and height “WOODWIDTH,’ and used the ‘rectangular pattern’ tool to create a single copy of this tab on the top of the support structure. I then added several constraints to the tab tabs to ensure that they would fit into the tabs that would be cut out of the top circle. I started by adding a constraint to the rightmost tab atop the support, using the ‘dimension’ tool to define its distance from the edge of the support to be 0.001”, as Fusion did not allow me to set this parameter to 0”. Next, I measured the distance between individual tabs on the circle that I designed in the first step of the process, and set the distance between the inner edges of my tabs to be this distance, which turned out to be 1.187”. I then created a tab lower down on the support structure that would allow the second circular support component that I designed to slot into it snugly, adding a significant amount of sturdiness to the structure as a whole. I drew a rectangle of width 2.00”, and height “WOODWIDTHSLOT,’ making sure to change the length of 1.00” on the tab that I drew on the previous circular component. As I only needed to copy the entire support piece later on, I finished this sketch and began extruding each one of my components so I could then create joints in order to ensure the fitment of my parts prior to milling on the CNC machine.
Before I could create joints between the different components of my sketch to verify the fitment of the different components, I would need to extrude each one of the individual pieces so that they reflected the thickness of the material that I would be using when milling on the CNC machine. I extruded each of my components by the ‘WOODWIDTH’ parameter that I created when I began designing the sketch, and began creating joints between the different components of my design. While I have used joints in the past to verify that certain pieces of my designs fit together, I felt that it was significantly more important during this week due to the extreme cost of failure when using the CNC machine compared to the relatively small cost of failure when using most of the other machines in the lab, both in terms of material cost as well as the holistic amount of time that is wasted for each member of the group when a milling process is failed.
I first used the ‘joint’ tool in Fusion to create a joint between the lower support circle and the tab on the one support that I had on my design plane thus far. After verifying the proper fitment of these two parts, I used the ‘circular pattern’ tool to create three duplicates of the supports, each locking into a different vacant tab on the support circle.
After confirming that the support circle properly fit into the support legs, I created a rigid group between these parts, which would allow me to create a new joint between the upper circle and the supports without moving individual components of the now assembled bottom portion of the stool, allowing me to see a full view of what the fully assembled stool would look like.
After attempting to create a joint between one of the outer tabs on the circle and one of the outer tabs on one of the support pieces, I was left with a rather unsavory sight. I had seemingly made an error along the way, possibly in the calculation of the proper diameter of the bottom support circle, which caused the fitment between the upper seat circle and the upper tabs of the support legs to be anything but snug. Before I could finalize my design, I needed to resolve this egregious error.
I used the ‘measure’ tool within Fusion 360 to measure the distance between the top of the tabs on my stool and the point where the supports intersect with the tabs for the lower support circle. I then used this measurement, which turned out to be 7.164” to create an offset plane off of the lower circle so that I could design a properly-dimensioned upper seat circle utilizing existing geometry as reference points to significantly increase the efficiency of the redesigning process.
In order to design the new upper circle, I placed a variety of points along the existing geometry that existed on the offset planes, which included the geometry of the upper tabs of the supports, which the upper circle would need to slot into. I simply traced the geometry of the tabs using the line tool, and using my pre-defined parameters when applicable so that the geometry of the circle could be changed in tandem with that of the other components of the sketch in the event that the piece of wood that I would be cutting on changed. To find the correct diameter of the upper circle, I placed a point in the center of the sketch, using the center point of the lower circle which lined up with that of the upper circle, and drawing a ‘center circle’ out to a point that I placed on the edge of one of the supports. I did not need to extrude this piece, as I knew that when I cut it would slot in perfectly, as the distance between the bottom of the upper tabs and the top of the seat circle is contingent on the thickness of the material.
After verifying that all of my pieces properly fit together as intended, including the adjusted seat circle, which now possessed a diameter of 13.80”, I was ready to export my file as a .DXF file and import it into Corel Draw for final quality control before opening the file in Aspire and generating my toolpaths.
After trying to export the individual sketches of each of the components that I would need to generate toolpaths for, I discovered that I had accidentally deleted the sketch for my support structure somewhere along the process of designing my stool. After discovering this small error, I needed to create a new sketch by tracing the 3D version of the support, as I needed to export the components as 2D sketches in .DXF format.
After successfully tracing the outline of the support structure in a new sketch, I clicked on each of the sketches that I wanted to export to Corel Draw and saved them all in an individual .DXF file.
Upon opening my .DXF file in Corel Draw, I noticed a variety of small errors, though all of these were incredibly easy to correct by simply deleting some of the construction lines from Fusion that I never deleted, which Corel Draw renders as actual lines, and adding additional geometry to areas where my lines were somehow deleted from the file.
After correcting the numerous errors with my file, I exported the final version as a .SVG file which I could open in Aspire in order to generate the final toolpaths that could be used with our CNC machine.
After importing my .SVG file from Corel into Aspire, I was ready to begin generating the toolpaths for my final cut. To begin, I changed the ‘cut depth’ setting to the thickness of the wood that I would be using to cut my final stool, which turned out to be 0.755”. I also changed the amount of passes to 4 from its default value of 6. Changing this value at the beginning would allow me to apply both of these settings to both the outside and inside toolpaths automatically, without having to edit the settings for each respective toolpath that I generated. Finally, I generated dogbones on the edges of the interior and exterior tabs to allow my pieces to fit together snugly. Unfortunately, I did not decide to include dogbones on the top of the tabs for the supports, but my stool was largely unaffected by this minor error.
After applying the same toolpath settings to both the interior and exterior cuts of my file, I was ready to export my file, but I first selected the ‘preview visual toolpaths’ option within Aspire to verify that everything would operate correctly once I exported the file to the CNC machine. After verifying that the toolpaths I generated were correct, I exported the individual ‘outside’ and ‘inside’ profile cuts as .sbp files so that they would be able to work on our lab’s ShopBot Alpha CNC.
Next, I downloaded the .sbp files on the PC that is connected to our ShopBot and ran each of the .sbp files individually on the same sheet of wood. I referred to the workflow that was provided by our instructors throughout the entirety of the process to ensure that I properly operated the expensive and fragile CNC machine.
I used the above workflow during the milling process in order to ensure that the milling process progressed smoothly, safely, and efficiently. Unlike other processes in the lab that can be learned relatively quickly and do not require a workflow for repeated uses of the same machine, the ShopBot is unique in that the repeated use of the workflow is integral for each use of the ShopBot due to the inherent danger, and the cost and difficulty associated with any problems that are caused due to a user's improper use of the machine. This workflow is essentially Mao Ze Dong's Little Red Book in that it must be carried out all times whilst the ShopBot is being used to ensure the longevity of the equipment that is vastly more expensive than most of the other equipment in our lab.
I oversaw the entirety of the milling process so I could stop the machine at moment’s notice in the event of an unexpected calamity that would harm the machine if I were not present to intervene.
Following the conclusion of each of my .sbp files, all of my components were ready for removal. I used a chisel and mallet in order to remove the pieces from the wood. As roughly half of the plywood sheet was still intact following the conclusion of my milling and other members of our group still needed to cut their own files, I did not have to remove the sheet of wood from the ShopBot.
After removing each component of my stool from the ShopBot, I was ready to sand each of the components in order to mitigate splintering dealt to the stool’s guests from jagged pieces of wood and to improve the holistic aesthetic appeal of my glorious piece of furniture.
I assembled the lower support circle and the support legs properly; however, after trying to put the final component, the seat circle, onto the assembly, I discovered that I had accidentally forgotten to include dogbones on the top joints of the supports. This was not a large issue, as I simply sanded down some of the tabs on the supports while several of my peers, Grant Fleischer and Graham Smith , assisted in sanding down the tabs on the seat circle shape. The additional manpower provided by my peers proved invaluable in the assembly process, and we made quick work of this infinitesimal problem that plagued an otherwise flawless magnum opus.
After assembling my stool by malleting down the final component, it was time to test the stability and the ability of the stool to accommodate people. Preliminary testing was successful, though the endurance of the chair and its ability to bear large amounts of weight for extended periods of time remains unknown.
Group Assignment- testing runout, alignment, speeds, feeds, materials, and toolpaths for our ShopBot Alpha CNC machine.
For this week’s group assignment, we were tasked with testing the optimal settings for various elements of our CNC machine, including the runout, alignment, speeds, feeds, materials, and toolpaths. We chose to run these tests on our ShopBot Desktop CNC Machine as various group members were occupying the larger Alpha CNC machine when milling their personal projects for this week. My contributions to this week’s group work included writing various definitions for some of the terms whose settings we tested as well as performing the tests for runout alongside my peers. The entirety of our group work is extensively documented on our group site.
Download this week's files! (17 kB)