Hello Guest it is May 10, 2021, 09:18:50 PM

Author Topic: Using multiple drill Z offsets in one drill chuck  (Read 173 times)

0 Members and 1 Guest are viewing this topic.

Using multiple drill Z offsets in one drill chuck
« on: January 29, 2021, 03:23:15 PM »
I cannot afford to buy a tool holder for each drill bit that I use and so was hoping to use one drill chuck with its own T# and multiple drill bits. I would then swap out the drill bit for a different size for each drill canned cycle.

While the diameter of the drill doesn't matter (XOffset) the issue is the ZOffset. I obviously would have different tool length offsets for various drill bits. So, for a simple operation, I would use my reference tool T01 to set Part Z0. Then, after a turning operation, I would call for a drill tool (say, T12 with a center drill) from my tool table. Once I drill the center, I swap out to the required diameter drill mounted in the same chuck. I call T12 in my GCode, but how do I account for the now changed Z offset? I cannot hold stick-out of the drill from the chuck constant as each drill would have different effective lengths.

I searched the forum but couldn't find any suggestions.


Offline Graham Waterworth

  • *
  •  2,322 2,322
  • Yorkshire Dales, England
    • View Profile
Re: Using multiple drill Z offsets in one drill chuck
« Reply #1 on: January 30, 2021, 12:46:22 PM »
If you are on a lathe with Mach3 lathe screen then you call tools with T0101 or T0102 or T0103 where the first 2 numbers are the tool number and the second pair are the offset number to use with that tool.

T0101 tool 1 offset 1

T0102 tool 1 offset 2

T0102 tool 1 offset 3

T1012 tool 10 offset 12
Without engineers the world stops
Re: Using multiple drill Z offsets in one drill chuck
« Reply #2 on: January 31, 2021, 08:25:20 AM »
Also works in 4 ;)
Fixing problems one post at a time ;)

Re: Using multiple drill Z offsets in one drill chuck
« Reply #3 on: January 31, 2021, 06:01:57 PM »
Hi Graham and Brian

I'm not sure I explained the problem. I want to use the same toolholder and switch out drills. Since the drill bit stick out from the chuck will vary with the size of the drill I need a way to reset the Z offset for the same holder. Using T101..T104 still requires me to install the new drill bit at some preset stick out stored in the tool table from the drill chuck. I will have to install the next drill bit and ensure the stick out is the same value as previously entered in the tool table.

However, I figured out a way today. I designated, say, T24 as my dedicated drill bit holder. Then, all I needed to do was to touch the tip against PartZ0, place the cursor in the Z col. of Tool 24 in the tool table, and click Measure. The Z offset is now in the table and I can call a drill canned cycle that uses T24. When I want to swap to the next larger drill, then I repeat the process of touching off on Part Z0, clicking Measure, and then calling the canned cycle with T24. Worked fine for me today.

Re: Using multiple drill Z offsets in one drill chuck
« Reply #4 on: January 31, 2021, 07:28:57 PM »
Hi Joe
You could put a collar (or ring) on each of the drills so they go the same distance into the chuck each time - so you only have to set the offset once not each time you change your drill.
Re: Using multiple drill Z offsets in one drill chuck
« Reply #5 on: February 01, 2021, 10:08:33 AM »
A little over the top but works for me.  After putting a collar on each one (I 3d print each one with a #6 set screw) you can then call a macro with the offset as one of the parameters in your gcode.  For my fly rod ferrules I have to spot, drill, flat bottom and then ream each one.  Multiply that by 10 different sizes and the tool table becomes cumbersome.  My tool 60:

Code: [Select]
Macro to set Z or X offset or tool description
example: m6061 z1.3333 d.250

function m6061(hParam)
if (hParam ~= nil) then
--mc.mcCntlSetLastError(inst, 'handle == ' .. tostring(hParam));
local inst = mc.mcGetInstance();
local zVal = mc.mcCntlGetLocalVar(inst, hParam, mc.SV_Z)
local zFlag = mc.mcCntlGetLocalVarFlag(inst, hParam, mc.SV_Z)
local xVal = mc.mcCntlGetLocalVar(inst, hParam, mc.SV_X)
local xFlag = mc.mcCntlGetLocalVarFlag(inst, hParam, mc.SV_X)
local dVal = mc.mcCntlGetLocalVar(inst, hParam, mc.SV_D)
local dFlag = mc.mcCntlGetLocalVarFlag(inst, hParam, mc.SV_D)
if(zFlag == 1)or(xFlag==1)or(dFlag==1) then
if zFlag==1 then
if xFlag==1 then
if dFlag==1 then
    rc=mc.mcToolSetDesc(inst,61,'Bit Diameter: '..tostring(dVal))
else if zFlag==1 then
    mc.mcCntlSetLastError(inst, 'ERROR: Z, X or D value required with M6001');
mc.mcCntlSetLastError(inst, 'ERROR: handle == nil');

if (mc.mcInEditor() == 1) then