DCC alignment not automatically following manual alignment

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

  • DCC alignment not automatically following manual alignment

    Hello all,

    I'm new to PC DMIS and I'm having an issue where it seems like my manual alignment is not properly telling my DCC alignment where the features are.

    I'll get a program up and running, and then I have to move the part to a different location on the table for one reason or another.

    I run another manual alignment, go to run the program, and it doesn't work.

    I was able to resolve the problem by re-setting my initial alignment and updating the dependent features, but my understanding is that I shouldn't have to do this every time and that it should do it automatically.

    what am I missing here?

  • #2
    Incorrect alignment setup? Post code please.

    Comment


    • #3
      Here's all my code up until my DCC alignment. Please note that plane 4 is the same feature as datum a, plane 5 is the same feature as datum b, and circle 2 is the same as datum e, and the program crashes the moment it tries to re-measure the feature circle 2 and datum e are measured from.



      STARTUP =ALIGNMENT/START,RECALL:USE_PART_SETUP,LIST=YES
      ALIGNMENT/END
      MODE/MANUAL
      FORMAT/TEXT,OPTIONS, ,HEADINGS,SYMBOLS, ;NOM,TOL,MEAS,DEV,OUTTOL, ,
      TEMPCOMP/METHOD = AUTOMATIC,MATERIAL = Zerodur; Nexcera,CTE=0
      ,SET WARNING LIMIT = FALSE,MINIMUM = 10,MAXIMUM = 40
      ,PART SENSOR NUM=DEFAULT,X SCALE= 21.9751,Y SCALE= 20.8346,Z SCALE= 21.8329,PART TEMP=20.9932
      LOADPROBE/2X20 LONG MASTER
      TIP/T1A0B0, SHANKIJK=0, 0, 1, ANGLE=0
      MOVESPEED/ 150
      TOUCHSPEED/ 2
      PLN4 =FEAT/PLANE,CARTESIAN,OUTLINE
      THEO/<15.6447,15.8187,-36.5906>,<0,0,1>
      ACTL/<15.76,18.611,-36.6267>,<0.0003234,-0.0618134,0.9980877>
      MEAS/PLANE,4
      HIT/BASIC,NORMAL,<12.5523,15.9734,-36.5818>,<-0.0003585,-0.0630368,0.9980111>,<11.5549,18.3593,-36.6409>,USE THEO=YES
      HIT/BASIC,NORMAL,<12.5523,15.6739,-36.601>,<-0.0003585,-0.0630368,0.9980111>,<11.5548,18.8796,-36.6087>,USE THEO=YES
      HIT/BASIC,NORMAL,<18.6808,15.6738,-36.5985>,<-0.0003585,-0.0630368,0.9980111>,<19.9653,18.7411,-36.62>,USE THEO=YES
      HIT/BASIC,NORMAL,<18.7935,15.9537,-36.5811>,<-0.0003585,-0.0630368,0.9980111>,<19.9651,18.464,-36.6372>,USE THEO=YES
      ENDMEAS/
      TIP/T1A90B-90, SHANKIJK=1, 0, 0, ANGLE=-90
      PLN5 =FEAT/PLANE,CARTESIAN,OUTLINE
      THEO/<19.0784,15.8922,-37.9759>,<1,0,0>
      ACTL/<19.317,18.5965,-37.2322>,<0.0712559,0.9972769,0.0190128>
      MEAS/PLANE,4
      HIT/BASIC,NORMAL,<19.0788,16.0354,-37.0634>,<0.9999999,-0.0001162,-0.0004092>,<20.1301,18.5705,-39.0103>,USE THEO=YES
      HIT/BASIC,NORMAL,<19.0787,15.6345,-37.0633>,<0.9999999,-0.0001162,-0.0004092>,<16.8754,18.741,-35.7425>,USE THEO=YES
      HIT/BASIC,NORMAL,<19.078,15.8715,-38.8884>,<0.9999999,-0.0001162,-0.0004092>,<20.1316,18.7287,-37.088>,USE THEO=YES
      HIT/BASIC,NORMAL,<19.0779,16.0273,-38.8884>,<0.9999999,-0.0001162,-0.0004092>,<20.131,18.3458,-37.088>,USE THEO=YES
      ENDMEAS/
      WORKPLANE/XPLUS
      CIR2 =FEAT/CIRCLE,CARTESIAN,IN,LEAST_SQR
      THEO/<19.0029,16.0017,-39.3558>,<1,0,0>,0.2533
      ACTL/<20.0161,18.7515,-39.3642>,<1,0,0>,0.2527
      MEAS/CIRCLE,7,XPLUS
      HIT/BASIC,NORMAL,<19.0486,15.9518,-39.4724>,<0,0.3933998,0.9193675>,<20.0282,18.7159,-39.4854>,USE THEO=YES
      HIT/BASIC,NORMAL,<19.0486,15.9518,-39.2394>,<0,0.3940268,-0.9190989>,<20.0282,18.7159,-39.2429>,USE THEO=YES
      HIT/BASIC,NORMAL,<19.0486,16.1253,-39.3846>,<0,-0.9738975,0.2269881>,<20.0282,18.6275,-39.3887>,USE THEO=YES
      HIT/BASIC,NORMAL,<18.9686,16.0237,-39.4803>,<0,-0.1738538,0.9847715>,<20.0283,18.8757,-39.3887>,USE THEO=YES
      HIT/BASIC,NORMAL,<18.9686,16.0236,-39.2312>,<0,-0.1732581,-0.9848764>,<20.0281,18.6399,-39.4235>,USE THEO=YES
      HIT/BASIC,NORMAL,<18.9686,16.1265,-39.3768>,<0,-0.986222,0.1654272>,<20.0282,18.8628,-39.4235>,USE THEO=YES
      HIT/BASIC,NORMAL,<18.9686,15.8768,-39.3767>,<0,0.9862668,0.1651599>,<19.9436,18.6358,-39.3137>,USE THEO=YES
      ENDMEAS/
      A1 =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
      ALIGNMENT/LEVEL,ZPLUS,PLN4
      ALIGNMENT/LEVEL,XPLUS,PLN5
      ALIGNMENT/TRANS,XAXIS,PLN5
      ALIGNMENT/TRANS,YAXIS,CIR2
      ALIGNMENT/TRANS,ZAXIS,CIR2
      ALIGNMENT/END
      MODE/DCC
      TIP/T1A90B-90, SHANKIJK=1, 0.0014, 0.0007, ANGLE=-93.7008
      DATUM_E =FEAT/CIRCLE,CARTESIAN,IN,LEAST_SQR
      THEO/<0,0,0>,<1,0,0>,0.251
      ACTL/<0.1927,-0.3951,0.0095>,<0.0700238,-0.9975397,0.0033602>,0.2527
      MEAS/CIRCLE,4,FEATURE=PLN5
      HIT/BASIC,NORMAL,<-0.0512,0.0156,-0.1259>,<0,-0.1256055,0.9920803>,<0.2072,-0.3894,-0.1153>,USE THEO=YES
      HIT/BASIC,NORMAL,<-0.0513,0.0313,0.1226>,<0,-0.2498426,-0.9682865>,<0.2104,-0.3837,0.1327>,USE THEO=YES
      HIT/BASIC,NORMAL,<-0.0513,0.123,-0.0296>,<0,-0.9726011,0.2324803>,<0.2782,-0.3511,-0.0162>,USE THEO=YES
      HIT/BASIC,NORMAL,<-0.0512,-0.1263,-0.0138>,<0,0.9941241,0.1082465>,<0.1067,-0.4402,-0.008>,USE THEO=YES
      ENDMEAS/
      DATUM_B =FEAT/PLANE,CARTESIAN,OUTLINE
      THEO/<0,0,1.4538>,<1,0,0>
      ACTL/<0.1214,-0.4466,1.4617>,<0.0704814,-0.9975071,0.0034553>
      MEAS/PLANE,4
      HIT/BASIC,NORMAL,<0.0002,0.0982,0.21>,<1,0,0>,<0.2484,-0.4782,0.2241>,USE THEO=YES
      HIT/BASIC,NORMAL,<0.0001,-0.1028,0.2227>,<1,0,0>,<0.0475,-0.4928,0.2278>,USE THEO=YES
      MOVE/CIRCULAR
      HIT/BASIC,NORMAL,<0,-0.2006,2.6902>,<1,0,0>,<-0.1601,-0.4986,2.6885>,USE THEO=YES
      MOVE/CIRCULAR
      HIT/BASIC,NORMAL,<0.0001,0.1651,2.6921>,<1,0,0>,<0.204 2,-0.473,2.7067>,USE THEO=YES
      ENDMEAS/
      WORKPLANE/ZPLUS
      MOVE/INCREMENT,<-0.0034,0.0151,10>
      TIP/T1A0B0, SHANKIJK=-0.0012, 0.0646, 0.9979, ANGLE=0.1084
      DIM FLAT1= FLATNESS OF PLANE DATUM_B UNITS=IN ,$
      GRAPH=OFF TEXT=OFF MULT=10.00 ARROWDENSITY=100 OUTPUT=BOTH
      AX NOMINAL +TOL -TOL MEAS DEV OUTTOL
      M 0.0000 0.0005 0.0000 0.0004 0.0004 0.0000 ------#--
      TIP/T1A0B0, SHANKIJK=-0.0003, 0.0015, 1, ANGLE=0.0701
      DATUM_A =FEAT/PLANE,CARTESIAN,OUTLINE
      THEO/<-3.364,-0.0652,2.732>,<0,0,1>
      ACTL/<-0.2264,2.9055,2.7306>,<-0.0439183,0.0004808,0.999035>
      MEAS/PLANE,5
      HIT/BASIC,NORMAL,<-0.3926,-0.2057,2.7715>,<0,0,1>,<-0.1584,-0.0685,2.7352>,USE THEO=YES
      MOVE/CIRCULAR
      HIT/BASIC,NORMAL,<-0.3927,0.1462,2.7736>,<0,0,1>,<0.1922,-0.0437,2.7504>,USE THEO=YES
      MOVE/CIRCULAR
      HIT/BASIC,NORMAL,<-6.5347,0.1449,2.7692>,<0,0,1>,<-0.239,6.0832,2.7286>,USE THEO=YES
      HIT/BASIC,NORMAL,<-3,-0.2057,2.7715>,<0,0,1>,<-0.341,2.5326,2.7257>,USE THEO=YES
      HIT/BASIC,NORMAL,<-6.5,-0.2057,2.7715>,<0,0,1>,<-0.5861,6.0239,2.7133>,USE THEO=YES
      ENDMEAS/
      MOVE/POINT,NORMAL,<-7.7645,0.117,3.0095>
      WORKPLANE/ZPLUS
      DATDEF/E,FEATURES=DATUM_E,,
      DATDEF/B,FEATURES=DATUM_B,,
      DATDEF/A,FEATURES=DATUM_A,,
      LIN1 =FEAT/LINE,CARTESIAN,UNBOUNDED
      THEO/<-6.519,0.1148,2.8452>,<1,0,0>
      ACTL/<-0.2697,6.0654,2.7665>,<0.0700815,-0.9975349,0.003561>
      MEAS/LINE,4,FEATURE=DATUM_A
      HIT/BASIC,NORMAL,<-6.519,0.0748,2.805>,<0,0,1>,<-0.3078,6.0626,2.7257>,USE THEO=YES
      HIT/BASIC,NORMAL,<-4.6568,0.076,2.8063>,<0,0,1>,<-0.1762,4.2052,2.7322>,USE THEO=YES
      HIT/BASIC,NORMAL,<-2.4171,0.0776,2.8078>,<0,0,1>,<-0.0178,1.971,2.7402>,USE THEO=YES
      HIT/BASIC,NORMAL,<-0.25,0.0748,2.805>,<0,0,1>,<0.1311,-0.191,2.748>,USE THEO=YES
      ENDMEAS/
      MOVE/INCREMENT,<-0.0007,0.003,2>
      LIN2 =FEAT/LINE,CARTESIAN,UNBOUNDED,NO
      THEO/<0,-0.0326,2.732>,<0,1,0>
      ACTL/<0.0378,-0.448,2.7439>,<0.9965462,0.0705651,0.0437749>
      CONSTR/LINE,INTOF,DATUM_A,DATUM_B
      DIM STRA1= STRAIGHTNESS OF LINE LIN1 UNITS=IN ,$
      GRAPH=OFF TEXT=OFF MULT=10.00 ARROWDENSITY=100 OUTPUT=BOTH
      AX NOMINAL +TOL -TOL MEAS DEV OUTTOL
      M 0.0000 0.0050 0.0000 0.0029 0.0029 0.0000 -----#---
      DIM LOC1= POSITION OF CIRCLE DATUM_E UNITS=IN ,$
      GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH FIT TO DATUMS=OFF DEV PERPEN CENTERLINE=ON DISPLAY=DIAMETER
      AX NOMINAL +TOL -TOL BONUS MEAS DEV OUTTOL
      Y 0.0000 0.0000 0.0000
      Z 0.0000 -0.0065 -0.0065
      D1 PLANE DATUM_A AT RFS
      D2 PLANE DATUM_B AT RFS
      TP RFS 0.0100 0.0000 0.0131 0.0131 0.0031 -------->
      END OF DIMENSION LOC1
      A2 =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
      ALIGNMENT/LEVEL,XPLUS,DATUM_B
      ALIGNMENT/TRANS,XAXIS,DATUM_B
      ALIGNMENT/TRANS,YAXIS,DATUM_E
      ALIGNMENT/TRANS,ZAXIS,DATUM_E
      ALIGNMENT/ROTATE,YPLUS,TO,LIN2,ABOUT,XPLUS
      ALIGNMENT/END

      Comment


      • #4
        quick guess is that your manual alignment features do not have the correct nominals, they are still machine values, not alignment values. You have no AXIS_OFFSETS in your manual alignment either. Even if you want the features to be ZERO, you should use an AXIS_OFFSET of 0.0000000000001 (Pdmis will not put a zero axis offest in the alignment, it needs to be a number other than zero)
        sigpic
        Originally posted by AndersI
        I've got one from September 2006 (bug ticket) which has finally been fixed in 2013.

        Comment


        • MomPickMeUpImScared
          MomPickMeUpImScared commented
          Editing a comment
          If i'm understanding you correctly then I should go back to my manual features and correct their theoretical values to match their position based off the alignment I intend to make further down in in the program, correct?

      • #5
        Manual alignment has 2 levels. That no worky ..... Bad habit to dimension anything before DCC alignment as well., It will bite you sooner or later. After DCC features, create DCC alignment and THEN , start creating additional features. THe postion of DATUM E is realted to your manual alignment not the DCC features. Thats just kind of a mess.....

        LEVEL / ROTATE / And then X-Y-Z- 0.000 ( IN ANY ORDER )
        Last edited by Schlag; 04-23-2020, 09:49 AM.

        Comment


        • A-machine-insp
          A-machine-insp commented
          Editing a comment
          MomPickMeUpImScared See my response below. Great name BTW. That's probably what new people think after working around me for the first time.

        • MomPickMeUpImScared
          MomPickMeUpImScared commented
          Editing a comment
          I corrected the alignment to what you suggested (luckily I had a backup program) and now it seems to pick up the DCC alignment properly, Thanks!

          I also corrected the nominals of the manual features to what they should be to the manual alignment, thanks for the help!

        • A-machine-insp
          A-machine-insp commented
          Editing a comment
          Not a problem. Glad I could help.

      • #6
        So I should re-measure all features after the DCC alignment and only dimension off of those, even if I measured those features in DCC mode before the DCC alignment?

        Comment


        • #7
          Originally posted by MomPickMeUpImScared View Post
          So I should re-measure all features after the DCC alignment and only dimension off of those, even if I measured those features in DCC mode before the DCC alignment?
          YES!!!!!!!! Never dimension to features used in your alignment!!!!!

          I have a guy here who will dimension to hits taken in his manual alignment.
          Remembering my beautiful wife Taz who's life was lost on 6-13-2020. I love you and I miss you.

          Comment


          • Douglas
            Douglas commented
            Editing a comment
            There are still a few programs here that do that exactly, nobody in the past understood and now nobody but me is convinced it is incorrect.... slightly concave face threw position results off .030" but no problem we can run that I'm told... and don't get me going on BS feature nominals taken in learn mode while they made the program

          • A-machine-insp
            A-machine-insp commented
            Editing a comment
            Douglas I have the same [email protected] fight here. There are A LOT of bad habits that have been used for the last 15 years here that I am trying to break... and laziness too. Had a part that was profiled to f-b-c and I was asked how to do that since F is a curved surface. I said to offset the F points (nominally) to Z 0, construct a plane, call it datum F, then profile (Xact measure or realign and legacy) to f-b-c, simple enough. The response I got was "that's too involved, I'll do it the way it is in legacy" (part is aligned to a-b-c). There are a lot of cringeworthy discussions around here. Luckily my boss is on my side and the above part was reved to MBD and given to me. I did it right.

        • #8
          Originally posted by Matthew D. Hoedeman View Post
          quick guess is that your manual alignment features do not have the correct nominals, they are still machine values, not alignment values. You have no AXIS_OFFSETS in your manual alignment either. Even if you want the features to be ZERO, you should use an AXIS_OFFSET of 0.0000000000001 (Pdmis will not put a zero axis offest in the alignment, it needs to be a number other than zero)
          if your plane needs to be Z0 with a vector of 0,0,1, then that should be what it shows for the THEO values of that plane. If you are just banging out an alignment by measuring the part, NOT using cad, then making an alignment, you should use CAD=PART as part of that alignment, it updates the manual features to the NOMINALS and VECTORS that your alignment wants them to be, or, you can change them all by hand before you make the alignment.
          sigpic
          Originally posted by AndersI
          I've got one from September 2006 (bug ticket) which has finally been fixed in 2013.

          Comment


          • #9
            Adding to what has been said your manual alignment has PLN5 with THEO vector as 1,0,0 ( X plus ) but measures 0,1,0 ( Y plus ) it is then used to Level to X plus? There is also no rotation in the alignment.

            The DCC alignment has the datum E with THEO vector of 1,0,0 (x plus) but measures as 0,-1,0 ( Y minus), datum B has vectors 1,0,0 (X plus) but measures 0,-1,0 ( Y minus).

            Datum B ( Y minus) is used as Level X plus?

            Constructed line2 has a vector of 1,0,0 ( X plus) but is used as a Y plus rotation about X ?

            Your DCC alignment sequence is wrong should always be LEVEL, ROTATE,TRANSLATE, never LEVEL,TRANSLATE,ROTATE.

            Comment


            • #10
              Originally posted by UKCMM View Post
              Adding to what has been said your manual alignment has PLN5 with THEO vector as 1,0,0 ( X plus ) but measures 0,1,0 ( Y plus ) it is then used to Level to X plus? There is also no rotation in the alignment.

              The DCC alignment has the datum E with THEO vector of 1,0,0 (x plus) but measures as 0,-1,0 ( Y minus), datum B has vectors 1,0,0 (X plus) but measures 0,-1,0 ( Y minus).

              Datum B ( Y minus) is used as Level X plus?

              Constructed line2 has a vector of 1,0,0 ( X plus) but is used as a Y plus rotation about X ?

              Your DCC alignment sequence is wrong should always be LEVEL, ROTATE,TRANSLATE, never LEVEL,TRANSLATE,ROTATE.

              that is screwy... on a side note how do you handle a part with no clocking features in pcdmis, section of straight pipe for example... I've been rotating to a constructed line to maintain the machine axis as rotation, this part was a simple bushing, ID, OD, and length. To be honest I'm not fuilly convinced it is needed, my understanding was machine axis is maintained anyway in its absence but others have me wondering so knowing it won't hurt I do this now....

              Code:
              LIN1 =FEAT/LINE,CARTESIAN,UNBOUNDED,NO
              THEO/<-0.5,0,0>,<1,0,0>
              ACTL/<-0.5,0,0>,<1,0,0>
              CONSTR/LINE,ALIGN,1,XPLUS
              A1 =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
              ALIGNMENT/LEVEL,ZPLUS,TOP_FACE
              ALIGNMENT/ROTATE,XPLUS,TO,LIN1,ABOUT,ZPLUS
              ALIGNMENT/TRANS,XAXIS,CIR1
              ALIGNMENT/TRANS,YAXIS,CIR1
              ALIGNMENT/TRANS,ZAXIS,TOP_FACE
              ALIGNMENT/END

              Comment


              • UKCMM
                UKCMM commented
                Editing a comment
                You are right on a simple bushing or circular part a rotation may not be needed and the software all CMM software will default to the internal world co-ordinate system. But if you are clocking a prismatic part you should always rotate before translate.

            • #11
              Originally posted by Douglas View Post

              on a side note how do you handle a part with no clocking features in pcdmis, section of straight pipe for example... I've been rotating to a constructed line to maintain the machine axis as rotation, this part was a simple bushing, ID, OD, and length. To be honest I'm not fuilly convinced it is needed, my understanding was machine axis is maintained anyway in its absence but others have me wondering so knowing it won't hurt I do this now....
              There is an example routine and explanation of how this should be handled on the "discover" tab of the home page in 2020 R1. It's called radially symmetric part alignment.

              Neil Challinor
              PC-DMIS Product Owner

              T: +44 870 446 2667 (Hexagon UK office)
              E: [email protected]

              Comment


              • Douglas
                Douglas commented
                Editing a comment
                do you mean my method is not valid? I have 2013mr1 with no home page or discover tab to reference.

            • #12
              When I write a program, I use a progressive style alignment. We do single start points here so my manual alignment is still in DCC but it's the same concept. Example:
              Manual Align= Pick up a plane-> Then level and origin to the plane
              Pick up a line-> Level and origin to the plane, rotate and origin to the line
              Pick up a hole-> Origin to the hole

              DCC Align=Pick up DCC plane-> Level and origin to DCC plane, rotate and origin to manual line, origin to manual hole
              Pick up DCC line-> level and origin to DCC plane, rotate and origin to DCC line, origin to manual hole.
              Pick up DCC hole-> Origin to DCC hole

              Anytime I create a new level or rotate i always create a full alignment again. If im only picking up an origin i just recall the previous alignment and origin to the hole. Obviously this is basic and there are different order or feature you can go in but it illustrates the start of my programs. I use features inside of a DCC alignment for dimensions unless I feel a 3rd DCC align is needed for a reliable alignment. Never use manual features.

              Comment


              • A-machine-insp
                A-machine-insp commented
                Editing a comment
                I never dimension features used to create an alignment EXCEPT if I have a DCC alignment and I want to origin to a different feature to get a specific dimension. That being said, I very rarely run across a dimension that I can't get in the DCC alignment... maybe twice in the last 3 years. My personal rule is if the feature is used to make an alignment, don't dimension to it. One of our guys here does that all the time and my boss and I have proven to him that there is a dimensional difference.

                Reason is because you are dimensioning features that are based on a rough manual alignment. Its the same reason (among others) why I use Xact measure so much. The datums used for Xact were taken after the DCC alignment and are even more refined than basing it off the DCC alignment.

              • SingularitY
                SingularitY commented
                Editing a comment
                I agree in some cases. In my personal case, I use a a single start point as a manual alignment. Then using the 1st dcc alignment I use find hole centers to help with hole errors and sample points, used alongside of a progressive alignment, gives me a lot less error than a normal manual alignment in my opinion. Then I pick up my features again as the final alignment for programming unless I feel another one is needed for reliable measurements. I have not seen any error because of this when correlating with customers or other equipment.

            • #13

              Originally posted by Douglas

              do you mean my method is not valid? I have 2013mr1 with no home page or discover tab to reference.
              Your method is correct, I was simply trying to make people aware that there is a documented example available. This is a very common cause for nominals changing unexpectedly since the alignments can become unstable if a level is performed with no rotation. The only caveat I would add would be to use a constructed plane (plane at alignment, created in STARTUP or a GENERIC plane for example) rather than a constructed line for the feature you rotate to - planes are a lot more stable than lines since they are 3D whilst lines are typically treated as 2D.

              Originally posted by UKCMM
              You are right on a simple bushing or circular part a rotation may not be needed and the software all CMM software will default to the internal world co-ordinate system. But if you are clocking a prismatic part you should always rotate before translate.
              This is a common misconception. Although it may look this way and the software will try to maintain the same orientation as the "internal world co-ordinate system", mathematically, it is still an unstable alignment. I have seen this proven, albeit in very rare cases, by the ability of an alignments rotation to flip by 180° when it is not fully constrained. I've seen this both with PC-Dmis and with other metrology software packages and it normally happens when the part is pretty much perfectly coincident with the CMM axis you are levelling to.

              This is the code for the example routine, unfortunately, I can't post the .prg and .cad.
              Code:
              STARTUP =ALIGNMENT/START,RECALL:USE_PART_SETUP,LIST=YES
              ALIGNMENT/END
              $$ NO,
              ================================================== ================================================== ======
              .
              . Hexagon example measurement routine showing how to align rotationally symmetric work pieces.
              .
              . PLEASE NOTE: This measuremnt routine is intended to be run in off-line mode only.
              .
              ================================================== ================================================== ======
              $$ NO,
              Alignment of rotationally symmetric work pieces
              
              When aligning the work pieces in the PC-DMIS software, it is crucial that all variances
              (3 translational and 3 rotational) are defined using the alignment menu.
              If a work piece has no clear feature to identify the plane rotation (for example if the
              work pieces are rotationally symmetric), appropriate theoretical auxiliary elements
              must be used. In cases of this kind, the plane rotation step cannot simply be missed
              out, and it should not be assumed that the relevant CMM axis will be automatically
              used to define the second orientation.
              
              For example:
              The CAD model for thei routine depicts a rotationally symmetric work piecewhich is to
              be aligned such that the measurement and the evaluation of all testing features can be
              carried out clearly and reproducibly.
              
              For clear alignment, only the two datum elements can be directly measured on the
              work piece: the smaller of the three cylinders (Z1) (diameter of 10 mm, length 60 mm),
              and the plane E1 (front face). Only these elements can be used to align the work piece.
              There are no directly measurable elements for defining the rotation. 2 rotational and
              2 translational variances will be established (rotation by X, rotation by Y,
              translation to X, translation to Y) using cylinder Z1. Plane E1 determines the third
              translational variance (translation to Z).
              
              It is not possible to define the rotation by Z with the directly measurable elements.
              This value must be defined using a theoretical element that includes suitable orientation
              information. It is preferable to define a theoretical plane when doing this. It is not advisable
              to use theoretical lines to define the orientation, since calculating the alignment becomes
              unstable in certain cases.
              
              The alignment plane must be defined as a theoretical auxiliary element.
              If the work piece is aligned manually, this plane relates to the corresponding coordinate
              system plane of the machine coordinate system. Defining an alignment plane for subsequently
              defining the secondary orientation:
              
              MODE/MANUAL
              PREHIT/0.5
              RETRACT/0.5
              MOVESPEED/ 500
              TOUCHSPEED/ 4
              FLY/ON
              FORMAT/TEXT,OPTIONS, ,HEADINGS,SYMBOLS, ;NOM,TOL,MEAS,DEV,OUTTOL, ,
              LOADPROBE/LSPX1_3X50
              TIP/T1A0B0, SHANKIJK=0, 0, 1, ANGLE=0
              WORKPLANE/ZPLUS
              $$ NO,
              STEP 1 : Open the constructed plane dialogue window and choose "alignment" type.
              Press the "create" button, to construct the theoretical plane.
              
              NB:
              The normal orientation of this plane corresponds, as standard, to the orientation
              of the current working plane. By switching directly to command mode, it is also
              possible to select the desired orientation (XPLUS; XMINUS, YPLUS, YMINUS, ZPLUS, ZMINUS).
              
              This means that there is now a plane with a defined normal orientation as an element for
              defining the remaining rotational variance. In the work piece programme, there are now
              three elements available that contain information for defining all six variances. The
              alignment of the work piece can now be fully defined.
              
              
              E_ROT =FEAT/PLANE,CARTESIAN,TRIANGLE,NO
              THEO/<0,0,0>,<1,0,0>
              ACTL/<0,0,0>,<1,0,0>
              CONSTR/PLANE,ALIGN,XPLUS
              Z1 =FEAT/CONTACT/CYLINDER/DEFAULT,CARTESIAN,OUT,LEAST_SQR
              THEO/<0,0,-60>,<0,0,1>,10,60
              ACTL/<0,0,-60>,<0,0,1>,10,60
              TARG/<0,0,-60>,<0,0,1>
              START ANG=0,END ANG=360
              ANGLE VEC=<1,0,0>
              DIRECTION=CCW
              SHOW FEATURE PARAMETERS=NO
              SHOW CONTACT PARAMETERS=NO
              E1 =FEAT/CONTACT/PLANE/DEFAULT,CARTESIAN,TRIANGLE,LEAST_SQR
              THEO/<0,0,0>,<0,0,1>
              ACTL/<0,0,0>,<0,0,1>
              TARG/<0,0,0>,<0,0,1>
              ANGLE VEC=<1,0,0>,RADIAL
              SHOW FEATURE PARAMETERS=NO
              SHOW CONTACT PARAMETERS=NO
              $$ NO,
              STEP 2 : Defining the work piece alignment
              
              The fully constrained work piece alignment can now be created.
              ZPLUS is leveled to cylinder Z1, the planar rotation is carried out explicitly by
              rotating XPLUS to the theoretical plane E_ROT, which represents a coordinate system plane
              of the machine coordinate system. Finally we origin X & Y on cylinder Z1 and Z on plane E1.
              
              A1 =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
              ALIGNMENT/LEVEL,ZPLUS,Z1
              ALIGNMENT/ROTATE,XPLUS,TO,E_ROT,ABOUT,ZPLUS
              ALIGNMENT/TRANS,XAXIS,Z1
              ALIGNMENT/TRANS,YAXIS,Z1
              ALIGNMENT/TRANS,ZAXIS,E1
              ALIGNMENT/END
              $$ NO,
              Note: If the plane rotation is not carried out explicitly with the theoretical element,
              there will be no clear and reproducible work piece alignment. In such cases,
              it may be necessary to recalculate the nominal values with the software.
              This is why the described procedure must be respected, even if the work pieces
              are rotationally symmetric.
              Neil Challinor
              PC-DMIS Product Owner

              T: +44 870 446 2667 (Hexagon UK office)
              E: [email protected]

              Comment


              • UKCMM
                UKCMM commented
                Editing a comment
                Sorry do not agree have never seen a problem in 30+ years and just what is the software using to create the magical solid alignment if not based on the CMM world system if PcDmis cannot use its internal system in these cases then that is an error in the software and should be documented.

            • #14
              Every single program I write has the exact same sequence:

              1) Create a constructed line "for alignment" and force the IJK of that line in the direction I want
              2) Readpoint alignment in a hole or above a corner or something.
              3) Using readpoint alignment, find a plane and a circle.
              4) Create a new alignment recalling startup...Level using plane, rotate using constructed line, XYZ origin to your probed features. This is my "finding" alignment.
              5) Now that the part is found...Drive around and probe the datums
              6) Construct all of my datum alignments that I will need all in a row. Each alignment recalling startup and then being made.
              7) Recall the alignment I want, measure & report stuff, recall next alignment, measure & report stuff..continue as needed

              I NEVER use stuff from my "finding" alignments..they're "junk" features that serve no purpose other than to locate the part for me.
              SF7107(PCD), SF454(PCD), 152614(Quindos), 9159(Quindos), 7107(Quindos), B&S Manual, M&M Gear Checker

              Comment


              • SingularitY
                SingularitY commented
                Editing a comment
                I do the same except I use manual start points instead of read points.
                Honestly, I love read points but if I changed the way our programs have been done for years, people would complain.

            Related Topics

            Collapse

            Working...
            X