What's new
What's new

shifting work coordinates on a mill

Ukraine Train

Cast Iron
Joined
Feb 10, 2014
Location
Ohio
I'm running a job where I set up 8 blanks (two per vice) and mill each one the same. My mill only has 6 work coordinates (G54-G59) so what I'd like to do is machine one part at G54 and then a second at G54+X2.55, then do the same for G55-G57. How can I do this? I have the manual but it's not translated very well from Japanese (Hitachi Seiki). It looks like maybe I can use G540-G599? Or G92?

Does this look right?
(AFTER RUNNING PART AT G54)
G54
G0 X2.55 Y0
G92 X0 Y0
(REPEAT PROGRAM FROM G54)
G55
(RUN PROGRAM)
ETC.
ETC.
 
I'm running a job where I set up 8 blanks (two per vice) and mill each one the same. My mill only has 6 work coordinates (G54-G59) so what I'd like to do is machine one part at G54 and then a second at G54+X2.55, then do the same for G55-G57. How can I do this? I have the manual but it's not translated very well from Japanese (Hitachi Seiki). It looks like maybe I can use G540-G599? Or G92?

Does this look right?
(AFTER RUNNING PART AT G54)
G54
G0 X2.55 Y0
G92 X0 Y0
(REPEAT PROGRAM FROM G54)
G55
(RUN PROGRAM)
ETC.
ETC.
.
watch g92 it can cause problems
.
better to do the math on the G54 shift and use the results for the G55 offset screen
the G54, G55, etc work offset screen is not normally full of all zeros
 
I just tried G92 and it worked, but I can't figure out how to cancel it. When the tool changes and it calls G54 again, it stays with the G92 offset. The manual says to use G921 x0 y0 z0 but this causes an alarm.
 
G54
bla bla bla

#100 = #5221
#5221 = [#100+2.55]
G54
bla bla bla
.
.
.
#5221 = #100
M30

#5221 = G54 X
#5222 = G54 Y
#5223 = G54 Z
#5224 = G54 A
#5225 = G54 B
#5226 = G54 C

#5241 = G55 X
...
...
..
#5261 = G56 X
..
.
..
#5281 = G57 X
..
..
..
#5321 = G59 X
..
..
..

(Or should be........ test to be sure.....)
 
Last edited:
I just tried G92 and it worked, but I can't figure out how to cancel it. When the tool changes and it calls G54 again, it stays with the G92 offset. The manual says to use G921 x0 y0 z0 but this causes an alarm.

G92 does not get cancelled except by returning to a known zero position of the machine table, and redefining that point as G92 X0 Y0. For example, wherever the machine homes to after startup would normally be the zero position of the machine coordinate system (G53) and G92 should also be zero(ed) at that position. But you have to explicitly zero G92 with a command of X0 Y0, which takes place immediately at the current machine position. Don't zero out the Z axis with G92, that will really screw things up, just the X and Y for what you are doing.

The big danger of using G92 occurs when you abort a program part way through, and then after a restart, if the control reads a G92 command at the aborted position, that becomes the new zero point. This immediately gets the program running in the wrong place relative to the work zero and fixtures, etc. Bad news.
 
If you are using a Cam system make your 2 parts as an assembly so the 2 parts in the same vise are your G54 then 2 parts G55... That way you only need 4 work coordinates. Maybe you could do the same with how ever else you are programming the machine.
 
If you use G92, you will have to "unuse it" to keep track of where you are on the machine.

G92 is great for making a SINGLE part on a VMC where you keep changing tools and don't want to be bothered setting up offsets. I use it all the time.

But it can cause far more grief than you would want in the event of a restart or incomplete program cycle.
 
No experienced programmer would recommend the use of G92 or G50 (on a lathe), if the machine is macro-enabled.
These are primitive codes. But old habits die hard.
Tony's method is the best. The other way can be to toggle external offset between 0 and 2.55, if you do not want to disturb G54 etc. Ext X is #5201
One way to clear G92/G50 is to cycle power.
 
No experienced programmer would recommend the use of G92 or G50 (on a lathe), if the machine is macro-enabled.
These are primitive codes. But old habits die hard.
Tony's method is the best. The other way can be to toggle external offset between 0 and 2.55, if you do not want to disturb G54 etc. Ext X is #5201
One way to clear G92/G50 is to cycle power.

I dare say no one would opt to use G92 out of habit, because it can be a PITA to babysit it :D But if one completely understands what it is doing, then it can be safely implemented on occasion. For example, on older lathe controls, it can be handy to modify the Z datum with G92 when doing multiple parts from a single chucking of a long bar.

Modern controllers typically have the G53 coordinate system available in the background, so that you can command a move to zero in G53 and then reset G92 at that location, thereby cancelling its effect on all the work offsets.
 
I'm running a job where I set up 8 blanks (two per vice) and mill each one the same. My mill only has 6 work coordinates (G54-G59) so what I'd like to do is machine one part at G54 and then a second at G54+X2.55, then do the same for G55-G57. How can I do this? I have the manual but it's not translated very well from Japanese (Hitachi Seiki). It looks like maybe I can use G540-G599? Or G92?

Does this look right?
(AFTER RUNNING PART AT G54)
G54
G0 X2.55 Y0
G92 X0 Y0
(REPEAT PROGRAM FROM G54)
G55
(RUN PROGRAM)
ETC.
ETC.
.
why wouldnt you just go to work offset screen if
G54
X0.
Y0.
Z0.
then make
G55
X2.55 or what ever you want
Y0.
Z0.
.
i guess i fail to see why you would need to do any other way. even if G54 X3.0099 it is just a 3 seconds to add the offset desired to current G54 X amount to the G55X on work offset screen
.
you do know how to use work offset screen dont you ???
 
While I don't recommend the use of G92 in program, I would think that if you did use it, you could use G28 to go HOME to reset your values. Ass_u_ming that G28 works on most mills. (???)

I like Tony's approach - at least for reference.

Between all the options, I would just use G10 if so equipped tho. (G10 P0 X0 Y2.25)
You can then cancel it at any time in any position with a G10 P0 X0 Y0
In this case - you could run the four parts in the fwd station of your vises and then cycle the G10 and loop back and re-run.


-----------------

Think Snow Eh!
Ox
 
With system variables available, G10 is another code which may be gradually phased out.
With G10, there is difficulty in reverting back to the original values. One cannot read the existing values which can only be overwritten. Of course, it can be managed in many cases, but the method of system variables is often easier.
 
I don't get it. G52 does exactly what the OP wants, doesn't use up work offsets, is cancellable at any time. Why are we talking about shifting the original offsets (God help you if you have to exit the program mid run) or eve worse shifting the whole machine coordinate system around?
 
I don't get it. G52 does exactly what the OP wants, doesn't use up work offsets, is cancellable at any time. Why are we talking about shifting the original offsets (God help you if you have to exit the program mid run) or eve worse shifting the whole machine coordinate system around?


No experience with G52.
What does that doo?


For that matter - I have never heard of a G51, or 52 before.
But since there are apps for G50, 53, and 54+, there must have been an app for G51/G52 at some point, but never heard of them.

???



--------------------------

Think Snow Eh!
Ox
 
No experience with G52.
What does that doo?

G52 is Temporary Coordinate System Offset. I just recently learned about this from angelw (Bill). It is used to offset the current point by a given distance (positive or negative). When G52 is executed, the origin of the currently active coordinate system moves by the values given; the offset is applied relative to the Base Workshift Offset. So, if at G54X0. and G52 X2.55 is commanded, it will cause the X coordinate of the current point to be -2.55. It is cancelled by specifying Zero values for the axes involved, or by Reset depending on parameter setting.

Regards,
Paul
 
G52 used to be described by Fanuc to be "Child coordinate systems", where you could make a new "system" a certain distance from the active system. I use it for cutting multiple parts in sheets of plastic which may come in several different sizes. Methinks that resetting via M2 and/or M30, or control reset is a parameter change, IIRC. It's been a while since I fanucked.

M98P1000
G52X1.0
M98P1000
G52X2.0
M98P1000
G52Y-1.0
etc.

G52X0Y0
M01
 
For that matter - I have never heard of a G51, or 52 before.
But since there are apps for G50, 53, and 54+, there must have been an app for G51/G52 at some point, but never heard of them.



FWIW:

As taken from the CNC Cookbook online.

Step 4: Scaling and Mirroring: G51
Speaking of grandiose, how about being able to scale your part to a different size? You could make it much more grandiose by using G51 to scale it to 10x the size it was originally programmed in. You can also mirror the part in many g-code dialects by applying a minus sign to G51 or sometimes by using a different g-code.
Aside from making things much different in scale, there is value in making things slightly different in scale. Let's say your machine is equipped with an accurate digital touch probe that can measure things very accurately. Let's further assume you need to make a bore that is extremely accurate and that your part is held in a fixture that has a bore right on the fixture that you have painstakingly made accurate to extreme tolerances. Lastly, let's say that bore has to be 2.000 inches, plus 0.0001 and minus 0.0000. That's pretty tight!
Now here is a neat trick you can perform with the probe:
- Measure the bore with the probe. You know it measures within your tolerances to 2 inches at the normal inspection temperatures your customer will use. Let's say the probe reports a measurement of 1.9993. The hole is allowed to be a tenth larger, but cannot be smaller than 2 inches. So you're off by 0.0007" and need the hole to be larger.
- So, your g-code performs a little calculation. 0.0007" / 2.0000" is 0.00035. Now you know the correction factor that's needed.
- When you make your finish pass, use G51 to scale the finish pass to 1.00035x the coordinates that are in the g-code program.
Your part should come out extremely close!
That's the technique used in Renishaw's RAMTIC manufacturing, and it's a very powerful way to increase the accuracy of your machining operations.
With Step 4 complete, we're almost ready with a machine coordinate. All that is left is possible rotation.



--------------------------

Think Snow Eh!
Ox
 








 
Back
Top