Hi Tim,
tmostad wrote:I have a Tormach 1100 Series III with their Tool Setter (very expensive but nice) and their passive probe (which I modified to be active to prevent from having to switch the Accessory connector mode). I run MSM with TC Auto TCP and TC Auto TLO. I struggled with getting this running because my Tool 1 had a positive value for its TLO which caused the Z axis to hit the limit switch. It took me quite a while to figure it out but I learned a bit about debugging on the mill (Single Block Mode, etc.).
Now my question relates to WCO change. I have a two sided part.
OK, I think I'm with you so far...
tmostad wrote:I mill the top in G54 and flip the part along the Y axis to mill the back in G55.
Here I have a couple of questions -
1) I'm thinking that you probably set the G54 0 point by using one of the MSM probing (probably corner probe) operations. So it's likely that G54 0 is set to a top corner of the stock before you start the program, is that correct?
How is this part being held? I'll assume on parallels in a vise until I hear otherwise.
So you then mill the top (maybe cutting away the G54 z point in the process).
You flip the part over, and now what was the top surface is now sitting on the parallels?
Now the problem is that the program wants to do some mill cuts relative to the G55 zero point but the G55 zero is not set yet - is this the basic problem?
Where does the gcode assume the G55 zero point will be?
At one of the corners of the part after it is flipped over?
tmostad wrote:
If there a way to have MSM trigger a probing op to set the WCOs when my code gets to G55? I have tried without success to set the WCO when I hit tool change but I recall have problems making that work.
Yeah, that is hard to do - if not impossible. It sounds as if you want to use a MSM corner find operation to locate G55 0 after the part is flipped over. unfortunately, that would reaquire that we be able to
a) suspend a tool change operation
b) mount the probe (I.e. recurse a tool change operation so that we can do "M6 probe" nested in the middle of the current "M^" word
c) jog and run an arbitrary script (to do the probe op using the probe tool)
d) somehow return the spindle to the X,y,z location where we suspended the 1st M6
e) pick up and complete the suspended M6.
Alas, that ain't going be happening. Not only does mach not support recursive nested M6 calls, but no such thing is defined in gcode. M6 is defined as a "word" in gcode - and all the stuff that you see happening with MSM and Mach when the program runs the M6 is (from the CNC control viewpoint) one single atomic (non-divisible) set of actions.
While I can see what you are asking about as being useful, and I've been pretty successful in making mach do things it was never intended to do... that combination strikes me as not something I'd want to attempt with mach.
tmostad wrote:
Hopefully I am making sense. I am still a relative newbie to using the power of MSM.
Thanks,
Tim.
But there are other probably ways to skin this cat....
The real requirement is that the G55 WC0 has to be set before the program switches to G55 and starts doing operations in G55.
The typical approach is to set all the WC zero points before starting the program. Then both G54 and G55 are ready whenever they are needed.
I'd be thinking about how to use a reference point that is not dependent on the G54 operations.
For example: instead of setting G55 to the "new top" of the flipped part, use a position that is independent of the G54 operations.
Remember that WC 0 points do not have to be physically on the stock you stat with. You could put G54 WC0 at a vise or fixture corner, then have some stops that let you mount stock to a fixed offset from the vise corner.
Idea 1: Think about using a bottom corner of the stock as the WC 0 point and use a vise stop to fix X on one end.
Now you have a fixed plane for X (the vise stop), Y (the vise jaw face) and z (the top of the parallel in the vise).
This would probably require some tweaking of the program - but now the WC0 is not moving around as the part is milled.
Idea 2: You may not need to be probing at all... depending on the part geometry, and the use of vise stop or a fixture, if you know where G55 WC0 is wrt to G54 WC0 after the flip, you can set G55 from within gcode. Read about G10 (that is how you set WC offsets programatically from within gcode).
You can then have the gcode set G55 from G54. All the operator needs to do is set G54 before starting the program.
Idea 3:
I should be possible to do a probe programatically from within a gcode program.
(this is not the same as an M6 inside an M6).
One could make a user mcode that call and MSM probe routine. If all the MSM options buttons are set correctly when the mcode is called it will be just like you did the probe operation manually.
The gocde would be something like:
G55 (make G55 active)
T99 M6 (get the probe tool mounted)
G43 H99
M1 (to pause here after the probe is mounted)
(now either have the operator jog to a probe start point, or do Gcode movements to get to a goo place to start)
M1657 (where M1657 does a corner probe op - which in turn resets WC0 for the current WC - which is G55)
(go to a clear location above the part)
T# M6 (get the next tool you want o use)
(continue the program)
Dave