Introduction: Serious Homemade Manufacturing Equipment on a Shoe String Budget

About: I'm a product designer, who believes in working backwards. Instead of taking technology and seeing what problems I can solve with it, I take problems and see what technology can do for the problem. If current…
This is an instructable to show you how I took an idea I had for a machine from the 3D into the real-d and how you can apply the same techniques to your design problems.  My wife and I run a small 3-year old product design, manufacturing, and retail business named Past Primitive (www.pastprimitive.com).  As we have experienced more success, we needed a way to keep up with the manufacturing pace required for one of our popular products the Past Primitive Pocket Stove.  One of the biggest bottlenecks in the process was the porting--putting the holes in the stove where the flame comes out.  

We operate on a cash only basis for all our purchases and investments.  This means we have less flexibility to grow quickly, but on the flip side are much more stable and able to weather hard times without feeling pressure because we have no debts to pay down. 

Step 1: Research & Resources

Determine...

The first challenge is to determine which manufacturing problems are deserving of mechanization, or are best handled by your own skilled hands.  How you determine this will depend mostly on the resources you already have available and how much your time is worth to you.  Starting out our time was so cheap, we were willing to do many processes by hand, but as we achieved more success and needed to increase our manufacturing capacity while maintaining quality and be fast enough to allow us to focus on the many other important aspects of running a business e.g. actually selling the products we manufacture. We realized we needed to either streamline our process ourselves or outsource the manufacturing.  Traditional manufacturing channels are often very expensive for short runs, so those were out of the question considering the financial capital we could invest and our lack of desire to go into any debt.

So how did we know which process to streamline first in our stove manufacturing? Most of the time I believe this is quite obvious, it will be the task you dread the most at any given time.  It was no different for us; the mention of porting more stoves after the hundreds and hundreds of stoves I have ported made me want to hide under the sheets and cry.  But when you have a dream and passion for your business you push through that feeling and just cry and hide under the sheets when you go to bed at night.

And after more thought about the numbers behind the porting process we determined the biggest road block to efficient and quality manufacturing of our alcohol stoves was the porting process for the jet ports (that's where the flame comes out).  There are 24 holes in each stove. After a few dozen stoves that adds up to a lot of holes.  At first we used a custom template and a hand punch to punch the 24 holes.  This took 1-3 minutes per stove depending on how focused I was at any given time (the longest part in the whole manufacturing routine).  After doing a dozen or more stoves, maintaining concentration became a major challenge; not to mention the ability to just keep up such a monotonous task at all.


Research and take account of resources...

Once we determined what we process we wanted to enhance, the research phase began along with taking account of what resources we had available to us.  I looked to the Internet, fellow professionals, friends, family members, anybody who may have input on how we could streamline the porting process.  

I broke down the manufacturing problem into sub-problems and researched them individually. This can be informal, something you do in your head as you go, or if you like the allure of recording your thoughts in the real world, write it down. I think it's important to note that during this discovery phase, research and accounting for resources are integrally linked.  

That's a good thing; being linked helps avoid unnecessary work.  For example if I know that I do not have access to a CNC router as was true in my first attempt to solve the porting problem, the processes I would study to help build the different solutions to the problem at hand would exclude CNC build techniques.

Also this outline process provides a chance to start defining important issues such as tolerances of your quality control, desired speed of the process and other factors that are necessary for the machine to meet your requirements of use. Some will be obvious others will be discovered after first prototypes.  Do your best to be thorough, but don't let a lack of vision, knowledge, or solutions stop you from moving forward with your ideas.  Often the problems that need to be solved or how to solve them will not become apparent until you've started crashing through the steps clumsily. Look at this outline as a rough draft for an outline of a big paper you are going to write.

Below is an example of how I informally broke up the issues that needed resolved to build a machine to port the stoves, took accounting of the resources I had available, and defined target requirements to make the machine useful. These will help keep you focused.  I am not going to go into the details of what I discovered from my research in this step, I will share that in the later design and build execution steps.


End Destination: A custom tool that increases speed of porting stoves, maintains quality, and allows any lay person to operate.

General Requirements:
  • Index 15 degrees 24 times around a circle with less than +/- 0.005" accuracy of port placement from port to port.
  • Be able to port a stove blank in under 30 seconds.
  • Load and remove blank in a few seconds.
  • Be operated by unskilled person safely.
  • Be durable, be capable of porting hundreds if not thousands of stoves before part replacement. 

Mechanical Sub-system Issues to research: 
  • How to time porting punch-to-punch, 1 hole per 15 degree rotation?
  • Power source and power transmission system to be used?
  • How to secure stove top blank for the porting process?
  • How flexible should the system be, should I be able to vary number of holes, and angle at which blank is ported?
  • Materials to be used?

Available Resources:
  • Metal Mill
  • Metal Lathe
  • CNC Router with 25" x 25" work envelope
  • Standard Wood Working tools
  • Welder
  • 1 Ton Arbor Press
  • 12 Ton Shop press
  • As much money as my wife will let me spend ($55 in the end)
  • Electrical Engineer Brother
  • Mechanical Engineer Friends
  • CAD program

An interesting point. The problem that proved most difficult for me to solve at first was indexing the blank 15 degrees reliably within the +/- 0.005" of hole placement every time. I went through several designs before I attempted to build one and have it be a big failure.  It didn't even hit the mark of indexing the blank anywhere close to 15 degrees.  Ironically that design was the most expensive and time consuming to build. It's also the idea I thought was the most fool-proof.

This demonstrates a key point that I would like to share. The best laid out plans can fail miserably.  Once again during the research and resource accounting step it is not as important to know everything as it is to keep moving forward regardless of how clumsy and disorganized you feel. You will need to plan for failure, that's not to say you shouldn't hope for success but remember the wisdom that "failure is always an option."


Step 2: Preliminary Design - Stop Trying to Do It All at Once!

The preliminary design method I follow is simple, I pick up a pen and paper and start drawing thumbnails of all the ideas that I had swirling around my head from the research process. This is where you can easily vet the ideas that seem most appealing to you.  This step helps you determine which design you will really want to follow through with a prototype.  For me, it provides me opportunity to visually think through the dirty details that I can imagine will provide problems.

There should be lots of pondering in this step while you draw.  Take your time and think about all the issues at hand until you feel you have an idea that addresses all the problems.  Leave no stone unturned.  When you feel like you have a sufficiently vetted idea  it's time to move into the realms of virtualization... Duh duh duh!!!

But what happens if you don't? Let me tell you a story...

Often at this stage of a build, I start to get really excited.  I mean really, really, really excited.  I am like Steve the monkey on Cloudy with A Chance of Meatballs when he gets around gummy bears. For those of you who don't know that reference, to put it simply I get a little over-excited.

This leads me to rush into the building of my idea because of my general nebulous gaseous vision that has inspired me from all the research I have done. It just feels so awesome and so right, the possibilities of it all swirl through my head! Unable to resist the appeal of my own brilliance, I just have to start building, making, and constructing or I think I will implode. So I skip putting my gaseous cloud of inspiration through the heat and testing grounds of detailed and drawn out design so that I may achieve the brilliance of design fusion where my inspiration turns into reality.

I just know I've got it all figured out, or that I will figure it out as I go and things will just work, my nebulous gas cloud of an idea will obviously just magically fuse together because of shear awesomeness and brilliance.  So I enthusiastically execute the build of my vision and the swirling cloud of inspiration mixes with the dark coldness of important miscalculations and poor design decisions transforming my beautiful gaseous cloud of inspiration that was on the verge of fusing into a brilliant star, into a stinky gaseous cloud of chaos and stupidity.  Failure becomes not only an option but the definitive destination of the whole process.

Don't be a stinky gaseous cloud. Follow a thorough design process and achieve success more regularly. Not to mention your loved ones will be more likely to see you as an adept and intelligent innovator as opposed to an insane inventor bent on self destruction. Of course some of us need to be a stinky cloud multiple times before we start to see the light of planning and organization.

In fact the preliminary design phase of my projects is one of the most exciting and enjoyable because the sky is the limit!  Even if it is hard to delay building. Relish the freedom of only being held back by the limits of your imagination.  So grab a pen and some paper and get started.




Step 3: Virtualization & Coolness Enhancement

It's time to get down and dirty with the nitty gritty of your idea in a CAD program.  I use Turbocad for Mac version 3.  Why?  Because I am poor, and I can't afford Autocad or Solid Works yet.  It's a decent CAD program, but a little limited at times.  Use what you have.  Or win an instructables contest that offers Autocad as a prize!

Using my drawings as a general outline, I start to build my first virtual prototype of the machine.  I like this step because you get to see all the details of your general plan come together in the virtual world.

I get out my calipers, and I start measuring all the materials and pre made parts I will be using to the thousandth of an inch.

This can be extremely tedious and time consuming step.  But it prevents countless mistakes and predicts many design flaws.  For example, with the porting machine I was able to determine where I would have space to put the engine of the machine (a power drill).  It allowed me to easily figure out the gearing for the power transmission. It allowed me to make sure I would have enough clearance between the punch and the blank to be able to remove the blank holder from the machine without hitting the stove blank into the punch every time.  They all sound like simple enough problems to avoid as you build.  But when you add all the numerous small issues together, it's so easy to miscalculate or make uninformed design decisions because you don't have the larger picture in mind.  You change one thing, and it can effect every other aspect of your mechanical system. Even with the virtual model there will be plenty of opportunity to deal with unforeseen issues.

The important part is to view this step as a prototyping step.  Don't get so stuck on a particular solution that you aren't willing to overhaul the thing entirely if once it's been built in the CAD program, you come across some obvious design flaws.  This is one of the nice things about virtual models; they are so easy to rebuild from the ground up with little loss in money and materials.  Anyhow, my main point is don't be afraid to start over if needs be.

Coolness enhancement time...

Another enjoyable aspect of the virtualization step is that you also get to finalize some purely aesthetic details of the machine. Things like unimportant fillet radiuses and chamfer dimensions.  Often there are multiple ways to aesthetically execute the same idea. In the example of the porting machine, I got to pick whether I wanted to have the blank holder be parallel with the ground, or to have the punch assembly be parallel with the ground. Either way would have worked the same as far as the mechanical system was concerned, but each provided a different feel and look to the machine.  I have a years worth of industrial design training from my university experience.  To me I get excited about the aesthetics of a machine, and while in a build such as this one I was mostly focused on function and making a working prototype I would take as much time as I could to make it something I was proud of visually as well as functionally.  Is it perfect in it's aesthetic appeal? No, but it was definitely worth it to me to spend time on.


Step 4: Creating Technical Drawings

Technical Drawing:

I like to create technical drawings of my parts so that I have a way to verify dimensions when I am creating the tool paths and after the parts are machined.  While not necessary per say, once again it will help prevent needless mistakes.

My first step is to create a copy of my 3d file and rename it with the same original name plus something like "original name - technical drawing". I then open the 3d file and begin to take it apart in the virtual space, so all the parts are separated and lined up in a long row. Follow the pictures to see the screenshots of the process in action.

With the end in mind, I orient all the parts with the side up that I will want to be up when I machine it in the CNC router.  This is important for parts that have features that do not go all the way through the material. For example, countersunk features of different fastener holes or pocket features of a part that do not go all the way through.  

It's also very important to remember to maintain the same orientation relative to the 3d model when you are moving the part.  Because I rotate all the parts in my 3d model so that the Top view is the main view, which means I will rotate any parts standing on end in the 3d model so they are flat to the top view. Once again reference the pictures for a clearer understanding of what i am saying.  Keeping relative orientation is mostly important for when you are machining asymmetrical parts, and pairs of parts with asymmetrical features.

Once I have oriented all the parts so that they are all facing the top view in my 3d model and have lined them up in a vertical row, I go through and make 3 copies of each part.  And I position and rotate them with the same pattern.  Starting from the upper right going clockwise the pattern for the relative view using the top view as the relative view: isometric view, side view, front view, top view.  Of course certain parts end up working better if I use different view configurations, and some parts don't need all the views to properly describe all the important features.  But that is my common pattern to follow.  

The next step using the dimension tools included in turbo cad, I dimension all the parts. The key is to make sure there is a way to figure out every necessary dimension to the process of machining and other important interacting part features. This is a good time to talk about tolerances.  I am assuming many of you understand the importance of tolerances, and what that even means in regards to technical drawings.  For those of you who don't, I will attempt to explain to the best of my training. I appreciate how impressively long and boring some may find the long, boring explanation but as you develop your part-making kung fu, you'll find it extremely important as you work with more complicated systems if you don't already understand it intimately. If the tolerances aren't right and not well thought out, your mechanical system can have catastrophic failure.


Tolerances:
 
condensed explanation: In technical drawing, tolerances are specifying what range of values any dimension may be in order for the part to work as intended.

long boring explanation (read at your own risk):
The best way to describe tolerances in my opinion is this: with any plan there is the precise execution of the plan and the acceptable execution of the plan. For example, you have a plan to meet up with friends at 7:00pm to go see a movie.  In a perfectly precise world, you and all your friends will meet up at precisely 7:00pm as agreed upon.  In the real world what typically happens? Some show up 5 minutes early, some on time, others 5 minutes late, and some a half-hour or not at all.  

We all have a tolerance for a certain amount of variation from the theoretical precise execution of the plan to meet up for the movie. For some people being on time is very important to them as a sign of respect and therefore you can show up any time as long as it is before the 7:00pm deadline without upsetting them.  Others are more forgiving and anytime within plus or minus 10 minutes of the agreed upon time is acceptable.  And some are even more forgiving and as long as you show up  in time to watch some portion of the movie together will be happy. However fall outside of those tolerances and you will have an upset friend to deal with, and your plans to watch a movie may fall apart all together.

Likewise in the technical drawing of any part, there is a recorded or implied tolerance for the different measurements of different features of any given part. This defines the range of acceptable real-world dimensions a part may be. As long as the actual dimensions of the finished machined part lie within the range of the specified tolerances it will interact with the other parts of your system appropriately. If it doesn't it may work poorly as specified or not at all, possibly causing complete system failure for your design because of it not working right.

Perhaps you are wondering why have a range of tolerance at all, why not just always make your part precisely as described in the plan?  Well you can and you can't. It's a question of time, cost, and how precise you want to be. No matter what level of precision I dictate a part to adhere to in the real world the dimensions will always end up falling within a range of values.  For example if I say a part should be 1 foot long what does that mean?  If I take a typical school ruler and measure a foot and cut my part to be a foot long it appears that I was precise and theoretically correct as well.  However, if I take a pair of precision calipers that can measure to the thousandth of an inch and measure the same part I will find out that I really cut the part so that it is for instance only 11.995" long.  That would not be considered acceptable if your part needed to be 12.000 +/- 0.001.  My point is that there is always a range of tolerances we are working with.  When we speak of it in technical drawing we are simply specifying what range of values any dimension may be in order for the part to work correctly. Sometimes that is down to the thousandth of an inch, sometimes the part just has to be close to the specified measurement within an inch.  Regardless of what precision you are working with the principals are all the same.  If you over specify precision, i.e. say you need the part precise to the thousandth of an inch when it only needs to be within a hundredth of an inch you will spend needless time and money achieving that unnecessary precision.

So how do we know what tolerances the parts need to be specified to? It's whatever tolerance ensures it will work as you intended. It just depends on the situation.

After I have dimensioned everything out, I take screenshots of all the different parts. Usually taking a screenshot of all the different views of one part at the same time. I then print all those screen shots out for later reference when making the tool paths, and verifying appropriate part dimensions after creation.

 

 

Step 5: Design Execution - Preparing 3D File for Tool Path Creation

Design execution is where we take our 3d model and output it to the physical world.  In the most basic form, it involves looking at a set of plans and using hand tools to fashion the different parts according to the technical drawings. However one of the major points of this instructable besides creating your own manufacturing equipment for use at home is to learn how to take a 3d file and output via a CNC machine.  In my case, I own a CNC router that I used to make most of the parts for the porting machine.  So I will be mainly focusing on the process I use to take a 3d file and prepare it for that particular CNC machine and tool path software.

For my CNC Shark Pro Plus router and it's VCarve Pro software, I will need to "flatten" all the 3d solids and convert them into line work that I can export as a .dxf file so I can use the line work to create the appropriate tool paths. It's like creating a 2d paper template to cut the parts from.

Using the technical drawing file, I copy all the top view version of my parts into a new document in Turbocad.  

Using Turbocad's "Change Object Type" capability I convert all the models from solids to poly line or line objects as appropriate.  

Switching to the side view, I select all the line work for the bottom section of the wire frame that is already duplicated by the top section.  Usually this is straight forward except for when I have pockets and other features that do not go all the way through the part. When that happens I simply use the align tool in Turbocad and align all the important line work to the top of the wireframe model. I then select which line work is unnecessary and delete it. Refer to the pictures to see the process in action.

Once I have done that, I save the file as a AutoCad interchange file, file extension ".dxf".

Step 6: Design Execution - Tool Path Creation in Vcarve Pro

I haven't used many different toolpath programs. Vcarve Pro is actually both a 2d CAD program and a CAM (Computer Aided Manufacturing) program. I, however, do not use the CAD feature except for minor changes in my CAD files and to organize the parts to be cut out to maximize the number of parts I can cut from any given sheet of material I have available.

When you output files to a CNC machine, usually you will need to create tool paths file from the models of your parts before you can output to your machine.  These tool paths will be translated into the appropriate code for your CNC machine's controller to interpret the files correctly and take the appropriate actions (e.g. depth of cuts, how quickly it will move around, where to cut)

In summation, CAD programs help you design the part in the virtual world, CAM programs help you interpret the CAD file so the CNC machine understands what to do.

So first I open the .dxf file we created from the step before. The first thing I am asked to do by Vcarve Pro is to supply it with the actual dimensions of the material I will be cutting my parts from.  For the porting machine, I would be working with two main materials, 0.715" Birch Plywood, and 0.093" acrylic.  I like to start with the parts that are my main structural parts first. So I group parts to be cut out by material type, and then by necessary precision needed. For the porting machine I would use the same tolerances for all the parts cut on the CNC machine.  So it was more of a matter of efficient cutting patterns to maximize material usage.

Once I have supplied material dimensions, and grouped the parts together to maximize material usage, I go through and use the "group" function in Vcarve Pro to group the different line work by similar tool path operation; such as whether it would be a hole to be drilled, a pocket to be machined out, or if it would be the final separating cutting path.

Then I select the different groups and using the create tool path functions of Vcarve Pro, I supply the required parameters for each tool path using my technical drawings as reference to supply me with the appropriate information.

Once all the tool paths are created, I use the 3d preview function in Vcarve Pro to make sure the part will be machined appropriately.  I also use this as an opportunity to order the tool paths in the program according to cutting bit type to minimize tool changes. 

After I have verified tool path order (e.g. all the tool paths that use a v shaped bit will be executed in the same batch,) I save the different groups of tool paths according to tool used out to .tap files that can be sent to my CNC controller. 

Step 7: Reality Check

Here is where you get to see how well you planned. In other words, it's time to take all the parts you cut out,and assemble them according to your plan. For the porting machine, things went really well compared to most first prototypes.
I only had to make minor modifications. The initial build of the design took about two hours.  The rest of the time was spent sanding, smoothing rough edges and general tweaking of the system.

I will typically only verify part dimensions if something doesn't seem to be working right.  I will assemble the machine, and then see if it works.  It usually doesn't the first assembly, and I work backwards from there determining what parts need work.

Parts that needed tweaking:  

Cam (on one tooth gear axel) - I needed to get rid of the cam that was responsible for pushing the ratchet lever arm out of the way because I didn't pay attention to the fact that major diameter on the cam would cause the cam to stall on the gear axel above it.  Fortunately that cam proved redundant and unnecessary.  

One Tooth Gear - The one tooth gear responsible for advancing the ratchet gear was capable of advancing the ratchet gear without disengaging the ratchet arm. I had make the one tooth on the one tooth gear slightly longer to advance the ratchet gear far enough for the ratchet arm to fully reengage.

Ratchet Arm - I had to modify the profile on the back of the ratchet arm so that it had a shallower lead in to the profile section responsible for catching the ratchet gear teeth.  This essentially allowed the ratchet arm to have a wider area in which it could cause the ratchet gear to move forward.  This meant I need to advance the ratchet gear with less precision and that the ratchet arm would still ensure that it would only index the 15 degrees.

Blank Holder Post - I needed to modify the usage of adhesive 2mm foam as the grippers to hold the blank holder on the blank holder post to masking tape.  The masking tape proved a better surface that provided sufficient gripping force, was easier to remove the blank folder from the blank holder post, and did not compress as much as the 2mm foam.  the compression of the 2mm foam caused port diameter quality control problems.  Depending on the variations inherent in the soda cans the compression would allow for the punch to not fully pierce the can at the appropriate depth. Thus too shallow of a hole was made, and there was either no hole made or of insufficient diameter. 

Camshaft & Linkage - The camshaft that I originally intended to repurpose from the first machine turned out to not work with the intended linkage I had planned on using to connect the gear to the camshaft.  I had to machine a new one on machine lathe, that was longer and could use a revised linkage system that wouldn't slip like the old one was.  This turned out to be very beneficial because the redesign allowed me to easily remove the camshaft which allowed easier adjustment to the piston punch assembly. 

Extra Gear Needed - I had to add another 10 tooth gear in order to mount the drill on the inside of the machine and have the drill be able to turn in the standard clockwise direction. If I didn't add the extra gear it would turn the 1 tooth gear in the wrong direction to advance the ratchet gear. Also I didn't want to run it in reverse.  Some drills seem to not provide quite as much speed in reverse.

General Tweaks - The motion bearing surfaces needed sanded with 600 grit sandpaper, and oiled.  The lack of smooth  un-oiled surfaces proved to provide too much resistance to the ratchet arm, and it could not cause the ratchet gear to index properly. Shimmed spacer washers with a few layers of masking tape in order to allow the ratchet gear to rotate with less resistance.


In conclusion, this is a step that is both exciting and aggravatingly frustrating as you break new ground in developing your own designs and find out what works, what doesn't, and all those little details and bits that get lost in the translation from theoretical prototype to a real world prototype.  But if you persevere, you will learn a lot no matter how successful your initial designs are.  In fact I usually plan on my first prototype on complicated systems, at least complicated for me not working the first time. The porting machine required a complete redesign from the ground up of a few key systems.

The first porting machine prototype I created before this one cost me around $150 - $200 in materials and 100 or more hours in build time not counting design time.  And ultimately it was a miserable failure.  In fact to testify of some of my earlier points of being organized and designing every detail out, I was not nearly as methodical as I was with the 2nd version. So not only was it a failure and expensive considering the end result, but the second machine only cost me about $50 to build and I put 40 hours of work into.  With 25 hours spent on design.  I contribute that to two things.  One I had learned a lot from my earlier failure, 2nd I spent a lot more time in the design phase and was able to catch a lot of mistakes that I would have been trying to figure some ingenious work around for that would ultimately fail.

Step 8: Do It Again & Post-Process-Evaluation

If you experience complete failure like I did with my very porting machine prototype before this one, you'll going back to the drawing board to revise or completely redesign.  Try not to be too disheartened as this from my experience an extremely typical part of creating unique machines.

The important post process step to take after creating a new manufacturing machine is to run it through some quality control paces and to take some measurements.  This will help you determine if the new machine is beneficial to deploy in your process.  Typically it's quite obvious whether you should or not.  But for the sake of being thorough and quantifying your success, it will help to know some general numbers. Below you will find my post process evaluation.

Post Process Analysis:
 
Old Porting Time:      1-2 minutes per stove
New Porting Time:   12 seconds

Old Blank Holder Mounting / Removal Time:        3 seconds
New Blank Holder Mounting / Removal Time:   6 seconds

Old Tops Produced Per Hour Average:        17
New Tops Produced Per Hour Average:   47
 
Assessment: It's obvious that the speed of the new machine easily justifies it.  The quality has increased with the new machine providing even more consistent port placement and diameter. The old method required very skilled manual labor to manipulate the hand punch and template so that it would produce quality results.  I was the only one who could port the stoves without training someone.  Plus my wife (co-owner) couldn't perform the old task because the punch required too much force. The porting machine needs no special training to operate.  It's clear after the analysis that the porting machine is superior in every way except that it does require slightly more time to mount the blank holder on the blank holder post, where as before that was not a requirement with the old method.  

One other minor note: Although the new machine has increased the speed of the porting operation by 500% on average the overall output of stove tops is now much more limited by the other operations unrelated to porting thus yielding a rate increase of only 276%. 

In closing if you have a problem, there is most likely a great solution if you are willing to be persistent in your designs and revisions. One of the nice things about doing any project is that regardless of the success of your design adhering to your design intention you will learn how to do it even better next time.  I already have all sorts of up grades planned for the current porting machine despite it's major success for us.

Future upgrades will include automatic shut off after one revolution, and a built in lamp for quality control confirmation.  If light shines through the holes in the blank, it's a quick way to determine if their are any abnormalities in the holes. 

Thanks for reading!