How Does PCd calc plane to point?

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

  • How Does PCd calc plane to point?

    Why is there a difference in the way PCd calculates the distance from a plane to a point? Shouldn't a 2D distance from point to plane perpendicular to the plane be the same as a 3D distance from point to plane?

    I understand the difference with the 2D will be larger the more skewed the plane is from the workplane. My current issue is not greatly skewed from the workplane & I'm only dealing with 3mm distance. How can the difference be as great as 0.4?

    The plane is a X- plane, -2° to Z+. The points are offset from this plane 3mm & a plane construced of these points should be // to this plane. They were measured in Y-, the plane construced in Y- but the dimensions only come out reasonably close when dimensioned in Z+. I would think the 2D should be measured in Y- but the results come out 11.50.

    Measured 2D in Z+, the top two pionts measure 2.97 & the bottom two measure 3.75.

    Measured as 3D, they all come out around 3.30.

    Measured in Y-, they come out 11.50.
    To some the glass is half full
    To some it is half empty
    To me it is poorly designed by the Eng & Prod wants me to find a way to measure it in spec!

  • #2
    The order that you choose the features is important.
    You should always choose the point first.
    Then if you choose 3d or 2d (and check Perp to feature with 2d) you should get the same values.
    If you choose the plane first, when you click perp to feature it will try to give you a number perpendicular to the feature (point) and many things can influence the vector of the actual measured point.
    Lately, it occurs to me
    What a long, strange trip it's been.

    2017 R1 (Offline programming)

    Comment


    • #3
      I'm not sure I follow...However, for point to plane distance, select the point first and plane second.
      Last edited by Roberto; 02-22-2012, 06:41 AM.
      sigpicIt's corona time!
      737 Xcel Cad++ v2009MR1....SE HABLA ESPAÑOL

      Comment


      • #4
        For both 2D & 3D, I've chosen point 1st, then plane. Still getting varying values. Maybe this machine is just possessed! No wonder programmers keep leaving here!
        To some the glass is half full
        To some it is half empty
        To me it is poorly designed by the Eng & Prod wants me to find a way to measure it in spec!

        Comment


        • #5
          Not sure why you are using 2d with point to plane.
          I always use 3d. Always works....very close to what you get with a mic (if you use a very small plane.)
          It is also (in my experience) best to try to get the point in the "middle" of the plane.
          Lately, it occurs to me
          What a long, strange trip it's been.

          2017 R1 (Offline programming)

          Comment


          • #6
            I'm measuring a gage. The plane is to check the profile form & location. I've taken the part CAD & overlapped it on the gage. Created generic points based on the plane of the CAD & measured points on the gage in same XYZ location to measure the offset.

            Why this isn't working, I don't know. It seems simple enough. Should get the same answer (similar) in 2D perp & 3D.
            To some the glass is half full
            To some it is half empty
            To me it is poorly designed by the Eng & Prod wants me to find a way to measure it in spec!

            Comment


            • #7
              Slug,

              Post the code in question. I agree with John, so there might be something one of us will catch.
              When in doubt, post code. A second set of eyes might see something you missed.
              sigpic

              Comment


              • #8
                OK, here is just the relevant code for this problem. The points 10-13 are actual points taken on the gage. The CAD points (generic features) were taken from the area of the part (CAD) that the profile is called out. The Y & Z values should be almost identical; the x values should all be around 3mm different due to the offset for gaging the parts.

                Originally, I just used CAD points instead of generic features and unmarked those points. The problem was when I re-ran the program with the points unmarked, it would not calculate the dimensions.

                Code:
                            workplane/xminus
                pnt10      =feat/contact/vector point,cartesian
                            theo/<99.25,-33.25,65.5>,<-0.9999965,0.0016969,-0.0020151>
                            actl/<99.26,-33.25,65.5>,<-0.9999965,0.0016969,-0.0020151>
                            targ/<99.25,-33.25,65.5>,<-0.9999965,0.0016969,-0.0020151>
                            snap=no
                            show feature parameters=no
                            show contact parameters=yes
                              avoidance move=no,distance=0
                            show hits=no
                pnt11      =feat/contact/vector point,cartesian
                            theo/<99.25,-51.5,65.5>,<-0.9999356,0.0021898,-0.0111377>
                            actl/<99.25,-51.5,65.5>,<-0.9999356,0.0021898,-0.0111377>
                            targ/<99.25,-51.5,65.5>,<-0.9999356,0.0021898,-0.0111377>
                            snap=no
                            show feature parameters=no
                            show contact parameters=yes
                              avoidance move=no,distance=0
                            show hits=no
                pnt12      =feat/contact/vector point,cartesian
                            theo/<100.04,-51.5,42.5>,<-0.9999898,0.0040768,-0.0019295>
                            actl/<100.05,-51.5,42.5>,<-0.9999898,0.0040768,-0.0019295>
                            targ/<100.04,-51.5,42.5>,<-0.9999898,0.0040768,-0.0019295>
                            snap=no
                            show feature parameters=no
                            show contact parameters=yes
                              avoidance move=no,distance=0
                            show hits=no
                pnt13      =feat/contact/vector point,cartesian
                            theo/<100.03,-33.25,42.5>,<-0.9999678,0.0002943,0.0080139>
                            actl/<100.05,-33.25,42.5>,<-0.9999678,0.0002943,0.0080139>
                            targ/<100.03,-33.25,42.5>,<-0.9999678,0.0002943,0.0080139>
                            snap=no
                            show feature parameters=no
                            show contact parameters=yes
                              avoidance move=no,distance=0
                            show hits=no
                pln_slt3   =feat/plane,cartesian,outline,no
                            theo/<99.64,-42.38,54>,<-0.999418,-0.0002738,-0.0341106>
                            actl/<99.65,-42.37,54>,<-0.9994064,0.0003066,-0.0344502>
                            constr/plane,bf,pnt10,pnt11,pnt12,pnt13,,
                            outlier_removal/off,3
                            filter/off,wavelength=0
                grp_cad_pnts=group/showallparams = yes
                    f10        =generic/point,dependent,cartesian,$
                                nom/xyz,<95.93,-33.3,65.5>,$
                                meas/xyz,<95.93,-33.3,65.5>,$
                                nom/ijk,<0.9993907,0.0000434,0.0349045>,$
                                meas/ijk,<0.9993907,0.0000434,0.0349045>
                    f11        =generic/point,dependent,cartesian,$
                                nom/xyz,<95.93,-51.5,65.5>,$
                                meas/xyz,<95.93,-51.5,65.5>,$
                                nom/ijk,<0.9995503,0,0.0299865>,$
                                meas/ijk,<0.9995503,0,0.0299865>
                    f12        =generic/point,dependent,cartesian,$
                                nom/xyz,<96.73,-49.5,42.5>,$
                                meas/xyz,<96.73,-49.5,42.5>,$
                                nom/ijk,<0.9995503,0,0.0299865>,$
                                meas/ijk,<0.9995503,0,0.0299865>
                    f13        =generic/point,dependent,cartesian,$
                                nom/xyz,<96.73,-33.3,42.5>,$
                                meas/xyz,<96.73,-33.3,42.5>,$
                                nom/ijk,<0.9995503,0,0.0299865>,$
                                meas/ijk,<0.9995503,0,0.0299865>
                    pln_slt3_cad=feat/plane,cartesian,triangle,no
                                theo/<96.33,-41.9,54>,<0.9993956,0,0.0347616>
                                actl/<96.33,-41.9,54>,<0.9993956,0,0.0347616>
                                constr/plane,bf,f10,f11,f12,f13,,
                                outlier_removal/off,3
                                filter/off,wavelength=0
                            endgroup/id=grp_cad_pnts
                            workplane/zplus
                dim 23_10= 3d distance from point pnt10 to plane pln_slt3_cad,shortest=off,no_radius  units=mm,$
                graph=off  text=off  mult=10.00  output=both
                ax    nominal       +tol       -tol       meas        dev     outtol
                m        3.32       0.05       0.05       3.33       0.01       0.00 ----#---
                dim 23_11= 3d distance from point pnt11 to plane pln_slt3_cad,shortest=off,no_radius  units=mm,$
                graph=off  text=off  mult=10.00  output=both
                ax    nominal       +tol       -tol       meas        dev     outtol
                m        3.32       0.05       0.05       3.32       0.00       0.00 ---#----
                dim 23_12= 3d distance from point pnt12 to plane pln_slt3_cad,shortest=off,no_radius  units=mm,$
                graph=off  text=off  mult=10.00  output=both
                ax    nominal       +tol       -tol       meas        dev     outtol
                m        3.31       0.05       0.05       3.32       0.01       0.00 ----#---
                dim 23_13= 3d distance from point pnt13 to plane pln_slt3_cad,shortest=off,no_radius  units=mm,$
                graph=off  text=off  mult=10.00  output=both
                ax    nominal       +tol       -tol       meas        dev     outtol
                m        3.30       0.05       0.05       3.32       0.02       0.00 -----#--
                dim 23_10_2d= 2d distance from point pnt10 to plane pln_slt3_cad perp to plane pln_slt3_cad,no_radius  units=mm,$
                graph=off  text=off  mult=10.00  output=both
                ax    nominal       +tol       -tol       meas        dev     outtol
                m        2.92       0.05       0.05       2.93       0.01       0.00 ----#---
                dim 23_11_2d= 2d distance from point pnt11 to plane pln_slt3_cad perp to plane pln_slt3_cad,no_radius  units=mm,$
                graph=off  text=off  mult=10.00  output=both
                ax    nominal       +tol       -tol       meas        dev     outtol
                m        2.92       0.05       0.05       2.92       0.00       0.00 ---#----
                dim 23_12_2d= 2d distance from point pnt12 to plane pln_slt3_cad perp to plane pln_slt3_cad,no_radius  units=mm,$
                graph=off  text=off  mult=10.00  output=both
                ax    nominal       +tol       -tol       meas        dev     outtol
                m        3.71       0.05       0.05       3.72       0.01       0.00 ----#---
                dim 23_13_2d= 2d distance from point pnt13 to plane pln_slt3_cad perp to plane pln_slt3_cad,no_radius  units=mm,$
                graph=off  text=off  mult=10.00  output=both
                ax    nominal       +tol       -tol       meas        dev     outtol
                m        3.70       0.05       0.05       3.72       0.02       0.00 -----#--
                            workplane/yminus
                dim 23_10_y_minus= 3d distance from point pnt10 to plane pln_slt3_cad,shortest=off,no_radius  units=mm,$
                graph=off  text=off  mult=10.00  output=both
                ax    nominal       +tol       -tol       meas        dev     outtol
                m        3.32       0.05       0.05       3.33       0.01       0.00 ----#---
                dim 23_11_y_minus= 3d distance from point pnt11 to plane pln_slt3_cad,shortest=off,no_radius  units=mm,$
                graph=off  text=off  mult=10.00  output=both
                ax    nominal       +tol       -tol       meas        dev     outtol
                m        3.32       0.05       0.05       3.32       0.00       0.00 ---#----
                dim 23_12_y_minus= 3d distance from point pnt12 to plane pln_slt3_cad,shortest=off,no_radius  units=mm,$
                graph=off  text=off  mult=10.00  output=both
                ax    nominal       +tol       -tol       meas        dev     outtol
                m        3.31       0.05       0.05       3.32       0.01       0.00 ----#---
                dim 23_13_y_minus= 3d distance from point pnt13 to plane pln_slt3_cad,shortest=off,no_radius  units=mm,$
                graph=off  text=off  mult=10.00  output=both
                ax    nominal       +tol       -tol       meas        dev     outtol
                m        3.30       0.05       0.05       3.32       0.02       0.00 -----#--
                dim 23_10_2d_y_minus= 2d distance from point pnt10 to plane pln_slt3_cad perp to plane pln_slt3_cad,no_radius  units=mm,$
                graph=off  text=off  mult=10.00  output=both
                ax    nominal       +tol       -tol       meas        dev     outtol
                m       11.50       0.05       0.05      11.50       0.00       0.00 ---#----
                dim 23_11_2d_y_minus= 2d distance from point pnt11 to plane pln_slt3_cad perp to plane pln_slt3_cad,no_radius  units=mm,$
                graph=off  text=off  mult=10.00  output=both
                ax    nominal       +tol       -tol       meas        dev     outtol
                m       11.50       0.05       0.05      11.50       0.00       0.00 ---#----
                dim 23_12_2d_y_minus= 2d distance from point pnt12 to plane pln_slt3_cad perp to plane pln_slt3_cad,no_radius  units=mm,$
                graph=off  text=off  mult=10.00  output=both
                ax    nominal       +tol       -tol       meas        dev     outtol
                m       11.50       0.05       0.05      11.50       0.00       0.00 ---#----
                dim 23_13_2d_y_minus= 2d distance from point pnt13 to plane pln_slt3_cad perp to plane pln_slt3_cad,no_radius  units=mm,$
                graph=off  text=off  mult=10.00  output=both
                ax    nominal       +tol       -tol       meas        dev     outtol
                m       11.50       0.05       0.05      11.50       0.00       0.00 ---#----
                To some the glass is half full
                To some it is half empty
                To me it is poorly designed by the Eng & Prod wants me to find a way to measure it in spec!

                Comment


                • #9
                  By the way, I have another simlar part (3mm gap) and the 2D results are 19.4mm while the 3D results are 104.3mm!
                  Code:
                              WORKPLANE/ZPLUS
                  DIM 22_DIST_SLT4_PLANE_1= 3D DISTANCE FROM POINT PNT23 TO PLANE PLN_CAD,SHORTEST=OFF,NO_RADIUS  UNITS=MM,$
                  GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH
                  AX    NOMINAL       +TOL       -TOL       MEAS        DEV     OUTTOL
                  M      3.0000+0     0.5000     0.5000   104.2832   101.2832   100.7832 ------->
                  DIM 22_DIST_SLT4_PLANE_2= 3D DISTANCE FROM POINT PNT24 TO PLANE PLN_CAD,SHORTEST=OFF,NO_RADIUS  UNITS=MM,$
                  GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH
                  AX    NOMINAL       +TOL       -TOL       MEAS        DEV     OUTTOL
                  M      3.0000+0     0.5000     0.5000   104.3043   101.3043   100.8043 ------->
                  DIM 22 DIST SLT 4 PLANE 3= 2D DISTANCE FROM POINT PNT25 TO PLANE PLN_CAD PERP TO PLANE PLN_CAD,NO_RADIUS  UNITS=MM,$
                  GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH
                  AX    NOMINAL       +TOL       -TOL       MEAS        DEV     OUTTOL
                  M      3.0000+0     0.5000     0.5000    19.3523    -0.1477     0.0000 --#-----
                  DIM 22_DIST_SLT4_PLANE_4= 2D DISTANCE FROM POINT PNT26 TO PLANE PLN_CAD PERP TO PLANE PLN_CAD,NO_RADIUS  UNITS=MM,$
                  GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH
                  AX    NOMINAL       +TOL       -TOL       MEAS        DEV     OUTTOL
                  M      3.0000+0     0.5000     0.5000    19.4117    -0.0883     0.0000 ---#----
                  To some the glass is half full
                  To some it is half empty
                  To me it is poorly designed by the Eng & Prod wants me to find a way to measure it in spec!

                  Comment


                  • #10
                    ? Maybe WORKPLANE/ZPLUS is skewing the 3D results.

                    B&S CHAMELEON/PCDMIS CAD++ V2011

                    There are no bugs, only "UNDOCUMENTED ENHANCEMENTS!"

                    sigpic

                    Comment


                    • #11
                      You can calculate 3D distance as a variable :
                      Assign\Var1=dot((PT1.XYZ-PL1.XYZ),PL1.IJK).
                      It's the vector between the point and a point of the plane dot the vector of the plane.
                      For a 2D distance, PC-DMIS project the point on the workplane, and then calculate the distance. If you measure a plane, then you create an alignment on it (Level Z+, origin XYZ on it also). You shift a point from origin to (0,0,100). If workplane is Z+, the 3D distance will be 100, the 2D distance will be 0.

                      Comment


                      • #12
                        I found a problem in the second program is because I used CAD points & did not mark them, it generated actual values that were not close to the theo / target values. That is why the values are off so much.

                        Still don't know what is going on in the first program posted. I don't understand why Z+ gives the closest readings. When the part is viewed from Y-, the plane is tilted like it is pointing between 11:00 & 12:00 position.
                        To some the glass is half full
                        To some it is half empty
                        To me it is poorly designed by the Eng & Prod wants me to find a way to measure it in spec!

                        Comment


                        • #13
                          I also tried leveling & aligning X- to this plane & do the measurement but this did not work either.
                          To some the glass is half full
                          To some it is half empty
                          To me it is poorly designed by the Eng & Prod wants me to find a way to measure it in spec!

                          Comment


                          • #14
                            I guess at this point I would ask why you are using this method to verify the gage? If you have the CAD file properly aligned to the gage you can just pick the points on the CAD and apply an offset, either theo or actual depending on the nominals that you want to see, to the CAD and viola instant gage check. I have had problems in the past with generating generic features from CAD nominals and then unmarking the features that created the points. The nominals have had a tendency to change on each subsequent run.

                            If all you are doing is verifying the gage and you have the CAD already available and aligned then using offsets is a much easier way to go.
                            Saving the world, one bad part at a time.

                            Comment


                            • #15
                              Originally posted by EHines View Post
                              I guess at this point I would ask why you are using this method to verify the gage? If you have the CAD file properly aligned to the gage you can just pick the points on the CAD and apply an offset, either theo or actual depending on the nominals that you want to see, to the CAD and viola instant gage check. I have had problems in the past with generating generic features from CAD nominals and then unmarking the features that created the points. The nominals have had a tendency to change on each subsequent run.

                              If all you are doing is verifying the gage and you have the CAD already available and aligned then using offsets is a much easier way to go.
                              The way around the generic feature "shift" is to do it with variables, assign the nominal values to variables, then use the variables to make the generic feature.

                              ALSO, I agree with EH, if you are checking a gage with a 3mm feeler gap, use fixture side of stock and use a NEGATIVE 3mm stock thickness, either ACTUAL (to keep PART nominals) or THEO THICKNESS to get fixture nominals.
                              Last edited by Matthew D. Hoedeman; 12-02-2009, 09:25 AM.
                              sigpic
                              Originally posted by AndersI
                              I've got one from September 2006 (bug ticket) which has finally been fixed in 2013.

                              Comment

                              Related Topics

                              Collapse

                              Working...
                              X