OK. This thread is going to be a bit of work in progress. Mostly me babbling about what I've been doing in software. With my Mill Tool Setter and probe setting up LinuxCNC to deal with variable length tools is pretty easy. But when I started thinking about how to do this on a Lathe it's amazing how complicated it became.
I have a fully manual Southbend Heavy 10L with my ELS on the Z axis. Also the Gingery with X and Z and spindle sensor so I can run either MACH3 or my ELS. The problem with both lathes is they have a compound slide and tool holders that are moveable.
My ELS software took that into consideration because we always cut with the X axis set to 0.000. Want to do a 0.025" depth of cut just move the cross slide in 0.025" and zero the axis again. I use the dials on the lathe the same way so I don't have to keep track of where I was after I've returned to the start position. Now was that 0.032 on the dial or 0.022. Much easier to return to 0.000 and then create a new depth.
Anyway, for CNC it's important to know where the spindle axis is (x = 0.000) so that if you want to turn to a given dimension you program that into the G-code. Lathe software, just like the cross feed dials can run radius or diameter mode.
OK. About CNC. When started up and homed the X is usually moved away from the center line to some point and then the x world coordinate system is set to 0.000. At this point we really don't know where the center line is unless it's programmed into the system as an absolute distance from the home switch. Until you move the compound, insert a different tool or just even tweak the tool holder a bit.
The easiest way to find the lathe center line is to chuck something and turn it to a known diameter. Let's say we turn a piece of rusty 1.25" HRS down to exactly 1.000". As long as nothing is moved we now know where the centerline is. It's 0.5" from the surface of what we just turned.
In the CNC world we set set relative co-ordinates to figure that out. Since we've turned to 1" and we know the tool tip is just 0.5" from the center line the Tool Touch of feature is used to set the tool tip at 0.5" so the DRO display shows that value and a move closer to center line with a 0.025" depth of cut or in CNC terms to bring it to 0.950 diameter.
I had a lot of trouble getting my head around the associated offsets but I think I finally have it. I whipped up a Delphi program to emulate some of the LinuxCNC AXIS screen with faked motion.
Here are the screen shots. After a physical home operation a move of 4" towards the centerline on this fake lathe get's us to a point where the tool cuts exactly a 1" diameter cylinder. (fake lathes are like that... perfect...).
Now since we've measured the work with our micrometer at 1.0000" we know the lathe axis is 0.5000" from the tool tip. This is where we now set our reference identified by G54. The machine coordinates are held in G53. And the DRO display is the POSITION. In G-Code we change coordinate systems by issuing G54 or G55 or G56. In a mill it means the same G-Code can carve out 3 different items where the 0,0 location is offset by the part size but still 0,0.
Since we know we're 0.5" from the center line we need to set the G54 home position with the Touch Off feature.
Notice what happens when the Accept button has been pressed.
Now our DRO POSITION shows that the tool tip is indeed at 0.5" from the center line. The world coordinate position is still -4.0 from the limit switch. And because of the touch off the G54 offset is 4.5"
Now let's make a 0.025" cut or more specifically turn it to 0.95" diameter. So we move to 0.475" from the center line to cut 0.025". My log there shows that as a negative (towards the center line) movement.
That's all for now. Next step is to create a tool table and see if I can change tools and have the POSITION automatically change with different length tips using the Tool Touch Off Button. Hopefully I have the math and the sign of the offsets correct.
I have a fully manual Southbend Heavy 10L with my ELS on the Z axis. Also the Gingery with X and Z and spindle sensor so I can run either MACH3 or my ELS. The problem with both lathes is they have a compound slide and tool holders that are moveable.
My ELS software took that into consideration because we always cut with the X axis set to 0.000. Want to do a 0.025" depth of cut just move the cross slide in 0.025" and zero the axis again. I use the dials on the lathe the same way so I don't have to keep track of where I was after I've returned to the start position. Now was that 0.032 on the dial or 0.022. Much easier to return to 0.000 and then create a new depth.
Anyway, for CNC it's important to know where the spindle axis is (x = 0.000) so that if you want to turn to a given dimension you program that into the G-code. Lathe software, just like the cross feed dials can run radius or diameter mode.
OK. About CNC. When started up and homed the X is usually moved away from the center line to some point and then the x world coordinate system is set to 0.000. At this point we really don't know where the center line is unless it's programmed into the system as an absolute distance from the home switch. Until you move the compound, insert a different tool or just even tweak the tool holder a bit.
The easiest way to find the lathe center line is to chuck something and turn it to a known diameter. Let's say we turn a piece of rusty 1.25" HRS down to exactly 1.000". As long as nothing is moved we now know where the centerline is. It's 0.5" from the surface of what we just turned.
In the CNC world we set set relative co-ordinates to figure that out. Since we've turned to 1" and we know the tool tip is just 0.5" from the center line the Tool Touch of feature is used to set the tool tip at 0.5" so the DRO display shows that value and a move closer to center line with a 0.025" depth of cut or in CNC terms to bring it to 0.950 diameter.
I had a lot of trouble getting my head around the associated offsets but I think I finally have it. I whipped up a Delphi program to emulate some of the LinuxCNC AXIS screen with faked motion.
Here are the screen shots. After a physical home operation a move of 4" towards the centerline on this fake lathe get's us to a point where the tool cuts exactly a 1" diameter cylinder. (fake lathes are like that... perfect...).
Now since we've measured the work with our micrometer at 1.0000" we know the lathe axis is 0.5000" from the tool tip. This is where we now set our reference identified by G54. The machine coordinates are held in G53. And the DRO display is the POSITION. In G-Code we change coordinate systems by issuing G54 or G55 or G56. In a mill it means the same G-Code can carve out 3 different items where the 0,0 location is offset by the part size but still 0,0.
Since we know we're 0.5" from the center line we need to set the G54 home position with the Touch Off feature.
Notice what happens when the Accept button has been pressed.
Now our DRO POSITION shows that the tool tip is indeed at 0.5" from the center line. The world coordinate position is still -4.0 from the limit switch. And because of the touch off the G54 offset is 4.5"
Now let's make a 0.025" cut or more specifically turn it to 0.95" diameter. So we move to 0.475" from the center line to cut 0.025". My log there shows that as a negative (towards the center line) movement.
That's all for now. Next step is to create a tool table and see if I can change tools and have the POSITION automatically change with different length tips using the Tool Touch Off Button. Hopefully I have the math and the sign of the offsets correct.