Position in 2020 R2

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

  • Position in 2020 R2

    Hey all, I've recently updated to PCDMIS 2020 R2, and the dialog for True Position is throwing me for a loop. The results I'm getting do not correlate to manual calculation based off measured basic dimensions, and I can't figure out where I'm going wrong. It may be in the definition of the Datums based on the part print, but here's where I'm at.

    positionillustration.png
    This is a really basic illustration of my part and the defined datums. I'm using an iterative alignment defined as follows: A plane of Z1-Z3, which are not coplanar. Rotation between hole X and a circle constructed to the width of slot Y, and an origin at the center of hole X.

    My first thought is that based on these features, the callout should actually read: [0.6|Z|X|Y] instead of X,Y,Z, as in every other print I've used, the first letter is A and A is always the datum defined as a plane.

    From there, I'm pretty lost as to what is going wrong.

    I have attempted defining the datums as X being the circle constructed to define Datum X, Y as the slot, the circle constructed to the width of the slot, and a line between X and Y, and Z as a plane constructed from the points created at Z1, Z2, and Z3.

    Any assistance is appreciated, and please let me know if you need more info.

    Again, this is a rough illustration, the actual part is not perfectly flat and has a lot of organic bends in it making Z1 and Z3 almost coplanar, and Z2 nowhere near coplanar to Z1 and Z3.
    Last edited by MUlissi; 11-03-2020, 08:33 AM.

  • #2
    Are Z1, Z2, and Z3 datum target areas? If so, any point in the area should suffice as the simulator for the area. Any three points are always coplanar as three points define a plane.

    I am seeing X as a cylinder, Y as a slot, and Z as the datum plane containing the three targets. If this is the case, X will constrain 4 degrees of freedom, two rotational and two translational. Y will constrain the remaining rotational degree of freedom. Z will constrain the remaining translational degree of freedom.

    Level on cylinder X. Rotate to slot Y. Origin two degrees of freedom on X. Origin the remaining degree of freedom on Z.

    As far as simulation is concerned, slide X onto a pin. The part will be free to spin about and translate along the axis of the pin. Simulate the slot with a width to prevent rotation. The part will still be free to translate along the axis of the pin. Translate the part until contact is made against three pins (possibly variable height) that simulate Z.

    When you say that Z1 and Z2 are almost coplanar, and Z3 is not coplanar to the two, you are assuming the existence of some reference plane from which “coplanar” is determined.
    Last edited by JacobCheverie; 11-02-2020, 07:54 PM.

    Comment


    • MUlissi
      MUlissi commented
      Editing a comment
      Each Z is meant to fall within a certain diameter on each of the surfaces, so yes, they are target areas.

      X is currently measured as a circle, not a cylinder. I'll see if measuring a cylinder improves things.

    • JacobCheverie
      JacobCheverie commented
      Editing a comment
      You will have issues using a circle as a primary datum as it does not constrain the appropriate degrees of freedom.

  • #3
    What JacobCheverie said. Remember, the slot (width) should be treated as a line/plane in 2020R2.
    PC-DMIS CAD++ 2o19 R1 SP11

    Comment


    • #4
      Clarification based on Jacob's initial question: Z1-Z3 are target areas. Each is somewhere between a 15 and 19 mm diameter area. Those target areas are what is not coplanar.

      Additionally, this is stamped steel that is slightly under 2mm in thickness.
      Last edited by MUlissi; 11-03-2020, 08:41 AM.

      Comment


      • JacobCheverie
        JacobCheverie commented
        Editing a comment
        If one point is taken in each target area, the three points will be coplanar as any three points are coplanar. You must have basic dimensions that tell you the height of each target area relative to one another.

      • MUlissi
        MUlissi commented
        Editing a comment
        Yes, It shows Z2 and Z3's height compared to Z1 in basic dimensions.

    • #5
      Something I know will come up, and is at least partially relevant to this, as this metal is thin but not the thinnest I work with:

      When working with thin sheet metal where a cylinder is not easily obtained, what would I have to do for the datum that would normally be a cylinder?

      Comment


      • JacobCheverie
        JacobCheverie commented
        Editing a comment
        I didn't realize it was sheet metal. In that case, you will need to take sample hits on the plane around the circle to obtain an approximate orientation. You can take sample hits in the auto feature dialog.

      • MUlissi
        MUlissi commented
        Editing a comment
        Okay, cool. I'm still doing that correctly then. I was starting to worry I had been operating under a misunderstanding somewhere.

    • #6
      Sounds like a perfect candidate for an iterative alignment.
      PC-DMIS CAD++ 2o19 R1 SP11

      Comment


      • JacobCheverie
        JacobCheverie commented
        Editing a comment
        If I am understanding correctly, that is because the measurements reported in PC-DMIS will be based on whatever alignment you are working in. Once you use the Geometric Tolerance command, the internal reporting coordinate system is changed to match that of the Datum Reference Frame.

        If you align the part exactly per the Datum Reference Frame before reporting your basic measurements, then they should just about agree with the results from the Geometric Tolerance command.

      • MUlissi
        MUlissi commented
        Editing a comment
        My alignment is iterative, using points taken in Z1-Z3 for Level, Rotation between X and Y, and Origin on X. The circle of X uses 3 sample hits, as does the slot for Y.

        I'm assuming I need to create a constructed plane using Z1-Z3 to define Datum Z in PC-DMIS, which I've done, and that I'm messing up in defining Datum X and Y somewhere.

      • JacobCheverie
        JacobCheverie commented
        Editing a comment
        But Z1-Z3 is not your primary datum and should not be used to level. You are creating an alignment that is different from the Datum Reference Frame, which would explain the discrepancy in your results.

        I had said in my response #2, if you want to match the alignment to the Datum Reference Frame, you must "Level on cylinder X. Rotate to slot Y. Origin two degrees of freedom on X. Origin the remaining degree of freedom on Z."

    • #7
      As a side note, I want to thank you both for your patience with what feel like really basic questions.

      I couldn't find answers combing through some forum posts or quickly by using the help feature.

      Comment


      • #8
        Friggin engineers... Level to a cylinder on a sheet metal part.

        If I was doing it, I would iterate the alignment way you are now then define the datums as JacobCheverie said, set the level datum to a circle with 3 sample hits, create a centerline in the slot to rotate (MAKE SURE THIS IS A 2D LINE AND YOUR WORKPLANE IS CORRECT!!!!!), then 3 points to construct a plane for translation.

        What I do when I have to construct a plane from points that are not on the same level is the point (or points) that are not at the level you want, program the hit then construct an offset point at the level you want. EX: Say point 1 and 2 are at the level you want but point 3 is .25 down, program the point then offset it up .25 then use that point in the plane construction. If you do this, set the offset to the nominal distance from where the point is to where the plane should be. That should be obvious but just putting it out there since I only converse with y'all digitally and don't personally know you guys.

        Good luck and let us know how it turns out.
        Remembering my beautiful wife Taz who's life was lost on 6-13-2020. I love you and I miss you.

        Comment


        • A-machine-insp
          A-machine-insp commented
          Editing a comment
          MUlissi It is based off slot width. You will need a centerline down the long axis of the slot to rotate to.

          If you are using legacy, it is relating back to your alignment unless you have told it the datums to use in the dialog box.

          I use GeoTol for everything I can. I do not like legacy because sometime I (and others operators in the department) have issues verifying the dimensions on the granite. Also, our customers look closely at the reports. Legacy does not show the FCF whereas with GeoTol (or Xact) I have it show the FCF exactly as shown on the print/model.

        • MUlissi
          MUlissi commented
          Editing a comment
          What method do you use to construct the line? Do you create a constructed line using auto (which defaults to cast) on the auto slot, or do you measure two circles on either end of the slot and use those to create the line via their centerpoints?

        • A-machine-insp
          A-machine-insp commented
          Editing a comment
          MUlissi you can construct a line from circle to circle or construct a line on either ling side then a mid line. Personally I would do a line on either side then a midline.

      • #9
        So when I use the line in the slot to rotate the model, everything rotates clockwise to varying degrees based upon proximity to the X datum. I understand what it's doing, but not why.

        As suggested, I'm leveling to Datum X, a circle that takes 3 sample measurements before measuring the circle itself.
        Rotating to a 2D line constructed from an Auto slot feature.
        Origin the X and Y to the X-Datum Circle, and Origin Z to Plane Z, constructed by offsetting Point Z2 and Z3 down to the same level as Z1 by the basic dimension on the print.

        Comment


        • JacobCheverie
          JacobCheverie commented
          Editing a comment
          Do you have your rotate command set to rotate the measured direction of the 2D line about the "axis" of X? For example, if X is normal in Z you will level Z. Then, if your THEO vector for your 2D line is <0, -1, 0>, you will rotate YMINUS about Z.

          Maybe you can post some of your code, including the alignment section?

        • vpt.se
          vpt.se commented
          Editing a comment
          ...or add the trihedron to the image in your first post, so we know what alignment/csys you want or try to achieve.

        • MUlissi
          MUlissi commented
          Editing a comment
          Will do as soon as possible. I got dragged onto another project in the midst of this.

      • #10
        As requested: This is my current alignment code, preceded by an explanation of my process.
        I have to break the code up between two comments as it exceeds character limit. Final alignment will be in the comment following this one.

        After a readpoint alignment where I manually move the probe tip to a predefined location, it begins with a rough alignment to account for part location and minor rotation, followed by an iterative to key it in more precisely, and lastly, the suggested alignment described in the last response I gave.

        All alignments are performed in DCC mode after location via the readpoint.

        It is at this point that I begin measuring the part.

        After that last alignment, all of the features seem to rotate clockwise.

        My normal routine is a readpoint, followed by a rough alignment, and then an iterative, followed by measuring the part.

        Except for instances of specific requirement, I don't often have to perform non-iterative alignments.

        Code:
        READPOINT =FEAT/POINT,CARTESIAN
        THEO/<1433,569.882,1195.829>,<-0.219308,0.074734,0.9727892>
        ACTL/<733.749,-1037.191,-606.215>,<-0.219308,0.074734,0.9727892>
        READPOINT/
        RDPNT_ALN =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
        ALIGNMENT/TRANS,XAXIS,READPOINT
        ALIGNMENT/TRANS_OFFSET,XAXIS,-1433
        ALIGNMENT/TRANS,YAXIS,READPOINT
        ALIGNMENT/TRANS_OFFSET,YAXIS,-569.882
        ALIGNMENT/TRANS,ZAXIS,READPOINT
        ALIGNMENT/TRANS_OFFSET,ZAXIS,-1195.829
        ALIGNMENT/END
        MODE/DCC
        RGH_DTM_X =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
        THEO/<1433,569.882,1195.829>,<-0.1657848,0,0.986162>,8
        ACTL/<1433.253,569.744,1195.998>,<-0.1746578,0.0232114,0.9843556>,8.152
        TARG/<1433,569.882,1195.829>,<-0.1657848,0,0.986162>
        START ANG=0,END ANG=360
        ANGLE VEC=<0.986162,0,0.1657848>
        DIRECTION=CCW
        SHOW FEATURE PARAMETERS=NO
        SHOW CONTACT PARAMETERS=YES
        NUMHITS=3,DEPTH=1,PITCH=0
        SAMPLE METHOD=SAMPLE_HITS
        SAMPLE HITS=3,SPACER=1.5
        AVOIDANCE MOVE=BOTH,DISTANCE=10
        FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
        SHOW HITS=NO
        RGH_LVL1 =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
        THEO/<1415.264,572.649,1194.942>,<0.0180192,-0.0167355,0.9996976>
        ACTL/<1415.337,570.582,1194.968>,<0.0112815,0.0172576,0 .9997874>
        TARG/<1415.264,572.649,1194.942>,<0.0180192,-0.0167355,0.9996976>
        SNAP=NO
        SHOW FEATURE PARAMETERS=NO
        SHOW CONTACT PARAMETERS=YES
        AVOIDANCE MOVE=BOTH,DISTANCE=10
        SHOW HITS=NO
        RGH_LVL2 =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
        THEO/<1428.638,566.081,1195.096>,<-0.1657848,0,0.986162>
        ACTL/<1429.32,565.453,1195.395>,<-0.173146,0.0142794,0.9847927>
        TARG/<1428.638,566.081,1195.096>,<-0.1657848,0,0.986162>
        SNAP=NO
        SHOW FEATURE PARAMETERS=NO
        SHOW CONTACT PARAMETERS=YES
        AVOIDANCE MOVE=BOTH,DISTANCE=10
        SHOW HITS=NO
        RGH_LVL3 =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
        THEO/<1442.978,568.602,1197.507>,<-0.1657848,0,0.986162>
        ACTL/<1443.296,569.534,1197.809>,<-0.173146,0.0142794,0.9847927>
        TARG/<1442.978,568.602,1197.507>,<-0.1657848,0,0.986162>
        SNAP=NO
        SHOW FEATURE PARAMETERS=NO
        SHOW CONTACT PARAMETERS=YES
        AVOIDANCE MOVE=BOTH,DISTANCE=10
        SHOW HITS=NO
        RGH_RT1 =FEAT/CONTACT/EDGE POINT/DEFAULT,CARTESIAN
        THEO/<1415.959,578.646,1195.03>,<0.0895655,0.9958671,0. 015057>,<0.0180192,-0.0167355,0.9996976>
        ACTL/<1415.398,576.616,1194.807>,<-0.0160655,0.9997189,-0.0174373>,<0.0100067,0.0175994,0.999795>
        TARG/<1415.959,578.646,1195.03>,<0.0895655,0.9958671,0. 015057>,<0.0180192,-0.0167355,0.9996976>
        MEASURE ORDER=SURFACE
        SHOW FEATURE PARAMETERS=NO
        SHOW CONTACT PARAMETERS=YES
        DEPTH=1
        SAMPLE HITS=1,SPACER=0,INDENT1=2
        AVOIDANCE MOVE=BOTH,DISTANCE=10
        ONERROR=NO
        RGH_RT2 =FEAT/CONTACT/EDGE POINT/DEFAULT,CARTESIAN
        THEO/<1446.404,571.69,1198.082>,<0.4018271,0.9132206,0. 0675516>,<-0.1657848,0,0.986162>
        ACTL/<1446.377,572.979,1198.29>,<0.3026458,0.9522756,0. 0397087>,<-0.1743977,0.0143705,0.9845704>
        TARG/<1446.404,571.69,1198.082>,<0.4018271,0.9132206,0. 0675516>,<-0.1657848,0,0.986162>
        MEASURE ORDER=SURFACE
        SHOW FEATURE PARAMETERS=NO
        SHOW CONTACT PARAMETERS=YES
        DEPTH=1
        SAMPLE HITS=1,SPACER=0,INDENT1=2
        AVOIDANCE MOVE=BOTH,DISTANCE=10
        ONERROR=NO
        RGH_ALN =ALIGNMENT/START,RECALL:RDPNT_ALN,LIST=YES
        ALIGNMENT/ITERATE
        PNT TARGET RAD=5,START LABEL=,FIXTURE TOL=0.2,ERROR LABEL=
        MEAS ALL FEAT=ALWAYS,MAX ITERATIONS=1,LEVEL AXIS=ZAXIS,ROTATE AXIS=YAXIS,ORIGIN AXIS=XAXIS
        LEVEL=RGH_LVL1,RGH_LVL2,RGH_LVL3,RGH_DTM_X,,
        ROTATE=RGH_RT1,RGH_RT2,,
        ORIGIN=RGH_DTM_X,,
        ALIGNMENT/END
        IT_DTMX =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
        THEO/<1433,569.882,1195.829>,<-0.1657848,0,0.986162>,8
        ACTL/<1433.007,569.915,1195.794>,<-0.1668505,0.0086864,0.9859439>,8.15
        TARG/<1433,569.882,1195.829>,<-0.1657848,0,0.986162>
        START ANG=0,END ANG=360
        ANGLE VEC=<0.986162,0,0.1657848>
        DIRECTION=CCW
        SHOW FEATURE PARAMETERS=NO
        SHOW CONTACT PARAMETERS=YES
        NUMHITS=5,DEPTH=1,PITCH=0
        SAMPLE METHOD=SAMPLE_HITS
        SAMPLE HITS=3,SPACER=1
        AVOIDANCE MOVE=BOTH,DISTANCE=10
        FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
        SHOW HITS=NO
        IT_LVL1 =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
        THEO/<1387.247,573.855,1194.223>,<-0.216721,0.0939958,0.9716979>
        ACTL/<1387.219,573.409,1194.138>,<-0.2199214,0.0957631,0.9708059>
        TARG/<1387.247,573.855,1194.223>,<-0.216721,0.0939958,0.9716979>
        SNAP=NO
        SHOW FEATURE PARAMETERS=NO
        SHOW CONTACT PARAMETERS=YES
        AVOIDANCE MOVE=BOTH,DISTANCE=10
        SHOW HITS=NO
        IT_DTMY =FEAT/CONTACT/ROUND SLOT/DEFAULT,CARTESIAN,IN
        THEO/<1363.064,447.382,1195.638>,<-0.1657848,0,0.986162>,<0,-1,0>,8,11
        ACTL/<1364.339,446.735,1195.933>,<-0.232357,0.0739616,0.9698144>,<0.0152853,-0.9967037,0.0796745>,8.192,11.162
        TARG/<1363.064,447.382,1195.638>,<-0.1657848,0,0.986162>,<0,-1,0>
        MEAS ANGLE=180
        SHOW FEATURE PARAMETERS=NO
        SHOW CONTACT PARAMETERS=YES
        NUMHITS=8,DEPTH=1
        SAMPLE METHOD=SAMPLE_HITS
        SAMPLE HITS=3,SPACER=1
        AVOIDANCE MOVE=BOTH,DISTANCE=10
        FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
        SHOW HITS=NO
        IT_DTMY_A =FEAT/CIRCLE,CARTESIAN,OUT,NO
        THEO/<1363.064,447.382,1195.638>,<-0.1657848,0,0.986162>,8
        ACTL/<1364.339,446.735,1195.933>,<-0.232357,0.0739616,0.9698144>,8.192
        CONSTR/CIRCLE,CAST,IT_DTMY,DEPENDENT
        IT_LVL2 =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
        THEO/<1352.089,380.283,1199.641>,<-0.2354849,0.0604397,0.9699969>
        ACTL/<1354.049,379.508,1200.28>,<-0.2383338,0.0620081,0.9692017>
        TARG/<1352.089,380.283,1199.641>,<-0.2354849,0.0604397,0.9699969>
        SNAP=NO
        SHOW FEATURE PARAMETERS=NO
        SHOW CONTACT PARAMETERS=YES
        AVOIDANCE MOVE=BOTH,DISTANCE=10
        SHOW HITS=NO
        IT_LVL3 =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
        THEO/<1460.22,511.081,1185.717>,<-0.1657848,0,0.986162>
        ACTL/<1460.856,511.357,1186.057>,<-0.1680508,0.0023593,0.9857755>
        TARG/<1460.22,511.081,1185.717>,<-0.1657848,0,0.986162>
        SNAP=NO
        SHOW FEATURE PARAMETERS=NO
        SHOW CONTACT PARAMETERS=YES
        AVOIDANCE MOVE=BOTH,DISTANCE=10
        SHOW HITS=NO
        IT_ALN =ALIGNMENT/START,RECALL:RGH_ALN,LIST=YES
        ALIGNMENT/ITERATE
        PNT TARGET RAD=0.5,START LABEL=,FIXTURE TOL=0.2,ERROR LABEL=
        MEAS ALL FEAT=ALWAYS,MAX ITERATIONS=3,LEVEL AXIS=ZAXIS,ROTATE AXIS=XAXIS,ORIGIN AXIS=YAXIS
        LEVEL=IT_LVL1,IT_LVL2,IT_LVL3,,
        ROTATE=IT_DTMX,IT_DTMY_A,,
        ORIGIN=IT_DTMX,,
        ALIGNMENT/END
        Here is the requested illustration accompanied by the Trihedron. Positive Z axis is projected toward you.
        positionillustration.png
        This is a picture of the actual rotation of the Y datum before and after the alignment.
        dtmY.PNG

        Comment


        • #11
          Code:
          dtm_x =feat/contact/circle/default,cartesian,in,least_sqr
          theo/<1433,569.882,1195.829>,<-0.1657848,0,0.986162>,8
          actl/<1432.997,569.884,1195.761>,<-0.1641955,0.0061907,0.9864084>,8.152
          targ/<1433,569.882,1195.829>,<-0.1657848,0,0.986162>
          start ang=0,end ang=360
          angle vec=<0.986162,0,0.1657848>
          direction=ccw
          show feature parameters=no
          show contact parameters=yes
          numhits=5,depth=1,pitch=0
          sample method=sample_hits
          sample hits=3,spacer=1
          avoidance move=both,distance=10
          find hole=disabled,onerror=no,read pos=no
          show hits=no
          z1_1 =feat/contact/vector point/default,cartesian
          theo/<1464.538,514.241,1186.442>,<-0.1657848,0,0.986162>
          actl/<1464.539,514.245,1186.416>,<-0.1657848,0,0.986162>
          targ/<1464.538,514.241,1186.442>,<-0.1657848,0,0.986162>
          snap=no
          show feature parameters=no
          show contact parameters=yes
          avoidance move=both,distance=10
          show hits=no
          z1_2 =feat/contact/vector point/default,cartesian
          theo/<1460.694,505.278,1185.796>,<-0.1657848,0,0.986162>
          actl/<1460.687,505.282,1185.826>,<-0.1657848,0,0.986162>
          targ/<1460.694,505.278,1185.796>,<-0.1657848,0,0.986162>
          snap=no
          show feature parameters=no
          show contact parameters=yes
          avoidance move=both,distance=10
          show hits=no
          z1_3 =feat/contact/vector point/default,cartesian
          theo/<1454.998,513.491,1184.839>,<-0.1657848,0,0.986162>
          actl/<1455.002,513.496,1184.813>,<-0.1657848,0,0.986162>
          targ/<1454.998,513.491,1184.839>,<-0.1657848,0,0.986162>
          snap=no
          show feature parameters=no
          show contact parameters=yes
          avoidance move=both,distance=10
          show hits=no
          z2_1 =feat/contact/vector point/default,cartesian
          theo/<1389.266,568.935,1195.149>,<-0.216721,0.0939958,0.9716979>
          actl/<1389.264,568.935,1195.171>,<-0.216721,0.0939958,0.9716979>
          targ/<1389.266,568.935,1195.149>,<-0.216721,0.0939958,0.9716979>
          snap=no
          show feature parameters=no
          show contact parameters=yes
          avoidance move=both,distance=10
          show hits=no
          z2_2 =feat/contact/vector point/default,cartesian
          theo/<1389.935,578.327,1194.39>,<-0.216721,0.0939958,0.9716979>
          actl/<1389.938,578.326,1194.405>,<-0.216721,0.0939958,0.9716979>
          targ/<1389.935,578.327,1194.39>,<-0.216721,0.0939958,0.9716979>
          snap=no
          show feature parameters=no
          show contact parameters=yes
          avoidance move=both,distance=10
          show hits=no
          z2_3 =feat/contact/vector point/default,cartesian
          theo/<1381.33,573.697,1192.919>,<-0.216721,0.0939958,0.9716979>
          actl/<1381.335,573.694,1192.905>,<-0.216721,0.0939958,0.9716979>
          targ/<1381.33,573.697,1192.919>,<-0.216721,0.0939958,0.9716979>
          snap=no
          show feature parameters=no
          show contact parameters=yes
          avoidance move=both,distance=10
          show hits=no
          dtm_y =feat/contact/round slot/default,cartesian,in
          theo/<1363.064,447.382,1195.638>,<-0.1657848,0,0.986162>,<0,-1,0>,8,11
          actl/<1363.063,447.42,1195.546>,<-0.2291309,0.072424,0.9706976>,<0.0055284,-0.9971153,0.0757>,8.192,11.162
          targ/<1363.064,447.382,1195.638>,<-0.1657848,0,0.986162>,<0,-1,0>
          meas angle=180
          show feature parameters=no
          show contact parameters=yes
          numhits=8,depth=1
          sample method=sample_hits
          sample hits=3,spacer=1
          avoidance move=both,distance=10
          find hole=disabled,onerror=no,read pos=no
          show hits=no
          dtm_y_a =feat/circle,cartesian,out,no
          theo/<1363.064,447.382,1195.638>,<-0.1657848,0,0.986162>,8
          actl/<1363.063,447.42,1195.546>,<-0.2291309,0.072424,0.9706976>,8.192
          constr/circle,cast,dtm_y,dependent
          lin_y_1 =feat/line,cartesian,unbounded,no
          theo/<1359.285,448.882,1193.989>,<0,-1,0>
          actl/<1359.302,448.8,1193.524>,<0.0010529,-0.9971745,0.0751121>
          constr/line,bf,3d,dtm_y.hit[1..1],dtm_y.hit[8..8],,
          outlier_removal/off,3
          filter/off,wavelength=0
          lin_y_2 =feat/line,cartesian,unbounded,no
          theo/<1367.174,448.882,1195.315>,<0,-1,0>
          actl/<1367.275,448.794,1195.408>,<0.0005024,-0.9972222,0.0744825>
          constr/line,bf,3d,dtm_y.hit[4..4],dtm_y.hit[5..5],,
          outlier_removal/off,3
          filter/off,wavelength=0
          lin_y =feat/line,cartesian,unbounded,no
          theo/<1363.229,448.882,1194.652>,<0,-1,0>
          actl/<1363.288,448.797,1194.466>,<0.0007776,-0.9971985,0.0747973>
          constr/line,mid,lin_y_1,lin_y_2
          z3_1 =feat/contact/vector point/default,cartesian
          theo/<1355.312,384.639,1200.153>,<-0.2354849,0.0604397,0.9699969>
          actl/<1355.321,384.633,1200.125>,<-0.2354849,0.0604397,0.9699969>
          targ/<1355.312,384.639,1200.153>,<-0.2354849,0.0604397,0.9699969>
          snap=no
          show feature parameters=no
          show contact parameters=yes
          avoidance move=both,distance=10
          show hits=no
          z3_2 =feat/contact/vector point/default,cartesian
          theo/<1353.672,374.721,1200.372>,<-0.2354849,0.0604397,0.9699969>
          actl/<1353.68,374.717,1200.359>,<-0.2354849,0.0604397,0.9699969>
          targ/<1353.672,374.721,1200.372>,<-0.2354849,0.0604397,0.9699969>
          snap=no
          show feature parameters=no
          show contact parameters=yes
          avoidance move=both,distance=10
          show hits=no
          z3_3 =feat/contact/vector point/default,cartesian
          theo/<1346.47,381.825,1198.181>,<-0.2354849,0.0604397,0.9699969>
          actl/<1346.474,381.828,1198.187>,<-0.2354849,0.0604397,0.9699969>
          targ/<1346.47,381.825,1198.181>,<-0.2354849,0.0604397,0.9699969>
          snap=no
          show feature parameters=no
          show contact parameters=yes
          avoidance move=both,distance=10
          show hits=no
          pln_z1 =feat/plane,cartesian,triangle,no,least_sqr
          theo/<1460.076,511.004,1185.692>,<-0.1657848,0,0.986162>
          actl/<1460.076,511.008,1185.685>,<-0.1662387,0.0065652,0.9860637>
          constr/plane,bf,z1_1,z1_2,z1_3,,
          outlier_removal/off,3
          filter/off,wavelength=0
          pln_z2 =feat/plane,cartesian,triangle,no,least_sqr
          theo/<1386.843,573.653,1194.153>,<-0.216721,0.0939958,0.9716979>
          actl/<1386.845,573.652,1194.16>,<-0.2203279,0.0950145,0.9707872>
          constr/plane,bf,z2_1,z2_2,z2_3,,
          outlier_removal/off,3
          filter/off,wavelength=0
          pln_z2a =feat/plane,cartesian,triangle,no
          theo/<1391.286,571.726,1174.233>,<-0.216721,0.0939958,0.9716979>
          actl/<1391.362,571.704,1174.259>,<-0.2203279,0.0950145,0.9707872>
          constr/plane,offset
          id = pln_z2,,
          offset = -20.5
          pln_z3 =feat/plane,cartesian,triangle,no,least_sqr
          theo/<1351.818,380.395,1199.569>,<-0.2354849,0.0604397,0.9699968>
          actl/<1351.825,380.393,1199.557>,<-0.23204,0.0613423,0.9707701>
          constr/plane,bf,z3_1,z3_2,z3_3,,
          outlier_removal/off,3
          filter/off,wavelength=0
          pln_z3a =feat/plane,cartesian,triangle,no
          theo/<1359.259,378.485,1168.917>,<-0.2354849,0.0604397,0.9699968>
          actl/<1359.157,378.454,1168.881>,<-0.23204,0.0613423,0.9707701>
          constr/plane,offset
          id = pln_z3,,
          offset = -31.6
          z1 =feat/point,cartesian,no
          theo/<1460.076,511.004,1185.692>,<-0.1657848,0,0.986162>
          actl/<1460.076,511.008,1185.685>,<-0.1662387,0.0065652,0.9860637>
          constr/point,cast,pln_z1
          z2 =feat/point,cartesian,no
          theo/<1391.286,571.726,1174.233>,<-0.216721,0.0939958,0.9716979>
          actl/<1391.362,571.704,1174.259>,<-0.2203279,0.0950145,0.9707872>
          constr/point,cast,pln_z2a
          z3 =feat/point,cartesian,no
          theo/<1359.259,378.485,1168.917>,<-0.2354849,0.0604397,0.9699968>
          actl/<1359.157,378.454,1168.881>,<-0.23204,0.0613423,0.9707701>
          constr/point,cast,pln_z3a
          pln_z =feat/plane,cartesian,triangle,no,least_sqr
          theo/<1403.541,487.072,1176.281>,<-0.1642473,0.0000844,0.9864192>
          actl/<1403.532,487.055,1176.275>,<-0.1641192,-0.000104,0.9864405>
          constr/plane,bf,z1,z2,z3,,
          outlier_removal/off,3
          filter/off,wavelength=0
          workplane/xplus
          dcc_aln =alignment/start,recall:it_aln,list=yes
          alignment/level,zplus,dtm_x
          alignment/rotate,yminus,to,lin_y,about,zplus
          alignment/trans,zaxis,pln_z
          alignment/trans,xaxis,dtm_x
          alignment/trans,yaxis,dtm_x
          alignment/end

          Comment


          • #12
            MUlissi I'm not sure why you are making a circle in the slot or why you are making Z1, Z2, and Z3 cast points.

            The first step that I would recommend would be to correct all of your feature nominal values. Your vectors are not square and your hits will be off.

            Also, I would recommend simply measuring X as a circle with sample hits. Measure Y as a 2D width by measuring a single line on each side of the slot and constructing the width. Measure each datum target of Z as a point with the appropriate offset and construct a plane from the three.

            Comment


            • MUlissi
              MUlissi commented
              Editing a comment
              The circle in the slot is something I've been shown by other users and I've found in a lot of the programs that were written before I took over this position. It seems to play nicer than asking PCDMIS to use the slot in iterative alignments. I'm not sure why, since both inherently have the same center point, but when the software gave better and more repeatable results, I didn't argue.

              For X, I'm using a circle with sample hits.

              For Z, I was casting the point I took on the surface. I'm in the process of rebuilding this atm now that I'm free of a few other time and focus constraints.

              For Y, my only concern is the size of the slot. The flat sections on the sides are pretty small, but I'll try it out for sure.

          Related Topics

          Collapse

          Working...
          X