Hello Guest it is April 16, 2024, 08:35:55 AM

Author Topic: How do you make a manual tool change then re zero the Z?  (Read 14580 times)

0 Members and 1 Guest are viewing this topic.

How do you make a manual tool change then re zero the Z?
« on: July 19, 2016, 01:27:53 PM »
Hello guys I am pretty new to this and I'm working with Fusion 360 and Mach3 on a small Bolton Tools M4 machine. My problem is this machine has a R8 spindle with ER32 collets so every tool change is completely manual and it will need to be re zeroed between tool changes.

How do I go about doing this? Should every tool have its own code? I would like to part zero start job then when it's time to change tools the z goes up to home. Then I can change tool, zero that tool by touching off and hit cycle start again to keep the job going.

I've been searching for this for a while and cant really find anything that helps, am I missing something? I feel like this should be a common question or everyone has a auto tool changer.

Thanks in advance.
« Last Edit: July 19, 2016, 01:42:05 PM by anibal999r »

Offline Davek0974

*
  •  2,606 2,606
    • View Profile
Re: How do you make a manual tool change then re zero the Z?
« Reply #1 on: July 19, 2016, 02:09:44 PM »
Have a look into the excellent 2010 screen-set by GER21 on here - it's damn good and has tool changing down to a fine art.

I am in the same position as I 'm converting a Bridgeport mill and that has R8 too.

Also might want to look at youtube - TTS tooling, looks pretty good and repeatable too.

My thoughts were pretty much the same as yours - change tool, use touch-plate to get Z zero, run part, rinse, repeat...

I use the touch-plate on my mini-mill and its pretty accurate.
Re: How do you make a manual tool change then re zero the Z?
« Reply #2 on: July 19, 2016, 02:18:42 PM »
Have a look into the excellent 2010 screen-set by GER21 on here - it's damn good and has tool changing down to a fine art.

I am in the same position as I 'm converting a Bridgeport mill and that has R8 too.

Also might want to look at youtube - TTS tooling, looks pretty good and repeatable too.

My thoughts were pretty much the same as yours - change tool, use touch-plate to get Z zero, run part, rinse, repeat...

I use the touch-plate on my mini-mill and its pretty accurate.


I'm wanting to touch the top of the part I'm working on, I have no plate yet either. TTS holders and a power draw bar would be awesome but this is all I have to work with right now.

Do you have a link to that thread?

Offline Davek0974

*
  •  2,606 2,606
    • View Profile
Re: How do you make a manual tool change then re zero the Z?
« Reply #3 on: July 19, 2016, 02:28:42 PM »
Here is the screen set...
http://www.thecncwoodworker.com/2010.html

Touching off is ok but  a plate would be more accurate, simple to make/fit if you have a spare input on your control board.
Re: How do you make a manual tool change then re zero the Z?
« Reply #4 on: July 19, 2016, 05:03:28 PM »
Here is the screen set...
http://www.thecncwoodworker.com/2010.html

Touching off is ok but  a plate would be more accurate, simple to make/fit if you have a spare input on your control board.

Wow good stuff! Thanks
Re: How do you make a manual tool change then re zero the Z?
« Reply #5 on: July 19, 2016, 10:23:50 PM »
Bite the bullet and get some TTS tool holders for when you want to do tool changing. My spindle is manual R8 and I use a cheap right angle style 1/4" hex battery powered impact wrench to loosen and tighten the draw bar. I have a couple setscrew end mill holders, a collet holder and range of collets, and a drill chuck. That about does it and I still have the R8 stuff. R8 collet holders and setscrew end mill holders should repeat fairly well, but not as well as TTS.
Re: How do you make a manual tool change then re zero the Z?
« Reply #6 on: July 20, 2016, 03:28:46 AM »
I've just recently gotten into the CNC world myself and one of the first things I did was learn a good bit of VBScripting.  I started with an Auto Tool Zero macro that was provided with the MPG pendant I added in to my system and progressed by studying that as well as some of the good documentation available on the ArtSoft website.  However, I've now built up a nice tool change macro that will move the spindle to a specified location (user definable, more details below), prompt for the new tool and when the new tool has been acknowledged, perform and Auto Tool Zero using the touch "plate" (it's actually a cylinder with a metal surface) or allow you to perform a manual touch-off.  Then when you press "Cycle Start" to continue, the M6End.m1s macro will return to the work location the machine was at prior to the T1 M6 (or T2, T3, etc. - whichever tool is called for) and continue running the part program.

This is all done using the default Mach 3 1024.set screen set configuration.

First, here is the M6Start.m1s macro I've written (you'll have to forgive the formatting, it didn't come across very clean when I pasted it in below):

' Set variables to store some current, selected and user defined values

tool = GetSelectedTool()            'Value for Tool DRO at completion of tool change
CurrentFeedMode = GetOemDRO(819)          'Get current G0/G1 state
CurrentUnitsMM = GetOemLED(802)            'Get Current MM Units state
CurrentAbsCMode = GetOemLED(48)          'Get current G90/G91 state
CurrentFeedRate = GetOemDRO(818)          'Get the current Feed Rate
ToolChangeX = GetUserDRO(1200)            'Get user defined tool change location
ToolChangeY = GetUserDRO(1201)
ToolChangeZ = GetUserDRO(1202)            'NOTE: Z will be used for Auto Tool Zero start height
GageH = GetOEMDRO( 1001 )            'Gage Block Height
ProbeD = 20                  'Depth to probe for touch plate

' Move to user defined tool change location

If CurrentUnitsMM = FALSE Then            'Ensure measurement mode is in MM for macro
   Code "G21"
End If
If IsSafeZ() Then               'If SafeZ is defined,
   safeZ = GetSafeZ()            'use it for positioning commands
Else
   safeZ = 0               'Otherwise, moves are made at MC Z0
End If
Code" G53 G0 Z" & safeZ               'Position spindle for tool change
Code"G53 G0 X" & ToolChangeX & "Y" & ToolChangeY
While IsMoving()
   Sleep(10)
Wend
PText = "Tool #" & tool & " requested.  (See Setup Sheet for details.)" _
   & Chr(10) & "Insert requested tool and press OK to continue."
MachMsg(PText,"Tool Change Request",0)
SetCurrentTool( tool )               'Set the Tool DRO to the new tool number

' Auto tool zero

AutoZeroPrompt = "Place probe for Auto Tool Zero and press OK" _
   & Chr(10) & "Or press CANCEL to zero tool manually"
AutoZero = MachMsg(AutoZeroPrompt,"Auto Tool Zero",1)
If AutoZero = 1 Then               'AutoZero = 1, User pressed OK
   Code "G53 G0 Z" & ToolChangeZ         'ToolChangeZ is MC for starting location of probing
   While IsMoving()
      Sleep (10)
   Wend
   ZCurrent = GetOemDro(802)         'Current Z DRO
   ZNew = ZCurrent - ProbeD         'Probe depth end height
   Code "G90F100"               'slow feed rate to 100 MM/MIN
   Code "G31 Z" &ZNew            'Start the probe move
   While IsMoving()
      Sleep(10)
   Wend
   If GetOEMLed(825) = True Then         'Probing successful
      ProbeTouch = GetVar(2002)      'Exact height touch plate was contacted
      Code "G1 Z" & ProbeTouch      'Go there (corrects for potential over-run)
      While IsMoving()
         Sleep(10)
      Wend
      Call SetDro(2,GageH)         'Set Z DRO to adjusted value
      FinalMove = GageH + 10
      Code  "G0 Z" &FinalMove         'Raise probe off of touch plate
      While IsMoving()
         Sleep(10)
      Wend
      Message("Press Cycle Start to continue...")
   Else                  'Probe did not contact touch plate
      Message("Zero not achieved - Check probe and try again manually")
   End If
Else                     'User selected Cancel on Auto Tool Zero prompt
   Message("Zero tool manually and press Cycle Start to continue...")
End If

'RESTORE MACHINE STATE VALUES

'Feed Rate

Code "F" &CurrentFeedRate            'restore starting feed rate

'G0/G1 State

If CurrentFeedMode = "80" Then            'Machine still in initial state at start of macro
   Code "G0"               'so set move mode to G0
Else
   Code "G" & CurrentFeedMode         'Otherwise set move mode to previous value
End If

'G20/G21 State

If CurrentUnitsMM Then               'Units was previously set to mm
   Code "G21"
Else                     'Units was previously set to inches
   Code "G20"
End If

'G90/G91 State

If CurrentAbsCMode Then               'System was using absolute coordinates
   Code "G90"
Else                     'System was using incremental coordinates
   Code "G91"
End If      


Next is the slightly modified M6End.m1s file:

'The (modified) default script here moves the tool back To m6start If Any movement has occured during the tool change..

x = GetToolChangeStart( 0 )
y = GetToolChangeStart( 1 )
z = GetToolChangeStart( 2 )
a = GetToolChangeStart( 3 )
b = GetToolChangeStart( 4 )
c = GetToolChangeStart( 5 )
If(IsSafeZ() = 1) Then
   SafeZ = GetSafeZ()
   Code "G53 G0 Z" & SafeZ
Else
   Code "G53 G0 Z0"
End If
Code "G0 A" & a' & "B" & b & "C" & c
Code "G0 X" & x & "Y" & y
Code "G0 Z" & z  


Now for the specifics:

1.  At the beginning of the tool change macro, the spindle will be moved to Safe-Z if the machine is configured for it or Z0 if not.
2.  Then the spindle is moved to the X and Y location (in Machine Coordinates!) specified in the "Tool Change Location" DRO on the "Settings" screen.
3.  The user is then prompted by way of a dialogue box to change to the specified tool and then press OK.
4.  The next pop-up dialogue box prompts the user to position the touch plate and click OK, or you can click CANCEL to perform a manual touch-off.
5.  The Auto Tool Zero routine in the macro uses the Z location in the Tool Change Location DROs as the starting height of the of probe movement, again in Machine Coordinates.  It will perform a Feed Rate move to this height and then execute a G31 command for a depth of 20mm (my preferred unit of measure for the parts I make).  The depth is defined in the variable ProbeD and can be changed to your preference.
6.  Finally the spindle will be moved back up a short amount (10mm) for removing the touch plate.

All previous machine settings (G0/1, G20/21 and G90/91) are restored at the end of this macro so it should work even if you're working in inches instead of mm.

As mentioned earlier, pressing "Cycle Start" will then run the M6End macro which returns the spindle to the location it was at when the M6 macro was first called and then continue running the part program.

If you use this macro, PLEASE NOTE that the Tool Change Location DROs should be set IN MACHINE COORDINATES and configured prior to running the part program which may call the M6 command.  Also, the Z location specified is the starting height IN MACHINE COORDINATES for the beginning of the probe move.

Finally, I've also added a set of Digitize LEDs on the Program Run screen, one on each side of the Auto Tool Zero button (even though this button won't be used unless you choose to "manually" set the tool zero).  This is for three purposes:

1.  The operator can verify that the probe is not shorted prior to the zeroing operation.
2.  The operator can test the probe quickly and easily by touching the plate to the tool prior to clicking OK to begin the operation.
3.  The operator has visual confirmation that the tool has touched off.  The LEDs will light up briefly until the tool is raised back up, off of the touch plate.

I haven't done extensive/exhaustive testing on this macro, but it does work for my purposes.  If you do use it, you are responsible for understanding its' operation and potential safety risks.

Hopefully this helps someone get a better experience with their equipment.

Lastly, I'd appreciate any feedback from you kind folks as to any consideration which I may have overlooked in programming this macro - particularly any safety concerns one may have.

Thanks,

Stephen "Highspeed" Kruse
« Last Edit: July 20, 2016, 03:33:09 AM by Highspeed1964 »