587,184 active members*
3,882 visitors online*
Register for free
Login
Results 1 to 13 of 13
  1. #1
    Join Date
    Jan 2012
    Posts
    789

    Fixturing question

    I know this isn't a Tormach-specific question, but you all are so helpful, that I figured this was as good a place as any!

    The situation: I machine several parts for one of my products, that require many different fixture positions. So I have g59p8 through g59p12 set up for these different operations. I am using a vise, and I have a jig made to set each new piece exactly in the vise. So even though I'm using different size stock material for different parts, they are all referenced to the non-movable vise jaw.

    Fairly regularly I need to remove the vise to do larger machining on the bed. When I put the vise back on, I straighten it and reset G54 (What I use for my vise home) to the new location.
    Right now, I do the math for my 5 fixture locations g59p8-12 and enter them into the fixture table, since they are all derivative of the vise location. (E.g., -3.25" of g54 in X, +.788" in Z)

    It seems to me that there must be either a better way of doing this in G-code, or a maybe a way to write a macro in Mach3 to automate the repopulation of the fixture table.
    Any suggestions? Thanks.

  2. #2
    Join Date
    Jan 2012
    Posts
    51
    I would start with Figure 10.1 in the Mach3 users guide (Mach3Mill_1.84.pdf is what I have). It lists the parameter numbers for the work offset table. See if you can successfully write or read to the table, then figure out what G59P8 parameter number is.

    Geo

  3. #3
    Join Date
    Jul 2005
    Posts
    12177
    Read up on G52 if it is recognised by Mach3.

    G52 allows you to set secondary work zeroes that are referenced to the active work zero. For instance your example: -3.25" of g54 in X, +.788" in Z would simply be written as this line at the start of the program; G52 X-3.25 Z0.788.

    So in place of your G59p8, etc commands you would have G52 Xsomething Ysomething Zsomething.
    An open mind is a virtue...so long as all the common sense has not leaked out.

  4. #4
    Join Date
    Jan 2012
    Posts
    789
    Oooh, that sounds nice!
    I'll give that a go! It seems that Mach3 supports it. Thanks!

  5. #5
    Join Date
    Dec 2011
    Posts
    316
    tbaker2500

    Further to Geof's comment, G52 is supported and works so well I generally only use two offsets. G54 for initial referencing the mill and G55 for virtually everything else.

    I have included a sample drilling program which demonstrates this, using two parts. (Changed from .tap to .txt to permit uploading). One is setup to the left rear jaw of the vise and the other to the right rear jaw of the vise. Knowing the width of the jaw it is a simple calculation.
    For part two, [Jaw width - part width = start position of second part].

    Then part two = part 1 + G52 Offset. In the included example, the calculation accounts for the fact that part 2 is a mirror image of part 1. If the part was not mirrored you could for part 2, simply enter G52 X 3.762 [Jaw width 6.262 - Part width 2.5 = 3.762] and use part 1 X measurements.

    For Z, I have arbitrarily choosen 2" above the bottom of the vise jaw. This is for simplicity, as it allows me to place a 1x2x4 block in the jaw for touching off my G55 offsets.


    The program also allows for inputting at run time an additional additive offset (+/-). This is usefull if the part requires further end finishing or you simply wish to use a smaller/larger part size. The program uses three variables (114 [X], 115 [Y], 116 [Z]) to provide the additive capability. e.g. to move the X offset 0.1 to the right, when the program requests additional offsets, on the midi line enter #114+0.1. To move it left enter -0.1.

    Another frequent use is for air testing a program. When requested to enter additional offsets, type #116=.5 or nnn. This will raise the Z axis by 1/2" or nnn and you can observe the path at a safe Z height.


    The program also allows for a constant tool change or safety start/stop position. By entering the variables 501 (X), 502 (Y), 503 (Z), once into the midi line, Mach will rembember these variables forever more. (unless you re-load or update Mach). Makes coding safe start stop positions easy and consistent.

    John
    Attached Files Attached Files

  6. #6
    Join Date
    Jan 2012
    Posts
    789
    Wow, thanks John. A lot to digest in there, that shows me some really great tricks!

  7. #7
    Join Date
    Dec 2011
    Posts
    316
    tbaker2500

    Something to contemplate other than ones navel whilst on the throne.

    Enjoy.

    John

  8. #8
    Join Date
    Mar 2009
    Posts
    199
    would it be possible to create one fixture to hold all the parts on a large plate with a single offset?

  9. #9
    Join Date
    Jan 2012
    Posts
    789
    I could hold 2 of the 5 ops I need, but otherwise I like your thinking. The part is 12"x by 3"y plus I need to surface the outside. So I couldn't quite fit 3 parts in the y.

  10. #10
    Join Date
    Dec 2011
    Posts
    316
    howecnc. tbaker2500

    Yes. The choice is yours. Using a drilling subroutine:

    If you use a single offset then each location must be uniquely identfied.
    e.g.
    Part 1
    G0 X1 Y1
    M98 P1000 ( Call Drill Subroutine )

    Part 2
    G0 X4 Y1
    M98 P1000 ( Call Drill Subroutine )

    Part 3
    G0 X1 Y2
    M98 P1000 ( Call Drill Subroutine )

    Part 4
    G0 X4 Y2
    M98 P1000 ( Call Drill Subroutine )

    O1000 ( Drilling Subroutine )
    G91 ( Incremental Mode )
    G73 X0 Y0............

    If you need to change X to 1.1, then each G0 X location requires changing.


    Using G52 offset for example:


    Part 1
    G52 X0 Y0
    M98 P1000 ( Call Drill Subroutine )

    Part 2
    G52 X3 Y0
    M98 P1000 ( Call Drill Subroutine )


    Part 3
    G52 X0 Y1
    M98 P1000 ( Call Drill Subroutine )

    Part 4
    G52 X3 Y1
    M98 P1000 ( Call Drill Subroutine )

    O1000 ( Drilling Subroutine )
    G90 ( Absolute Mode)
    G73 X1 Y1............

    Advantages:
    1. G73... Remain the same for all parts.
    2. If X or Y change only one line need be changed (G73 X1.1...... ).
    3. If you change the location on the fixture, only that G52 offset need be changed.

    John

  11. #11
    Quote Originally Posted by UniqueMachining View Post
    Using G52 offset for example:


    Part 1
    G52 X0 Y0
    M98 P1000 ( Call Drill Subroutine )

    Part 2
    G52 X3 Y0
    M98 P1000 ( Call Drill Subroutine )


    Part 3
    G52 X0 Y1
    M98 P1000 ( Call Drill Subroutine )

    Part 4
    G52 X3 Y1
    M98 P1000 ( Call Drill Subroutine )

    O1000 ( Drilling Subroutine )
    G90 ( Absolute Mode)
    G73 X1 Y1............

    Advantages:
    1. G73... Remain the same for all parts.
    2. If X or Y change only one line need be changed (G73 X1.1...... ).
    3. If you change the location on the fixture, only that G52 offset need be changed.

    John
    to go one step further I'd suggest using variables for the g52 positions . For example lets say that we've got two even rows of 6 parts (12 in total) , And we need to run a number of tool paths with various tools . It is much cleaner and easier to edit positions when macro variables are used . If a position is out then one number needs to be changed , rather than a bunch of them which could lead to trouble if a guy misses changing something .
    below is brief but to the point

    #101= -6.(x position 1)
    #111= -4.(x position 2)
    #121= -2.(x position 3)
    #131= 2.(x position 4)
    #141= 4.(x position 5)
    #151= 6.(x position 6)

    #102= -5. (y position back row)
    #112= -10. (y position front row)

    #103= -2.346 (z shift)


    (cut profile 3/4 end mill)

    (back row)
    g52x#101y#102z#103
    m97p1000
    g52x#111y#102z#103
    m97p1000
    g52x#121y#102z#103
    m97p1000
    g52x#131y#102z#103
    m97p1000
    g52x#141y#102z#103
    m97p1000
    g52x#151y#102z#103
    m97p1000

    (front row)
    g52x#101y#112z#103
    m97p1000
    g52x#111y#122z#103
    m97p1000
    g52x#121y#122z#103
    m97p1000
    g52x#131y#122z#103
    m97p1000
    g52x#141y#122z#103
    m97p1000
    g52x#151y#122z#103
    m97p1000

    (pocket 1/2' end mill)

    (back row)
    g52x#101y#102z#103
    m97p2000
    g52x#111y#102z#103
    m97p2000
    g52x#121y#102z#103
    m97p2000
    g52x#131y#102z#103
    m97p2000
    g52x#141y#102z#103
    m97p2000
    g52x#151y#102z#103
    m97p2000

    (front row)
    g52x#101y#112z#103
    m97p2000
    g52x#111y#122z#103
    m97p2000
    g52x#121y#122z#103
    m97p2000
    g52x#131y#122z#103
    m97p2000
    g52x#141y#122z#103
    m97p2000
    g52x#151y#122z#103
    m97p2000

    and so on
    and so on

    If all positions are good , but , because someone screwed up the fixture and position 5 in the back is off by .01 on the x , then a bit more in depth but basic editing would be necessary and position 5 could be shifted the difference like so
    g52x#101y#112z#103
    m97p1000
    g52x#111y#122z#103
    m97p1000
    g52x#121y#122z#103
    m97p1000
    g52x#131y#122z#103
    m97p1000
    g52x[#141+.01] y#122z#103 (position 5 changed)
    m97p1000
    g52x#151y#122z#103
    m97p1000
    A poet knows no boundary yet he is bound to the boundaries of ones own mind !! ........

  12. #12
    Join Date
    Dec 2011
    Posts
    316
    dirtsap

    Great example of the many uses for variables.

    I am assuming that the users here are using Mach3 but it looks like your code is for another control.

    Mach does supports M98 but to the best of my knowledge not M97.

    Also noticed you were using variable #151.

    I have experimented with variables and ran into unpredictable results when using them outside of the ones specifically set aside for user's.
    Understandable as Mach is using them its own for internal use.

    If I stick to user variables only no probem.

    So far The only variables I use are:

    1-33........Program Variables
    100-149...Session Variables
    500-531...Permanent Variables

    I can't remember where I found definition of the user variables otherwise I would give credit where due.

    John

  13. #13
    it's a work day and I'm in haas mode , m97 can be changed to m98 and variables can be changed , anyone who does their homework can easily figure out the necessary changes . Otherwise the format works perfectly fine in mach
    A poet knows no boundary yet he is bound to the boundaries of ones own mind !! ........

Similar Threads

  1. Fixturing Advice
    By muddawg in forum Open Source CNC Machine Designs
    Replies: 6
    Last Post: 04-27-2012, 09:35 AM
  2. New to 4 axis fixturing
    By m-134b in forum Work Fixtures / Hold-Down Solutions
    Replies: 5
    Last Post: 02-01-2010, 06:19 PM
  3. Tooling and fixturing..
    By cruizer67 in forum Tormach Personal CNC Mill
    Replies: 24
    Last Post: 06-30-2009, 10:56 PM
  4. Fixturing issue
    By stebanski in forum Work Fixtures / Hold-Down Solutions
    Replies: 16
    Last Post: 06-28-2007, 12:22 PM

Posting Permissions

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