Hi Greg,
Looks pretty good, not quite ready for one yet but I did register the mach software today so I will store this info
Bob
With the type of things I am doing on my router I find I very often need to set my Z axis zero on the top of the material.
What I have been doing to set tool zero to the top of material is to use a 123 block as a known height gauge.
Put it under the tool and jog down to it, using step jog when close, 0.01mm per step, then manualy entering 25.4mm (1") into the Z axis DRO.
There's got to be a better way!
Well there is. And lots of people have done this already. No original ideas here.
This is what I did. With the help of some people on the Artsoft forum. Mostly Scott. Thanks Scott.
Put a user DRO on the screen using Mach's screen utility, Screen4. Assigned it OEM code 1151
Also put a LED for Probe and one for Pause or Dwell. These I will explain later. See the screen grab below as pic.
Assigned the following macro to the "Auto Tool Zero" button.
PlateThickness = GetUserDRO(1151) 'Z-plate thickness DRO
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 P5" ' this delay gives me time to get from computer to hold probe in place
Code "G31Z-40 F500" '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 axact 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, PlateThickness) 'set the Z axis DRO to whatever is set as plate thickness
Code "G4 P0.25" 'Pause for Dro to update.
Code "G0 Z25.4" 'put the Z retract height you want here
Code "(Z axis is now zeroed)" 'puts this message in the status bar
Else
Code "(Z-Plate is grounded, check connection and try again)" 'this goes in the status bar if aplicable
Exit Sub
End If
EDIT: This is in metric. You will have to change some numbers if you still live in the Middle Ages........END EDIT
Made a probe touch pad from a scrap of copper clad PCB material. See pic below.
Conected to a spare input on my BOB. Mine needed a pull up resistor.
Assigned it in "Ports and Pins" as "Probe" Set as "Active Low"
The first one I made had a clip to go onto the tool. I found it worked faultlessly without it. So I ditched it. KISS
Re, my screen changes.
The "plate Thickness" DRO should be self explanatory.
The Probe LED I made big so I could see it from the machine.
My fear was that if an electrical fault happened and Mach did not stop the probe move then my spindle would drive on relentless. Causing mayhem.
So I just touch the plate to the tool and see the LED light up, before running the macro to satisfy myself that all is good.
The Pause LED just flashes during the 5 second pause I have set to give me time to get from computer to holding the plate in place.
Now you can put these items (only the DRO if that's all you want) anywhere on the screen that suits you.
I chose the area usually used for spindle control. Because I don't use it.YET!!!
Now I will repeat, this is not my idea. Lots of people use this type of device
I hope this inspires a few more to give this a try. Very useful on my type of machine. It really is easy.
Greg
Similar Threads:
Last edited by Greolt; 04-17-2007 at 01:07 AM.
Hi Greg,
Looks pretty good, not quite ready for one yet but I did register the mach software today so I will store this info
Bob
I will make one of these plates as time permits.
In the mean time, I loosen the collett so the tool cutter slide and jog the Z axis down onto the workpiece until it starts to push the tool and then tighten the collett and zero the Z axis.
WJF
The More I Learn The Less I Seem To Know
Greolt
Thanks for posting this code. I've seen it before, but glad to see it again with all your comments.
I have some questions in red
Code "G31Z-40 F500" 'Are you moving the probe 40 mm down at a rate of 500 mm/min'
While IsMoving() 'During this wait, what makes Mach3 stop?'
Wend
I'm confused about the While IsMoving/Wend command.
First of all, -40 mm is a long way. When electrical contact is made, Mach3 records the exact z using the ZProbePos = GetVar(2002), but what command stops the movement? I'm assuming that Mach3 is not processing any further instructions until after it stops moving. Am I wrong about that assumption?
Is the probe hooked to a Mach3 input that always stops the machine on electrical connection? That sensor doesn't need code to activate?
This just stops the macro from executing the next instruction until the G31 is finnished doing it's thing.
The G31 command does. It is a probe move so it is inherent in the command to stop when the probe is triggered.First of all, -40 mm is a long way. When electrical contact is made, Mach3 records the exact z using the ZProbePos = GetVar(2002), but what command stops the movement?
On any other move the probe connection has no effect. (as far as I know)Is the probe hooked to a Mach3 input that always stops the machine on electrical connection? That sensor doesn't need code to activate?
Code "G31Z-40 F500" Yes this will move down 40mm at 500mm per min or until the probe is triggered.
Set these to whatever suits your machine. I usually jog down quite close so 40mm is more than I need.
I can see that you are like me in that I was not content to just paste someone elses macro in. I needed to understand it.The Wiki is good.
Hope this helps, Greg
Hey Greolt
I'm starting to assembly stuff to make the plate, and hook up the wires. My question to you is about wires and this statement,In the end, did you only use one wire? You tried two wires, but since the router body was already grounded, you didn't need the second wire?The first one I made had a clip to go onto the tool. I found it worked faultlessly without it. So I ditched it.
I'm trying to figure out the wiring. I know the plate's wire will go to pin 15 in my BOB. Do I need a second wire? Is the routers grounded body sufficient?
I see that you used a pull-up resistor. I'm thinking that means the plate is connected to your input pin and electrified to +5V. Am I correct?
Thanks for your previous response. It was helpful.
Last edited by Glidergider; 04-21-2007 at 11:51 PM.
That was what I found in my case. Others have done the same.
Some fancy spindles have ceramic bearings. Or there may be other reasons the tool is not well grounded. Try it and see.Do I need a second wire? Is the routers grounded body sufficient?![]()
I'm not an expert.I see that you used a pull-up resistor.![]()
But from my basic knowledge, you don't want an input to float. It needs to be held either high or low. Less suseptible to noise that way.
In this case I "pulled' it high and used the plate to ground it (or force it low) when contact is made.
Some break out boards have a jumper to select whether inputs are pulled high or low with on board resistors. PDMX-122
Others just have the inputs pulled low. CNC4PC- C10
Mine has neither.
From memory I think I used a 3K resistor which at 5 volts is only about 1.5 miliamps.I'm thinking that means the plate is connected to your input pin and electrified to +5V. Am I correct?
I won't be in for a few days. Hope this is helpful. Greg
Nice setup Greg, I might retrofit my machine with something similiar, sure beats my method of using glossy magazine paper between the job and cutter and slow jogging down until it cannot be moved anymore.
First I just have to retrofit servo's, make the drivers for said servo's, get EMC to run the whole thing (drivers using quadrature input - EMC does this natively, apparently). Then build a shed to house all of this... then its straight onto the tool setter
At least I have a vacuum pump ready to go heh
Russell.
Hi,
I cut and pasted the script into a file. I edited some values for inch system and hard coded the plate thickness. Here's the code.
PlateThickness = .063 'Z-plate thickness
...
Code "G31Z-.25 F10" 'probing move, can set the feed rate here as well as how far to move
...
In Mach3, I selected Probe input to pin 15, and active low. In the BOB, I connected pin15 to +5v and to the external lead to the plate.
Back in Mach3, I selected the pull-down "operator>VB Script Editor". I found the script file and run it from there.
Problem is that the script makes Mach3 hang indefinately. I hope I gave you enough info to help me trouble shoot the hanging program. What am I doing wrong?
OK, I figured out the indefinite hang. The code had an "exit sub" command at the end. I wasn't calling it from another program, so it didn't know where to return.
My latest problem is, I can't get a ground to stop the G31 probe movement. The plate is wired high to plus 5v. More trouble shooting ahead. It must be an improperly connected pull-up circuit.
Yeah, I got it to work. Thanks for letting me just blabber on here. It sort of helps me figure out what I'm doing, and going to do next.
I have a BOB that includes pull-up resistors, however, they didn't work as advertised. I added a 1 K resistor and it now works.
Greg, thanks for starting this post. I've done some previous reading on the subject, but always had questions. The comments in your first post crystallized the answers.
My peice of PCB material that I am using for a touch off plate is 1.55mm thick.
However I need the DRO set at 1.480mm to get an exact and consistant zero setting.
So you may need to play with that setting to get it right. That is why I went with the DRO on the screen.
Having said that, it is almost as easy to make changes as needed with Mach's VB editor.
The reason I have my retract movement set to 25.4mm or 1" is that previously I was using a 123 block as a guage.
Now I can just slip it under the tool after zeroing to check for accuracy.
Greg
Greg,
I reduced the feed rate to 3 inch/min (I know that's slow). Once I did that, It worked perfectly with .063 inches. I toyed with the idea of two plunges to touch the plate. The first plunge at a higher speed to get close quickly, then a second plunge at 3 i/m. I didn't do that though.
Good idea about the 123 block to check the accuracy. I check accuracy while its plunging. There's a pause in routine just after backing up the overshoot. I lengthened this pause. During the pause, I test the gap by sliding the plate under the tip like a feeler gage.
I'm not the best grammerian. I hope I'm understandable.
Dave
That's good Dave. Whatever works is good.
The name of the game is to have a quick, easy, accurate and consistent zero setter.
The method in the first post is doing that for me.
Greg
Now I need a 123 block.
I'm going to have sooooo many questions when I'm setting this up! Yours looks great.
Reading this thread I am going to make my own. Has anyone had any thoughts on making a 2nd fixed plate too automatically compensate for tool wear on end mills?
how about one of you guys that made yoour changes to your mach3 screens , uploading that set? i like the fact of using the space that the spindle speed takes up, but i have wrestled with screen4 for a lil while, and the set i made looks terrible.
thanks,
dan
Try this one Dan. It will work with the macro posted at the start of this thread.
Modifying the standard screenset is easier than starting from scratch.
But of course it's like renovating a house as opposed to building a new one.
There is only so much you can change.
Greg
EDIT: Updated the zip file. Macro now has the coments as in the first post. Makes it easier to understand.
Last edited by Greolt; 06-30-2007 at 06:12 AM.
Greg,
Are the steps to install your 1024.set simple? Any help in that area will be appreciated.
Thanks,