Plane line point vs plane plane plane

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

  • Plane line point vs plane plane plane

    Hello everyone,

    I am aligning and programming utilizing a J-corner fixture. In my experience i have been told that aligning to plane plane plane would be ideal for several reasons. My colleague believes that a plane line point is better. I do not have as much experience as he does but through all my training i have been told that whenever possible i should align to 3D features. Any insight, experience stories, or bits of wisdom are greatly appreciated.

    Thank you!

  • #2
    Plane line point works for manual alignment, then if you want, use 3D features for your DCC alignment.
    Darroll
    2018R2

    Comment


    • #3
      All 3 Datums are large enough to pick up a reliable plane, then I align them as planes. If one side is small I may choose to do a line instead, but only if it is not the Primary Datum.
      According to the ASME standard, a Plane-Line-Point is proper. The only issue with this when using a CMM is that ASME follows the rules of measuring on a surface plate, which a CMM would not be able to replicate easily, if at all. Datum A should rest on the 3 highest points on a theoretically perfect plane, and that plane would be your Datum. Datum B would rotate and origin it's edge on the 2 highest points on it's surface against a theoretically perfect and perpendicular plane in relation to A, and the 2 points would essentially be datum. The third datum would then rest it's furthest point against a theoretically perfectly plane perpendicular to A and B, and that point would be Datum C. (See the ASME standard for reference pics.) This is easy with hard gauges, but with the CMM you cannot guarantee that the areas you probe will be the high points. You could scan all of the surfaces, create a tangent plane and a bunch of if/else statements and flow control to try and mimic a hard gage as best as possible, or you can use 3 planes and do what the majority of people do. Is it proper? No. Is it more repeatable? Almost always yes.

      Comment


      • Smallsvillanova
        Smallsvillanova commented
        Editing a comment
        Thank you! This is the sort of answer i was looking for. Something relateable back to some sort of industry standard. I am decently familiar with the ASME standard (obviously not as well as i should be) but that is where i will start. The man is as bullheaded as they come, im not intrested in whos right or wrong, im only interested in insuring things are as accurate and repeatable as possible. My word doesnt mean much to him but hopefully if i can reference some industry related guidlines among other things we can come to an agreement. I appreciate your input. Thank you again!
        Last edited by Smallsvillanova; 10-16-2019, 09:13 PM. Reason: Spelling and a word

    • #4
      What SingularitY said is right, but if you look at 2019R2 or some threads here, you can see that the 2nd datum (plane perp to the first and tangent to the surface, which minimizes the max distance is representated by a line. And the third by a point.
      The most difference with your colleague approach is that there are constructed features ansd not measured ones.

      For a manual pre-alignment, Plane - line - point is often enough, what Darrollh said.

      And a line can be a primary if it's a cylinder axis...

      Comment


      • Smallsvillanova
        Smallsvillanova commented
        Editing a comment
        Thank you very much for your input, your help is greatly appreciated. As I said I'm not very experienced I have two years of programming experience being taught by someone who never took any formal classes and I just took the level one class very recently. When you are thinking about programming a part in measuring the features to the gd&t how is it that you decide is the best method to measure something? Do you have a set of standards that you follow that give you a definitive guideline on how everything needs to be measured? Or are you simply using experience and your knowledge of gd&t ?

    • #5
      It really depends on what features are Datums and what the Feature Control Frame describes on the print. My reply was strictly about a 3 plane alignment, assuming ABC are planes. There are a lot of different datum structures and I'm sure many people will provide their version of what they believe is best practice. A manual alignment is pretty wide open. I, personally, use a single point alignment and then I pick up my Datums or part features twice in DCC to remove as much vector issues as possible. Our CMMs run 24/7 so it is all about having the operator do as little as possible. You can do a full 3-2-1 alignment in manual and you would only have to pick up the features one more time in DCC. As far as how to construct datums, I recommend checking out ASME Y14.5-1994 or above. It goes into more detail than you could ever want, but they essentially use what I described before, max inscribed holes and ID cylinders, min circumscribed OD circles and bosses, and describe what to do if the Feature Control Frame constrains less than 6 degrees of freedom. I also recommend formal training with Hexagon. They give you books you can bring back to work with you that, combined with the standard, will help both of you create your own best practices.

      Comment


      • #6
        If you have PC-DMIS version 2019 R2 (or later), there's no reason not to do it as correct as possible, it's not much work:

        - measure primary plane
        - construct a "Primary datum plane" from that (this was called "Tangent plane" in earlier versions)
        - measure secondary plane
        - construct a "Secondary datum line" (new in 2019 R2)
        - measure tertiary plane
        - construct a "Tertiary datum Point" (new in 2019 R2)
        - align on the constructe features

        If you have an older version, it's still possible to get close to the same thing, with a bit more code. I can show it here if you need it...
        AndersI
        SW support - Hexagon Metrology Nordic AB

        Comment


        • Smallsvillanova
          Smallsvillanova commented
          Editing a comment
          I am absolutely intrested in doing it as correct as possible. I have 2018r1 and I dont really have any experience with variable, expressions, etc. As ive only taken level one but if you post the code that would be great and I'll do my best to understand. Im not gonna try to make you explain the next 2 levels through the forum lol

      • #7
        For older versions, you can look at this thread, you will find some solutions (I don't remember which one was the best...) Maybe AndersI 's link was it.
        https://www.pcdmisforum.com/forum/pc...oup-to-a-plane

        Comment


        • #8
          Ok, I'll repeat it here - have a nice read :-)
          Assuming ZPLUS is 'up', XPLUS is 'right', YPLUS is 'forward', measuring on the ZPLUS, YMINUS and XMINUS surfaces (because that's how my example was written). If your reality is different, you have to change things (left as exercise to the reader).



          Primary is easy
          - measure a primary plane PLN_Z
          - construct a "Tangent plane", PLN_TZ, math type CONSTRAINED_L2, BFRE (CONSTRAINED_MINMAX if you are in ISO)
          - align level PLN_TZ, Z-origin PLN_TZ



          Secondary is a bit more work
          - measure a secondary plane PLN_Y
          - construct a "Tangent plane", PLN_TY, math type CONSTRAINED_L2, BFRE
          - align rotate YMINUS around ZPLUS to PLN_TY
          - locate the 'highest' measuring point on the YMINUS surface:
          - ASSIGN/TPY = PLN_TY.HIT[1..PLN_TY.NUMHITS].Y
          - ASSIGN/YZ = MININDEX(TPY)
          - align Y-origin to PLN_TY
          - in the Edit Window, change PLN_TY in the alignment command to PLN_TY.HIT[YZ..YZ]
          NOTE: This will not rest the secondary on two or more points, just the highest one, so not exactly according to the standards. See note (1) for a refinement.




          Tertiary is quite similar to secondary...
          As the alignment is now locked in all directions, all we have to do is locate the 'highest' point in the XMINUS direction:
          - measure a tertiary plane PLN_X
          - locate the 'highest' measuring point on the XMINUS surface:
          - ASSIGN/TPX = PLN_X.HIT[1..PLN_X.NUMHITS].X
          - ASSIGN/XZ = MININDEX(TPX)
          - align X-origin to PLN_X
          - in the Edit Window, change PLN_X in the alignment command to PLN_X.HIT[XZ..XZ]




          Full code

          Code:
           
          PLN_TZ =FEAT/PLANE,CARTESIAN,OUTLINE,NO
          THEO/<122.733,48.648,0>,<0,0,1>
          ACTL/<122.733,48.648,0>,<0,0,1>
          CONSTR/PLANE,TANGENT,PLN_Z,,
          MATH_TYPE/CONSTRAINED_MINMAX,BFRE
          A2 =ALIGNMENT/START,RECALL:A1,LIST=YES
          ALIGNMENT/LEVEL,ZPLUS,PLN_TZ
          ALIGNMENT/TRANS,ZAXIS,PLN_TZ
          ALIGNMENT/END
          PLN_TY =FEAT/PLANE,CARTESIAN,OUTLINE,NO
          THEO/<35.126,0,-21.7>,<0,-1,0>
          ACTL/<35.126,0,-21.7>,<0,-1,0>
          CONSTR/PLANE,TANGENT,PLN_Y,,
          MATH_TYPE/CONSTRAINED_MINMAX,BFRE
          A3 =ALIGNMENT/START,RECALL:A2,LIST=YES
          ALIGNMENT/ROTATE,YMINUS,TO,PLN_TY,ABOUT,ZPLUS
          ALIGNMENT/END
          ASSIGN/TPY=PLN_TY.HIT[1..PLN_TY.NUMHITS].Y
          ASSIGN/YZ=MININDEX(TPY)
          A4 =ALIGNMENT/START,RECALL:A3,LIST=YES
          ALIGNMENT/TRANS,YAXIS,PLN_TY.HIT[YZ..YZ]
          ALIGNMENT/END
          ASSIGN/TPX=PLN_X.HIT[1..PLN_X.NUMHITS].Y
          ASSIGN/XZ=MININDEX(TPX)
          A5 =ALIGNMENT/START,RECALL:A4,LIST=YES
          ALIGNMENT/TRANS,XAXIS,PLN_X.HIT[XZ..XZ]
          ALIGNMENT/END
          ------------------------------------------------------------------------------------------
          Note (1) - a 'slightly better' rotation of the secondary
          Now it's getting hairier...
          First do the secondary tangent plane exactly as above. Then comes the 'trick' part - move the origin temporarily to the found highest point, calculate the angle from this to all the other points and find the angle with the smallest absolute value. The signed value is how much we can rotate the coordinate system, touch [at least] two points of the secondary surface and still have all points on the same side of the calculated 'plane' (we are still 'tangent').



          Code:
           
          PLN_TY =FEAT/PLANE,CARTESIAN,TRIANGLE,NO
          THEO/<108.5,0,-14.8333>,<0,-1,0>
          ACTL/<108.8335,0.1469,-14.8317>,<0.0017223,-0.9999006,0.0139948>
          CONSTR/PLANE,TANGENT,PLN_Y,,
          MATH_TYPE/CONSTRAINED_L2,BFRE
          A2 =ALIGNMENT/START,RECALL:A1,LIST=YES
          ALIGNMENT/ROTATE,YMINUS,TO,PLN_TY,ABOUT,ZPLUS
          ALIGNMENT/END
          ASSIGN/VI2=MININDICES(PLN_TY.HIT[1..PLN_TY.NUMHITS].Y)
          ASSIGN/VI1=VI2[1]
          A3 =ALIGNMENT/START,RECALL:A2,LIST=YES
          ALIGNMENT/TRANS,YAXIS,PLN_TY.HIT[VI1..VI1]
          ALIGNMENT/END
          WORKPLANE/ZPLUS
          ASSIGN/ANG=RAD2DEG(ATAN(PLN_TY.HIT[1..PLN_TY.NUMHITS].Y/(PLN_TY.HIT[1..PLN_TY.NUMHITS].X - PLN_TY.HIT[VI1].X)))
          ASSIGN/AANG=ABS(ANG)
          ASSIGN/IANG=MININDEX(AANG)
          ASSIGN/ANGT=ANG[IANG]
          A4 =ALIGNMENT/START,RECALL:A3,LIST=YES
          ALIGNMENT/TRANS,XAXIS,PLN_TY.HIT[VI1..VI1]
          ALIGNMENT/ROTATE_OFFSET,ANGT,ABOUT,ZPLUS
          ALIGNMENT/END
          This alignment should be compatible with the older ASME standard of 'candidate datum set', but is not the same as the CONSTRAINED_L2 of current ASME, or the CONSTRAINED_MINMAX of current ISO. Probably close, but not the same.
          AndersI
          SW support - Hexagon Metrology Nordic AB

          Comment


          • AndersI
            AndersI commented
            Editing a comment
            Aaaarrrgghhh! I hate the formatting changing combination of this forum and Microsoft Edge browser...

        • #9
          Originally posted by AndersI View Post
          Ok, I'll repeat it here - have a nice read :-)
          Assuming ZPLUS is 'up', XPLUS is 'right', YPLUS is 'forward', measuring on the ZPLUS, YMINUS and XMINUS surfaces (because that's how my example was written). If your reality is different, you have to change things (left as exercise to the reader).



          Primary is easy
          - measure a primary plane PLN_Z
          - construct a "Tangent plane", PLN_TZ, math type CONSTRAINED_L2, BFRE (CONSTRAINED_MINMAX if you are in ISO)
          - align level PLN_TZ, Z-origin PLN_TZ



          Secondary is a bit more work
          - measure a secondary plane PLN_Y
          - construct a "Tangent plane", PLN_TY, math type CONSTRAINED_L2, BFRE
          - align rotate YMINUS around ZPLUS to PLN_TY
          - locate the 'highest' measuring point on the YMINUS surface:
          - ASSIGN/TPY = PLN_TY.HIT[1..PLN_TY.NUMHITS].Y
          - ASSIGN/YZ = MININDEX(TPY)
          - align Y-origin to PLN_TY
          - in the Edit Window, change PLN_TY in the alignment command to PLN_TY.HIT[YZ..YZ]
          NOTE: This will not rest the secondary on two or more points, just the highest one, so not exactly according to the standards. See note (1) for a refinement.




          Tertiary is quite similar to secondary...
          As the alignment is now locked in all directions, all we have to do is locate the 'highest' point in the XMINUS direction:
          - measure a tertiary plane PLN_X
          - locate the 'highest' measuring point on the XMINUS surface:
          - ASSIGN/TPX = PLN_X.HIT[1..PLN_X.NUMHITS].X
          - ASSIGN/XZ = MININDEX(TPX)
          - align X-origin to PLN_X
          - in the Edit Window, change PLN_X in the alignment command to PLN_X.HIT[XZ..XZ]




          Full code

          Code:
           
          PLN_TZ =FEAT/PLANE,CARTESIAN,OUTLINE,NO
          THEO/<122.733,48.648,0>,<0,0,1>
          ACTL/<122.733,48.648,0>,<0,0,1>
          CONSTR/PLANE,TANGENT,PLN_Z,,
          MATH_TYPE/CONSTRAINED_MINMAX,BFRE
          A2 =ALIGNMENT/START,RECALL:A1,LIST=YES
          ALIGNMENT/LEVEL,ZPLUS,PLN_TZ
          ALIGNMENT/TRANS,ZAXIS,PLN_TZ
          ALIGNMENT/END
          PLN_TY =FEAT/PLANE,CARTESIAN,OUTLINE,NO
          THEO/<35.126,0,-21.7>,<0,-1,0>
          ACTL/<35.126,0,-21.7>,<0,-1,0>
          CONSTR/PLANE,TANGENT,PLN_Y,,
          MATH_TYPE/CONSTRAINED_MINMAX,BFRE
          A3 =ALIGNMENT/START,RECALL:A2,LIST=YES
          ALIGNMENT/ROTATE,YMINUS,TO,PLN_TY,ABOUT,ZPLUS
          ALIGNMENT/END
          ASSIGN/TPY=PLN_TY.HIT[1..PLN_TY.NUMHITS].Y
          ASSIGN/YZ=MININDEX(TPY)
          A4 =ALIGNMENT/START,RECALL:A3,LIST=YES
          ALIGNMENT/TRANS,YAXIS,PLN_TY.HIT[YZ..YZ]
          ALIGNMENT/END
          ASSIGN/TPX=PLN_X.HIT[1..PLN_X.NUMHITS].Y
          ASSIGN/XZ=MININDEX(TPX)
          A5 =ALIGNMENT/START,RECALL:A4,LIST=YES
          ALIGNMENT/TRANS,XAXIS,PLN_X.HIT[XZ..XZ]
          ALIGNMENT/END
          ------------------------------------------------------------------------------------------
          Note (1) - a 'slightly better' rotation of the secondary
          Now it's getting hairier...
          First do the secondary tangent plane exactly as above. Then comes the 'trick' part - move the origin temporarily to the found highest point, calculate the angle from this to all the other points and find the angle with the smallest absolute value. The signed value is how much we can rotate the coordinate system, touch [at least] two points of the secondary surface and still have all points on the same side of the calculated 'plane' (we are still 'tangent').



          Code:
           
          PLN_TY =FEAT/PLANE,CARTESIAN,TRIANGLE,NO
          THEO/<108.5,0,-14.8333>,<0,-1,0>
          ACTL/<108.8335,0.1469,-14.8317>,<0.0017223,-0.9999006,0.0139948>
          CONSTR/PLANE,TANGENT,PLN_Y,,
          MATH_TYPE/CONSTRAINED_L2,BFRE
          A2 =ALIGNMENT/START,RECALL:A1,LIST=YES
          ALIGNMENT/ROTATE,YMINUS,TO,PLN_TY,ABOUT,ZPLUS
          ALIGNMENT/END
          ASSIGN/VI2=MININDICES(PLN_TY.HIT[1..PLN_TY.NUMHITS].Y)
          ASSIGN/VI1=VI2[1]
          A3 =ALIGNMENT/START,RECALL:A2,LIST=YES
          ALIGNMENT/TRANS,YAXIS,PLN_TY.HIT[VI1..VI1]
          ALIGNMENT/END
          WORKPLANE/ZPLUS
          ASSIGN/ANG=RAD2DEG(ATAN(PLN_TY.HIT[1..PLN_TY.NUMHITS].Y/(PLN_TY.HIT[1..PLN_TY.NUMHITS].X - PLN_TY.HIT[VI1].X)))
          ASSIGN/AANG=ABS(ANG)
          ASSIGN/IANG=MININDEX(AANG)
          ASSIGN/ANGT=ANG[IANG]
          A4 =ALIGNMENT/START,RECALL:A3,LIST=YES
          ALIGNMENT/TRANS,XAXIS,PLN_TY.HIT[VI1..VI1]
          ALIGNMENT/ROTATE_OFFSET,ANGT,ABOUT,ZPLUS
          ALIGNMENT/END
          This alignment should be compatible with the older ASME standard of 'candidate datum set', but is not the same as the CONSTRAINED_L2 of current ASME, or the CONSTRAINED_MINMAX of current ISO. Probably close, but not the same.
          "Assuming ZPLUS is 'up', XPLUS is 'right', YPLUS is 'forward',....."

          er, should YPLUS be to the rear, not forward?
          sigpic
          Originally posted by AndersI
          I've got one from September 2006 (bug ticket) which has finally been fixed in 2013.

          Comment


          • AndersI
            AndersI commented
            Editing a comment
            Probably - I'm offline, don't sit in a machine, so forward for me is away into the screen...

        • #10
          I like the idea of trying to mimic what the ASME standard explains using tangent planes and extracting the furthest points using variables and constructions. How often is this actually used in practice though? I've seen a lot of programs written by suppliers and customers that state ASME standard on their print and none of which used this method. Not saying it's proper, just that I haven't seen it in practice, only in theory. In order to "accurately" find the highest points, are each plane scanned with high point densities to ensure the the points closest to the highest points are found?
          if someone can give me opinions on this, it would be appreciated. It seems to me, if a plane is only probed using 4 to 10 points (idk the size of these parts or planes) and a tangent plane is constructed, one of those points may not actually be lying on the highest point of the plane which would cause error. Also, if correlations are required with you and a customer and both use tangent planes, I would think that the alignment could change to some degree depending on where the points are placed and correlations could fails when tight tolerances are involved.
          Thanks for the insight.

          Comment


          • #11
            SingularitY , your questions are interesting, and a lot of people should ask them to theirself... But I'm not sure that THE answer exists...
            You're right, the number of hits is important, but nobody can measure the entire surface.
            Just think to the necessary number of hits to dimension flatness, and it should be the right number. (of course, if you just want to have a good value, 3 hits gives a perfect flatness, and the BF plane should be the same that the tg... )
            Scanning is a nice solution, but needs using outlier filters, and tangent planes don't have this option. So, you can create a filtered BF plane and then create the tg plane from its hits.

            Now it's coffee time, and it's friday !
            Happy week-end, all !

            Comment


            • #12
              Originally posted by SingularitY View Post
              I like the idea of trying to mimic what the ASME standard explains using tangent planes and extracting the furthest points using variables and constructions. How often is this actually used in practice though?
              Too seldom :-)

              Jokes aside, if your parts are perfect, you don't need this. The worse your parts are (rough surface, form errors, out of square datums, etc.) the more important it gets. I'd guess machined parts are almost always 'good enough', welded parts could be trickier (but mostly have larger tolerances)...
              Last edited by AndersI; 10-22-2019, 10:02 AM.
              AndersI
              SW support - Hexagon Metrology Nordic AB

              Comment

              Related Topics

              Collapse

              Working...
              X