how would I constrain 6 DOF of a cylindrical part with no clocking features?

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

  • how would I constrain 6 DOF of a cylindrical part with no clocking features?

    Hi Guys !

    i have been scratching my head on this one. How would I make sure to constrain rotation ( All 6 DOF) even if I am measuring a cylindrical part with no clocking features?


  • #2
    You could use one or both of the faces of the part to constrain translation along the axis of the cylinder and you can construct an "Alignment" line that will arbitrarily constrain rotation about the axis of the cylinder.

    The cylindrical part itself will naturally constrain the other 4 DOF.

    Comment


    • ProbFlex
      ProbFlex commented
      Editing a comment
      sorry to ask but, could you please put that in CODE. i am a visual person. thank you.

  • #3
    Code:
    cyl1 =feat/contact/cylinder/default,cartesian,in,least_sqr
    theo/<0.187,-6.64039,0>,<0,-1,0>,0.188,2
    actl/<0.187,-6.64039,0>,<0,-1,0>,0.188,2
    targ/<0.187,-6.64039,0>,<0,-1,0>
    start ang=0,end ang=360
    angle vec=<1,0,0>
    direction=ccw
    show feature parameters=no
    show contact parameters=no
    pln1 =feat/contact/plane/default,cartesian,none,least_sqr
    theo/<0.187,-6.64039,0>,<0,-1,0>
    actl/<0.187,-6.64039,0>,<0,-1,0>
    targ/<0.187,-6.64039,0>,<0,-1,0>
    angle vec=<1,0,0>,square
    show feature parameters=no
    show contact parameters=no
    lin3 =feat/line,cartesian,unbounded,yes
    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:auto_2,list=yes
    alignment/level,yminus,cyl1
    alignment/rotate,xplus,to,lin3,about,yminus
    alignment/trans,xaxis,cyl1
    alignment/trans,zaxis,cyl1
    alignment/trans,yaxis,pln1
    alignment/end

    Comment


    • #4
      CONSTRUCT a line, select ALIGNMENT in the dropdown box, click OK. When the code is in your edit window, OVERRIDE the vectors and make it the direction you want. In my example below, I am leveling to the Z+, which means my rotation line MUST have a "X" or "Y" vector, I chose XPLUS (1,0,0).

      Like so:

      Code:
      WORKPLANE/ZPLUS
      LIN_WCS_XP_POS1 =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
      MOVE/CLEARPLANE
      CIRXY1 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
      THEO/<0,0,2.6>,<0,0,1>,1.85075
      ACTL/<0,0,2.6>,<0,0,1>,1.85075
      TARG/<0,0,2.6>,<0,0,1>
      START ANG=0,END ANG=360
      ANGLE VEC=<1,0,0>
      DIRECTION=CCW
      SHOW FEATURE PARAMETERS=NO
      SHOW CONTACT PARAMETERS=NO
      FLY/ON
      MOVESPEED/ 270
      TOUCHSPEED/ 5
      PREHIT/0.125
      RETRACT/0.125
      CHECK/0.125,1
      CIRXY2 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
      THEO/<CIRXY1.TX,CIRXY1.TY,2.6>,<0,0,1>,1.85075
      ACTL/<0,0,2.6>,<0,0,1>,1.85075
      TARG/<CIRXY1.X,CIRXY1.Y,2.6>,<0,0,1>
      START ANG=-120,END ANG=240
      ANGLE VEC=<1,0,0>
      DIRECTION=CCW
      SHOW FEATURE PARAMETERS=NO
      SHOW CONTACT PARAMETERS=NO
      MOVE/INCREMENT,<0,0,1>
      PLNZ1 =FEAT/CONTACT/PLANE/DEFAULT,CARTESIAN,NONE,LEAST_SQR
      THEO/<CIRXY2.TX,CIRXY2.TY,3.027>,<0,0,1>
      ACTL/<0,0,3.027>,<0,0,1>
      TARG/<CIRXY2.X,CIRXY2.Y,3.027>,<0,0,1>
      ANGLE VEC=<-0.8944272,0.4472136,0>,RADIAL
      SHOW FEATURE PARAMETERS=NO
      SHOW CONTACT PARAMETERS=NO
      CLEARP/ZPLUS,PLNZ1.Z+0.5,ZPLUS,PLNZ1.Z+0.5,ON
      A1 =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
      ALIGNMENT/LEVEL,ZPLUS,PLNZ1
      ALIGNMENT/ROTATE,XPLUS,TO,LIN_WCS_XP_POS1,ABOUT,ZPLUS
      ALIGNMENT/TRANS,XAXIS,CIRXY2
      ALIGNMENT/TRANS,YAXIS,CIRXY2
      ALIGNMENT/TRANS,ZAXIS,PLNZ1
      ALIGNMENT/END
      I have given you examples of this before, if you need anything re-explained reach out my friend! You've got the #
      SF7107(PCD), SF454(PCD), 152614(Quindos), 9159(Quindos), 7107(Quindos), B&S Manual, M&M Gear Checker

      Comment


      • ProbFlex
        ProbFlex commented
        Editing a comment
        Dan, my homie..
        I have text you on your company #. are you on vacation still? hope your doing good!

    • #5
      Based on my personal experience, it seems unnecessary to constrain the final rotation of turned parts. I leave the 6th degree of freedom unconstrained and PC-DMIS seems to treat it as though it is clocked to the CMM axes. People say that you should always have rotation constrained, but for the special case of turned parts, I have never encountered a single problem with only 5 DOFs constrained... Just my .02

      Let me add that I always program turned parts parallel to the X, Y, or Z axis of the CMM! If your part is at a compound angle, you will probably need to constrain all 6 DOFs

      Comment


      • #6
        I leave the 6th degree of freedom unconstrained and PC-DMIS seems to treat it as though it is clocked to the CMM axes.
        Fair enough. Yet, a rotation generic line (or Dan's constructed) costs nothing, and removes any doubt of the possibility Demon acting up without 6 DoF. (unless in a loop)
        my 2 pesos

        Comment


        • #7
          I create a generic line, like Dan, that aligns the part with the CMM's axis.
          Last edited by bfire85; 01-20-2021, 07:20 AM.

          Comment


          • #8
            Create a generic line.


            B&S CHAMELEON/PCDMIS CAD++ V2011

            There are no bugs, only "UNDOCUMENTED ENHANCEMENTS!"

            sigpic

            Comment


            • #9
              Originally posted by sealevel View Post
              Fair enough. Yet, a rotation generic line (or Dan's constructed) costs nothing, and removes any doubt of the possibility Demon acting up without 6 DoF. (unless in a loop)
              my 2 pesos
              +1

              B&S CHAMELEON/PCDMIS CAD++ V2011

              There are no bugs, only "UNDOCUMENTED ENHANCEMENTS!"

              sigpic

              Comment


              • #10
                Originally posted by JacobCheverie View Post
                Code:
                cyl1 =feat/contact/cylinder/default,cartesian,in,least_sqr
                theo/<0.187,-6.64039,0>,<0,-1,0>,0.188,2
                actl/<0.187,-6.64039,0>,<0,-1,0>,0.188,2
                targ/<0.187,-6.64039,0>,<0,-1,0>
                start ang=0,end ang=360
                angle vec=<1,0,0>
                direction=ccw
                show feature parameters=no
                show contact parameters=no
                
                pln1 =feat/contact/plane/default,cartesian,none,least_sqr
                theo/<0.187,-6.64039,0>,<0,-1,0>
                actl/<0.187,-6.64039,0>,<0,-1,0>
                targ/<0.187,-6.64039,0>,<0,-1,0>
                angle vec=<1,0,0>,square
                show feature parameters=no
                show contact parameters=no
                
                ! create a generic line, type alignment
                lin3 =feat/line,cartesian,unbounded,yes
                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:auto_2,list=yes
                alignment/level,yminus,cyl1
                alignment/rotate,xplus,to,lin3,about,yminus
                alignment/trans,xaxis,cyl1
                alignment/trans,zaxis,cyl1
                alignment/trans,yaxis,pln1
                alignment/end
                +1 JacobCheverie

                I just highlighted the code in red to make it plain to see.

                B&S CHAMELEON/PCDMIS CAD++ V2011

                There are no bugs, only "UNDOCUMENTED ENHANCEMENTS!"

                sigpic

                Comment


                • #11
                  Forgot you could use the Rayco magnetic rotation vector serpent. Calibrated to 90 deg increments. (shown used at -1,0,0)

                  rayco_vector_snake.jpg

                  dph51 ... Am I wrong or did you mention you were retiring?

                  Comment


                  • vpt.se
                    vpt.se commented
                    Editing a comment
                    Very hard to find batteries for though...

                • #12
                  In your code, the theo plane vector is the same than the cylinder one, so you can't use the second as a rotation. In this case, the demon will project the cylinder actual axis on the plane, and use the projection as x axis.
                  It can't be accurate or repeatable.
                  You have to choose leveling between plane and cylinder (I would use the biggest surface between them, or look at the datums, if they exist)
                  I would also measure a line along a cmm axis to ensure that the head rotation is in the right alignment. Generic line could work also, only if you create it in the start up alignment.
                  In addition, I would create a pierce point between cylinder and plane to set the origin.

                  Comment


                  • #13
                    One thing that has not been brought up about constraining all 6 DOFs is that PC-DEMON CAN hose your nominals throughout your program if you do not rotate (even if it is done by creating the generic line as mentioned above)

                    ALWAYS construct your alignments in this order
                    Level
                    rotate
                    origin
                    translate (if needed)
                    Xcel & MicroVal Pfx & Global 37mr4 thru 2012mr1sp3
                    Contura Calypso 5.4

                    Lord, keep Your arm around my shoulder and Your hand over my mouth. Amen.

                    Comment


                    • #14
                      You don't,
                      You can align without a rotate. I know technically you will be deviating from the golden rule of controlling all DOF but with a part that has no rotational features adding a rotate would be just a formality, you really don't need it.

                      Comment


                      • LaserJay
                        LaserJay commented
                        Editing a comment
                        In this case I would

                        LVL Z
                        ORG Z
                        ORG X
                        ORG Y

                    • #15
                      You do need to constrain all 6 DOF. I've attached a (very old) tech sheet explaining everything.
                      Attached Files

                      Comment


                      • JacobCheverie
                        JacobCheverie commented
                        Editing a comment
                        Thanks for that Neil, I didn't know that an alignment line was not sufficient and that a plane should be used instead.

                    Related Topics

                    Collapse

                    Working...
                    X