Perpendicularity question

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

  • Perpendicularity question

    We have a scanning program that measures the perpendicularity of a plane to two coaxial ID features. The plane (Datum B) has three drilled hole equally spaced. A GR&R was done on a part three times with the part fixtured in the three different rotations to see if there was an difference. I was told that the GR&R passed. Last night we had to do a study on these parts and out of the 40 parts we had 3 fliers. So I went back and re ran those parts making sure everything was clean, I reproduced the measurements within a tenth or two. I next rotated the part two more times and found that I had a range of .00055. I am a little perplexed as we don't have a way to verify these results. I was wondering if we might have an issue with the program. Thanks
    Code:
                     MOVE/POINT,NORMAL,<0,-.250,0.344>
    INIT_Y         =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
                    THEO/<0,0,0.344>,<0,-1,0>
                    ACTL/<0.00002,0.01475,0.34387>,<0,-1,0>
                    TARG/<0,0,0.344>,<0,-1,0>
                    SNAP=NO
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=NO
    INIT_Y_ALIGN    =ALIGNMENT/START,RECALL:MANUAL_CATHODE_ALIGN,LIST=YES
                      ALIGNMENT/LEVEL,YMINUS,MANUAL_CATHODE_FACE
                      ALIGNMENT/TRANS,XAXIS,MANUAL_CATHODE_ORIGIN
                      ALIGNMENT/TRANS,ZAXIS,MANUAL_CATHODE_ORIGIN
                      ALIGNMENT/TRANS,YAXIS,INIT_Y
                    ALIGNMENT/END
    INIT_XZ        =FEAT/CONTACT/CIRCLE/ADAPTIVE_CIRCLE_SCAN,CARTESIAN,IN,LEAST_SQR
                    THEO/<0,0.07,0>,<0,-1,0>,0.6272
                    ACTL/<0.00346,0.07,0.00282>,<0,-1,0>,0.62696
                    TARG/<0,0.07,0>,<0,-1,0>
                    START ANG=0,END ANG=360
                    ANGLE VEC=<0,0,1>
                    DIRECTION=CW
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=NO
    INIT_XYZ_ALIGN    =ALIGNMENT/START,RECALL:INIT_Y_ALIGN,LIST=YES
                      ALIGNMENT/LEVEL,YMINUS,MANUAL_CATHODE_FACE
                      ALIGNMENT/TRANS,XAXIS,INIT_XZ
                      ALIGNMENT/TRANS,ZAXIS,INIT_XZ
                      ALIGNMENT/TRANS,YAXIS,INIT_Y
                    ALIGNMENT/END
    
    FIND_DATUM_C    =FEAT/CONTACT/CIRCLE/ADAPTIVE_CIRCLE_SCAN,CARTESIAN,IN,LEAST_SQR
                    THEO/<0,1.905,0>,<0,-1,0>,0.3082
                    ACTL/<-0.00327,1.905,-0.00256>,<0,-1,0>,0.3083
                    TARG/<0,1.905,0>,<0,-1,0>
                    START ANG=0,END ANG=360
                    ANGLE VEC=<0,0,1>
                    DIRECTION=CW
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=NO
    FIND_DATUM_C_ALIGN    =ALIGNMENT/START,RECALL:INIT_XYZ_ALIGN,LIST=YES
                      ALIGNMENT/LEVEL,YMINUS,MANUAL_CATHODE_FACE
                      ALIGNMENT/TRANS,XAXIS,FIND_DATUM_C
                      ALIGNMENT/TRANS,ZAXIS,FIND_DATUM_C
                      ALIGNMENT/TRANS,YAXIS,INIT_Y
                    ALIGNMENT/END
    SCAN_C_1       =FEAT/CONTACT/CIRCLE/ADAPTIVE_CIRCLE_SCAN,CARTESIAN,IN,LEAST_SQR
                    THEO/<0,1.97,0>,<0,-1,0>,0.3082
                    ACTL/<-0.00021,1.97,-0.00013>,<0,-1,0>,0.30841
                    TARG/<0,1.97,0>,<0,-1,0>
                    START ANG=0,END ANG=360
                    ANGLE VEC=<0,0,1>
                    DIRECTION=CW
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=NO
    SCAN_C_2       =FEAT/CONTACT/CIRCLE/ADAPTIVE_CIRCLE_SCAN,CARTESIAN,IN,LEAST_SQR
                    THEO/<0,1.905,0>,<0,-1,0>,0.3082
                    ACTL/<-0.00008,1.905,-0.00003>,<0,-1,0>,0.30839
                    TARG/<0,1.905,0>,<0,-1,0>
                    START ANG=0,END ANG=360
                    ANGLE VEC=<0,0,1>
                    DIRECTION=CW
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=NO
    SCAN_C_3       =FEAT/CONTACT/CIRCLE/ADAPTIVE_CIRCLE_SCAN,CARTESIAN,IN,LEAST_SQR
                    THEO/<0,1.84,0>,<0,-1,0>,0.3082
                    ACTL/<0,1.84,0.00005>,<0,-1,0>,0.30832
                    TARG/<0,1.84,0>,<0,-1,0>
                    START ANG=0,END ANG=360
                    ANGLE VEC=<0,0,1>
                    DIRECTION=CW
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=NO
                    RECALL/ALIGNMENT,INTERNAL,INIT_XYZ_ALIGN
                    MOVE/POINT,NORMAL,<0,0.125,0>
    SCAN_A_1       =FEAT/CONTACT/CIRCLE/ADAPTIVE_CIRCLE_SCAN,CARTESIAN,IN,LEAST_SQR
                    THEO/<0,0.125,0>,<0,-1,0>,0.6272
                    ACTL/<-0.00012,0.125,-0.00006>,<0,-1,0>,0.62694
                    TARG/<0,0.125,0>,<0,-1,0>
                    START ANG=0,END ANG=360
                    ANGLE VEC=<0,0,1>
                    DIRECTION=CW
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=NO
    SCAN_A_2       =FEAT/CONTACT/CIRCLE/ADAPTIVE_CIRCLE_SCAN,CARTESIAN,IN,LEAST_SQR
                    THEO/<0,0.075,0>,<0,-1,0>,0.6272
                    ACTL/<-0.00002,0.075,-0.00001>,<0,-1,0>,0.62694
                    TARG/<0,0.075,0>,<0,-1,0>
                    START ANG=0,END ANG=360
                    ANGLE VEC=<0,0,1>
                    DIRECTION=CW
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=NO
    SCAN_A_3       =FEAT/CONTACT/CIRCLE/ADAPTIVE_CIRCLE_SCAN,CARTESIAN,IN,LEAST_SQR
                    THEO/<0,0.02,0>,<0,-1,0>,0.6272
                    ACTL/<0.00007,0.02,0.00004>,<0,-1,0>,0.62696
                    TARG/<0,0.02,0>,<0,-1,0>
                    START ANG=0,END ANG=360
                    ANGLE VEC=<0,0,1>
                    DIRECTION=CW
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=NO
    CONSTRUCTED_DATUM_C_CYL    =FEAT/CYLINDER,CARTESIAN,IN,LEAST_SQR,NO
                    THEO/<0,1.905,0>,<0,-1,0>,0.3082,0.13
                    ACTL/<-0.00336,1.90514,-0.0026>,<0.0015876,-0.9999979,0.0013234>,0.30837,0.13215
                    CONSTR/CYLINDER,BF,SCAN_C_1,SCAN_C_2,SCAN_C_3,,
    CONSTRUCTED_DATUM_A_CYL    =FEAT/CYLINDER,CARTESIAN,IN,LEAST_SQR,NO
                    THEO/<0,0.0725,0>,<0,-1,0>,0.6272,0.105
                    ACTL/<-0.00002,0.07262,-0.00001>,<0.0018354,-0.9999979,0.000956>,0.62695,0.10714
                    CONSTR/CYLINDER,BF,SCAN_A_1,SCAN_A_2,SCAN_A_3,,
    CONSTRUCTED_DATUM_A_C_LINE    =FEAT/LINE,CARTESIAN,UNBOUNDED,NO
                    THEO/<0,1.0475,0>,<0,-1,0>
                    ACTL/<-0.00128,0.76797,-0.00098>,<0.0017115,-0.9999979,0.0011397>
                    CONSTR/LINE,MID,CONSTRUCTED_DATUM_C_CYL,CONSTRUCTED_DATUM_A_CYL
                    MOVE/POINT,NORMAL,<0,-.25,0.21595>
                    MOVE/POINT,NORMAL,<0,-.25,3.5>
                    MOVE/POINT,NORMAL,<0,10,3.5>
                    TIP/T1A90B90, SHANKIJK=-1, 0.00031, 0, ANGLE=89.68253
                    MOVE/POINT,NORMAL,<-1.25,2.908,3.5>
                    MOVE/POINT,NORMAL,<-1.25,2.908,-1.08>
                    MOVE/POINT,NORMAL,<0,2.908,-1.08>
    
    INIT_DATUM_B_PNT    =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
                    THEO/<0,2.83,-1.08>,<0,1,0>
                    ACTL/<0.00001,2.82595,-1.08002>,<0,1,0>
                    TARG/<0,2.83,-1.08>,<0,1,0>
                    SNAP=NO
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=NO
    INIT_B_PNT_ALIN    =ALIGNMENT/START,RECALL:INIT_XYZ_ALIGN,LIST=YES
                      ALIGNMENT/TRANS,YAXIS,INIT_DATUM_B_PNT
                    ALIGNMENT/END
    SCAN_B_1       =FEAT/CONTACT/PLANE/ADAPTIVE_PLANE_CIRCLE_SCAN,CARTESIAN,OUTLINE,LEAST_SQR
                    THEO/<0,0,0>,<0,1,0>
                    ACTL/<-0.43902,-0.00051,-0.94942>,<-0.0020043,0.9999952,-0.0023599>
                    TARG/<0,0,0>,<0,1,0>
                    ANGLE VEC=<0,0,1>,RADIAL
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=NO
                    MOVE/POINT,NORMAL,<-1.09,0.05,-0.69>
    SCAN_B_2       =FEAT/CONTACT/PLANE/ADAPTIVE_PLANE_CIRCLE_SCAN,CARTESIAN,OUTLINE,LEAST_SQR
                    THEO/<0,0,0>,<0,1,0>
                    ACTL/<-0.71735,0.00229,0.71732>,<-0.001519,0.9999968,-0.0020395>
                    TARG/<0,0,0>,<0,1,0>
                    ANGLE VEC=<0,0,1>,RADIAL
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=NO
                    MOVE/POINT,NORMAL,<0,0.04,3.5>
                    MOVE/POINT,NORMAL,<9,0.04,3.5>
                    TIP/T1A90B-90, SHANKIJK=1, -0.00031, 0, ANGLE=-89.68253
                    MOVE/POINT,NORMAL,<0,0.04,3.5>
                    MOVE/POINT,NORMAL,<0.18,0.04,1.13>
    SCAN_B_3       =FEAT/CONTACT/PLANE/ADAPTIVE_PLANE_CIRCLE_SCAN,CARTESIAN,OUTLINE,LEAST_SQR
                    THEO/<0,0,0>,<0,1,0>
                    ACTL/<0.82042,0.00418,0.47154>,<-0.0018775,0.9999961,-0.0020783>
                    TARG/<0,0,0>,<0,1,0>
                    ANGLE VEC=<0,0,1>,RADIAL
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=NO
                    MOVE/POINT,NORMAL,<1.098,0.04,-.370>
                    MOVE/POINT,NORMAL,<1.098,0.04,-.7>
    SCAN_B_4       =FEAT/CONTACT/PLANE/ADAPTIVE_PLANE_CIRCLE_SCAN,CARTESIAN,OUTLINE,LEAST_SQR
                    THEO/<0,0,0>,<0,1,0>
                    ACTL/<0.43601,0.00071,-0.95119>,<-0.0014394,0.9999965,-0.0022369>
                    TARG/<0,0,0>,<0,1,0>
                    ANGLE VEC=<0,0,1>,RADIAL
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=NO
    CONSTRUCTED_DATUM_B_PLANE    =FEAT/PLANE,CARTESIAN,TRIANGLE,YES
                    THEO/<0,2.83,0>,<0,1,0>
                    ACTL/<0.02501,0.00167,-0.17794>,<-0.0015064,0.9999969,-0.0019761>
                    CONSTR/PLANE,BFRE,SCAN_B_1,SCAN_B_2,SCAN_B_3,SCAN_B_4,,
                    OUTLIER_REMOVAL/ON,3
                    FILTER/OFF,WAVELENGTH=0
                    MOVE/POINT,NORMAL,<1.25,0.04,-1.08>
                    MOVE/POINT,NORMAL,<1.25,0.04,11>
                    TIP/T1A0B0, SHANKIJK=0, -0.00554, 0.99998, ANGLE=-0.01802
    CONSTUCTED_DATUM_A_C_ALIGN    =ALIGNMENT/START,RECALL:INIT_B_PNT_ALIN,LIST=YES
                      ALIGNMENT/LEVEL,YMINUS,CONSTRUCTED_DATUM_A_C_LINE
                      ALIGNMENT/TRANS,XAXIS,CONSTRUCTED_DATUM_A_C_LINE
                      ALIGNMENT/TRANS,ZAXIS,CONSTRUCTED_DATUM_A_C_LINE
                    ALIGNMENT/END
    perpendicularity question.pdf

  • #2
    Might want to look at he Constructed Datum A-C Align; I see that you are leveling to a line; not the best thing to level to. How about datum B plane? Also check the rotation; I don't see one.
    Edit: Sorry didn't see the drawing: Use Datum A leveling (Cylinder)
    Last edited by brian.freeman; 08-09-2018, 07:39 PM.

    Comment


    • #3
      If everything is done right, look into your calibration. I mean the sphere qualification. Re call your probes and angles and do a study and room temperature. If the parts dont repeat well due to bad programming, the repeatability usually a lot worse, at least it was in my case. I would see numbers .0008 and up. And again not always, but 85%..so in this case It very possible that it is a case of bad qualification, or a simple dirty ruby kinda thing or dirty part.

      Again, these are just my thoughts.
      Last edited by WolfMan; 08-09-2018, 10:18 PM.
      B&S One
      PC-DMIS CAD v2014

      Romer Infinity

      Comment


      • #4
        Your constructed datum A_C is a mid line, not a 3d line. We're starting to see some combined datums now i.e. A-B, and pcdmis defaults to mid line from two line types (line or cylinder) features.


        Also (as pointed out) you're not locking rotation down, this can play havoc with program theoreticals, probably not the case here but you shouldn't really ever level without locking rotation also.

        For parts with no timing features use wither and constructed alignment line or an offset point to rotate to.
        Last edited by NinjaBadger; 08-10-2018, 05:01 AM.
        Automettech - Automated Metrology Technology

        Comment


        • WolfMan
          WolfMan commented
          Editing a comment
          You’re right Ninja, I was strictly talkig about outputing only perpend.

        • Radar
          Radar commented
          Editing a comment
          Ninja, would I want to use the Best Fit for the constructed feature type? I updated my program tonight using this and I get a line going from datum C to A the whole length instead of the short Mid line that I had to begin with. You are correct you don't see a rotation in the program. At the start of the program we have recall alignment for the fixture we are using. The V-block face is used for the rotation, is this acceptable?

        • NinjaBadger
          NinjaBadger commented
          Editing a comment
          Maybe, maybe not. The issue is that when you perform a level operation, you're actually adjusting two degrees of freedom (two rotational degrees are adjusted). By virtue of the coordinate system being three fixed perpendicular axis, when you adjust two the third must change, and it's what pc-dmis does with it that is the issue. It has been demonstrated that the 'can' cause issues to feature theoreticals down stream in your program.

          AFAIK this 'proof' was a one off, and I believe there's a registry setting which prevents this having an impact anyway (can't remember the setting).

          However, this is one of those cases where I prefer to play it safe. Every level has a rotation to follow it. I know some people lock all 6dof in every alignment, I think this is overkill but that's maybe just me.

          This isn't exactly the same, but have you ever programmed an Auto circle, and accidentally had the angle vector the same as the surface vector? All of a sudden pc-dmis can start taking the first hit anywhere around the circle (i.e. it doesn't know where zero degrees is because it's been defined as down the axis of the circle). Similar type thing.

          In this case it's probably not the issue, but I like to eliminate and potential sources of uncertainty and randomness in order to have a well repeating program.

      • #5
        In cases like this I tend to create the composite datum through the end points of the datums that comprise it.

        Code:
        DATUM_A    =FEAT/CONTACT/CYLINDER/DEFAULT,CARTESIAN,IN,LEAST_SQR
                    THEO/<0,0,3>,<0,0,1>,1.25,1
                    ACTL/<0,0,3>,<0,0,1>,1.25,1
                    TARG/<0,0,3>,<0,0,1>
                    START ANG=0,END ANG=0
                    ANGLE VEC=<1,0,0>
                    DIRECTION=CCW
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=YES
                      NUMHITS=3,NUMLEVELS=3,DEPTH=0,END OFFSET=0,PITCH=0
                      SAMPLE METHOD=SAMPLE_HITS
                      SAMPLE HITS=3,SPACER=0
                      AVOIDANCE MOVE=NO,DISTANCE=0.3937
                      FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
                    SHOW HITS=NO
        DATUM_B    =FEAT/CONTACT/CYLINDER/DEFAULT,CARTESIAN,IN,LEAST_SQR
                    THEO/<0,0,-3>,<0,0,1>,1,1
                    ACTL/<0,0,-3>,<0,0,1>,1,1
                    TARG/<0,0,-3>,<0,0,1>
                    START ANG=0,END ANG=0
                    ANGLE VEC=<1,0,0>
                    DIRECTION=CCW
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=YES
                      NUMHITS=3,NUMLEVELS=3,DEPTH=0,END OFFSET=0,PITCH=0
                      SAMPLE METHOD=SAMPLE_HITS
                      SAMPLE HITS=3,SPACER=0
                      AVOIDANCE MOVE=NO,DISTANCE=0.3937
                      FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
                    SHOW HITS=NO
        A_START    =GENERIC/POINT,DEPENDENT,CARTESIAN,$
                    NOM/XYZ,<DATUM_A.TSX,DATUM_A.TSY,DATUM_A.TSZ>,$
                    MEAS/XYZ,<DATUM_A.SX,DATUM_A.SY,DATUM_A.SZ>,$
                    NOM/IJK,<0,0,1>,$
                    MEAS/IJK,<0,0,1>
        A_END      =GENERIC/POINT,DEPENDENT,CARTESIAN,$
                    NOM/XYZ,<DATUM_A.TEX,DATUM_A.TEY,DATUM_A.TEZ>,$
                    MEAS/XYZ,<DATUM_A.EX,DATUM_A.EY,DATUM_A.EZ>,$
                    NOM/IJK,<0,0,1>,$
                    MEAS/IJK,<0,0,1>
        B_START    =GENERIC/POINT,DEPENDENT,CARTESIAN,$
                    NOM/XYZ,<DATUM_B.TSX,DATUM_B.TSY,DATUM_B.TSZ>,$
                    MEAS/XYZ,<DATUM_B.SX,DATUM_B.SY,DATUM_B.SZ>,$
                    NOM/IJK,<0,0,1>,$
                    MEAS/IJK,<0,0,1>
        B_END      =GENERIC/POINT,DEPENDENT,CARTESIAN,$
                    NOM/XYZ,<DATUM_B.TEX,DATUM_B.TEY,DATUM_B.TEZ>,$
                    MEAS/XYZ,<DATUM_B.EX,DATUM_B.EY,DATUM_B.EZ>,$
                    NOM/IJK,<0,0,1>,$
                    MEAS/IJK,<0,0,1>
        AB_AXIS    =FEAT/LINE,CARTESIAN,UNBOUNDED,NO
                    THEO/<0,0,-4>,<0,0,1>
                    ACTL/<0,0,-4>,<0,0,1>
                    CONSTR/LINE,BF,3D,B_END,B_START,A_END,A_START,,
                    OUTLIER_REMOVAL/OFF,3
                    FILTER/OFF,WAVELENGTH=0

        Comment


        • #6
          I did not see in your program your output lines... Perp in Pcdmis is a strange thing depending which feature you call first

          Perp is calculated over a distance...!

          The Insert | Dimension | Perpendicularity menu option measures the perpendicularity between two features. The second feature is always the datum feature. When only one feature is selected, the current working plane becomes the datum feature. This dimension type is considered one sided, meaning a single positive value tolerance is applied.
          To Dimension a Feature Using the PERPENDICULARITY Option:

          1. Select Insert | Dimension | Perpendicularity from the submenu. The Perpendicularity dialog box will appear.
          2. Select the feature(s) to dimension from the Feature List box.
          3. Select the appropriate Material Condition options for the feature(s) and datum.
          4. If a datum feature is desired, select the Use Datums check box and select another feature in the Feature List box.
          5. Select the appropriate Material Condition options for the feature(s) and datum.
          6. Type the plus tolerance value in the Plus box.
          7. Enter the projected distance in the Distance box.
          8. Select either Inch or MM in the Units section.
          9. Select where to output the dimension information. Select the Statistics, Report, Both, or None option.
          10. Select the optional Display check box if you want to view dimension information in the Graphic Display window.
          11. Select the desired Analysis options by marking the Textual check box or the Graphical check box. If the Graphical check box was marked, type the Multiplier value in the Multiplier box.
          12. If desired, select the Display check box in the Dimension Info area and click Edit to select the Dimension Info Format you would like displayed in the Graphic Display window.
          13. Click the Create button.

          The dimension will appear in the Edit window with this information:

          dimension_name = PERPENDICULARITY,OF feat_1,TO feat_2

          or

          dimension_name = PERPENDICULARITY,OF feat_1,TOworkplane
          AX NOM +TOL -TOL MEAS MAX MIN DEV OUT-TOL
          M 0.0000 0.0100 0.0100 5.0000 0.0000 0.0000 0.0000 0.0000

          Comment

          Working...
          X