Hello everyone I am having a bit of a problem with work offsets with my Pro4896 and Mach3
Here are the specifics:
Machine: CNCRP PRO4896 Latest version (purchased about 2 months ago)
equipped with CNCRP Full Plug and Play Nema 34 Electronics Package (CRP800-00E-8)
equipped with Pepperl + Fuchs Proximity Sensor Kit (x and y axis only no limit switch on the z-axis)
equipped with bosch 1617 router (for now soon to change)
Control Software: Mach 3 (Latest version also purchased about 2 months ago)
Machine Computer: Windows XP Machine (old as dirty I imagine lol)
Okay So I am pretty new to cnc but am trying to learn
Here is my problem:
I turn on my machine
I hit the reference all home button (and home the machine x and y axis) (I dont have limit switch on my z-axis)
I then go to my offsets tab and Click G55 (the offset that I set up for this specific job I am working on)
I then click load Gcode (and load my gcode)
I then click go to zero (as a sanity check on my zero point)
I then get out my touch plate and place on the material
I then click auto zero tool button and zero the z-axis
I then remove the touch plate
I then click cycle start
and then the machine move in the x and y direction to were the code starts and then lowers the z just a little bit and starts cutting in the air???
The problem is that my machine is not using the z-zero that I specified when I auto zeroed the tool using the touch plate it is using the zero specified in the work offset
the problem is that I have to use 3 different tools on this job and so the z values are all different and further more being a bosch router when I insert the tool in the collet it is not always in the same spot I I have to reset my z height after each tool change
I dont understand why the auto zero tool function won’t override the work offset setting
is there any way to do this?
when I home the machine I am only homing the x and y axis so the machine doesn’t even know where the z-axis is at
how do I make this project work? all I want to do when I go into my G55 work offset and hit the go to zero button it just zero’s the x and y and lets me specify where the z zero is at
any help at all would be appreciated I am really struggling with this and need to get this job done
Thanks
First of all,Telling your machine to goto the Z Zero position without homing the Z axis is a very scary thing to do. How would the machine have any idea where the Z axis is currenly located?
The auto zero routine should be setting the correct zero, but the code that sets the zero is user modifiable and it may not be doing what it should.
What code are you using to auto zero your Z axis? Can you post a copy?
@AllenMassey
you are correct I wish that the machine had a z-limit switch
but I really like you said just want to be able to set me z manually
Here is the code that I am using to auto zero the tool:
CurrentFeed = GetOemDRO(818) 'Get the current feedrate to return to later
CurrentAbsInc = GetOemLED(48) 'Get the current G90/G91 state
CurrentGmode = GetOemDRO(819) 'Get the current G0/G1 state
If GetOemLed (825)=0 Then 'Check to see if the probe is already grounded or faulty
DoOEMButton (1010) 'zero the Z axis so the probe move will start from here
Code “G4 P3” ’ this delay gives me time to get from computer to hold probe in place
Code “G90 G31Z-4. F4” 'probing move, can set the feed rate here as well as how far to move
While IsMoving() 'wait while it happens
Wend
ZProbePos = GetVar(2002) 'get the exact point the probe was hit
Code “G0 Z” &ZProbePos 'go back to that point, always a very small amount of overrun
While IsMoving ()
Wend
Call SetDro (2, .6225) ’ change .6225 to your plate thickness and then adjust for final accuracy
Sleep 200 'Pause for Dro to update.
Code “G1 Z1. F50” 'put the Z retract height you want here, must be greater than the touch plate thickness
While IsMoving ()
Wend
Code “(Z axis is now zeroed)” 'puts this message in the status bar
Code “F” &CurrentFeed 'Returns to prior feed rate
Else
Code “(Z-Plate is grounded, check connection and try again)” 'this goes in the status bar if applicable
End If
If CurrentAbsInc = 0 Then 'if G91 was in effect before then return to it
Code “G91”
End If
If CurrentGMode = 0 Then 'if G0 was in effect before then return to it
Code “G0”
End If
Have you measured the exact thickness of your touch plate with a digital caliper?
@AllenMassey
Yes I have its set to .6225"?
@AllenMassey
I have been using the touch plate for quite awhile now and it has always worked great but the problem is that when I try using my new G55 work offset it won’t accept the auto tool zero position it tries to revert back to the work offset z value
mind you the z-value in the work offset that I specified was just a generic position as my machine does not even know where the z-axis is at because I don’t have a z-limit switch
The auto zero code you sent me looks correct, it should be setting your Z zero to whatever your probe is sitting on top of.
I have never tried using a work offset without having a home value for all three axis set. But I suspect that is causing the problem you are seeing.
Hmmm so do you have any thoughts on what I can do?
I mean even if I had a limit switch on my z-axis I could home the z-axis but when I set up my G55 work offset and zero the z-axis with the first tool in. It won’t make a difference because I have to change tools 2 times during the program and even the first tool will be in a different position because you just slip it into the collet and tighten it down
So it seems to me even if I have a limit switch on the z that would not make a difference
Would setting machine zero as well as work zero make the difference?
@ErikJenkins
Hmm so what do you mean?
Where should I set machine (aka absolute zero) to?
right now I just have it turned off when homing the machine so it is in just some generic position
and really I can’t set the absolute z zero position to the zero of my work offset because usually a absolute zero is set off your home switches and you can’t move that
I am doing a little research on this…I’ll be back 
@AllenMassey - It is probably the lack of homing switches as you say, there has to be a way around this.
1 Like
If anyone can figure this out it will be Erik 
1 Like
If you zero your machine…X and Y with switches then go to the MDI screen and hit the Ref All Axis button, does that do what you want?
Then zero your Z with the plate.
I am not at my machine to test, so please be careful 
@ErikJenkins
Hey erik I have not tried that ref all axis under the mdi tab I can try it really quick though
But so basically I just got off the phone with my machines manufacture and they where telling me to instead of using the different work offset (g54 g55 g56 etc) to just always work in g54 since I don’t have a limit switch on the z-axis
I can install a limit switch on the z-axis in the future if I want to the electronics are already capable
So here is 1 way that he told me to do it
Turn on machine
Home the machine (x and y axis disable the z-axis)
load gcode for project
then under the mdi tab manually enter x and y offset values from home position (ex. g0x8y5)
then once the machine is there zero the x and y axis under the mdi screen in the far right box
then also zero z right where it is at
then get out touch probe and install on the material
hit auto zero tool button
zero the tool
then hit cycle start and run the program
Doing it this way I just have to figure out the x and y offset values from home position 1 time and write them down and enter them when I initially start the job after the machine is first fired up and then I can just keep re-zeroing my z as I need to with tool changes and such
Alternatively I can
Open fusion 360
design my part
then when I am setting up my stock offset my model in the x and y the exact amount as to where my material is on my table from home position
then post process and take to machine
turn on my machine
home the machine
load gcode
then move machine to my stock manually
place touch plate on my stock
auto zero the tool on my touch plate
remove touch plate
and then hit cycle start and run the program
Does this make sense? I like the idea of the first option but I really thought this is what work offsets are for but maybe I can’t do that since I don’t have a auto tool changer and a z-axis limit switch
what you guys think?
I would install the Z-Axis limit switch and be done with it 
1 Like
@ErikJenkins
So if I install a z-axis limit switch how does that magically fix the issue?
I mean if I home the machine to x, y, and z absolute zero
then set up my work offset G55 from that point
I still have to tell the G55 work offset a value for the z-axis
but my z-axis will be changing all of the time due to all sorts of things
So I still have to use my touch plate when starting the program and when changing tools during the program
right?
Yes, you will still have to rezero the z-axis at the start and at each tool change…but you won’t have to type in the offset before each project based on a fixture/tool offset.
@ErikJenkins
yeah but the problem is when I try to auto zero the tool now using the g55 work offset with the touch plate it doesn’t record that value when you run the program
how is a z-limit switch going to change that problem?
g55 is based on machine zero. try ref all button