Chris Radek wrote:

> Even if G43 can take a tool length directly, I couldn't come up with a
> straightforward way for the user to use that in gcode.  Imagining the
> mill case first because it's simpler: maybe you'd store in a gcode
> variable the Z coordinate you get when you probe your reference
> tool.  Then when you probe a new tool you'd take the difference and
> pass that to G43.  But if someone doesn't have tool holders at all,
> I don't know what the reference tool would be, and with no
> reference tool I don't know what you'd use to touch-off the work.
> 
> Tool length offset is just that - a length - and to measure a length
> you need to find the difference between two points.  If you probe a
> tool tip, that's only one.  This is problem 2 - I don't quite see a
> good way for someone to use G43 in this way, after we solve problem
> 1.

Hmm, I have a small hobby-grade CNC machine (a modified Proxxon MF70
from usovo.de) which doesn't have a tool holder. It came with PC/NC, a
DOS program. This program takes the following approach for tool length
corrections:

It basically assumes that the first tool you use is the one you used to
define your coordinate system. (PC/NC allows redefining X/Y/Z origins
per g-code file, though this is a non-gcode manual process, which also
involves options to define the working space, with an error issued when
you g-code exceeds this working space. It also allows defining
independent scaling for the X and Y axes, not sure about Z at the
moment.) All origin, offset and working area settings are done before
the first line of G-Code is executed.

Anyway, the process in PC/NC works like this:
Define working area in X, Y dimensions (machine coordinates), define
origin in X, Y and Z (machine coordinates) for G-Code. This all usually
happens with the first tool you intend to use.
You need to measure the tool length before setting X/Y/Z origins and
that tool length (or rather: The Z coordinate at whicht the tool hit the
measurement switch) is used as a reference.
Whenever PC/NC reaches another "M06 T?", it will _always_ measure the
tool anew, even if it has a known length for that tool number. It then
uses the difference in Z to correct the tool length.

I would hope that EMC at one time also provides a similar functionality.
Especially as manual tool changes are prone to errors with the depth to
which a tool is inserted into the spindle.

However, PC/NC also has problems with tool changes. Imagine the
following G-Code:

M06 T02
G01 X1 Y1 Z0
M06 T03
G01 X1 Y1 Z0

Looks pretty simple, doesn't it? Now, what happens in PC/NC?
0) (store current position)
1) move to tool change position
2) ask for tool to be changed (which you confirm)
3) move to stored position
4) move to maximum Z on measurement X/Y
5) measure tool
6) move to stored position
7) execute G01 X1 Y1 Z0 (and store that position)
8) move to tool change position
9) ask for tool change (which you confirm)
10) move to stored position
    (without correction, since it is not yet measured)
11) move to maximum Z on measurement X/Y
12) measure tool
13) move to stored position (with corrected tool length)
14) execute G01 X1 Y1 Z0 (with corrected tool length)

Now imagine what happens it T03 is longer than T02. Right, it either
breaks or damages the stock when (10) is done.

Regards,
Sven

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to