hexagon logo

Composite true positions in Legacy

I'm being required to use Legacy GDT reporting for a program.
I haven't used legacy before and need help on how to measure/report these composite true positions using it.

Datum A is a surface
Datum B is a bore
Datum C is a bore
I have my alignment set up to ABC.

In TP#1 how do I ignore C to get the AB alignment?
and how do I get just B for the composite?

In TP#2 How do I get the composite with no datums?

Can Legacy do MMC bonus or MMB datum shifts?


TP #1:

{"data-align":"none","data-size":"medium","data-tempid":"temp_22355_1648740249085_596"}
TP #2:

  {"data-align":"none","data-size":"medium","data-tempid":"temp_22356_1648740215078_727"}    ​​
​​
Parents
  • Cris_C Thank you! Your post is extremely helpful!
    The Best Fit Alignment was the piece I was missing and you laid it out very clearly.
    Appreciate you!


    Your welcome Lake Monster. I hope it all works out well for you.

    Some more thoughts that I had, which came up later. It is pretty rare that I see a fully unconstrained position DRF. In the example I gave, even if the lower segment of the composite position called for no datums, I would probably still constrain it to datum A (3 DOFs). I noticed from the code that I provided that the BF alignment rotated the Y-axis by just a little bit (.0001deg). That doesn't make sense to me as all the circles are on the same plane. In this case, doing a 2D BF with rotation would make sure it can't shift too much in wacky ways. I don't know what would be best for your part (I can't see the pictures you provided, I think they are being blocked by my company's web filters), but just be sure to look over the results and make sure they make sense. It may take a bit of tinkering.

    Also, I didn't do this in the code, but I suggest you check the option in the Legacy TP dialog window to report Deviations "Perpendicular to centerline". It didn't matter on my example, but It would matter if you have holes with different vectors used in the same set.

    One more thought on MMB. I figured out how to apply this for a set of hole using Legacy mode. This won't work for all situations, but I think this works properly for this example. In the Legacy Position Dialog box, Select the datums, define a tolerance on that datum (in this case I gave datum B a tolerance of +/-.002), and uncheck the box 'fit to datums' so it uses the current alignment rather than re-calculating the position for just the one hole. It will then apply bonus tolerance for datum B. The problem is that it isn't true MMB because it does not account for datum shift, but on this simple example where all the holes are an equal distance from the datum, I think it works fine. Just something you may want to tinker with.

    Here is how that looks in the Position dialog window. This is for reporting [Position|Ø.01(M)|A|B(M)]
    This is just for the 1st hole. You would need to repeat this for all the holes. When you select datums you can't just select all the holes at once.



    And here is the code. Since Datum B is at nominal, you can see that it applies an additional 0.002 bonus.
    Well, I guess you can see. The formatting doesn't show right on the forum.

    PLN_A =FEAT/PLANE,CARTESIAN,OUTLINE,NO,LEAST_SQR
    THEO/<0,0,0>,<0,0,1>
    ACTL/<0,0,0>,<0,0,1>
    CONSTR/PLANE,BF,PNT0,PNT5,PNT4,PNT3,PNT2,PNT1,,
    OUTLIER_REMOVAL/OFF,3
    FILTER/OFF,WAVELENGTH=0
    
    CIR_B =GENERIC/CIRCLE,DEPENDENT,CARTESIAN,OUT,$
    NOM/XYZ,<0,0,0>,$
    MEAS/XYZ,<0,0,0>,$
    NOM/IJK,<0,0,1>,$
    MEAS/IJK,<0,0,1>,$
    DIAMETER/0.5,0.5
    
    CIR_C =GENERIC/CIRCLE,DEPENDENT,CARTESIAN,OUT,$
    NOM/XYZ,<1,0,0>,$
    MEAS/XYZ,<1,0,0>,$
    NOM/IJK,<0,0,1>,$
    MEAS/IJK,<0,0,1>,$
    RADIUS/0.1,0.1
    
    CIR1 =GENERIC/CIRCLE,DEPENDENT,CARTESIAN,OUT,$
    NOM/XYZ,<0.5,0.866,0>,$
    MEAS/XYZ,<0.5,0.866,0>,$
    NOM/IJK,<0,0,1>,$
    MEAS/IJK,<0,0,1>,$
    RADIUS/0.1,0.1
    
    CIR2 =GENERIC/CIRCLE,DEPENDENT,CARTESIAN,OUT,$
    NOM/XYZ,<-0.5,0.866,0>,$
    MEAS/XYZ,<-0.5,0.866,0>,$
    NOM/IJK,<0,0,1>,$
    MEAS/IJK,<0,0,1>,$
    RADIUS/0.1,0.1
    
    CIR3 =GENERIC/CIRCLE,DEPENDENT,CARTESIAN,OUT,$
    NOM/XYZ,<-1,0,0>,$
    MEAS/XYZ,<-1.005,0.0005,0>,$
    NOM/IJK,<0,0,1>,$
    MEAS/IJK,<0,0,1>,$
    RADIUS/0.1,0.1
    
    CIR4 =GENERIC/CIRCLE,DEPENDENT,CARTESIAN,OUT,$
    NOM/XYZ,<-0.5,-0.866,0>,$
    MEAS/XYZ,<-0.5,-0.866,0>,$
    NOM/IJK,<0,0,1>,$
    MEAS/IJK,<0,0,1>,$
    RADIUS/0.1,0.1
    
    CIR5 =GENERIC/CIRCLE,DEPENDENT,CARTESIAN,OUT,$
    NOM/XYZ,<0.5,-0.866,0>,$
    MEAS/XYZ,<0.5,-0.866,0>,$
    NOM/IJK,<0,0,1>,$
    MEAS/IJK,<0,0,1>,$
    RADIUS/0.1,0.1
    
    ALN_ABC =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
    ALIGNMENT/LEVEL,ZPLUS,PLN_A
    ALIGNMENT/ROTATE_CIRCLE,XPLUS,TO,CIR_B,AND,CIR_C,ABOUT,ZPLUS
    ALIGNMENT/TRANS,ZAXIS,PLN_A
    ALIGNMENT/TRANS,XAXIS,CIR_B
    ALIGNMENT/TRANS,YAXIS,CIR_B
    ALIGNMENT/END
    
    A5 =ALIGNMENT/START,RECALL:ALN_ABC,LIST=YES
    ALIGNMENT/BF2D,ZPLUS,MIN_MAX,CREATE WEIGHTS=NO,ROTONLY,0,0,0,359.9715
    ITERATEANDREPIERCECAD=NO
    Deviation Threshold=0.02
    SHOWALLINPUTS=YES,SHOWALLPARAMS=YES
    ID=CIR_C,Circles,LOC1,1,YES
    ID=CIR5,Circles,LOC6,1,YES
    ID=CIR1,Circles,LOC2,1,YES
    ID=CIR2,Circles,LOC3,1,YES
    ID=CIR3,Circles,LOC4,1,YES
    ID=CIR4,Circles,LOC5,1,YES
    ID=
    ALIGNMENT/END
    
    WORKPLANE/ZPLUS
    
    DIM LOC1= POSITION OF CIRCLE CIR_C UNITS=IN ,$
    GRAPH=OFF TEXT=OFF MULT=70.00 OUTPUT=BOTH FIT TO DATUMS=OFF DEV PERPEN CENTERLINE=ON DISPLAY=DIAMETER
    AX NOMINAL MEAS +TOL -TOL BONUS DEV DEVANG OUTTOL
    X 1.0000 1.0000 0.0000
    Y 0.0000 0.0005 0.0005
    DF 0.2000 0.2000 0.0050 0.0050 0.0050 0.0000 0.0000 #
    D1 PLANE PLN_A AT RFS
    D2 0.5000 0.5000 0.0020 0.0020 CIRCLE CIR_B AT RFS
    TP MMC 0.0010 0.0100 0.0050 0.0010 90.0143 0.0000 #
    END OF DIMENSION LOC1
    
    DIM LOC2= POSITION OF CIRCLE CIR1 UNITS=IN ,$
    GRAPH=OFF TEXT=OFF MULT=70.00 OUTPUT=BOTH FIT TO DATUMS=OFF DEV PERPEN CENTERLINE=OFF DISPLAY=DIAMETER
    AX NOMINAL MEAS +TOL -TOL BONUS DEV DEVANG OUTTOL
    X 0.5000 0.4996 -0.0004
    Y 0.8660 0.8663 0.0002
    DF 0.2000 0.2000 0.0050 0.0050 0.0050 0.0000 0.0000 #
    D1 PLANE PLN_A AT RFS
    D2 0.5000 0.5000 0.0020 0.0020 CIRCLE CIR_B AT RFS
    TP MMC 0.0010 0.0100 0.0050 0.0010 150.0143 0.0000 #
    END OF DIMENSION LOC2
    
    DIM LOC3= POSITION OF CIRCLE CIR2 UNITS=IN ,$
    GRAPH=OFF TEXT=OFF MULT=70.00 OUTPUT=BOTH FIT TO DATUMS=OFF DEV PERPEN CENTERLINE=OFF DISPLAY=DIAMETER
    AX NOMINAL MEAS +TOL -TOL BONUS DEV DEVANG OUTTOL
    X -0.5000 -0.5004 -0.0004
    Y 0.8660 0.8658 -0.0002
    DF 0.2000 0.2000 0.0050 0.0050 0.0050 0.0000 0.0000 #
    D1 PLANE PLN_A AT RFS
    D2 0.5000 0.5000 0.0020 0.0020 CIRCLE CIR_B AT RFS
    TP MMC 0.0010 0.0100 0.0050 0.0010 -149.9857 0.0000 #
    END OF DIMENSION LOC3
    
    DIM LOC4= POSITION OF CIRCLE CIR3 UNITS=IN ,$
    GRAPH=OFF TEXT=OFF MULT=70.00 OUTPUT=BOTH FIT TO DATUMS=OFF DEV PERPEN CENTERLINE=OFF DISPLAY=DIAMETER
    AX NOMINAL MEAS +TOL -TOL BONUS DEV DEVANG OUTTOL
    X -1.0000 -1.0050 -0.0050
    Y 0.0000 0.0000 0.0000
    DF 0.2000 0.2000 0.0050 0.0050 0.0050 0.0000 0.0000 #
    D1 PLANE PLN_A AT RFS
    D2 0.5000 0.5000 0.0020 0.0020 CIRCLE CIR_B AT RFS
    TP MMC 0.0100 0.0100 0.0050 0.0100 -179.9978 0.0000 #
    END OF DIMENSION LOC4
    
    DIM LOC5= POSITION OF CIRCLE CIR4 UNITS=IN ,$
    GRAPH=OFF TEXT=OFF MULT=70.00 OUTPUT=BOTH FIT TO DATUMS=OFF DEV PERPEN CENTERLINE=OFF DISPLAY=DIAMETER
    AX NOMINAL MEAS +TOL -TOL BONUS DEV DEVANG OUTTOL
    X -0.5000 -0.4996 0.0004
    Y -0.8660 -0.8663 -0.0002
    DF 0.2000 0.2000 0.0050 0.0050 0.0050 0.0000 0.0000 #
    D1 PLANE PLN_A AT RFS
    D2 0.5000 0.5000 0.0020 0.0020 CIRCLE CIR_B AT RFS
    TP MMC 0.0010 0.0100 0.0050 0.0010 -29.9857 0.0000 #
    END OF DIMENSION LOC5
    
    DIM LOC6= POSITION OF CIRCLE CIR5 UNITS=IN ,$
    GRAPH=OFF TEXT=OFF MULT=70.00 OUTPUT=BOTH FIT TO DATUMS=OFF DEV PERPEN CENTERLINE=OFF DISPLAY=DIAMETER
    AX NOMINAL MEAS +TOL -TOL BONUS DEV DEVANG OUTTOL
    X 0.5000 0.5004 0.0004
    Y -0.8660 -0.8658 0.0002
    DF 0.2000 0.2000 0.0050 0.0050 0.0050 0.0000 0.0000 #
    D1 PLANE PLN_A AT RFS
    D2 0.5000 0.5000 0.0020 0.0020 CIRCLE CIR_B AT RFS
    TP MMC 0.0010 0.0100 0.0050 0.0010 30.0143 0.0000 #
    END OF DIMENSION LOC6
    
    




Reply
  • Cris_C Thank you! Your post is extremely helpful!
    The Best Fit Alignment was the piece I was missing and you laid it out very clearly.
    Appreciate you!


    Your welcome Lake Monster. I hope it all works out well for you.

    Some more thoughts that I had, which came up later. It is pretty rare that I see a fully unconstrained position DRF. In the example I gave, even if the lower segment of the composite position called for no datums, I would probably still constrain it to datum A (3 DOFs). I noticed from the code that I provided that the BF alignment rotated the Y-axis by just a little bit (.0001deg). That doesn't make sense to me as all the circles are on the same plane. In this case, doing a 2D BF with rotation would make sure it can't shift too much in wacky ways. I don't know what would be best for your part (I can't see the pictures you provided, I think they are being blocked by my company's web filters), but just be sure to look over the results and make sure they make sense. It may take a bit of tinkering.

    Also, I didn't do this in the code, but I suggest you check the option in the Legacy TP dialog window to report Deviations "Perpendicular to centerline". It didn't matter on my example, but It would matter if you have holes with different vectors used in the same set.

    One more thought on MMB. I figured out how to apply this for a set of hole using Legacy mode. This won't work for all situations, but I think this works properly for this example. In the Legacy Position Dialog box, Select the datums, define a tolerance on that datum (in this case I gave datum B a tolerance of +/-.002), and uncheck the box 'fit to datums' so it uses the current alignment rather than re-calculating the position for just the one hole. It will then apply bonus tolerance for datum B. The problem is that it isn't true MMB because it does not account for datum shift, but on this simple example where all the holes are an equal distance from the datum, I think it works fine. Just something you may want to tinker with.

    Here is how that looks in the Position dialog window. This is for reporting [Position|Ø.01(M)|A|B(M)]
    This is just for the 1st hole. You would need to repeat this for all the holes. When you select datums you can't just select all the holes at once.



    And here is the code. Since Datum B is at nominal, you can see that it applies an additional 0.002 bonus.
    Well, I guess you can see. The formatting doesn't show right on the forum.

    PLN_A =FEAT/PLANE,CARTESIAN,OUTLINE,NO,LEAST_SQR
    THEO/<0,0,0>,<0,0,1>
    ACTL/<0,0,0>,<0,0,1>
    CONSTR/PLANE,BF,PNT0,PNT5,PNT4,PNT3,PNT2,PNT1,,
    OUTLIER_REMOVAL/OFF,3
    FILTER/OFF,WAVELENGTH=0
    
    CIR_B =GENERIC/CIRCLE,DEPENDENT,CARTESIAN,OUT,$
    NOM/XYZ,<0,0,0>,$
    MEAS/XYZ,<0,0,0>,$
    NOM/IJK,<0,0,1>,$
    MEAS/IJK,<0,0,1>,$
    DIAMETER/0.5,0.5
    
    CIR_C =GENERIC/CIRCLE,DEPENDENT,CARTESIAN,OUT,$
    NOM/XYZ,<1,0,0>,$
    MEAS/XYZ,<1,0,0>,$
    NOM/IJK,<0,0,1>,$
    MEAS/IJK,<0,0,1>,$
    RADIUS/0.1,0.1
    
    CIR1 =GENERIC/CIRCLE,DEPENDENT,CARTESIAN,OUT,$
    NOM/XYZ,<0.5,0.866,0>,$
    MEAS/XYZ,<0.5,0.866,0>,$
    NOM/IJK,<0,0,1>,$
    MEAS/IJK,<0,0,1>,$
    RADIUS/0.1,0.1
    
    CIR2 =GENERIC/CIRCLE,DEPENDENT,CARTESIAN,OUT,$
    NOM/XYZ,<-0.5,0.866,0>,$
    MEAS/XYZ,<-0.5,0.866,0>,$
    NOM/IJK,<0,0,1>,$
    MEAS/IJK,<0,0,1>,$
    RADIUS/0.1,0.1
    
    CIR3 =GENERIC/CIRCLE,DEPENDENT,CARTESIAN,OUT,$
    NOM/XYZ,<-1,0,0>,$
    MEAS/XYZ,<-1.005,0.0005,0>,$
    NOM/IJK,<0,0,1>,$
    MEAS/IJK,<0,0,1>,$
    RADIUS/0.1,0.1
    
    CIR4 =GENERIC/CIRCLE,DEPENDENT,CARTESIAN,OUT,$
    NOM/XYZ,<-0.5,-0.866,0>,$
    MEAS/XYZ,<-0.5,-0.866,0>,$
    NOM/IJK,<0,0,1>,$
    MEAS/IJK,<0,0,1>,$
    RADIUS/0.1,0.1
    
    CIR5 =GENERIC/CIRCLE,DEPENDENT,CARTESIAN,OUT,$
    NOM/XYZ,<0.5,-0.866,0>,$
    MEAS/XYZ,<0.5,-0.866,0>,$
    NOM/IJK,<0,0,1>,$
    MEAS/IJK,<0,0,1>,$
    RADIUS/0.1,0.1
    
    ALN_ABC =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
    ALIGNMENT/LEVEL,ZPLUS,PLN_A
    ALIGNMENT/ROTATE_CIRCLE,XPLUS,TO,CIR_B,AND,CIR_C,ABOUT,ZPLUS
    ALIGNMENT/TRANS,ZAXIS,PLN_A
    ALIGNMENT/TRANS,XAXIS,CIR_B
    ALIGNMENT/TRANS,YAXIS,CIR_B
    ALIGNMENT/END
    
    A5 =ALIGNMENT/START,RECALL:ALN_ABC,LIST=YES
    ALIGNMENT/BF2D,ZPLUS,MIN_MAX,CREATE WEIGHTS=NO,ROTONLY,0,0,0,359.9715
    ITERATEANDREPIERCECAD=NO
    Deviation Threshold=0.02
    SHOWALLINPUTS=YES,SHOWALLPARAMS=YES
    ID=CIR_C,Circles,LOC1,1,YES
    ID=CIR5,Circles,LOC6,1,YES
    ID=CIR1,Circles,LOC2,1,YES
    ID=CIR2,Circles,LOC3,1,YES
    ID=CIR3,Circles,LOC4,1,YES
    ID=CIR4,Circles,LOC5,1,YES
    ID=
    ALIGNMENT/END
    
    WORKPLANE/ZPLUS
    
    DIM LOC1= POSITION OF CIRCLE CIR_C UNITS=IN ,$
    GRAPH=OFF TEXT=OFF MULT=70.00 OUTPUT=BOTH FIT TO DATUMS=OFF DEV PERPEN CENTERLINE=ON DISPLAY=DIAMETER
    AX NOMINAL MEAS +TOL -TOL BONUS DEV DEVANG OUTTOL
    X 1.0000 1.0000 0.0000
    Y 0.0000 0.0005 0.0005
    DF 0.2000 0.2000 0.0050 0.0050 0.0050 0.0000 0.0000 #
    D1 PLANE PLN_A AT RFS
    D2 0.5000 0.5000 0.0020 0.0020 CIRCLE CIR_B AT RFS
    TP MMC 0.0010 0.0100 0.0050 0.0010 90.0143 0.0000 #
    END OF DIMENSION LOC1
    
    DIM LOC2= POSITION OF CIRCLE CIR1 UNITS=IN ,$
    GRAPH=OFF TEXT=OFF MULT=70.00 OUTPUT=BOTH FIT TO DATUMS=OFF DEV PERPEN CENTERLINE=OFF DISPLAY=DIAMETER
    AX NOMINAL MEAS +TOL -TOL BONUS DEV DEVANG OUTTOL
    X 0.5000 0.4996 -0.0004
    Y 0.8660 0.8663 0.0002
    DF 0.2000 0.2000 0.0050 0.0050 0.0050 0.0000 0.0000 #
    D1 PLANE PLN_A AT RFS
    D2 0.5000 0.5000 0.0020 0.0020 CIRCLE CIR_B AT RFS
    TP MMC 0.0010 0.0100 0.0050 0.0010 150.0143 0.0000 #
    END OF DIMENSION LOC2
    
    DIM LOC3= POSITION OF CIRCLE CIR2 UNITS=IN ,$
    GRAPH=OFF TEXT=OFF MULT=70.00 OUTPUT=BOTH FIT TO DATUMS=OFF DEV PERPEN CENTERLINE=OFF DISPLAY=DIAMETER
    AX NOMINAL MEAS +TOL -TOL BONUS DEV DEVANG OUTTOL
    X -0.5000 -0.5004 -0.0004
    Y 0.8660 0.8658 -0.0002
    DF 0.2000 0.2000 0.0050 0.0050 0.0050 0.0000 0.0000 #
    D1 PLANE PLN_A AT RFS
    D2 0.5000 0.5000 0.0020 0.0020 CIRCLE CIR_B AT RFS
    TP MMC 0.0010 0.0100 0.0050 0.0010 -149.9857 0.0000 #
    END OF DIMENSION LOC3
    
    DIM LOC4= POSITION OF CIRCLE CIR3 UNITS=IN ,$
    GRAPH=OFF TEXT=OFF MULT=70.00 OUTPUT=BOTH FIT TO DATUMS=OFF DEV PERPEN CENTERLINE=OFF DISPLAY=DIAMETER
    AX NOMINAL MEAS +TOL -TOL BONUS DEV DEVANG OUTTOL
    X -1.0000 -1.0050 -0.0050
    Y 0.0000 0.0000 0.0000
    DF 0.2000 0.2000 0.0050 0.0050 0.0050 0.0000 0.0000 #
    D1 PLANE PLN_A AT RFS
    D2 0.5000 0.5000 0.0020 0.0020 CIRCLE CIR_B AT RFS
    TP MMC 0.0100 0.0100 0.0050 0.0100 -179.9978 0.0000 #
    END OF DIMENSION LOC4
    
    DIM LOC5= POSITION OF CIRCLE CIR4 UNITS=IN ,$
    GRAPH=OFF TEXT=OFF MULT=70.00 OUTPUT=BOTH FIT TO DATUMS=OFF DEV PERPEN CENTERLINE=OFF DISPLAY=DIAMETER
    AX NOMINAL MEAS +TOL -TOL BONUS DEV DEVANG OUTTOL
    X -0.5000 -0.4996 0.0004
    Y -0.8660 -0.8663 -0.0002
    DF 0.2000 0.2000 0.0050 0.0050 0.0050 0.0000 0.0000 #
    D1 PLANE PLN_A AT RFS
    D2 0.5000 0.5000 0.0020 0.0020 CIRCLE CIR_B AT RFS
    TP MMC 0.0010 0.0100 0.0050 0.0010 -29.9857 0.0000 #
    END OF DIMENSION LOC5
    
    DIM LOC6= POSITION OF CIRCLE CIR5 UNITS=IN ,$
    GRAPH=OFF TEXT=OFF MULT=70.00 OUTPUT=BOTH FIT TO DATUMS=OFF DEV PERPEN CENTERLINE=OFF DISPLAY=DIAMETER
    AX NOMINAL MEAS +TOL -TOL BONUS DEV DEVANG OUTTOL
    X 0.5000 0.5004 0.0004
    Y -0.8660 -0.8658 0.0002
    DF 0.2000 0.2000 0.0050 0.0050 0.0050 0.0000 0.0000 #
    D1 PLANE PLN_A AT RFS
    D2 0.5000 0.5000 0.0020 0.0020 CIRCLE CIR_B AT RFS
    TP MMC 0.0010 0.0100 0.0050 0.0010 30.0143 0.0000 #
    END OF DIMENSION LOC6
    
    




Children
No Data