When using G10 to keep resetting my Y work zero how do I reset it back to where it came from??
When using G10 to keep resetting my Y work zero how do I reset it back to where it came from??
Use two different work offsets, like g54 and g55. I set the offset for g54 to my home position, and the g55 for the changing work zero. So you set a new G10 position for G55 and then invoke g55, when done invoke g54 again.
Alan
Mike,
As Alan has stated using another workcoordinate is going to be the easiest way. If you happen to be using all of your coordinates G54-G59 for machining then you could set your home position to your common variables #100-#199 or #500-#999 then reference these to reset your home once you are finished.
Stevo
....or you could use G52 "work shift". Depends how you are using G10.
I'm running two vertical rows of parts, ten in each row. This is a program shell I've used before with G10 but this time I have to run top to bottom and then top to bottom again so the Y axis needs to be reset to zero instead of letting it just work its way back.
Its running right now with a macro to keep track of how much it moves down and then use that number to reset, but it would be much less complicated to just reset it to zero. I've tried using G52 before and couldn't get it to work for me even though it looks easier. This is running in a HMC 5800 Mazak with a 640 Fusion control. I can program in mazatrol but G code still gives me more control and runs faster for production.
I am not familiar with your control but can you use variables like #1-#33 or #100-#199 or #500-#999? If you can then at the beginning of the program you could set your home X,Y location to #100 and #101 then when you run the first row you could do a G10X#100Y#101 this would set it back to the original.
Is there a reason that you can’t use G55 for row 1 and G56 for row 2? Or do as Alan suggested and set your original into G55 and G56 then run your program using G55 and adjusting your Y along the way then when you are done with the first row set G55 equal to G56 values and continue to the second row.
There are tons of ways to do this via G54-G59 or using variables.
Stevo
Here is an example of how I use G54 and G55 with G10:
I am using EMC2 so I can use named variables, but it at least shows you what I am talking about. Inside of some of the subroutines I use G10 again to set the called location as the origin for G56, set G56 at the start of the subroutine and then set G55 again before returning from the subroutine. I have a bunch of other setup variables and stuff that I haven't shown. "O-words" can be used to control flow in EMC2.G10 L2 P1 X0.0 Y0.0 Z0.0 ( Set G54 Home )
G10 L2 P2 X#<_xorigin> Y#<_yorigin> Z#<_zorigin> ( Set G55 current work origin )
G55 ( Set Coordinate system 2 )
#<cnt> = 5 (set up to cut 5 parts)
o1000 DO
#<cnt> = [#<cnt> - 1]
G10 L2 P2 X#<_xorigin> Y#<_yorigin> Z#<_zorigin> ( Set current work origin )
G55 ( Set Coordinate system 2 )
o120 call [0.03125] [0.34525] [0.750] [1.46875] [0.0625] [0.125] ( Cover Pocket )
o120 call [0.250] [0.7515] [0.3100] [0.625] [0.0625] [0.625] ( Inner Circuit Pocket )
o105 call [615] [0.4050] [1.064] [0.625] ( Cut Slots for PCB )
o120 call [0.450] [0.9215] [0.550] [0.285] [0.0625] [0.625] ( Cut for OptoSwitch )
o105 call [600] [-0.250 ] [0.375] [0.625] ( Outside Outline )
o605 call [-0.250] [0.375]
#<_yorigin> = [#<_yorigin> + 2.75] ( bump the Y-origin for the next part)
G54 ( Set Coordinate system 1 )
o1000 WHILE [#<cnt> GT 0 ] (loop until all the parts are cut)
Alan
mikey B
Are the parts spaced equally or are they random spacings.
If eqally, I'll write you a looping program using G52 to try out.
The parts are equally spaced, sorry about the delay but I only get about an hour or two in my office these days. The rest of the time I have to run what little production there is. Just feel lucky to still have a job though.
If you're on 5800 with a Fusion control, you should have all of the standard offsets (G54-G59) plus G54.1 (P1-P48).... That gives you 54 offsets to work with. You have 20 parts, you don't need to G10 this...
It's just a part..... cutter still goes round and round....
mikey B
O0001
M6T1
G0X0Y0G54S1000M13
G43Z10H1
(**ALTER VALUES OF #500-#503 ACCORDINGLY**)
#500=10 (No. OF REPEATS IN Y)
#501=2 (No. OF REPEATS IN X)
#502=30 (PITCH SIZE AND DIRECTION (+OR-) IN Y)
#503=100 (PITCH SIZE AND DIRECTION (+OR-) IN X)
#504=0 (SETS PITCH IN X TO 0)
WHILE[#504LT#501]DO1
#505=0 (SETS PITCH IN Y TO 0)
WHILE[#505LT#500]DO2
G52X[#503*#504]Y[#502*#505]
......
your prog here
......
#505=#505+1
END2
#504=#504+1
END1
G52X0Y0
G53Z0Y0
M30
This should do what you want. I've not tested it. It's just from the top of my head.
Sorry for late reply...been busy