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
  • For all I know, there may be an easier way to do this, but the way I tend to report composite positions using Legacy dimensions is by using best fit alignments.

    As an example, let’s consider a really simple part. Something flat with a center hole and a bolt hole circle around it. We’ll call the plane Datum A, the center hole Datum B, and the hole at the 0deg orientation Datum C.



    To report the position to AB, an under constrained DRF, I’d first align to ABC in the normal fashion. Then create a best fit alignment that recalls the ABC alignment. When creating the best fit alignment, select all the features that are going to be reported and select any degrees of freedom that are not constrained by the DRF. In this case all the DOFs are constrained except Z axis rotation. Ideally, you would use the Max/Min fit to support the ASME or ISO standards, but that is not supported by all combinations of DOFs, so sometimes you have to settle for a Least Squares fit.

    For this example I purposely shifted CIR3 by 0.005” in both X and Y. When the calculate button is pressed you will see the largest deviation on that circle and a small amount on the others.



    Then you report the hole positions using legacy reporting. Below is a graph of the deviations shown in the Graphics Display Window. Below that is the code which includes the reported values. You will see that MMC is applied. MMB could be applied to a single hole, but not to a set of holes (as far as I know). In any case, the way legacy reporting calculates MMB is a little sketchy.



    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,,1,YES
    ID=CIR5,Circles,,1,YES
    ID=CIR1,Circles,,1,YES
    ID=CIR2,Circles,,1,YES
    ID=CIR3,Circles,,1,YES
    ID=CIR4,Circles,,1,YES
    ID=
    ALIGNMENT/END
    
    WORKPLANE/ZPLUS
    DIM LOC1= POSITION OF CIRCLE CIR_C UNITS=IN ,$
    GRAPH=ON TEXT=OFF MULT=50.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.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 #
    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=ON TEXT=OFF MULT=50.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 #
    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=ON TEXT=OFF MULT=50.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 #
    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=ON TEXT=OFF MULT=50.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 #
    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=ON TEXT=OFF MULT=50.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 #
    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=ON TEXT=OFF MULT=50.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 #
    TP MMC 0.0010 0.0100 0.0050 0.0010 30.0143 0.0000 #
    END OF DIMENSION LOC6
    


    I will try to provide an example for full unconstrained soon, but there is a limit to how many pictures you can put in one post.








Reply
  • For all I know, there may be an easier way to do this, but the way I tend to report composite positions using Legacy dimensions is by using best fit alignments.

    As an example, let’s consider a really simple part. Something flat with a center hole and a bolt hole circle around it. We’ll call the plane Datum A, the center hole Datum B, and the hole at the 0deg orientation Datum C.



    To report the position to AB, an under constrained DRF, I’d first align to ABC in the normal fashion. Then create a best fit alignment that recalls the ABC alignment. When creating the best fit alignment, select all the features that are going to be reported and select any degrees of freedom that are not constrained by the DRF. In this case all the DOFs are constrained except Z axis rotation. Ideally, you would use the Max/Min fit to support the ASME or ISO standards, but that is not supported by all combinations of DOFs, so sometimes you have to settle for a Least Squares fit.

    For this example I purposely shifted CIR3 by 0.005” in both X and Y. When the calculate button is pressed you will see the largest deviation on that circle and a small amount on the others.



    Then you report the hole positions using legacy reporting. Below is a graph of the deviations shown in the Graphics Display Window. Below that is the code which includes the reported values. You will see that MMC is applied. MMB could be applied to a single hole, but not to a set of holes (as far as I know). In any case, the way legacy reporting calculates MMB is a little sketchy.



    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,,1,YES
    ID=CIR5,Circles,,1,YES
    ID=CIR1,Circles,,1,YES
    ID=CIR2,Circles,,1,YES
    ID=CIR3,Circles,,1,YES
    ID=CIR4,Circles,,1,YES
    ID=
    ALIGNMENT/END
    
    WORKPLANE/ZPLUS
    DIM LOC1= POSITION OF CIRCLE CIR_C UNITS=IN ,$
    GRAPH=ON TEXT=OFF MULT=50.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.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 #
    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=ON TEXT=OFF MULT=50.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 #
    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=ON TEXT=OFF MULT=50.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 #
    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=ON TEXT=OFF MULT=50.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 #
    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=ON TEXT=OFF MULT=50.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 #
    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=ON TEXT=OFF MULT=50.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 #
    TP MMC 0.0010 0.0100 0.0050 0.0010 30.0143 0.0000 #
    END OF DIMENSION LOC6
    


    I will try to provide an example for full unconstrained soon, but there is a limit to how many pictures you can put in one post.








Children
No Data