Friday, January 25, 2013

Multi tool turning on a cnc mill

Greg at TX/RX Labs hacker space asked me to make him some prototype Delrin wheels for his tripod 3D printer.

This design has a blind inside shoulder that makes turning in a single operation very difficult.  I have turned this before on a manual lathe using three operations on two fixtures with a total time of about 30 minutes each.  That was ok when he only wanted one, but now he wanted nine for the complete machine.  Time to get out the CNC.

I don't have a CNC lathe so I made do with a CNC mill.  This can be done by putting the work piece in the spindle and pushing it against tools that are clamped to the mill table.  Straight forward in concept, but tricky to execute.  LinuxCNC provides all the tools you just have to know how to string it together.

To get started I needed a way to position the work relative to three different tools.  This could have been handled directly in g-code, but a cleaner way is to use tool offsets.  First the zero point of each tool is chosen.  For example the parting tool has zero at back left corner top surface.  Since the cut off tool is working on the left side of the work the spindle is turning clockwise so the cutter faces the back of the mill.

After choosing the zeros the tool offsets need to be setup which will allow g-code coordinates to be dynamically shifted to match the current tool.  I chose to use the parting tool as my zero point and set G54 offset to zero and also set the tool offsets to zero.  The other two tools will have offsets relative to this one.

Using a edge finder zeros were set for parting tool.  The inside turning tool is touched off on X/Y/Z and each offset saved in the tool table.  LinuxCNC makes this easy by just doing a touch off to Tool and it automatically goes into the tool table.  Then when ever "T2 M6 G43" is run those offset are used causing g-code zero shift to tool two's zero.  Repeat for tool three and time for some g-code.

(face with parting tool)
T1 M6 G43
G0 X-15 Y0
G0 Z0

G1 X-6
G0 X-15
G0 Z2

This will set tool number 1, activate its offset (which were zero in my case) and then proceed to move left to right and face off the bottom of the work.

(--- inside profile)
T2 M6 G43
G0 Z10
G0 X[-9.0/2] Y0

(cut outside race)
G0 X[-15.974/2+0.25] Z1
G1 Z[-4.5]

Switch tool to number two and activate the offsets, now g-code zero is over the inside turning tool and the first G0 moves the work all the way over there to prepare for cutting the inside.

After a bunch more steps we are done.  The best part of using the tool offset is you don't have to change the gcode if the tools move.  During testing I hit the inside turning tool and it moved.  After resetting the tool offsets the same program can be run again.  The accuracy of each tool only depends on your precision setting the offset.

To start the run chucked the delrin rod in an ER32 collet.  Activated tool one.  Moved to X/Y zero.  Touched off the top of the parting tool and set G54 Z offset to zero.  G54 should already be showing zero for X and Y.  Now I have my work referenced to tool one and the other two tools are referenced to that same spot with tool offsets.

Turning down one end to 0.75" to fit my largest ER32 collet.
Drilling out the rough center diameter.
Tooling, parting tool on right, custom inside diameter turning tool on left, and standard 60 degree carbide insert in the middle.

Final turning.

No comments:

Post a Comment