I feel like I should lead with the result: In the community spirit, here are some technical details and lessons learned:
- This was done on a Shapeoko 2 (with a bunch of upgrades and modifications — it's the stock size, though) driven by a TinyG. The most important ones are probably a slotted aluminum bed, NEMA 23 (140 oz-in) belt drive Z axis with Acme screw, NEMA 23 (262 oz-in) motors on X and dual Y, a Makita RT0701 spindle, and a hacked-together Noga mist coolant system.
- Just in case anyone is thinking about it... I would not attempt this as a first project. Or a twentieth. I have my Shapeoko pretty well dialed in and am comfortable running fairly complicated projects in less challenging materials (like aluminum). Please be careful.
- CAD in SolidWorks, CAM in HSMXpress, control via Chilipeppr.
- The stainles steel was 303. Stainless comes in about a thousand grades, almost all of which are going to be incredibly hard for our little Shapeokos to cut. 303 is one of the most machineable and I do not think it was particularly easy to do this project. The cubes were about an inch and a quarter on a side.
- Some notes on feeds, speeds, and tooling:
- Roughing pass with a 1/8" 4-flute AlTiN square-end roughing end mill. I think the "roughing" bit is important here because some of the toolpath is essentially interpolated drilling: you really want to break up chips effectively since they're very hard to clear. Feed was 500mm/min at a depth of 0.5mm, speed set to ~11000 rpm. I left 0.5mm for finishing. I experimented with this a bit (more on this later).
- Finishing pass with a 1/8" 4-flute AlTiN square-end high-helix end mill. Feed was 300mm/min at the same depth, lead-in and lead-out at 150mm/min, same spindle speed.
- Chamfering pass with a 1/8" 45-degree AlTiN chamfer mill. Cutting parameters were the same as the finishing pass.
- I broke three end mills on this project. One of them was a rougher because my poor TinyG lost its mind and did something stupid. The other two were 5-flute finishing end mills. Here is the important lesson: interrupted cuts are really really bad. An "interrupted cut" is where the cutting tool goes from an area of cutting load to an area of no load and then back again. I had the finishing tool path to be a contour to take the sides down, then a pocket at full depth to clear out the bottom. This meant that the pocket was very hard on the end mill (lots of interrupted cutting). After the second end mill got destroyed I re-designed the toolpath to eliminate the contour and take three finishing passes in the pocket instead. Yes, this means that each finishing pass was taking off 0.5mm from the bottom and an additional ~0.15mm deep and 3.9mm high from the side... nice big chips! but the end mill was under constant load and held up great.
- I could actually run the rougher a bit harder: 0.6mm depth of cut and 600mm/min worked out fine too. The problem was, again, interrupted cutting putting a high load on the cutter: I could see it deflect! So I backed off a bit. I also think quite a bit deeper is possible, as long as you aren't slotting.
- The Makita was huge for me compared to the DW660 I had before. The ability to set an approximate spindle RPM and have it be held under load was incredibly valuable for this kind of project. (I see significant benefits in aluminum as well, like running 1/4" roughers effectively....) Just trying to blast through at 30K RPM isn't going to work so well. I set the spindle RPM "about right" and then tuned it by ear. Not very efficient, but hey.
- Coolant makes a mess, but I found it to be necessary (much like in aluminum). Some machinists advocate for running AlTiN cutters dry (just air blast), because the coating needs high heat to work. I tried this. The chips cleared fine, but after about a minute the end mill was starting to glow cherry red, so I turned the coolant on. I would not attempt this sort of project without compressed air for coolant delivery and chip clearance.
- Speaking of compressed air, I have a dental handpiece hooked up to 50psi compressed air. (Same compressor I use for coolant, but with the pressure regulated lower.) This is a godsend for helping clear chips. Recutting destroys things and can mar the surface finish besides.
- Mess containment is a pretty bad problem. I have side shields (you want these for working with metal) and a wet-dry vacuum readily accessible. I have experimented with attaching the vacuum nozzle to the spindle mount, but I haven't had great luck with it, so I just hold the nozzle in a safe location to evacuate coolant and chips. Metal chips go everywhere and get into everything imaginable anyways.
- Work holding is really important. I have a cheap Chinese precision screwless vise. Works fine.
- I have G54 coordinates set to machine zero. Then I set the G55 coordinate space to the work piece zero. In this case, zero is the top center, so I do this:
- Position the tool so it is a few millimeters deeper than the part, off to one side. Clip one of my probing leads to the part and the other to the tool, then send a probing command. Once the circuit closes, movement stops: record the position.
- Repeat this process for the left and right X and the front and back Y limits.
- Average the X and Y limits to find the center in XY, then set work piece zero in G55.
- Back the spindle away from the part and above it, then move to whatever coordinates you will take a zero in Z from. I don't use the top center, because (a) I trust my mill to be flat enough over 1.5" and (b) I'm about to mill that surface away!
- The Gcode to do all this is like this:
Code: Select all
G28.2 X0 Y0 Z0 (find machine zero) G0 X110 Y130 Z-65 (move to the first probing position) G38.2 X130 F50 (probe in increasing X at 50mm/min until the circuit closes) (record position, repeat for other limits) G10 L2 P2 X133.484 Y136.881 (set the G55 X and Y zero) G0 Y170 Z-50 (move the tool out of the way in Y and Z) G55 G0 X-10 Y-10 (move the tool to the Z probing location of the work piece) G54 G38.2 Z-65 F50 (probe in decreasing Z) G10 L2 P2 Z-63.381 (set Z height) G55 G0 X0 Y0 Z2 (change to G55 coordinate space for the job and position the tool)
- Yes I probe very slowly. Yes I probe all four sides instead of just finding the top left front corner. Yes I don't just use calipers to measure the part and add half of the end mill width plus the part width. Yes I re-zero on every face. find I get better results this way (possibly because of slight calibration errors in the Shapeoko; at least this way I'm measuring the same way the mill is).
- For tool changes, you must leave X and Y unchanged, but re-probe in Z. Don't forget to energize the motors before changing tools, so you don't accidentally move anything.
- This is not an unattended process. I think this is about at the limit of what I will ever be able do with my Shapeoko (but you never know...). End mills break, controllers lose their minds, whatever. Use appropriate safety gear (eye and ear protection at a minimum, and I also recommend gloves).