I was eager to learn to use the Haas Vertical Mill in the Taubman College Fab Lab. This American made machine is used for milling metal with speed and precision. It's a model VF2 SSYT which has a 24 tool holder and a quick tool change mechanism.
To do this in a comprehensive way I enrolled in two courses at Washtenaw Community College, NCT 101 and NCT 110. These are their first courses in the numeric control series. The courses are taught by Tom Penird. WCC is very lucky to have him.
I've really enjoyed these courses, and I've learned a lot about operating the vertical mill as well as the horizontal mill (lathe). The courses are very hands on and we spent a lot of time operating the machines, measuring tools, measuring fixture locations, and cutting parts. I've particularly enjoyed learning much more detail about G-Code.
The WCC Industrial Technology building is well equipped. They have four Haas vertical mills and three Haas horizontal mills. And quite a few robots - I previously took ROB 101 and ROB 110. But that's another post... Here are some pictures of the machine available:
A Haas MiniMill on the left and another lathe on the right:
We made four of each part, one to turn in and one for each of our group members. After the cut the first part we measure it for accuracy and make any adjustments in the wear registers of the tooling or work offset register of the part. We document this in some paper work to practice logging the machine and tooling setup.
The final project in NCT 101 is to take a logo of our choice downloaded from the web and get it set to cut on the mill.
Most of the class projected the logo over graph paper and measured XY coordinates. These were stored in a text file which gets imported into an Excel spreadsheet which does some scaling and offsetting of the coordinates. Then the extra G-Code is added to build up a program. That's not quite my style so I ran the logo through Adobe Illustrator, auto-traced the edges and generated a vector file I could import into Rhino. I then wrote some Rhino Python code to step along the curves at the specified resolution and write the G-Code automatically. Much easier :)
If you're curious you can download the code here: CurvesToGCode.py. Note that the code output is particular for the Haas vertical mill but could easily be adapted to other machines.
First we tested the code using NCEdit, a program which is part of SurfCAM. It lets you draw motion of the mill on the computer screen so you can see if it's going to cut correctly. Once you get that right you can load a pencil or Sharpie into the mill and draw your logo on paper for a second verification.
With that complete you're finally ready to cut. Here's the mill I used - ready to go.
The logo was cut on a 12" x 12" piece of 1/4" clear cast acrylic.
The tool was actually a center drill. Oddly, its geometry works well for milling acrylic.
The spindle was set at 7500. The feed was 20. The depth of cut was a mere 0.005" per pass. I cut it in three passes.
Here's the result with the protective paper removed and flash photography to illuminate the edges:
During the semester we cut three projects: Snowman salt and pepper shakers, a tabletop magnifying lens, and a clock.
Because the projects are done on several machines they need to be custom fixtured on the second machine. Usually this is a move from the lathe to the mill. For example the snowmen are turned then held in custom fixtures on the mill to create the flats on the hat, and drill the holes in top and bottom. The threads for the end cap are also cut on the mill.
The magnifying glass has turned legs and a milled bezel. We also hand polished the lens.
The tolerance of the parts is manged to make sure they will fit nicely in the final assembly.
Each project is turned in with pre and post data sheets. These describe the tools used, their measurements, and wear values prior to, then after the initial cuts. A journal is also written for each project which details the milling steps required to achieve an accurate part.
Here's an example of a typical journal:
Magnifier Bezel Journal
I've really enjoyed these courses, and I've learned a lot about operating the vertical mill as well as the horizontal mill (lathe). The courses are very hands on and we spent a lot of time operating the machines, measuring tools, measuring fixture locations, and cutting parts. I've particularly enjoyed learning much more detail about G-Code.
The WCC Industrial Technology building is well equipped. They have four Haas vertical mills and three Haas horizontal mills. And quite a few robots - I previously took ROB 101 and ROB 110. But that's another post... Here are some pictures of the machine available:
Two horizontal mills:
A Haas MiniMill on the left and another lathe on the right:
NCT 101
During NCT 101 we cut six aluminum parts, three on the lathe and three at the mill. These are (L-R): Andy's Cube, Stanley Cup, Bongo Bat, Chess Pawn, Turner's Cube, and Red Wing Keytag.We made four of each part, one to turn in and one for each of our group members. After the cut the first part we measure it for accuracy and make any adjustments in the wear registers of the tooling or work offset register of the part. We document this in some paper work to practice logging the machine and tooling setup.
The final project in NCT 101 is to take a logo of our choice downloaded from the web and get it set to cut on the mill.
Most of the class projected the logo over graph paper and measured XY coordinates. These were stored in a text file which gets imported into an Excel spreadsheet which does some scaling and offsetting of the coordinates. Then the extra G-Code is added to build up a program. That's not quite my style so I ran the logo through Adobe Illustrator, auto-traced the edges and generated a vector file I could import into Rhino. I then wrote some Rhino Python code to step along the curves at the specified resolution and write the G-Code automatically. Much easier :)
If you're curious you can download the code here: CurvesToGCode.py. Note that the code output is particular for the Haas vertical mill but could easily be adapted to other machines.
First we tested the code using NCEdit, a program which is part of SurfCAM. It lets you draw motion of the mill on the computer screen so you can see if it's going to cut correctly. Once you get that right you can load a pencil or Sharpie into the mill and draw your logo on paper for a second verification.
With that complete you're finally ready to cut. Here's the mill I used - ready to go.
The logo was cut on a 12" x 12" piece of 1/4" clear cast acrylic.
The tool was actually a center drill. Oddly, its geometry works well for milling acrylic.
The spindle was set at 7500. The feed was 20. The depth of cut was a mere 0.005" per pass. I cut it in three passes.
Here's the result with the protective paper removed and flash photography to illuminate the edges:
NCT 110
The second course in the series is NCT 110. In this one we continued to practice on the machine tools. The expectations for accuracy of parts is increased. And all the projects involve using both the lathes and the vertical mills.During the semester we cut three projects: Snowman salt and pepper shakers, a tabletop magnifying lens, and a clock.
Because the projects are done on several machines they need to be custom fixtured on the second machine. Usually this is a move from the lathe to the mill. For example the snowmen are turned then held in custom fixtures on the mill to create the flats on the hat, and drill the holes in top and bottom. The threads for the end cap are also cut on the mill.
The magnifying glass has turned legs and a milled bezel. We also hand polished the lens.
The tolerance of the parts is manged to make sure they will fit nicely in the final assembly.
The clock was turned and pocketed for the mechanism on the lathe. Then on the mill the clock face was domed and the holes drilled.
The parts are anodized then finish milled by the WCC lab staff - for example the text was milled into the face of the clock and the details were milled into the snowmen.Each project is turned in with pre and post data sheets. These describe the tools used, their measurements, and wear values prior to, then after the initial cuts. A journal is also written for each project which details the milling steps required to achieve an accurate part.
Here's an example of a typical journal:
Magnifier Bezel Journal
Group 5 – Mark M., Josh A., Tony J.
This project involved cutting the bezel for the magnifier from 0.375” thick aluminum plate.
04/09/15
The tools used were:
· (1) 4” diameter carbide face mill
· (2) #2 center drill
· (3) #19 drill (0.166” diameter)
· (4) 82 degree countersink
· (5) ½” diameter stub drill (118 degree tip)
· (6) ½” diameter 4 flute end mill
· (7) ¾” diameter 4 flute end mill
· (8) 3/8” diameter 4 flute end mill
· (9) 45 degree chamfer tool
All tools were measured for length and verified.
The left vice has G54 and G55 set at the back left corner of the stock blank. Z zero is set to 0.5” above the top of the stock.
The part was faced in the left vice, holes were drilled and countersunk. The part is then de-burred and sanded then moved to the right vice which holds a fixture where the part is secured using screws through the drilled holes.
After the part was faced by 0.025” it was measured in thickness. We desired a thickness of 0.35” with a tolerance of 0.01”. Our initial measurement was 0.352” which is within tolerance.
The pocket diameter was desired to be 1.670 +- 0.005”. Our first cut resulted in a diameter of 1.605. This value is quite a bit off and is the result of using a tool which has been re-ground. Thus a relatively large value of 0.045” was put into the diameter compensation. This is because, initially we thought the desired value was 1.65. The portion of the program cutting the pocket was re-run. The new measurement was 1.65” as expected. However we realized that the true desired value was 1.67. We therefore upped the diameter compensation value to -0.068”. The pocketing toolpath was re-run again. The result was 1.674”. This is within the desired tolerance of 0.005.
The chamfer depth measurement was discussed. We looked at the chamfer measurement tool but decided that it was unreliable based on advice from the lab assistant. Based on his suggestion we instead put a screw into the hole and measured the distance from the top of the faced part to the top of the screw. The desired distance was about 0.01” below the top. Our measurements were 0.006”, 0.006” and 0.004” deep. This was below the surface and was deemed adequate. Using calipers we measure the chamfer diameter. The desired value was 0.36” +- 0.01”. Our measured values were 0.37” at 180 degrees, 0.38” at 60 degrees and 0.38” at 300 degrees. These values are all too high, but decreasing the wear value on the countersink tool (#8) would also make our screw holes shallower. These were already a bit shallow so we decided to keep things as they are. The holes all look uniform and the screws will be fully recessed.
We measured the rail widths. The desired values were 0.405” +- 0.010”. Our measure values were 0.405 at 0 degrees, 0.4045” at 120 degrees and 0.4055 at 240 degrees. The values were all within the allowable tolerance of 0.010” without requiring adjustment to the G56 X and Y values.
The chamfer length on the bezel outer edge was a bit challenging to measure. Our measurement was 0.129”. This is within the allowable tolerance of 0.01”.
The remaining parts were cut for a total of four. Not a single part was wasted in getting the correct sizes.
The surface finish to the part was good. The parts where de-burred and sanded. The machine was cleaned and the tools put away.