# Thread: Question from a new CNC lathe owner

1. ## Question from a new CNC lathe owner

So we got our Flashcut / Sherline CNC lathe. We're using it to turn wood and have been very happy. Writing G-Code is pretty straight forward so i'm pretty excited about things.

This may seem like the most basic question but i wanted to ask since i don't know anyone w/ CNC experience.

Say i want to turn an item with a finished diameter of 10mm (starting with a 1" square piece of wood). What is the best way to write the g-code to ensure i end up with a precise 10mm piece?

Right now i chucked up a toothpick and i'll slowly cut through that until it breaks off. I then set the lathe X axis to 0. From there i know my finished piece with be 5mm out (giving a 10mm diameter). So basically i'd write the G-Code to start out at 3/4" (to clear the square piece of wood) then cut down to 5mm.

Is this the best way to do it or am i totally out in left field?

2. Finding the center of the work or the 0.00 position, is easier if you have a known sized workpiece centered in the chuck.

Check that the workpiece is centered and measure the diameter.

Next, you want to bring the too tip up to that diameter until it touches, I use a piece of shim stock as a gage. I wiggle the shim stock between the tool tip and the work, while advancing the tool tip until I can feel the shim stock dragging between the two. Now, I know the thickness of my shim stock and I know the diameter of the workpiece. It's just simple math to get me to zero.

I use the same principle on touching tools off it a mill, only I use a 1" gage block and I raise the cutter until the block will slide under the cutter. Never lower the cutter into the block, because if you make a mistake and crank just a bit too far it can break the tip of the cutter off. If you are raising the cutter up, if you make a mistake and go too far, nothing gets broken.

3. Lou, you're not totally out in left field. You are thinking and asking questions and came up with a method that could get you in the ball park.

Jim gave you a suggestion that is MUCH better than what you are doing, but I don't think its the best. He's spot on on the mill stuff, but when it comes to lathe work, its just too quick and easy to take a test cut. I do use his method on the lathe occasionally, but for my finish tools, I like to take a test cut.

Take a skim cut, Z- pull back Z+, measure, 5.43mm, tell your control that that is where your tool is. Done.

4. little bubba,

Thanks for the suggestion. I'm not entirely clear on your instructions. Can you dumb it down a bit for a complete newb?

• Originally Posted by Lou Anderson
little bubba,

Thanks for the suggestion. I'm not entirely clear on your instructions. Can you dumb it down a bit for a complete newb?
Simpler version, not necessarily dumbed down. Now, I'm not familiar with your machine or your control at all, but I'm 99.9% sure you can jog around by hand.

Really simple. Take a cut, a light one, don't move your X axis, measure your diameter, and now you know "exactly" where your cutter is.

• What the others are saying is correct but they didn't dumb it down enough. When I was first learning about finding the centers I was wondering the same thing, I only learned recently too. And now I know but the way they said it would confuse me too...no offense.

What you want to do is get a tool in the lathe then do a facing cut, that means cut the front of the work piece. Then without moving the carriage along the Z axis you Zero the Z DRO in your CNC control program. Now move the tool and take a very light skim cut along the length of the workpicec and Zero out the X DRO on the CNC control Program. Now measure the DIAMETER of the work piece accurately with a mic or digital calipers and enter that into your X offset of your control program.

• If the program allow you to do so, you can just type directly into the dro the nuber you get when measuring yourr test cut. Radius or diameter depending on how your machine is set up.

In Mach3 all you do is highlight the dro you want to change and then type in the number, hit enter and you are done.

Mike

• ## Tooling Ball

HI this is Ashish B from India.

I would like to refer to the Blog of Tooling Ball. Please follow the link - http://www.cnczone.com/forums/archiv...p/t-15593.html

I was in a big doubt regarding the use of trignometery to approach datumn.

My email id is - ashish.bhosale@yahoo.co.in

Ashish Bhosale
Pune, India

• I've done lathe work for a year now, right after completing my 2 year degree. One of the lathes I run is an older gildemeister ctx lathe without a probe. For tool touchoffs on parts with stock on them I simply spin the chuck by hand while jogging the tool down until it skims. With the diameter already measured, I feed that diameter into the control, raise my wear offset .010, and cut away. My rougher and finishing o/d tools do not change locations and rarely come out of the machine. When I change to a new setup I simply raise the wear and go.

I do however like the test cut pass. Kind of like setting Z zero with a face by your finishing tool. That will be a nice addition to my arsenal of ways to accomplish accurate parts.

• I don't think most of the techniques described above will work for more than a single tool program. You really need to understand machine coordinate systems, or you'll be lost doing anything except incremental programs with a single tool.

Suppose when the controller is powered up, it knows nothing, so the axis are sitting in unknown positions. Often they will be zeroed out, just because that makes a better starting point than a random number. But where is the tool?

To know where the tool is, you need a mental reference point on the lathe. X0 is the spindle centerline, and Z0 might be the chuck face. This point would properly be called G53 X0Z0. G53 is shorthand for "machine coordinate system". This coordinate system is the basis for all positioning by your controller. All work offsets and tool offsets are tallied against this G53 system.

So this G53X0Z0 is the point that you want to reference to the tool tip of your master tool. For clarity, call T1 your master tool. It would be good if it was a general purpose finishing tool, the one least likely to be changed from the turret, if you have one.

Now most likely, when you power up the cnc, the tooltip is not sitting at the point I described above. Why? Because the chuck jaws would tear the tool off the toolpost!

However, most lathes have a couple of homing switches, to which the carriage and cross slide are returned to in the homing routine. The motor encoders take care of the extremely precise final stage of the homing routine. This parks the tool at a fixed, repeatable position. So this tool position can be measured as a distance from your machines G53 X0Z0 point. However, it does not make any useful sense to call the toolhome position G53X0Z0, instead, toolhome is called G28. It's position is described in parameters in your controller, in terms of the toolhome distance from G53X0Z0.

You need to parameterize the G53 position as well, so that at the precise end of the homing routine, the displays magically transform to show you the true X and Z position of the mastertool tip from the spindle centerline and chuck face. You'll have to read the manual on how to do this parameterization. It is well worth the trouble it takes to get this right.

Suppose your lathe has a 10" swing and 20" of useful carriage travel. Confirm this with a tape measure to start with. When homed, the X and Z display should show perhaps X8.0000 Z18.0000. You can also determine the exact values by jogging from the toolhome position to the chuck face/spindle centerline. The spindle centerline can be inferred from a diameter measurement as other users have alluded to above. Its guaranteed to be at the center of the diameter you just sample turned

Now, you put a 2" diameter piece in the lathe, and the end face lies 4" in front of the chuck face. How to you get this information into your program? Lathes used to make extensive use of G92, but most modern ones will now permit using a work offset, such as G54, so let's stick with the latter.

Basics: you never need to offset the workpiece in X because the centerline of the lathe is unchangeable. So you only need to somehow define the new Z face of the part so that you will not crash into it.

G53Z0 is at the chuck face (in my example). We do not want to alter the G53 coordinate system, and fortunately, we do not have to. We can superimpose a temporary offset onto the G53 system. G54 is the name of the first work offset coordinate system. Somewhere in your controller work parameters, you need to enter Z4.0 in the G54 offset register. You don't program this within the body of your nc code, it is a seperate user input.

In your nc program, you can remind the controller that you want to use the offset by inserting G54 into your program. When it reads this command, it does not move anywhere, it just makes a mathematical computation adjusting your programmed moves by adding 4.0 to every Z movement as if your program was executed at G53 Z0. This compensated shift is carried on entirely in the background, you don't need to worry about it.

Once this has been carried out and verified working on your machine(oh so carefully with slow jog, and slow rapid, and nothing in the chuck to begin with), you can then write your program in absolute mode, which is called G90. Just place a G90 at the start of your program and it reckons all moves to be absolute moves from henceforth, until such time as it reads a G91, which is the command to switch to incremental movements.

Call the tool number in your program before making any movements. Check your tool offset register. If T1 is the master tool, and you have set the machine as described above, then you do not need any length or diameter offsets for T1. However, it would be acceptable to tweak the X offset of T1, in case it is off a bit. However, it is not acceptable to tweak the Z offset of T1, because you are about to relate a whole wack of other tools to T1, when that time comes.

Instead, if the Z0 face of the part is not quite right, let's say it did not quite clean up on the first facing pass, what you do is reset the control to abort execution of your program. Go back into the G54 offset register and tweak the Z value, say down to Z3.9500.

Now rerun the program from the beginning again, and this time the tool should face an additional .0500" off the face of the part.

If you then get into using a second tool sometime, now you can adjust the position of T2 relative to T1 by means of your tool length offset register. If T2 is a roughing tool, and it has a different configuration that puts the tool tip about .2" right of the T1 tooltip, then the T2 Z length offset register needs to have .2 entered into it.

T2 needs to be called in your program before machine motion is made involving tool 2. This tool call invokes the control to apply the tool length offsets to the tool. If this tool also cuts the diameter differently than T1 does, you can apply the difference in the X offset register for T2. So now you can send either T1 or T2 directly to the part in logical fashion:
G90
G54
T1 (or T2)
G00 X1.0 Z0.1
G01 X.xxxx Z.xxxx F.ff
etc, where etc consists of the absolute positions of each endpoint on the part, as calculated from the centerline, X0, and right face, Z0.
...
G91 G28 X0Z0 could be used after the final retraction from the part, to return the tool to toolhome.

Note: you can easily crash your lathe if something is not set correctly, so be methodical about testing all motions in slow rapid mode, hands clear, safety glasses on, etc.

• Hi Lou,

The guys have all given good advice that should help you get cutting but I would also suggest invest in a good reference book such as CNC Programming Handbook by Peter Smid. I run a range of machines and still find this book very useful. It takes you from basic theory through to complex programming. Good luck with the turning.