Manual Tool change Principals

MSM Mill mode support
nambass
Posts: 19
Joined: Wed Feb 26, 2014 12:25 pm
Location: Windhoek

Manual Tool change Principals

Post by nambass »

Hi everyone
I am having a DIY CNC, very solid, but at the moment still using a Manual Tool Change spindle.
Up to now, I was using Screenset 2010b but was introduced to MSM. I like this much better, but want to first get to know a few principals.

a) Fixed block: I am contemplating, should the fix block be at the height of my table surface or should I have a higher block.
b) Should I always use the bottom line of my spindle's collet as default reference for zero and then from there touch off . Will this not cause a problem that when I insert a long bit that the machine will not know the length of the bit and in the process of zero the z-axis, slam the bit into the fixed block?
c) Will it be possible to define the height of my table surface. that way the machine always will know where the top of my table it, and when I zero on my material, the machine also knows the thickness.
User avatar
DaveCVI
Site Admin
Posts: 798
Joined: Mon Feb 04, 2013 3:15 pm
Contact:

Re: Manual Tool change Principals

Post by DaveCVI »

Hi,

Welcome to MSM.
I’ll try to get you started with the concept that you’ll need…. From the questions you asked, I suspect the hardest part will be “unlearning” the things that come from the 2010 screen set.

First I’ll point out that while the physical machine will be the same when running 2010 or MSM< the concepts are very different. MSM treats the machine like a real CNC machine, including using the concepts of Tool Length Offset (TLO). In contrast (at least the last time I looked) the 2010 screen set did not understand tool length offsets at all. In fact, if all you’ve ever run is a mach control using 2010, this all may be new to you (although it is common industry practice).

FYI, I am going to be referring to sections of the MSM user manual – that way I can reference sections that have more explanation than I can put in this post, and also so that you can use the figure in the manual to understand the concepts. The user manual is available from the MSM web site in the download area.

There are two coordinate systems on any CNC machine: the machine coordinate system and the Work coordinate system. Fro an overview of these please see section 4 of the MSM user manual.

The location of the Machine coordinate system is set in physical space by the home switches of the machine. When you reference a machine (mach button “ref axis” or “ref all”) you tell mach to go find the home switches. When it find them is sets the zero point for that machine axis to the location of the home switch. Thus, the machine coordinate origin (x,y,x = 0,0,0) is determined by the home switches. This lets the machine know where the physical limits of travel are etc.

Most CNC programs (gcode) do no use the machine coordinates, they use what is call a Work coordinate system. There are actually multiple of these available to the gcode programmer, but 99% of simple program use only 1 – and it has a name: “G54”.

The WC system (usually G54) origin is located at a fixed distance in x,y,z from the machine coord origin. This “spacing” is what the work coordinate offset DROs define.

The common industry practice is to set the WC origin (zero point) to a corner of the piece of stock that is about to be machined. You are probably used to doing this in the 2010 screen set when you set the X and Y offsets.

Where thing differ is in handling an offset for Z.

2010 uses what is called “reset Z 0 for each tool”. Each time a tool is changed, the actual Z zero level of the WC is shifted to a different spot in space. This Z level is arranged so that the length of each tool cause the tip of the tool to be at the “same” physical z height. But the actual level of WC Z changes with each tool. For a trained machinist that is a royal PITA.

The fundamental problem is that Z0 is really an attribute of the part being machined, not an attribute of the tool in use at any given moment.

I suspect that you have been used to resetting the Z level on each tool change because you asked about a “fixed block” – which tells me you are thinking about the tip of the tool being set to the top of the fixed block.

Tilt our head to one side and get that idea to fall out of one ear…

In any real machine control the practice is to set WC Z0 to a surface on the part – and that surface does not change when a tool is changed. I mean, obviously, the physical act of changing a tool does not move the ½ machined part in space – right?

So how does a gcode program handle the fact that different tool are different lengths?
The answer is TLO (Tool Length Offset). TLO is a value that is set for every tool (it is stored in the tool table) . The TLO value is used by the control and added in to any Z movement the machine is asked to make. This compensates the position of each tool so that with the TLO applied (G43 active in gcode speak), all the tool tips are at a common level in Z.

This is a fundamental difference between MSM and 2010. MSM uses industry standard practice for TLO values and 2010 never uses a TLO value and is always shifting WC Z0 whenever a tool is changed.

In case you want an independent reference to thes topics, I recommend Peter Smid’s book: CNC programming Handbook, 3rd edition. Chapter 19 of that book says:

“Tool length offset (compensation) can be defined:
Tool length offset is a procedure that corrects the difference between programmed tool length and it’s actual length.

The most significant benefit of tool length offset in CNC programming is that it enables the programmer to design a complete program, using as many tools as necessary, without actually knowing the actual length of any tool.”

Now then, I would clarify that last phrase to be “…without actually knowing the actual length of any tool at the time the program is written.

So the usual practice is for a gcode program to be written without knowledge of tool lengths. Before the program is run on a machine, the operator loads up an measures the tool so that the machine will know the tool lengths (and hence the TLO value) for each tool. When the program turns on TLO compensation (Done by the G43 gcode word) the control uses the actual TLO values to make it all come out correct as the program runs.

There are several different ways to set TLO values – and MSM provides support for several of them. MSM also has features that allow you mount a tool when it’s needed, MSM will then measure the newly mounted tool, figure the TLO value and update the tool table with the newly measure value. Thus this all gets automated – you can let MSM handle the details for you.

Chapter 5 of the MSM manual goes into details of tool handling and TLO values.
Chapter 6 talks about some optional hardware that you can install to enable automatic measurement of tools etc.
Chapter 7 goes in to advanced (in concept) Tool change techniques and auto measurement of tools. Note: that while Master tool mode is an advanced concept, it is also the easiest to use (from the operator’s viewpoint) when running jobs.

So before I get too long winded here, I want to point out that the MSM concept of a fixed block is not what you are describing in your questions. A block does not set a WC Z0 height to be the top of the block (That’s a reset Z0 habit that is irrelevant to using TLO values). Instead in MSM, a gage block is simply a thing that goes between the tool tip and a reference surface when measuring a tool. The real purpose of a gage block is to not need the tool tip to physically touch the surface, but the thickness of the gage block has to be known so that the system knows where the surface really is. I just didn’t want you to confuse the 2010 “block” with the MSM (or mach) gage block concept.

For quick (incomplete) answers to the specific questions:
re a): gage block do not determine table surface. Table surface is a reference plane that is relative to the machine coord zero – and it is set by the home switches.

re b) The bottom of the spindle (not the bottom of a collet in the spindle) is usually the “gage line”. See “gage line; in the MSM manual. TLO values are what make what you are worried about all work.

re c): Yes. Table surface in Z in machine coords is set by the home switches. WC 0 is offset anywhere you like from MC 0.

Dave
Productivity Software for Personal CNC Machinists
http://www.CalypsoVentures.com
nambass
Posts: 19
Joined: Wed Feb 26, 2014 12:25 pm
Location: Windhoek

Re: Manual Tool change Principals

Post by nambass »

HI Dave
Thanks for this solid response. I hope I am not going to frustrate you too much and maybe I am still missing some points - please forgive me then...

Ok I think I understand that I need to get rid of the screenset 2010 ideas. and I kind of understand some of the concepts like TLO.

The spindle uses a normal collet so everytime I insert a bit (even the same bit) it will vary in length. What is great is that MSM will calculate the TLO. Bit now my questions....

How do I define my default offsets for my spindle and also the table top? I have a touch plate. I will be able to define my Tool Change Position and also know the thickness of my touch off plate.

can you explain this process to me. and then after this is all done, I will then be able to load a g-code file. I insert my 1rst bit. I jog to the Tool Change Position and do the TLO run?

Second area - I downloaded the personal edition for now, will all this work with the personal edition?

Andre
User avatar
DaveCVI
Site Admin
Posts: 798
Joined: Mon Feb 04, 2013 3:15 pm
Contact:

Re: Manual Tool change Principals

Post by DaveCVI »

Hi,
nambass wrote:HI Dave
Thanks for this solid response. I hope I am not going to frustrate you too much and maybe I am still missing some points - please forgive me then...
No problem, if you can;t ask question sit gets hard to learn... I'm happy to help out. The caveat is that sometimes I may have to be a bit slow to respond to "educational threads" as I often have to give priority to other things.
nambass wrote:HI Dave
Ok I think I understand that I need to get rid of the screenset 2010 ideas. and I kind of understand some of the concepts like TLO.
I'd say to toss the 2010 screen set along with it's concepts... :D (OK, I admit I'm a tad biased on this topic of 2010 vs MSM). ;)
In all seriousness, have a good read through the MSM manual sections I referenced. They cover the topics in detail. I've been told that I have too much info in the manual as I cover several alternatives for TLO techniques. But I'm biased toward "you can ignore what you don't want, but can't read what is not there".
nambass wrote: The spindle uses a normal collet so everytime I insert a bit (even the same bit) it will vary in length. What is great is that MSM will calculate the TLO.
That is a core reason I wrote MSM. See in the industrial world the only thing that is used are fixed tool holders that always mount a tool at the same length (often a CAt-40 holder). That of course doesn't work very well for machines that have things like R-8 spindles or use collets or for drill bits in chucks.

For those machines, the only reasonable solution is to measure the tool after it is physically mounted - and MSM is real good at that. :)
nambass wrote:Bit now my questions....

How do I define my default offsets for my spindle and also the table top?
Well, you don't - but you don't need to either... I'll try to explain.
I'm assuming that your machine has home switches. If not, you'll probably really want to end up adding home switches.

When you home an axis, Mach sets 0 in work coordinates for that axis "to the location the spindle is at when that home switch is triggered". (this is a slight simplification but will do for this discussion).
Most people put one home switch on each axis. Because the home switches are physically mounted to the machine frame and don't move, this creates a fixed frame of reference for the physical motion of the machine. We call this frame of reference the "machine coordinates".

Where you put the switches determines where the machine coordinates x,y,z = 0,0,0 point is located. The conventional arrangement for industrial machines is that this ends up putting x,y = 0,0 in the back left corner of the machine (as you stand facing the machine) and Z0 at the top of vertical travel. Think of a box that encloses the available travel area of the machine: zero is at the back, left, upper corner. I will assume this configuration as I write things.

Note that you don't have to do it this way, the math will not care, but it's easiest to do things like the rest of the world and there is no real advantage to being different here.

So, homing is the action that establishes the machine coordinate box in space. This is now anchored to the machine frame (thus the name machine coordinates).

The table top is at whatever location it is at in machine coordinates. Now we are going to go moving the spindle around in space.... conceptually we are moving around what is called the "controlled point". Where is that point physically? When a tool is mounted, the point is at the tip of the the tool (think drill tip). Now let's mount in our imagination a drill of zero length, in a holder that has zero length. This "controlled point" is now at the face of the spindle, in the center on the center of rotation of the spindle.

Now then, machine coordinate z0 is at the top of the Z physical travel. So if we lower the spindle until this controlled point is just touching the table, the point will be at the level of the table top. Since we moved DOWN from z0, the coordinate will be a negative value.

For example on my mill, I have about 12" max of Z travel. If I touch the spindle to the table, the controlled point is at -12" in machine coordinates. That is the level of the table top.

When I put a piece of metal in the vise, the top of the piece is at some other Z level in machine coordinates. Lets say it's at Z=-8" when in the vise.

But what's all this talk of machine coordinates....? This is why the world invented work coordinates. The machine coords are fixed to the frame of the machine. But work coords can be put any where we want them. So to make things easy, we typically set WC 0 to the corner of a piece of stock that we are about to machine.

So using my example, I have the top of stock at MCz=-8 and that same level is also WCz=0.
We generally write programs so that cuts are negative numbers in Z and positive numbers are above the stock in Z. This is what you are used to thinking of probably (because gcode programs are written in work coordinates).

Now you can see how it's possible to run a program to cut stock w/o knowing the MC info for the machine. The CNC control translates the commanded WC position into a MC position and it all comes fine. You just have to set the WC 0 to the desired place on the stock. You don't have to know where the stock is in machine coords.

The shift in x,y.z (a translation in math terms) is what relates MC to WC. In fact this shift is exactly what the "coordinate offsets" are that you see in DROs.

nambass wrote: I have a touch plate. I will be able to define my Tool Change Position and also know the thickness of my touch off plate.
Yep. MSM lets you define a tool change position. The position is defined in machine coordinates because you want it to be fixed in space relative to the machine frame (You would not want the tool change position (TCP) to be moving around as you moved the WC 0 around). MSM then has a button (tooling page, "Auto TCP") that says: "whenever you do a tool change, go to the tool change position at the start of the tool change".

Now then, MSM can do more.... You can install a touch plate and put it below the TCP. Then we can turn on another tooling page button: "TC Auto TLO". This button says: "during the tool change. probe the tool down to the touch plate to measure the tool, calculate the TLO value and put it in the tool table for that tool".
When you install the TCP TP (Tool Change Position Touch Plate), you set the plate location, thickness etc.)

MS then supports several different ways to calculate the TLO value. I suggest using Master tool mode - it's easiest and most convenient for daily use. The choices and what they each do are in the manual.
nambass wrote:can you explain this process to me. and then after this is all done, I will then be able to load a g-code file. I insert my 1rst bit. I jog to the Tool Change Position and do the TLO run?
Yep, except no need to hand jog - MSM will position the spindle for you.
The sequence ends up being:
1) Running codes sees an M6
2) MSM M6 handling stuff gets called and (depending on option buttons) MSM moves the spindle to TCP.
3) MSM says "hey human, inset tool #X"
4) human clicks cycle start to say "tool is mounted".
5) MSM measures the tool and updates the tool table
6) program continues after M6 line
That is the end of the tool change sequence. Note that there is an important point that I want to call out...

7) Next the program does G43 Hx to turn on TLO compensation (this is NOT automatic as part of the tool change as gcode defines this as a separate step. You only get TLO compensation when the program turns it on).
If you are hand writing gcode, and not using G43 now, you will need to. IT is G43 that tells mach to add the TLO value into the calcs that get done to convert WC to MC.
If you are generating code from a CAm program, you want the tool change output to be
Tx M6
G43 Hx
(on separate lines, mach has a big that screws up if all 4 are on the same line)

nambass wrote: Second area - I downloaded the personal edition for now, will all this work with the personal edition?

Andre
Alas, no, The personal edition does not have probing support (which is what we are really doing to measure the tool).
However, you can Download the Professional edition and install it. It runs for 30 days fully functional with all features enabled. I encourage people to do this, as nothing beats trying it out first hand.
At the end of 30 days, it gets cranky, but if you decide to purchase a license, you just enter the info, it goes off and talks to the license sever for verification and converts to a permanent Professional installation.

BTW- a pro license is good for two controls at any given time, and you can move the license from PC to PC if you upgrade hdw etc. See the CVI web site for more info.

Dave
Productivity Software for Personal CNC Machinists
http://www.CalypsoVentures.com
nambass
Posts: 19
Joined: Wed Feb 26, 2014 12:25 pm
Location: Windhoek

Re: Manual Tool change Principals

Post by nambass »

Hi Dave
Sofar I am kind of with you.
Still a bit unclear but am sure as I go along things will become clearer.

Just a few info:
a) I do have limit switches on my machine an all axes. The Z- axes is zero'ed to the top so it move in minus when I want to cut something. The total distance my Z-axis can travel is about 155mm. I do have the ability that the bottom of my spindle can touch my touch plate. This means I will zero my machine TCP TP to the gage line.

Now some more questions:
I mostly cut wood this means the zero point of my material will not be set with a touch-off procedure. I will however be able to se the top of my stock/material with a touch plate - meaning I will be able to touch off the top of my material.
What is the best procedure I should use to define where in in the machine my stock is located and also where specifically is the top of my stock?

My touch plate is higher than my table surface. by default will that be a problem? But then from time to time I am using a spoil board. that means the touch plate will then be lower as the top of the spoilboard - How do the software cater for this?

I also am curious about the stop and start or start from here process.
nambass
Posts: 19
Joined: Wed Feb 26, 2014 12:25 pm
Location: Windhoek

Re: Manual Tool change Principals

Post by nambass »

Dave, I have another question:
How to I set the stock so that I can cut in the air. Form time to time I want to test g-code. To this I want to cut in the air.

Andre
User avatar
DaveCVI
Site Admin
Posts: 798
Joined: Mon Feb 04, 2013 3:15 pm
Contact:

Re: Manual Tool change Principals

Post by DaveCVI »

Hi,
OK, we are now shifting topics from how to measure a tool and put it's TLO value in the tool table, to how to set the WC Z0 level.
nambass wrote:Hi Dave
Sofar I am kind of with you.
Still a bit unclear but am sure as I go along things will become clearer.

Just a few info:
a) I do have limit switches on my machine an all axes. The Z- axes is zero'ed to the top so it move in minus when I want to cut something. The total distance my Z-axis can travel is about 155mm. I do have the ability that the bottom of my spindle can touch my touch plate. This means I will zero my machine TCP TP to the gage line.
I think you are still in 2010 screen set thinking... you want to set the WC zero to some level. Technically, this is done by setting the Z offset value for the WC. You can type a value into the WC offset DRo for Z and that will move the WCZ level within the machine coordinate space.

However, as a practical matter, that's not how most people run a machine. Instead, you mount a tool, turn on TLO compensation for the tool (so mach knows how long the tool is), then you jog the tool to a surface that you want to use as WCZ0. then you click the "Set X Zero" blue arrow on the MSM WC Offset, touch of page.

Z0 for the WC will now be magicaly set to where the tip of the tool was when the arrow was clicked.
What mach does for you is figure out where the tool tip is, account for the position of the spindle in machine coords, account for the TLO value, and figure out what Z offset value will put WCZ0 where the tool tip is.
Watch when you click the arrrow - you will see the WC Offset DRO (upper panel on the page) change value.

What I have just described is "Setting wC Z0 by touch off". Note that it does not matter what material is being used... wood or plastic or metal.
nambass wrote: Now some more questions:
I mostly cut wood this means the zero point of my material will not be set with a touch-off procedure.
Nope, that;s the point I just made... there are two different concepts in use here:
1) Touch off: position the tool tip to a location and then set WCZ0 to the current location of the tool tip.
2) Probe to find WCZ0. When probing to a surface to set WCZ0, you are really doing a couple of steps in sequence:
a) find the surface (this requires either a probe tool, or a mobile touch plate that you set on the surface), and then
b) set WF Z0 to where the probe event happened (accounting for the thickness of the touch plate if used),
c) back the tool off the found surface.

I'm going thru the details so that you will realize that you do indeed, "touch off"to set WCZ0, even if you are suing wood.
nambass wrote:I will however be able to se the top of my stock/material with a touch plate - meaning I will be able to touch off the top of my material.
What is the best procedure I should use to define where in in the machine my stock is located and also where specifically is the top of my stock?
You don;t really care where the stock is in machine coordinates. You only care that WC Z0 is where you want it to be. Most programs (99+% ?) assume Z0 is the top of stock, that makes cuts negative Z values, and positive Z values are above the stock.

The most common convention for gcode programming (and the default I've always see in CAM programs) is to put Z0 at the top of the stock.

But you can put it anywhere - so long as it matches what the program is assuming. For example, I've seen cases where it was convenient to have Z0 on a fixture surface that was the bottom of the stock.

nambass wrote: My touch plate is higher than my table surface. by default will that be a problem?
No problem. Look at some of the MSM videos on the Calypso Ventures, web site - you will see the TCP TP that I use. It's a piece of PCB mounted on a scrap piece of 80/20 extrusion. You take care of this when setting up the TCP TP (see the user manual).
nambass wrote: But then from time to time I am using a spoil board. that means the touch plate will then be lower as the top of the spoilboard - How do the software cater for this?
It does not matter. The machine knows where you set WC Zo and knows nor cares nothing about a spoil board.
nambass wrote: I also am curious about the stop and start or start from here process.
Do you mean the mach "run from here" facility?
I advise to stay away from that - it's tricky and can mess up. If I have to restart a program part way through, I always restart at a tool change. I do that by editing the program to start at the tool change - that tends to be a nice place where there is a known program state to work from.

Dave
Productivity Software for Personal CNC Machinists
http://www.CalypsoVentures.com
User avatar
DaveCVI
Site Admin
Posts: 798
Joined: Mon Feb 04, 2013 3:15 pm
Contact:

Re: Manual Tool change Principals

Post by DaveCVI »

nambass wrote:Dave, I have another question:
How to I set the stock so that I can cut in the air. Form time to time I want to test g-code. To this I want to cut in the air.

Andre
See the run page, "Z inhibit button". That limits the Z level in Work coordinates.
If WC z0 is set to the top of the stock, the a Z limit of z=+1.0 will keep all movement 1' above the stock.

Alternatively, you can shift the WC Z0 to be 1" above the stock. Then as long as all cuts are < 1" deep you can run the program above the stock.

Dave
Productivity Software for Personal CNC Machinists
http://www.CalypsoVentures.com
nambass
Posts: 19
Joined: Wed Feb 26, 2014 12:25 pm
Location: Windhoek

Re: Manual Tool change Principals

Post by nambass »

Hi
Sorry for my late response, I am quite busy and first had to sort my cnc PC out as it seems to cause some of my problems.

On basic question I have - will you recommend me to use the gauge line to specify my TCP TP? Since my Spindle can touch my touch plate i see no reason why not - but first wanted to confirm this.

The master tool must always be the same length/height. Bu I am using a collet. will it have an effect if I not always tighten the collet the same - as long as my bit is always the same lenth.

Andre
nambass
Posts: 19
Joined: Wed Feb 26, 2014 12:25 pm
Location: Windhoek

Re: Manual Tool change Principals

Post by nambass »

Hi
I have installed the professional version and tried to setup my tpc tp.
I defined the tcp to be x:+7,9345, Y: +101.1963 and Z: -11.1988

The touchplate is close to z - 167.8763

I want to use the gauge line to define the location of the touch plate.
I then click on go to TCP
then I want to click Set TCP TP MCz. but am getting an error MaxZDist <= MinProbeDistance, Op Cancelled
Post Reply