Thread: Where is home on a milling machine?

1. I have a Warco WM16 milling machine that I'm converting to CNC. The machine is now protected with "end of travel" limit switches - these are N.C. contacts in series with the E-Stops, so provide safety by dropping out a contactor which controls the mains supplies.

I'm now looking at fitting of homing switches but am not sure where "home" will be as it's not really a constant. I also need to setup the software to account for the machine limits. For instance, for 180mm of travel, do we set the software limits to 0 to 180, -90 to +90, or some other value? Obviously this also affects how the homing switches will work. I'm guessing that the X and Y axis will probably home to the centre of travel and the Z to the top of its travel?

So my question is: what is the "conventional" setup for milling machine home positions and switches?

2. Conventional homing for machine coordinates will generally be at one of the corners of the travel. A lot will depend on how you prefer to work or possibly other considerations. Yes, Z (again machine coordinates G53) will be 0 at the top of travel with all work done in the -Z realm.
OK, now for some specifics on MY mill, X home is with the spindle all the way to the left end of the table. Thus X = 0 (again, Machine coordinates). I "Home" my Y axis all the way to the front of the machine and as my travel is maxed at 7", I set Y = 7 at this point. This effectively makes my X0Y0 at the lower left of the table. The reason is IF I have the big 6" vice on the table, it overhangs the back of the table and can run into the column if I am not careful and of course cannot home the machine with it on there.
Homing to the center of the travel can be tricky as the machine doesn't really know where it is at the start of the sequence and in all controllers that I am aware of, you have to give it a direction in which to start hunting the home switch. So if your on the wrong side, it will never find the switch!

Also as you have alluded to, the workpiece home can be anywhere and is not related to machine home unless you have predefined fixture(s) setup with offsets to home.

3. I was thinking about "one corner" homing so that it will pretty much emulates a CAD drawing with the 0,0 point being the "bottom left" corner...it kind of makes sense??

Also, how should the software be setup regarding homing? For example, if I click the home button (in linuxcnc), it searches for the homing switch for that axis. But what if I want to manually home a cutter to the workpiece? I'm assuming I can override this in the software, but more importantly, the machine limits will now be wrong as it will have homed to an "unusual" position, thus moving the normal limits into crashing territory.

The more I think about it, the more I realise that it's not possible to define travel limits in software because the home position is not a constant. How is this normally overcome? Do users just put in some high numbers for the min/max travel and rely on the operator to ensure the workpiece is within limits? Or is there some other way that I'm missing? I've never operated a CNC machine, so this is all a bit new to me...

4. Originally Posted by birchy
The more I think about it, the more I realise that it's not possible to define travel limits in software because the home position is not a constant. How is this normally overcome?
It's overcome by using two co-ordinate systems. One is referenced to the machine, and used for things like travel limits and the other is offset from this, generally relative to a convenient point on the work piece.

5. Originally Posted by Jonathan
It's overcome by using two co-ordinate systems. One is referenced to the machine, and used for things like travel limits and the other is offset from this, generally relative to a convenient point on the work piece.
OK....so how would I home the tool to a work piece?

Also, can someone please clarify the directions of drives in relation to axis movement? I had assumed that on the X-axis, the table would travel from right to left when in +dir, the Y-axis would travel from the front (nearest handle) to the back (nearest column) when in +dir and the Z-axis would be travelling vertically down in +dir. Is that correct, incorrect, or does it simply depend on whatever we want our machines to do? Are there conventions, or do we just build whatever seem right?

6. "OK....so how would I home the tool to a work piece?"
Again, I will tell how I do it as there are several methods running around. First, I home the machine (machine coordinates G53) and then using a probe, I find the home position of the work piece X0 Y0 Z0 and this is generally in workspace offset G54. All machining is done in G54 offsets but the machine will automatically think in machine coordinates especially as far as limits etc.

"Also, can someone please clarify the directions of drives in relation to axis movement? I had assumed that on the X-axis, the table would travel from right to left when in +dir, the Y-axis would travel from the front (nearest handle) to the back (nearest column) when in +dir and the Z-axis would be travelling vertically down in +dir. Is that correct, incorrect, or does it simply depend on whatever we want our machines to do? Are there conventions, or do we just build whatever seem right?"

First off, "convention" is to think the spindle is moving and not the table! I know sounds confusing to begin with, but shortly becomes second nature. Convention can be what you want, but "most" think of the spindle being over the lower left corner of the table as X0Y0. BUT the main thing is to set a standard for yourself and stick to it. I personally like this convention as I am most always now working in positive values for X and Y. As for Z, convention is the top of the travel is Z0 and your always working in negative directions.
This is especially true of the cam programs that I am familiar with.

7. Thanks for the replies. In my mind, we should always be working from 0 to some positive value as that follows the convention of most cad drawings. Using "what you see is what you get" seems the most logical way to me. The only confusion is the Z axis as (in my mind) we would set Z0 as the uppermost surface of the work piece and then anything above the work piece would be negative and a value like Z3 would mean we are cutting 3mm deep.

I'm not yet fully versed in g-code, so I guess all of this will become clearer when I finish the build and start using the machine. I'm at a difficult stage in my first build because I want to "do it right" and not have to add stuff as an afterthought, but at present am not 100% sure what "right" is.

8. The Z axis 0 is quite often at the top of travel that means you will use a minus number to bring it down ie -120 So if you home the Z it will go up away from the table. ..Clive

9. Ok Standing in front of the mill then X- is Left X+ right Y+ is moving away from you Y- towards Z + is upwards Z-. So the Dir & Step you would set relative so the motors turn in this direction.

Now I think your confusion comes from not under standing the difference Between Machine coordinates and Work Coordinates and how the Home switches relate to these coordinates. Also the Spindle position in relation ship to table.?

Forget Limit Switches now has they just define the machines limits of travel.

Home switches Define the ZERO point in MACHINE coordinates ONLY. This MACHINE ZERO point is Fixed and can only be Changed if you move the Switches.
Now where MACHINE ZERO's(HOME) located is some what user dependent but Personally I would set it so all moves are in the Positive with the exception of the Z axis which is always Negative. So X0 would move the tool to the Extreme Left and Y0 Closest to you, Z0 would be at the top.
Looking from a Top down view this would put the tool in the upper Left corner.
This then Emulates your CAD system to Some degree but forget that for the minute has it Can be confusing with the difference between MACHINE & WORK coordinates.

Now where I think your getting confused is with the Relation ship between MACHINE and WORK coordinates.
WORK coordinates or WORK OFFSET X0 Y0 is anywhere you care to define on the machines table or material, Z0 is often the Top of material. This WORK coordinate is an OFFSET from the MACHINE ZERO and because the MACHINE coordinate is Fixed by the Switches then The Control can always return to the Exact WORK OFFSET by HOMING to the switch then returning to the WORK OFFSET which is stored in memory when you DEFINE the WORK OFFSET X0 Y0 Z0 point on the material.

This is also where it can confuse some folks because While the MACHINE coordinates will always travel in a positive direction IE: Away from L-Corner & Forward, The WORK coordinates can travel in the MINUS direction.???
To help explain think of it like this your cutting 100mm square and In CAD/CAM you defined the X0 Y0 has the Centre of the Square, so you Jog your machine to roughly centre of the Material and Set the WORK Zero Position(Work offset). The material is 110 mm square and the corner is set 50mm from table edges or Machine X & Y ZERO.
Now to cut this Square half the moves will be in the Negative direction BUT if you where to look at the MACHINE coordinates then they will be a POSITIVE number. So position X-50 Y-50 in the WORK coordinate will be X55 Y55 in MACHINE Coordinates the Actual WORK ZERO will be X105 Y105 in MACHINE coordinates.

Now Here's where it can get confudddling for some folks when G-codes like G54 are used which is a WORK OFFSET reference. You can have Multiple WORK OFFSET's each with there Own Zero Position. So imagine you have 2 vices on your machine each with piece of material in it but 2 different jobs so different tool-paths. You have decided the Corner of each Vice will Be WORK Zero.
Now what you can do is define WORK OFFSET's in the Control system, so you'd jog to the corner of each vice and in the Control set the WORK OFFSET for that Vice in WORK OFFSET table. The table consists of Numbers 54 thru to however many WORK OFFSETs the control allows.? Mach3 allows 255.
So you'd set Vice #1=54 #2=55
Now in the G-code file your first part would start with the G-code command G54 this then Sets The WORK OFFSET ZERO to the corner of Vice #1 and cut the part. Then further down and before the Second parts G-code you'd have G55. This then sets WORK OFFSET ZERO to corner of vice #2.

Now in practice most users only ever use G54 OFFSET which is the default OFFSET in most Controls.

Hope this Lot makes sense.!!
Last edited by JAZZCNC; 13-12-2014 at 12:11 AM. Reason: Cock up. . doh and another cockup doh doh.!!

10. The Following 2 Users Say Thank You to JAZZCNC For This Useful Post:

11. Thank you Jazz, that does make sense. The only bit I find arse about face is that you said that X0 would move the TABLE to the extreme left...surely you meant the CUTTER moves to the extreme left, so therefore the table moves to the right? That's assuming that X0, Y0 is in the "bottom left" corner?

Page 1 of 2 12 Last

Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•