Finding the edge of an inner groove

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

  • Finding the edge of an inner groove

    filedata/fetch?filedataid=17655https://www.pcdmisforum.com/image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
    PES201-04.png
    all figures in mm


    Hello,

    The attached image shows the Inside of a pierced cylindrical part.
    I'm willing to get the 10.75mm distance.

    Up to now, I made a special probe with a knuckle. Then scanning the inside with this probe from the entry of the cylinder to the middle of the first groove.
    I then did a small program inside pc-dmis using scan results to find the edge of the first groove.

    Is it the only way to find this distance ?
    Or should I try something else ?

    I guess it will be more accurate to scan a several locations.

    Thanks
    Attached Files
    Last edited by TheDudeAbides; 10-15-2019, 02:14 AM.

  • #2
    Can’t see the attached image

    B&S CHAMELEON/PCDMIS CAD++ V2011

    There are no bugs, only "UNDOCUMENTED ENHANCEMENTS!"

    sigpic

    Comment


    • #3
      no image

      Comment


      • #4
        Not sure why it didn't work ?

        https://ibb.co/WF2xKKT
        Attached Files

        Comment


        • #5
          Depends on how you're using the scan, but the accuracy could depend on the distance between hits.
          Can you post a zoom of the edge (chamfer, radius ?) and post the code ? (I didn't saw the second post !!! The picture is clear !!!!!)
          Last edited by JEFMAN; 10-15-2019, 02:41 AM.

          Comment


          • #6
            Hi,
            There is no problem with left side, there's a flat part where I can make a plane.

            Here is a larger view of the edge (grooves) :

            https://i.ibb.co/T2qG5md/pes-gorges.png


            Here is the code :

            Code:
            PALPEUR FAC/FORCEMAX=0.36,FORCE FAIBLE=0.06,FORCE SUPÉRIEURE=0.18,FORCE DE DÉCLENCHEMENT=0.06,
                          PRÉCISION PALPEUR=0.02,PRÉCISION POS=0.02,NBRE DONNÉES RENVOYÉES=7,
                          VITESSE DE RENVOI=0.2,DENSITÉ DE POINTS DE SCANNING=200,
                          ACCÉLÉRATION DE SCANNING=0.2,FORCE DE DÉCALAGE DE SCANNING=0.12,
                          MODE DE PALPAGE=DFL,PALPAGE MANUEL FIN=NON
                        DÉPLACER/PLAN SÉCURITÉ
            SCN_GORGES =ÉLÉM/SCANNING,LINÉAIRE OUVERT,NOMBRE DE PALPAGES=125,AFFICHER PALPAGES=NON,AFFICHER TOUS LES PARAMÈTRES=NON
                        MESU/SCANNING
                        SCANNING DE BASE/DROITE,NOMBRE DE PALPAGES=125,AFFICHER PALPAGES=NON,AFFICHER TOUS LES PARAMÈTRES=NON
                        FINSCAN
                        FIN MES/
                        DÉPLACER/PLAN SÉCURITÉ
                        AFFECTER/VAR1=ABS(SCN_GORGES.HIT[2..SCN_GORGES.NUMHITS].X - SCN_GORGES.HIT[1..SCN_GORGES.NUMHITS].X)
                        AFFECTER/VARA=2
                        AFFECTER/VARB=1
                        WHILE/VAR2<0.05
                          AFFECTER/VAR2=ABS(SCN_GORGES.HIT[VARA].X - SCN_GORGES.HIT[VARB].X)
                          AFFECTER/VARA=VARA+1
                          AFFECTER/VARB=VARB+1
            PNT_INDEX    =ÉLÉM/POINT,CARTÉSIEN,NON
                          THÉO/<0,79,0>,<0,0,1>
                          RÉEL/<0,94,0>,<0,0,1>
                          CONSTR/POINT,DÉCALAGE,ORIGIN,0,VARA,0
                        END WHILE/
            DIM LOC15= EMPLACEMENT DE POINT PNT_INDEX  UNITÉS=MM ,$
            GRAPHIQUE=OFF  TEXTE=OFF  MULT=10.00  SORTIE=AUCUN  Demi-angle=NON
            AX  VAL. NOM.       +TOL       -TOL       MESU        DÉV   HORS TOL
            Y        3.000      0.050     -0.050     94.000     91.000     90.950 ----->
            FIN DE DIMENSION LOC15
                        AFFECTER/VARC=LOC15.Y.MEAS
                        AFFECTER/VARD=LOC15.Y.MEAS-1
                        WHILE/VAR2>0.002
                          AFFECTER/VAR2=ABS(SCN_GORGES.HIT[VARC].X - SCN_GORGES.HIT[VARD].X)
                          AFFECTER/VARC=VARC-1
                          AFFECTER/VARD=VARD-1
            PNT_INDEX2   =ÉLÉM/POINT,CARTÉSIEN,NON
                          THÉO/<0,73,0>,<0,0,1>
                          RÉEL/<0,88,0>,<0,0,1>
                          CONSTR/POINT,DÉCALAGE,ORIGIN,0,VARC,0
                        END WHILE/
            DIM LOC16= EMPLACEMENT DE POINT PNT_INDEX2  UNITÉS=MM ,$
            GRAPHIQUE=OFF  TEXTE=OFF  MULT=10.00  SORTIE=AUCUN  Demi-angle=NON
            AX  VAL. NOM.       +TOL       -TOL       MESU        DÉV   HORS TOL
            Y      741.000      0.050     -0.050     88.000   -653.000    652.950 <-----
            FIN DE DIMENSION LOC16
                        AFFECTER/VARPOSGORGE=-SCN_GORGES.HIT[LOC16.Y.MEAS].Z
            PNT_POSITION GORGE=ÉLÉM/POINT,CARTÉSIEN,NON
                        THÉO/<0,15.62,0>,<0,0,1>
                        RÉEL/<0,15.876,0>,<0,0,1>
                        CONSTR/POINT,DÉCALAGE,ORIGIN,0,VARPOSGORGE,0
            DIM 15.875_RES= EMPLACEMENT DE POINT PNT_POSITION GORGE  UNITÉS=MM ,$
            GRAPHIQUE=OFF  TEXTE=OFF  MULT=10.00  SORTIE=LES DEUX  Demi-angle=NON
            AX  VAL. NOM.       +TOL       -TOL       MESU        DÉV   HORS TOL
            Y       15.875      0.050     -0.050     15.876      0.001      0.000 ---#--
            FIN DE DIMENSION 15.875_RES

            Comment


            • #7
              TheDudeAbides , I don't see where you use VAR1, and I think you forgot a term in it.
              The difference along X between two consecutive hits should be :
              ASSIGN/VAR1=ABS(SCN_GORGES.HIT[2..SCN_GORGES.NUMHITS].X - SCN_GORGES.HIT[1..(SCN_GORGES.NUMHITS-1)].X)

              In your code, I guess that Z is the hole axis and X the radial value.
              You measure with 200 hits / mm, so about 5µm between hits.
              If the surface and the scan are clean, you shouldn't have more than 3µm of radial difference between two hits.
              In this case, I think you could work directly with radial deviations, something like :
              ASSIGN/V1=SCN_GORGES.HIT[2..(SCN_GORGES.NUMHITS)].XYZ-SCN_GORGES.HIT[1..(SCN_GORGES.NUMHITS-1)].XYZ......vectors between consecutive hits
              ASSIGN/V2=V1*MPOINT(1,1,0)
              ASSIGN/V3=SQRT(DOT(V1,V1))............................... ........................array of radial difference between consecutive hits.
              ASSIGN/V4=(V3-0.003)+ABS(V3-0.003)............................................ .......................array of values of difference >0.003
              ASSIGN/V5=SUM(V4/V4)............................................... ...........................................number of values >0.003
              ASSIGN/V6=SCN_GORGES.NUMHITS-V5................................................ ..............certainly the first value >0.003
              So SCN_GORGES.HIT[V6] should be the right hit to be dimensionned.

              I'm not at the cmm, I'm wondering if it's SCN_GORGES.NUMHITS-V5 or SCN_GORGES.NUMHITS-(V5-1).....
              If the cylinder and the scan are very clean (small cylindricity and no vibrations, you can decrease 0.003 to 0.002 or 0.0015...
              Last edited by JEFMAN; 10-16-2019, 02:00 AM.

              Comment


              • #8
                Just a thought, the code above doesn't work if the scan goes away from the 0.19 radius.
                Calculating the number of values > 6.5/2 could be :
                ASSIGN/V10=SCN_GORGES.HIT[1..SCN_GORGES.NUMHITS].XYZ*MPOINT(1,1,0)
                ASSIGN/V11=SQRT(DOT(V10,V10))
                ASSIGN/V12=(V11-3.25)+ABS(V11-3.25)
                ASSIGN/V13=SUM(V12/V12)
                ASSIGN/V14=SCN_GORGES.HIT[1..SCN_GORGES.NUMHITS].XYZ-V13

                Then use SCN_GORGES.HIT[1..V14].XYZ if you scan from left to right, or SCN_GORGES.HIT[V13..SCN_GORGES.NUMHITS].XYZ if you scan from right to left, in the code above.

                I'm not sure of all of this, I don't have my first coffee yet !!!!!!

                Comment


                • #9
                  Hello,
                  Thanks again for your kind help.
                  Sorry I was busy yesterday, I will try it asap.


                  Could it be scanned with a disc probe ? (a Ø5mm & 1mm width) (Obviously it will reach the sharp edge of the disc but it should be ok near the top)
                  Currently, I'm using a Ø1.5mm ruby ball with a knuckle for larger parts, but this specific part is too small for a knuckle probe.

                  According to you what is the best option between scanning from left to right or right to left ? (I guess the 2nd option is better)

                  Comment


                  • #10
                    Originally posted by TheDudeAbides View Post

                    Could it be scanned with a disc probe ? (a Ø5mm & 1mm width) (Obviously it will reach the sharp edge of the disc but it should be ok near the top)
                    Currently, I'm using a Ø1.5mm ruby ball with a knuckle for larger parts, but this specific part is too small for a knuckle probe.
                    I would say no, only because I never use them !
                    But a star probe is too large to measure this.
                    You're measuring on a TIGO, so there's no rotation head, right ?
                    So the disk probe is the only solution, except using 4 different L probes...

                    Originally posted by TheDudeAbides View Post

                    According to you what is the best option between scanning from left to right or right to left ? (I guess the 2nd option is better)
                    I would prefer left to right, but it's probably the same in both directions...

                    Comment


                    • #11
                      Hello,
                      Sorry for the late response, I was sick.

                      You're correct, the head is steady on the tigo. I ordered a custom made disc probe, I will try your technique afterwards.
                      Thanks again Jefman.

                      Comment


                      • #12
                        Hello,
                        I'm having a hard time finding this edge point. I tried many things, but no consistent results up to now.

                        I'm wondering if there's a way to scan a part in straight line and register the last measured point just before the probe has left contact ?
                        It could save me for this distance.
                        Last edited by TheDudeAbides; 11-29-2019, 09:13 AM.

                        Comment


                        • #13
                          The problem for this method is the accuracy : the result will have the accuracy of the point density.

                          I would try measuring a cylinder in a spiral mode (out of the groove), and calculate the standard deviation of all hits.
                          Then, I would measure the cylinder with the same parameters, but going in to groove,.I would seach the first points out of 2 stddev, and then search about the distance.

                          If you scan with some spirals, the scan density will have less importance than scanning along a line, even if both methods are close together.

                          You can look at the #8 of this post, there's the calculations for std dev. Don't forget to use the max decimal places possible on your version.

                          https://www.pcdmisforum.com/forum/pc...moval-outliers

                          Comment


                          • #14
                            Hello Jeffman;
                            Great idea once again !
                            I'm working on it, I'll update this thread afterwards.

                            Comment


                            • #15
                              Hello,

                              Capture.PNG
                              The correct distance is 24.295. I checked with a 2d tool (Mahr). The closest dot is 931.
                              931 is the entry into the groove.

                              How does DV is calculated ? I tried sqrt(x²+y²) but it doesn't match.
                              The nominal diameter of the spiral is 19.29mm.




                              By the way, here's my attempt at calculating the stddev of my first spiral scan :

                              CALCUL STD DEV SPIRALE 1
                              AFFECTER/VAR_NUMHITS=SPIRALE1.NUMHITS
                              AFFECTER/VAR1=SQRT(SPIRALE1.HIT[1..VAR_NUMHITS].X^2+SPIRALE1.HIT[1..VAR_NUMHITS].Y^2)
                              AFFECTER/VAR_DIAM_MOY_SPIRALE_1=SUM(2*VAR1)/VAR_NUMHITS
                              AFFECTER/VAR_STDDEV_SPIRALE_1=SUM(ABS(VAR_DIAM_MOY_SPIRALE_ 1-(2*VAR1)))/VAR_NUMHITS
                              Is it correct ? I have 0.01




                              Then for the 2nd spirale
                              AFFECTER/VAR_NUMHITS_SPIRALE_2=SPIRALE2.NUMHITS
                              AFFECTER/VAR2=SQRT(SPIRALE2.HIT[1..VAR_NUMHITS_SPIRALE_2].X^2+SPIRALE2.HIT[1..VAR_NUMHITS_SPIRALE_2].Y^2)
                              AFFECTER/VAR_DIAM_MOY_SPIRALE_2=2*VAR2
                              AFFECTER/VAR_STDDEV_SPIRALE_2=ABS(VAR_DIAM_MOY_SPIRALE_1-(VAR_DIAM_MOY_SPIRALE_2))

                              And then I should grab the first dot out of spiral 1 stddev ?


                              Thank you Jef
                              Last edited by TheDudeAbides; 12-03-2019, 10:30 AM.

                              Comment

                              Related Topics

                              Collapse

                              Working...
                              X