586,058 active members*
4,386 visitors online*
Register for free
Login

Thread: using g10

Results 1 to 11 of 11
  1. #1
    Join Date
    Apr 2009
    Posts
    21

    using g10

    When using G10 to keep resetting my Y work zero how do I reset it back to where it came from??

  2. #2
    Join Date
    Apr 2005
    Posts
    1778
    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

  3. #3
    Join Date
    Jun 2008
    Posts
    1511
    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

  4. #4
    Join Date
    Nov 2006
    Posts
    174

    G52

    ....or you could use G52 "work shift". Depends how you are using G10.

  5. #5
    Join Date
    Apr 2009
    Posts
    21
    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.

  6. #6
    Join Date
    Jun 2008
    Posts
    1511
    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

  7. #7
    Join Date
    Apr 2005
    Posts
    1778
    Here is an example of how I use G54 and G55 with G10:

    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)
    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.

    Alan

  8. #8
    Join Date
    Nov 2006
    Posts
    174
    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.

  9. #9
    Join Date
    Apr 2009
    Posts
    21
    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.

  10. #10
    Join Date
    Mar 2005
    Posts
    988
    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....

  11. #11
    Join Date
    Nov 2006
    Posts
    174

    G52 loop

    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

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •