Well just about a full decade has passed since writing my first instructable (about making precision puzzles on a tablesaw) and now I'm back with more useful information for you all. Over the course of the last 10 years, my puzzlemaking focus has moved away from woodworking, and towards precision metal machining instead. One of the fundamental similarities between my woodworking and metalworking techniques is that both require lots of careful workholding consideration.
In the simplest sense, "workholding" is the manner in which the part that you want to make (your work) is held during machining operations, or in other words, it is "the thing that you use to help make the thing that you really want". This can be as simple as using a clamp to hold down a block of wood to the drill-press table, or as complicated as creating a custom fixture which might actually be more involved to produce than the "thing" itself which the fixture holds.
This project that I'm writing about today is of the latter category, so fasten your seatbelts because this is going to get pretty technical. To follow along, you will need some familiarity with Autodesk Fusion 360, access to a CNC milling machine such as the Haas VF2, and some Lang stuff...
Step 1: Motivation for Making This Workholding Fixture
I'm writing this instructable as part of my Residency at Autodesk's Pier 9 workshop in San Francisco, where we have the necessary software, machines, and tooling systems to work with... so mostly I think that this information will be useful to other people working at Pier 9, however much of it can be applied to similar machines in other workshops. If you have access a CNC machine shop other than Pier 9, then I highly recommend investing in some Lang tooling if you're serious about setting up a high precision flexible production environment.
One of the projects that I'm working on at Pier 9 involves the production of a puzzle which has a wooden piece as shown in the first image for this step. I have designed this wooden puzzle piece to be made from 16 individual components which I plan to glue together: one core piece and 15 wooden strips which are each 1/8" thick, and have numerous complicated notches in them. I plan to use this 2-sided fixture to hold the 15 wooden strips all at once so that I can cut all of the notches in just one setup. I plan to use the DMS 5-axis router at Pier 9 for this job. My plan is to setup a Lang receiver plate on the DMS which I can load this fixture onto, and half-way through the program I will flip the fixture over to machine the notches on the back side. This is why I have installed the Lang 96mm Quick-Point system on both sides of the fixture.
Step 2: Fixture Design in Fusion 360
My design for the fixture itself was limited by a few factors:
1.) I needed about 1.5" overall thickness in order to accommodate the threads for clamping studs installed opposite each other.
2.) The wood strips that I will load into this fixture will be 3" x 0.5" x 0.125"
3.) The inside 7" diameter cannot be used for tooling pockets, so in order to get 3.5" of usable "meat" on the fixture, I needed about 14" overall diameter.
4.) Because the wood strips are only 0.5" tall, I did not need the full 1.5" thickness of the fixture plate extended all of the way out to the "meaty" part of it. I decided that 1" thick would do nicely.
I found a piece of scrap 6061 aluminum in the materials cage at Pier 9 which just happened to be 14.5" diameter and 1.5" thick, which was PERFECT for my needs! Full speed ahead! I will assume that you, my reader, have some familiarity with modeling in Fusion 360, so I won't belabor the nitty gritty details. Please take a look at these images to get a sense for how I setup my model.
Although my model eventually grew in complexity past the point shown in these images, I saved a copy of it called "wood strip fixture OP-1 part" and used that separate file to setup my CAM for this part of the project.
Step 3: OP-1 Setup in Fusion 360 and on the Haas VF2 Milling Machine
When configuring the OP-1 setup in Fusion 360, I specified that the stock was a fixed-size cylinder 14.5" diameter and 1.525" thick. These numbers came from actual measurements. I configured the WCS to be at the top-center of the STOCK rather than the MODEL.
The various toolpaths for OP-1 are shown in images #3 and #4. Essentially the plan for OP-1 is to:
1.) remove 0.012" from the center of the material with a face mill
2.) spot-drill and then drill the four holes
3.) bore and counterbore the holes
4.) chamfer the counterbores
5.) skim the bores and counterbores using cutter-comp to creep in on desired tolerance
6.) tap the holes
7.) install clamping studs
Because the drilling operation will go all of the way through the part, and because I have noticed that Haas VF2 machines tend to run out of negative Z-axis travel when doing plate-work all of the way down on the bare machine table, I've setup my stock on four 1-2-3 blocks, and secured them using a clamping kit.
Machining a 14.5" diameter disc on the VF-2 gets close to maxing out the Y-axis travel range, so I took some extra care to get it centered fairly well along the Y-axis. From there I used the probe to set G54 at the top-center of the stock.
Step 4: Face Mill
Before getting into the specifics about this face milling toolpath, here's a quick overview of the "standardized" way that I'm displaying images and screen-shots in this and many subsequent steps:
1.) a picture of how my part looks after completing this step
2.) the toolpath in 3D perspective view
3.) the toolpath height-study from a side view
4.) the TOOL tab
5.) the GEOMETRY tab, along with the relevant selections show on the model in the background
6.) the HEIGHTS tab
7.) the PASSES tab
8.) the LINKING tab
Once again, I will assume that you, my reader, have some experience with setting up CAM toolpaths in Fusion 360, so I will not delve into the nitty gritty other than to mention the noteworthy details and then leave it up to you in order to study the images to see how I've configured each toolpath.
Regarding this particular face milling toolpath: because the clamps get in the way of facing down the whole part, and because only the central section needs to clean up anyhow, I've setup this toolpath as a 2D pocket rather than a facing operation because it seems to do a better job of constraining the toolpath in the way that I want.
The central boss of my model is 6.5" diameter, however the Lang reciever plate that I will mount this part onto for OP-2 is 7" diameter, so I need to make sure that I clear away at least 7" from the center of this part. I've setup 0.5" of negative stock-to-leave in order to get a 7.5" diameter clean-up zone.
Step 5: Spot Drill
Using a 1/2" 90-degree chamfer-mill for spot drilling is fine, but I prefer to lower the spindle speed and feedrate down to something more reasonable for drilling (as opposed to chamfering)
I explicitly set the depth to a chamfer-diamter of 0.375" which is enough to give the drill a clean lead-in, but will eventually get wiped out by the counterbore.
Step 6: Drill
The holes that I drilled are 0.344" diameter. This is smaller than the pilot holes for M10 threads because I'm planning to use an endmill to bore them to size -- this drilling operation is just to rough out the material.
Step 7: Counterbore
Using a long 1/4" endmill, I roughed out the counterbores, leaving 0.001" extra stock so that I have some material to whittle away at when creeping into tolerance using cutter-comp.
Step 8: Bore
Using the same tool, I bored away the pilot holes for the M10 threads. Once again, I left 0.001" extra stock.
Step 9: Chamfer
Using the same 1/2" 90-deg chamfer-mill (but this time at full speed!) I put a 0.03" chamfer on each of the counterbores.
Step 10: Skim Bores With Cutter-Comp
In order to creep in on the proper tolerance for the bores and counterbores, I used "wear" style cutter-comp on the PASSES tab, and set my initial tool diamter in the Haas control at 0.001"
Through trial-and-error, I eventually worked my way down to -0.0008" (that's a negative number) before my bores and counterbores came into tolerance. You can see the relevant settings page on the Haas control in the last image on this step.
The reason why it is important to get the diameter tolerance so accurate for these bores is because the M10 form tap requires very accurate pilot hole size; a small difference in pilot hole diameter can mean the difference between loose fitting threads and a broken tap.
Step 11: Skim Counterbores With Cutter-Comp
Just like the previous step, I used "wear" style cutter comp on the PASSES tab in order to creep in on the proper diameter tolerance for the counterbores.
The reason why it is important to get this diameter tolerance so accurate is because the Lang clamping studs require a slight interference fit for proper registration. The window of opportunity in order to achieve this fit is very narrow, so it pays to be patient with the trial-and-error process of slowly adjusting the cutter-comp buy just a few 0.0001" at a time.
Step 12: Inspect Bore and Counterbore Diameters
Using a set of gage pins, ensure that the bores are 0.368" for a theoretical 65% thread engagement. Likewise, ensure that the counterbores are 0.630" for a slight interference fit with the Lang clamping studs.
Step 13: Tap Holes
Because this two-sided fixture has M10 threads running 1.25" deep, I setup the tapping toolpath to use the chipbreaking feature (peck tapping) in order to minimize the chances of a broken tap.
Step 14: Install Lang Hardware
Once the machine tapping is done, I like to put another M10 tap into a handheld tap-wrench and "chase the thread" all of the way down to the bottom of the hole, or until the tap cannot go any deeper.
Once this was done, I assembled four clamping studs with M10 threaded rods, and hand-tightened them into the holes on the fixture plate that I just machined. Further tightening with an 8mm allen-driver sinks them home. Take note of the 5th picture in this step, showing what a clamping stud and the counterbore in my fixture look like when there is a proper interference fit between them -- notice the aluminum which has rubbed onto the clamping stud, and also notice how the counterbore itself is getting slightly worn down by the installation of the clamping stud. This is proper.
Step 15: Mount Lang Receiver Plate
Now that the clamping studs are installed onto one side of the fixture plate, remove it from the machine table and install a Lang receiver plate. Using the Lang gauging pallet and a test indicator, ensure that the receiver plate is clocked parallel to the X-axis travel of the machine before tightening it down to the table.
From there, use either the indicator or probe to sweep in G54 X/Y zero on the central bore of the gauging pallet.
Finally, use the probe to set G54 Z zero at the top of the receiver plate.
Step 16: OP-2 Setup in Fusion 360 and on the Haas VF2 Milling Machine
When configuring the OP-2 setup in Fusion 360, I duplicated the OP-1 setup and then configured the WCS to be at the bottom-center of the MODEL rather than the STOCK. It is very important to make this change because it must match the new G54 which is located at the top of the Lang receiver plate.
Step 17: Reusing Toolpaths From OP-1 Setup
Because I duplicated the OP-1 setup to create OP-2, all of the toolpaths in OP-1 were duplicated as well. Some of these toolpaths would be problematic to run again (drilling, tapping, boring) because there are now lang clamping studs installed on the bottom of the part. As such, I removed those unnecessary operations from my OP-2 setup. The only ones which remain are the face-milling, counterboring, and chamfering, as can be seen in the first image on this step.
After running these four toolpaths on the 2nd side of the fixture, I installed another set of four Lang clamping studs.
From this point, the plan for OP-2 is to:
1.) rough away extra material around the lower profile of the fixture
2.) finish the lower profile
3.) rough the stepdown with the face-mill
4.) put small 0.025" chamfer on the outside rim
5.) put a big 0.25" chamfer on the inside rim
6.) skim the stepdown with the face-mill
The various toolpaths for these steps are shown in images #3 and #4.
Step 18: Rough Profile
I used a 5/8" diameter endmill to rough away the extra material around the outside of the part using a 2D adaptive toolpath. Notice that my stepover is small (0.075") but my feedrate is high (180 IPM) -- this is classic "High Speed Machining" in action, and the Haas VF2 takes it like a champ!
Step 19: Finish Profile
Using the same 5/8" endmill, I finished the outside profile with a 2D contour toolpath.
Step 20: Rough Stepdown
Using the face mill, I removed the bulk of the material with a 2D Adaptive toolpath. In hindsight, I should have used a 3D adaptive toolpath instead so that the inside chamfer got roughed out too... but anyhow this worked fine for my purposes.
Step 21: Chamfer Outside Rim
Using the 1/2" 90-deg chamfer-mill, I put a 0.025" bevel on the outside edge of the part.
Step 22: Chamfer Inside Rim
Using the same 1/2" 90-deg chamfer-mill, I put a 0.25" bevel on the inside rim of the part. Because this is a fairly large edge-break, I wanted to do this in 5 steps @ 0.05" each... however I was having a hard time getting Fusion 360 to do this for me (using the "multiple passes" feature) and so instead I came up with a simple work-around whereby I made 5 copies of the toolpath, and set different amount of stock-to-leave for each one.
Step 23: Skim Stepdown
After running the inside chamfering toolpaths, I noticed that my lead-ins and lead-outs were leaving witness marks on the otherwise nice and shiny stepdown surface... so I removed an additional 0.005" with the face-mill in order to have a perfect looking end product.
Step 24: OP-3 Setup in Fusion 360
For the final step of this process, I duplicated my OP-2 setup, removing all of the toolpaths relating to the Lang clamping studs and profile cutting. I also inserted four clamping studs into my CAD model, and specified these bodies as "fixture" in the job setup. It seems that currently Fusion 360 does not detect fixture collisions during simulation, however I anticipate that soon this feature will exist, which is why I've added this step to my job setup.
From there, I flipped the fixture over, locked it onto the Lang receiver plate, and ran the face-milling and chamfering toolpaths to create a stepdown on the other side of the fixture.
Step 25: Fixture Blank Is Complete; Ready for 5-axis Machining on Matsuura MX-330
Here you can see the completed fixture blank -- so shiny and sweet...
Of course this is not the end of my journey with this project; however it does seem like a good stopping point for this instructable. Any of you who are following along have probably modified the design to suit the parts that you want to make (rather than the wooden strips that I will make with this fixture) so the steps that I've taken to after this point are probably not so relevant for you.
The final picture shows this fixture plate with tooling pockets installed, and loaded onto the Matsuura MX-330 at Pier 9, ready for some 5-axis machining action! As you can see, the overall size of this fixture pretty much maxes out the work envelope on the MX-330 but lucky for me, I was able to reach all of my tooling pockets within the X/Y travel limits.
Thanks for reading along, and I wish you the best of luck in solving your own workholding puzzles!