hexagon logo

MMC by hand

Good morning,
We've been asked to report the position and parallelism of a keyway to a bore. It's a simple bore, with a one straight keyway in it. We have also been asked to use the MMC bonus in the calculations. The keyway is shallow enough that we can't get two good planes from the sides, or we would use a width feature. We've tried to make a width feature using two lines constructed from points taken on the sides of the keyway. We either don't understand that process well enough to make it work, or it just doesn't. Anyway, we've decided to do this in legacy, using an alignment. One advantage of this is that we can clearly demonstrate our process to disbelieving minds. We have somewhat figured out how to use assign to do some simple arithmetic. We can assign the value of a letter or something to be the measured value of the bore, minus the smallest (maximum material condition), allowable diameter of the bore. We can subtract that bonus from a reported position or parallelism, and report the result of that using a generic feature. What we haven't been able to figure out is how to keep our report from showing a minus number if the position is really good, and the bonus is large. (we know that pcdmis reports the actual position, but doesn't turn it red if the bonus is large enough) We're sure there is a way. We've looked at the "if then" stuff for pcdmis on the internet, and we're going to try and fumble our way through that on Monday morning.

Can someone possibly direct us to some good "help" information, or maybe provide a simple example of how to correctly do what we are trying to do? Being able to do this kind of "if then" arithmetic is something we could use a lot.

Thanks for your help.
Parents
  • Here are 2 ways to apply the MMC both in this one code group. Review and use if you desire:
    FYI, often we can pass the data into a generic feature and get GEOTOL to still report the dimension. I know GEOTOL struggles with generic features from time to time, so be warned it doesn't always work out.

    SIDE1      =FEAT/POINT,CARTESIAN
                THEO/<1,0,25.4>,<-1,0,0>
                ACTL/<1,0,25.4>,<-1,0,0>
                MEAS/POINT,1,WORKPLANE
                  HIT/BASIC,NORMAL,<1,0,25.4>,<-1,0,0>,<1,0,25.4>,USE THEO=YES
                ENDMEAS/
    SIDE2      =FEAT/POINT,CARTESIAN
                THEO/<-1,0,25.4>,<1,0,0>
                ACTL/<-1,0,25.4>,<1,0,0>
                MEAS/POINT,1,WORKPLANE
                  HIT/BASIC,NORMAL,<-1,0,25.4>,<1,0,0>,<-1,0,25.4>,USE THEO=YES
                ENDMEAS/
    MID_PNT    =FEAT/POINT,CARTESIAN,NO
                THEO/<0,0,25.4>,<0,0,1>
                ACTL/<0,0,25.4>,<-0.0000001,0,1>
                CONSTR/POINT,MID,SIDE1,SIDE2
    DIM W1= 2D DISTANCE FROM POINT SIDE1 TO POINT SIDE2     (CENTER TO CENTER),NO_RADIUS  UNITS=IN,$
    GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH
    AX       MEAS    NOMINAL       +TOL       -TOL        DEV     OUTTOL
    M        2.000      2.000      0.004      0.004      0.000      0.000 -#--
    SLOT_1     =GENERIC/CIRCLE,DEPENDENT,CARTESIAN,OUT,$
                NOM/XYZ,<MID_PNT.TX,MID_PNT.TY,MID_PNT.TZ>,$
                MEAS/XYZ,<MID_PNT.X,MID_PNT.Y,MID_PNT.Z>,$
                NOM/IJK,<MID_PNT.TI,MID_PNT.TJ,MID_PNT.TK>,$
                MEAS/IJK,<MID_PNT.I,MID_PNT.J,MID_PNT.K>,$
                DIAMETER/2+0,W1.M.MEAS
    $$ NO,
                
                ASSIGN/V1=W1.M.MEAS-1.996
               IF/V1<0
                  ASSIGN/V1=0
                END_IF/​
                IF/V1>0.008
                  ASSIGN/V1=0.008
                END_IF/​
    $$ NO,
                
    DIM W2= POSITION OF CIRCLE SLOT_1  UNITS=IN ,$
    GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH  FIT TO DATUMS=OFF  DEV PERPEN CENTERLINE=OFF  DISPLAY=DIAMETER
    AX       MEAS    NOMINAL       +TOL       -TOL      BONUS        DEV     OUTTOL
    X       0.000      0.000                                       0.000          
    Y       0.000      0.000                                       0.000          
    DF      2.000      2.000      0.004      0.004      0.004      0.000      0.000 -#--
    TP      0.000        MMC      0.005                 0.004      0.000      0.000 #---
    END OF DIMENSION W2
    $$ NO,
                
    DIM ALT_W2= POSITION OF CIRCLE SLOT_1  UNITS=IN ,$
    GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH  FIT TO DATUMS=OFF  DEV PERPEN CENTERLINE=OFF  DISPLAY=DIAMETER
    AX       MEAS    NOMINAL       +TOL       -TOL      BONUS        DEV     OUTTOL
    X       0.000      0.000                                       0.000          
    Y       0.000      0.000                                       0.000          
    TP      0.000        MMC  .005+V1                 0.000      0.000      0.000 #---
    END OF DIMENSION ALT_W2​
    
Reply
  • Here are 2 ways to apply the MMC both in this one code group. Review and use if you desire:
    FYI, often we can pass the data into a generic feature and get GEOTOL to still report the dimension. I know GEOTOL struggles with generic features from time to time, so be warned it doesn't always work out.

    SIDE1      =FEAT/POINT,CARTESIAN
                THEO/<1,0,25.4>,<-1,0,0>
                ACTL/<1,0,25.4>,<-1,0,0>
                MEAS/POINT,1,WORKPLANE
                  HIT/BASIC,NORMAL,<1,0,25.4>,<-1,0,0>,<1,0,25.4>,USE THEO=YES
                ENDMEAS/
    SIDE2      =FEAT/POINT,CARTESIAN
                THEO/<-1,0,25.4>,<1,0,0>
                ACTL/<-1,0,25.4>,<1,0,0>
                MEAS/POINT,1,WORKPLANE
                  HIT/BASIC,NORMAL,<-1,0,25.4>,<1,0,0>,<-1,0,25.4>,USE THEO=YES
                ENDMEAS/
    MID_PNT    =FEAT/POINT,CARTESIAN,NO
                THEO/<0,0,25.4>,<0,0,1>
                ACTL/<0,0,25.4>,<-0.0000001,0,1>
                CONSTR/POINT,MID,SIDE1,SIDE2
    DIM W1= 2D DISTANCE FROM POINT SIDE1 TO POINT SIDE2     (CENTER TO CENTER),NO_RADIUS  UNITS=IN,$
    GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH
    AX       MEAS    NOMINAL       +TOL       -TOL        DEV     OUTTOL
    M        2.000      2.000      0.004      0.004      0.000      0.000 -#--
    SLOT_1     =GENERIC/CIRCLE,DEPENDENT,CARTESIAN,OUT,$
                NOM/XYZ,<MID_PNT.TX,MID_PNT.TY,MID_PNT.TZ>,$
                MEAS/XYZ,<MID_PNT.X,MID_PNT.Y,MID_PNT.Z>,$
                NOM/IJK,<MID_PNT.TI,MID_PNT.TJ,MID_PNT.TK>,$
                MEAS/IJK,<MID_PNT.I,MID_PNT.J,MID_PNT.K>,$
                DIAMETER/2+0,W1.M.MEAS
    $$ NO,
                
                ASSIGN/V1=W1.M.MEAS-1.996
               IF/V1<0
                  ASSIGN/V1=0
                END_IF/​
                IF/V1>0.008
                  ASSIGN/V1=0.008
                END_IF/​
    $$ NO,
                
    DIM W2= POSITION OF CIRCLE SLOT_1  UNITS=IN ,$
    GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH  FIT TO DATUMS=OFF  DEV PERPEN CENTERLINE=OFF  DISPLAY=DIAMETER
    AX       MEAS    NOMINAL       +TOL       -TOL      BONUS        DEV     OUTTOL
    X       0.000      0.000                                       0.000          
    Y       0.000      0.000                                       0.000          
    DF      2.000      2.000      0.004      0.004      0.004      0.000      0.000 -#--
    TP      0.000        MMC      0.005                 0.004      0.000      0.000 #---
    END OF DIMENSION W2
    $$ NO,
                
    DIM ALT_W2= POSITION OF CIRCLE SLOT_1  UNITS=IN ,$
    GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH  FIT TO DATUMS=OFF  DEV PERPEN CENTERLINE=OFF  DISPLAY=DIAMETER
    AX       MEAS    NOMINAL       +TOL       -TOL      BONUS        DEV     OUTTOL
    X       0.000      0.000                                       0.000          
    Y       0.000      0.000                                       0.000          
    TP      0.000        MMC  .005+V1                 0.000      0.000      0.000 #---
    END OF DIMENSION ALT_W2​
    
Children
No Data