Need to measure width of a groove

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Need to measure width of a groove

    Hi guys and gals,

    See my attached picture.

    Drawing just states a simple dimension for the groove width shown.

    "3.5 ±0.1mm" The dimension is implied for the entire profile of the feature. I can check this with pin gages of course, but this wouldn’t be too handy for tuning purposes.

    I've tried a few different ideas to get it to match what I observe with pin gages.

    The closest so far is a Line profile form only with a bilateral .1mm tolerance zone.

    This still doesnt give me what I really need though, because of the fitting to the Theos.

    I need a 2D distance from each scan hit to a intersecting point on the opposite scan.

    I made the scans have the same number of hits, (as a last ditch effort) to dimension between hits via a 2D dimension. But this doesnt seem to work either as the theo values for the hits keep changing and screwing everything up.

    I dont believe Im the first person to try to measure something like this, so please help me .

    Anyone got any ideas on what else to try?

    Thanks
    Last edited by MrComment; 04-17-2007, 12:34 PM.
    Mr. Comment
    SCIROCCO-NT 13-20-10
    B3C-LC Controller (Leitz Protocol), SP600M, TP200
    PCDMIS CAD++ v4.3 MR1(Build: 12/11/08)
    sigpic

  • #2
    Is this a circular groove or does it follow a path?
    Links to my utilities for PCDMIS

    Comment


    • #3
      In theory its a circle but it has chunks missing for a gasket every so often. So at best I have a series of arcs which are segments of the same over all circle.

      The dimension on the drawing is only concerned with the width of the groove though and not the shape.

      Its like I can pick which ever side I want as my "Datum" profile, and then the opposite side must be 3.5 ±.1mm from the first side.

      Since the first side is not a perfect circle or arc its doesnt equal any particular geometric shape I know of.
      Mr. Comment
      SCIROCCO-NT 13-20-10
      B3C-LC Controller (Leitz Protocol), SP600M, TP200
      PCDMIS CAD++ v4.3 MR1(Build: 12/11/08)
      sigpic

      Comment


      • #4
        Could you just measure sets of two points with inverse vectors all around the groove and dimension the distance between the points (center to center)?

        Comment


        • #5
          You might be able to report it as a VC type of thing by subtracting the max of one feature from the min of the other. They would probably have to be of feature type circle though.
          <internet bumper sticker goes here>

          Comment


          • #6
            I dont know if this will work in your application but I used it. I took the difference from the groove diameters or widths created a point in the center, using the same cordinates I just changed the vector. took the 2 hits and done a 2 distance and I done this inside of a loop all the way around. SEE ATTACHMENT
            Last edited by AuRules; 07-07-2008, 03:03 PM.
            sigpic

            Comment


            • #7
              My Code Post:

              Code:
              STARTUP    =ALIGNMENT/START,RECALL:,LIST=YES
                          ALIGNMENT/END
                          MODE/DCC
                          PREHIT/ 3
                          RETRACT/ 3
                          MOVESPEED/ 200
                          TOUCHSPEED/ 5
                          SCANSPEED/ 5
                          FORMAT/TEXT,OPTIONS, ,HEADINGS,SYMBOLS, ;NOM,TOL,MEAS,DEV,OUTTOL, , 
                          LOADPROBE/SP600-2X19
                          TIP/T1A82.5B-112.5, SHANKIJK=0.916, -0.379, 0.131, ANGLE=-93.095
                          RECALL/ALIGNMENT,EXTERNAL,a19,TOTHROTTLEBODY:a19
                          MOVE/POINT,NORMAL,33.802,7.141,70.132
                          PREHIT/ 0.5
                          RETRACT/ 0.5
                          DISPLAYPRECISION/5
                          MOVE/POINT,NORMAL,-5.55225,40.68398,4.24237
              $$ NO,Throttle Body Groove Scan Segments 1
                          OPTIONPROBE/MAXFORCE=0.3, LOWFORCE=0.06, UPPERFORCE=0.18, TRIGGERFORCE=0.12,
                                     PROBEACCURACY=0.1, POSACCURACY=0.1, #RETURNDATA=7,
                                     RETURNSPEED=1, SCANPNTDENSITY=2,
                                     SCANACCELERATION=10, SCANOFFSETFORCE=0.12,
                                     PROBINGMODE=DFL, MANFINEPROBING=NO
              SCN1       =FEAT/SCAN,LINEAROPEN,SHOWHITS=NO,SHOWALLPARAMS=NO
                          MEAS/SCAN
                          BASICSCAN/LINE,SHOWHITS=NO,SHOWALLPARAMS=NO
                          ENDSCAN
                          ENDMEAS/
                          ASSIGN/V1 = SCN1.NUMHITS
                          MOVE/POINT,NORMAL,15.87642,37.16224,4.26212
                          MOVE/POINT,NORMAL,-5.6094,41.90355,4.35411
                          OPTIONPROBE/MAXFORCE=0.3, LOWFORCE=0.06, UPPERFORCE=0.18, TRIGGERFORCE=0.12,
                                     PROBEACCURACY=0.1, POSACCURACY=0.1, #RETURNDATA=7,
                                     RETURNSPEED=1, SCANPNTDENSITY=2,
                                     SCANACCELERATION=10, SCANOFFSETFORCE=0.12,
                                     PROBINGMODE=DFL, MANFINEPROBING=NO
              SCN2       =FEAT/SCAN,LINEAROPEN,SHOWHITS=NO,SHOWALLPARAMS=NO
                          MEAS/SCAN
                          BASICSCAN/LINE,SHOWHITS=NO,SHOWALLPARAMS=NO
                          ENDSCAN
                          ENDMEAS/
                          ASSIGN/V2 = SCN2.NUMHITS
                          MOVE/POINT,NORMAL,15.94972,36.56697,5.9869
                          MOVE/POINT,NORMAL,26.62135,34.21187,5.96624
              $$ NO,Construct Points and Lines from Scn1 Hit Points
              V3         =LOOP/START, ID = YES, NUMBER = V1, START = 1, SKIP = ,
                             OFFSET: XAXIS = 0, YAXIS = 0, ZAXIS = 0, ANGLE = 0
              F1         =GENERIC/POINT,DEPENDENT,RECT,$
                          NOM/XYZ,SCN1.HIT[V3].TX,SCN1.HIT[V3].TY,SCN1.HIT[V3].TZ,$
                          MEAS/XYZ,SCN1.HIT[V3].X,SCN1.HIT[V3].Y,SCN1.HIT[V3].Z,$
                          NOM/IJK,SCN1.HIT[V3].TI,SCN1.HIT[V3].TJ,SCN1.HIT[V3].TK,$
                          MEAS/IJK,SCN1.HIT[V3].I,SCN1.HIT[V3].J,SCN1.HIT[V3].K
              F2         =GENERIC/LINE,DEPENDENT,RECT,$
                          NOM/XYZ,SCN1.HIT[V3].TX,SCN1.HIT[V3].TY,SCN1.HIT[V3].TZ,$
                          MEAS/XYZ,SCN1.HIT[V3].X,SCN1.HIT[V3].Y,SCN1.HIT[V3].Z,$
                          NOM/IJK,SCN1.HIT[V3].TI,SCN1.HIT[V3].TJ,SCN1.HIT[V3].TK,$
                          MEAS/IJK,SCN1.HIT[V3].I,SCN1.HIT[V3].J,SCN1.HIT[V3].K,$
                          DISTANCE/8,8
                          LOOP/END
              $$ NO,Construct Reference Points from Scn2 Hit Points
              V4         =LOOP/START, ID = YES, NUMBER = V2, START = 1, SKIP = ,
                             OFFSET: XAXIS = 0, YAXIS = 0, ZAXIS = 0, ANGLE = 0
              F3         =GENERIC/POINT,DEPENDENT,RECT,$
                          NOM/XYZ,SCN2.HIT[V4].TX,SCN2.HIT[V4].TY,SCN2.HIT[V4].TZ,$
                          MEAS/XYZ,SCN2.HIT[V4].X,SCN2.HIT[V4].Y,SCN2.HIT[V4].Z,$
                          NOM/IJK,SCN2.HIT[V4].TI,SCN2.HIT[V4].TJ,SCN2.HIT[V4].TK,$
                          MEAS/IJK,SCN2.HIT[V4].I,SCN2.HIT[V4].J,SCN2.HIT[V4].K
                          LOOP/END
              $$ NO,NOTE:   V11 = How many hits to include in each Arc construction
                   ,More hits may filter data more so then Less hits the more accurate
                   ,but too few hits may construct very large arcs in outerspace if the surface
                   ,has enough transisitions in the measured data
                   ,Recommended V11 setting = 7 (approx 3.5mm long arcs)
                          ASSIGN/V11 = 7
                          ASSIGN/V12 = V11-1
              FPTR       =FILE/OPEN,C:\MyConstructedArcsTheos.txt,WRITE
              $$ NO,Construct Arcs from Scn2 Data
              V5         =LOOP/START, ID = YES, NUMBER = V2-V12, START = 1, SKIP = ,
                             OFFSET: XAXIS = 0, YAXIS = 0, ZAXIS = 0, ANGLE = 0
                          ASSIGN/V6 = V5+V12
              CIR1[37]   =FEAT/CIRCLE,RECT,OUT
                          THEO/-0.00017,0.00001,-1.0033,0,0,1,77
                          ACTL/0.01384,-0.59623,-1.0033,0,0,1,78.54243
                          CONSTR/CIRCLE,SCAN_SEGMENT,BFRE,SCN2,F3[V5].X,F3[V5].Y,F3[V5].Z,F3[V6].X,F3[V6].Y,F3[V6].Z,0,0,0
                          ASSIGN/V13 = CIR1.TX + ", "
                          ASSIGN/V14 = CIR1.TY + ", "
                          ASSIGN/V15 = CIR1.TZ + ", "
                          ASSIGN/V16 = CIR1.TI + ", "
                          ASSIGN/V17 = CIR1.TJ + ", "
                          ASSIGN/V18 = CIR1.TK
                          ASSIGN/V19 = "CIR1[" + V5 + "], "
                          FILE/WRITELINE,FPTR,V19 + V13 + V14 + V15 + V16 + V17 + V18
                          LOOP/END
                          FILE/CLOSE,FPTR,KEEP
              $$ NO,Construct Pierce Points with Arcs
                          ASSIGN/V7 = (V2-V12)/V1
              FPTR       =FILE/OPEN,C:\MyPiercePointTheos.txt,WRITE
              V8         =LOOP/START, ID = YES, NUMBER = V1, START = 1, SKIP = ,
                             OFFSET: XAXIS = 0, YAXIS = 0, ZAXIS = 0, ANGLE = 0
                          ASSIGN/V9 = ROUND(V7*V8)
              PNT1[44]   =FEAT/POINT,RECT
                          THEO/-4.70631,38.21129,-1.00638,0.1222373,-0.9925009,0
                          ACTL/15.04235,35.68561,-0.99633,-0.3621693,-0.9321123,0
                          CONSTR/POINT,PIERCE,F2[V8],CIR1[V9]
                          ASSIGN/V13 = PNT1.TX + ", "
                          ASSIGN/V14 = PNT1.TY + ", "
                          ASSIGN/V15 = PNT1.TZ + ", "
                          ASSIGN/V16 = PNT1.TI + ", "
                          ASSIGN/V17 = PNT1.TJ + ", "
                          ASSIGN/V18 = PNT1.TK
                          ASSIGN/V19 = "PNT1[" + V8 + "], "
                          FILE/WRITELINE,FPTR,V19 + V13 + V14 + V15 + V16 + V17 + V18
                          LOOP/END
                          FILE/CLOSE,FPTR,KEEP
              $$ NO,Construct Dimensions
              V10        =LOOP/START, ID = YES, NUMBER = V1, START = 1, SKIP = ,
                             OFFSET: XAXIS = 0, YAXIS = 0, ZAXIS = 0, ANGLE = 0
                          COMMENT/REPT,"Groove Width at Section #" + V10
              DIM DIST1[44]= 2D DISTANCE FROM POINT F1[V10] TO POINT PNT1[V10] PAR TO POINT PNT1[V10], NO_RADIUS  UNITS=MM ,$
              GRAPH=OFF  TEXT=OFF  MULT=1.00  OUTPUT=BOTH
              AX    NOMINAL       +TOL       -TOL       MEAS        DEV     OUTTOL
              M     3.50000    0.10000    0.10000    3.55004    0.05004    0.00000 ------#--
                          LOOP/END
              Last edited by MrComment; 03-22-2007, 03:15 PM.
              Mr. Comment
              SCIROCCO-NT 13-20-10
              B3C-LC Controller (Leitz Protocol), SP600M, TP200
              PCDMIS CAD++ v4.3 MR1(Build: 12/11/08)
              sigpic

              Comment


              • #8
                Pierce Point Debug Text File Results
                PNT1[1], -4.70631, 38.21129, -1.00638, 0.12224, -0.9925, 0
                PNT1[2], -4.70631, 38.21129, -1.00638, 0.12224, -0.9925, 0
                PNT1[3], -4.70631, 38.21129, -1.00638, 0.12224, -0.9925, 0
                PNT1[4], -4.70631, 38.21129, -1.00638, 0.12224, -0.9925, 0
                PNT1[5], -4.70631, 38.21129, -1.00638, 0.12224, -0.9925, 0
                PNT1[6], -4.70631, 38.21129, -1.00638, 0.12224, -0.9925, 0
                Circle Debug Text File Results
                CIR1[1], -0.00017, 0.00001, -1.01476, 0, 0, 1
                CIR1[2], -0.00017, 0.00001, -1.01451, 0, 0, 1
                CIR1[3], -0.00017, 0.00001, -1.01274, 0, 0, 1
                CIR1[4], -0.00017, 0.00001, -1.01088, 0, 0, 1
                CIR1[5], -0.00017, 0.00001, -1.00929, 0, 0, 1
                Ok and now for my question...

                Why dont the Pierce Points update with the correct CAD theo when I execute this program?? The Circles (Arcs) seem to work.

                The measured results in the report come out correct (oddly)

                As the Dimension Theo seems to be fixed at creation.

                If I turn the CAD graphic analysis on though I can see that the groove Theo values are not doing what they should and this is going to be a problem.

                Thanks in advance.
                Mr. Comment
                SCIROCCO-NT 13-20-10
                B3C-LC Controller (Leitz Protocol), SP600M, TP200
                PCDMIS CAD++ v4.3 MR1(Build: 12/11/08)
                sigpic

                Comment


                • #9
                  With Bad Pierce Point Theos

                  I get something that looks like the attached picture from the above code I posted.
                  Last edited by MrComment; 04-17-2007, 12:34 PM.
                  Mr. Comment
                  SCIROCCO-NT 13-20-10
                  B3C-LC Controller (Leitz Protocol), SP600M, TP200
                  PCDMIS CAD++ v4.3 MR1(Build: 12/11/08)
                  sigpic

                  Comment


                  • #10
                    With Good Pierce Point Theos

                    I want to get a good graphic for each "Section" which would look something similar to the following pic.

                    I got this by manually creating the pierce point. Which is too time consuming.
                    Last edited by MrComment; 04-17-2007, 12:34 PM.
                    Mr. Comment
                    SCIROCCO-NT 13-20-10
                    B3C-LC Controller (Leitz Protocol), SP600M, TP200
                    PCDMIS CAD++ v4.3 MR1(Build: 12/11/08)
                    sigpic

                    Comment


                    • #11
                      Code:
                      $$ NO,NOTE:   V11 = How many hits to include in each Arc construction
                           ,More hits may filter data more, therefore less hits may be more accurate
                           ,but too few hits may construct very large arcs in outerspace if the surface
                           ,has enough transisitions in the measured data
                           ,recommended V11 setting = 7 (approx 3.5mm long arcs)
                                  ASSIGN/V11 = 7
                                  ASSIGN/V12 = V11-1
                      $$ NO,Construct Arcs from Scn2 Data
                      V5         =LOOP/START, ID = YES, NUMBER = V2-V12, START = 1, SKIP = ,
                                     OFFSET: XAXIS = 0, YAXIS = 0, ZAXIS = 0, ANGLE = 0
                                  ASSIGN/V6 = V5+V12
                      CIR1       =FEAT/CIRCLE,RECT,OUT
                                  THEO/-0.00017,0.00001,-1.00341,0,0,1,77
                                  ACTL/-0.16502,-1.07214,-1.00341,0,0,1,79.55707
                                  CONSTR/CIRCLE,SCAN_SEGMENT,BFRE,SCN2,F3[V5].X,F3[V5].Y,F3[V5].Z,F3[V6].X,F3[V6].Y,F3[V6].Z,0,0,0
                                  LOOP/END
                      $$ NO,Construct Pierce Points with Arcs
                                  ASSIGN/V7 = (V2-V12)/V1
                      $$ NO,NOTE:    V23 = The "known" Theo Groove Width
                                  ASSIGN/V23 = 3.5000
                      FPTR       =FILE/OPEN,D:\Data Transfer\Jeremy's Programs\Toyota XT-54\770N\v4.1\Cav2\MyPiercePointTheos.txt,WRITE
                      V8         =LOOP/START, ID = YES, NUMBER = V1, START = 1, SKIP = ,
                                     OFFSET: XAXIS = 0, YAXIS = 0, ZAXIS = 0, ANGLE = 0
                                  ASSIGN/V9 = ROUND(V7*V8)
                      $$ NO,Manually Calculate the correct Theo XYZ for the Pierce Point
                           ,to correct a bug in PCDMIS that doesnt do it for you!!!!
                                  ASSIGN/V20 = F1[V8].TX+V23*F1[V8].TI
                                  ASSIGN/V21 = F1[V8].TY+V23*F1[V8].TJ
                                  ASSIGN/V22 = F1[V8].TZ+V23*F1[V8].TK
                      PNT1       =FEAT/POINT,RECT
                                  THEO/V20,V21,V22,F1[V8].TI,F1[V8].TJ,F1[V8].TK
                                  ACTL/15.02102,35.69355,-0.99177,-0.3686382,-0.929573,0
                                  CONSTR/POINT,PIERCE,F2[V8],CIR1[V9]
                                  ASSIGN/V13 = PNT1.TX + ", "
                                  ASSIGN/V14 = PNT1.TY + ", "
                                  ASSIGN/V15 = PNT1.TZ + ", "
                                  ASSIGN/V16 = PNT1.TI + ", "
                                  ASSIGN/V17 = PNT1.TJ + ", "
                                  ASSIGN/V18 = PNT1.TK
                                  ASSIGN/V19 = "PNT1[" + V8 + "], "
                                  FILE/WRITELINE,FPTR,V19 + V13 + V14 + V15 + V16 + V17 + V18
                                  LOOP/END
                                  FILE/CLOSE,FPTR,KEEP
                      $$ NO,Construct Dimensions
                      V10        =LOOP/START, ID = YES, NUMBER = V1, START = 1, SKIP = ,
                                     OFFSET: XAXIS = 0, YAXIS = 0, ZAXIS = 0, ANGLE = 0
                                  COMMENT/REPT,"Groove Width at Section #" + V10
                      DIM DIST1= 2D DISTANCE FROM POINT F1[V10] TO POINT PNT1[V10] PAR TO POINT PNT1[V10], NO_RADIUS  UNITS=MM ,$
                      GRAPH=ON  TEXT=OFF  MULT=10.00  OUTPUT=BOTH
                      AX    NOMINAL       +TOL       -TOL       MEAS        DEV     OUTTOL
                      M     3.50000    0.10000    0.10000    3.54973    0.04973    0.00000 ------#--
                                  LOOP/END
                      Finally got it fixed!

                      CAD graphic and ALL...
                      Last edited by MrComment; 04-17-2007, 12:34 PM.
                      Mr. Comment
                      SCIROCCO-NT 13-20-10
                      B3C-LC Controller (Leitz Protocol), SP600M, TP200
                      PCDMIS CAD++ v4.3 MR1(Build: 12/11/08)
                      sigpic

                      Comment


                      • #12
                        Everyday I learn more and more from you guys, which is a good thing but the code used above I could figure out except this "," added to the circle. please a little help, maybe it something I could use.

                        ASSIGN/V13 = CIR1.TX + ", "
                        ASSIGN/V14 = CIR1.TY + ", "
                        ASSIGN/V15 = CIR1.TZ + ", "
                        ASSIGN/V16 = CIR1.TI + ", "
                        ASSIGN/V17 = CIR1.TJ + ", "
                        ASSIGN/V18 = CIR1.TK
                        ASSIGN/V19 = "CIR1[" + V5
                        sigpic

                        Comment


                        • #13
                          The ", " is just a comma delimiter. I put it there so that I can read the text file into excel easy. I just got in the habit of writing all of my text files as CSV (Comma Seperated Variables).

                          The resulting variable in V19 however is the name I call the specific Arc. It includes the array variable number which is stored in V5.

                          Btw, If you want to scan a groove width I've found a better (and faster executing) way of doing the same thing.

                          For some reason PCDMIS sucks at executing this code. (i.e. it takes forever). I'll try to post more later if your still interested.
                          Mr. Comment
                          SCIROCCO-NT 13-20-10
                          B3C-LC Controller (Leitz Protocol), SP600M, TP200
                          PCDMIS CAD++ v4.3 MR1(Build: 12/11/08)
                          sigpic

                          Comment

                          Related Topics

                          Collapse

                          Working...
                          X