Thread: Mach3 Tool Change Position
Good day all.
My jobs are now starting to need a number of tools changes per run.
Each tool change is done manualy, and I have to jog to a point where I can reach or have room to access the spindle.
I would like some help adjusting the Mach3 tool change macro scripts.
Here is the default Mach3 M6 tool change macro scripts.
tool = GetSelectedTool() SetCurrentTool( tool )
x = GetToolChangeStart( 0 ) y = GetToolChangeStart( 1 ) z = GetToolChangeStart( 2 ) a = GetToolChangeStart( 3 ) b = GetToolChangeStart( 4 ) c = GetToolChangeStart( 5 ) if(IsSafeZ() = 1) Then SafeZ = GetSafeZ() if SafeZ > z then StraightTraverse x, y,SafeZ, a, b, c StraightFeed x, y, z , a, b, c else Code"G00 X" & x & "Y" & y end if
What is needed to be added to the Mach3 M6 tool change macro scripts to do this?
Thanks for your time.
Best Regards."If first you don't succeed, redefine success"
Is it really as simple as doing this?
code "G53 Z0" code "G53 X1000 Y500" tool = GetSelectedTool() SetCurrentTool( tool )"If first you don't succeed, redefine success"
Yes, that works. Although be careful where you have the absolute zero position for Z set. If you're not zeroing the Z with a home switch then that position could be anywhere, so I'd be inclined to use G0 instead of G53 in that line and put a suitable clearance, say code "G0 Z10" (depending on how much Z-travel you have). The other method is more robust iff you have a home switch on Z.
Sorry I should of said that I have photointerrupters on all my home, and limit points."If first you don't succeed, redefine success"
I have just updated my "C:\Mach3\macros\Mach3Mill\M6Start.m1s" code so that I will not use the G53 moves if all the axis are not Ref to home 1st.
tool = GetSelectedTool() If GetOEMLED(807) Or GetOEMLED(808) Or GetOEMLED(809) Then MsgBox "One or more axis is not Ref to home, you will have to manually jog to tool change" Else code "G0 G53 Z0" While IsMoving() Wend code "G0 G53 X1000 Y500" While IsMoving() Wend End If SetCurrentTool( tool )"If first you don't succeed, redefine success"
Code "m5" Code "g28" Code "m1" tool = GetSelectedTool() SetCurrentTool( tool )
Here was my final solution:
code "m9" code "m5" code "g28" tool = GetSelectedTool() SetCurrentTool(tool) code "g43 h" & tool code "m1"
It stops the spindle and the coolant pump, goes to a safe tool change location, retrieves the T(x) value, and stores it in the variable "tool". (Tool 1, Tool 2, etc) Then it performs the Gcode G43 H(x) to set the tool offset. All that's left is for me to swap to the correct tool and press start.
There are still a few things I would like to figure out how to do. For one thing I never really found a good resource for the values, commands, language structure, etc for Mach 3 macros. I just pieced them together from bits and pieces found here and there. Another thing I would like to do is figure out how to "park" the machine at the end of a program. Basically raise the spindle to safe Z, center the table, and move it forward to make part removal faster and easier when a program completes. Maybe I'll add a park button to my program screen. I ran across references to that while I was researching M6 macros. Executing a macro from a screen button. Well, that is a task for another day.
So much for my simple elegant solution:
I am having some problems getting my mind wrapped around the tool offsets and the tool table. It seems simple, but doesn't seem to work for me. I am abandoning the G43 H(x) stuff for now.
Just going with this for now:
By dudz in forum Machine DiscussionReplies: 6Last Post: 15-02-2014, 05:34 PM
By komatias in forum Marketplace DiscussionReplies: 6Last Post: 09-08-2013, 06:27 AM
By CambiumMachines in forum Manufacturer NewsReplies: 3Last Post: 08-06-2012, 03:14 AM
By craftydonkey in forum Milling Machines, Builds & ConversionsReplies: 0Last Post: 19-10-2011, 02:11 PM
By Jonathan in forum Items WantedReplies: 22Last Post: 07-05-2011, 09:30 AM