Patterns w/ Alignments

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

  • Patterns w/ Alignments

    Hi all,

    Im trying to measure the tooth width of 90 involute spline teeth at the pitch diameter. I have all of the math figured out, and have measured the right and left profile, the min actual width, and the index of one tooth, but when I go to pattern it, all of my numbers, move points and alignments are getting messed up.

    All I want to do is basically the following steps (I’m not using CAD).,.

    ROTATE Y AXIS ALIGNMENT TO CENTER SPACE OF TOOTH

    MOVE PROBE TO X0,Y190.5,Z-17

    MEASURE LEFT SIDE OF TOOTH AT PITCH DIAMETER WITH 20 DEG APPROACH ANGLE

    MEASURE RIGHT SIDE OF TOOTH AT PITCH DIAMETER WITH 20 DEG APPROACH ANGLE

    CONSTRUCT MID POINT.

    DIMENSION LEFT AND RIGHT PROFILE, OVERALL THICKNESS AND THE CENTER POINT OF THE TOOTH.

    ADD MOVE POINTS TO CLEAR TOOTH POCKET

    ROTATE ALIGNMENT 4 DEGREES

    MOVE PROBE TO X0,Y190.5,Z-17

    MEASURE NEXT TOOTH (REPEAT 90 TIMES)

    In GEOMEASURE I can just copy and paste the code block 90 times, change the feature number, and all hits and move points retain their relationship to the rotated alignment. So 5 is always 5 and 12.5456 is always 12.5456. The coordinate system is the only thing changing.

    PCDMIS keeps changing all of my hit and move point values when I rotate my alignment. I can’t even seem to copy a simple move point, rotate my alignment, and then paste that move point back in.

    Is there a setting that I can turn on or off so that PCDMIS retains all hits and move points numerical values relative to the most recent alignment instead of recalculating them?

    Can I pattern/loop a sub routine with alignment changes in it?

    Any help would be appreciated.


    Thanks much,
    Brad

  • #2
    If you are using pattern you don't need to change the alignment, within the pattern dialogue box (Edit > Pattern) you define the degrees as 4 and the number of times to offset as 89. Be sure to prove the features and moves you are going to pattern, as these will all become actual individual features and moves within your program.

    Only for a loop do you do similar as you have described above. Use the Loop and Loop/End commands (Insert > Flow Control Command). Again you can define number and offsets required within the loop command.

    Comment


    • Jim Poehler
      Jim Poehler commented
      Editing a comment
      This is the approach I always use. Important though to go into the edit/pattern combo box and choose your degree of rotation and number of times. Then go back to your edit window and highlight all the components for the 1st move and do a copy. Now go back to the edit/paste with pattern function and select that. You can watch the edit window populate the specified number and degree of rotations immediately. Quite the handy feature to have available. Saves a lot of program time.
      Last edited by Jim Poehler; 12-07-2019, 05:23 PM. Reason: fix typo

  • #3
    As stated above, paste with pattern would be the easiest solution.

    IF you want to loop it...-->

    1) Write the program to measure ONE position.
    2) "While Loop" that code.
    3) Variable-ize the alignments (rotationally) to get you from position to position. You have to go into F5 and check the "Treat values as if stored in part coordinates" box for it to work. Without that box checked, the CODE will be looped but the CMM will only PHYSICALLY measure your first position over and over again..it won't move to your next position.

    Capture.PNG

    N is a counting variable.
    ANG is the variable you'll use to control the angle of the alignment.
    Both are generic names I chose. Name them whatever you want.

    When you FIRST run the program, N and ANG both equal 0. PC DMIS sees that N is less than or equal to 90, so the loop will execute, and will measure the first position at 0°.

    Each time PC DMIS completes a position, "ANG" increases by 4, code then goes back to top of loop, "N" is increased by 1 and code will continue to execute the loop until the value of N is greater than or equal to 91. Once this condition is present, PC DMIS will break out of the loop and will continue onward down your code.

    Code:
    MODE/DCC
                CLEARP/ZPLUS,1,ZPLUS,1,ON
                ASSIGN/N=0
                ASSIGN/ANG=0
                WHILE/N<=90
                  ASSIGN/N=N+1
    A2           =ALIGNMENT/START,RECALL:A1,LIST=YES
                    ALIGNMENT/ROTATE,XPLUS,TO,ANG,ABOUT,ZPLUS
                  ALIGNMENT/END
                  MOVE/CLEARPLANE
    PNT_FWD      =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
                  THEO/<-0.5,0,-0.1>,<1,0,0>
                  ACTL/<-0.5,0,-0.1>,<1,0,0>
                  TARG/<-0.5,0,-0.1>,<1,0,0>
                  SNAP=NO
                  SHOW FEATURE PARAMETERS=NO
                  SHOW CONTACT PARAMETERS=NO
                  MOVE/CLEARPLANE
    PNT_AFT      =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
                  THEO/<0.5,0,-0.1>,<-1,0,0>
                  ACTL/<0.5,0,-0.1>,<-1,0,0>
                  TARG/<0.5,0,-0.1>,<-1,0,0>
                  SNAP=NO
                  SHOW FEATURE PARAMETERS=NO
                  SHOW CONTACT PARAMETERS=NO
      DIM TOOTHWIDTH= 2D DISTANCE FROM POINT PNT_FWD TO POINT PNT_AFT PAR TO   XAXIS,NO_RADIUS  UNITS=IN,$
      GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH
      AX       MEAS    NOMINAL       +TOL       -TOL        DEV     OUTTOL
      M       1.0000     1.0000     0.0020     0.0020     0.0000     0.0000 ----#----
                  ASSIGN/ANG=ANG+4
                END_WHILE/
    Last edited by DAN_M; 12-07-2019, 10:27 AM.

    Comment


    • #4
      Thank you so much. I wish I didn't have to wait until Monday to give these a try. This has beat me up for 2 days. And this is after I told my boss it would be a piece of cake.

      PCDMIS's "live" programming environment is a boon in many respects, but it has fought me tooth and nail in this situation. The only reason I was wanting to rotate the coordinate system for each tooth is to give me straight line vectors into the tooth so I didn't have to calculate all of the inverse sin arc angles and nominal points derived from the tooth width (which is an arc length) and the pitch diameter. I could just rotate the coordinate system 20 degrees, send my tip to the base diameter and take straight line hits in the X direction with the nominal being 81.4434 (though all I care about is the deviation from that. Not the actual distance.


      Tooth.JPG

      Thanks again, I will delve into it on Monday.

      Brad

      Comment


      • #5
        If you need to do this kind of measurement on a regular basis it might be worth asking your Hexagon rep about PC-Dmis Gear.
        Neil Challinor
        PC-DMIS Product Owner

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

        Comment


        • DAN_M
          DAN_M commented
          Editing a comment
          Never tried Gear. Am a big fan of Quindos though

        • neil.challinor
          neil.challinor commented
          Editing a comment
          PC-Dmis Gear was modelled on QUINDOS Gear and has a few similarities but it does not support the same range of gear types that QUINDOS can measure. It has the same report as QUINDOS Gear but it can only do straight or helical involute gears and splines.

        • BradMorris64
          BradMorris64 commented
          Editing a comment
          The only spline types we cut are non helical involute splines. We have talked to the Hexagon Rep but the bosses choked on the $60,000 price tag (with gear add-ons) for Quindos. We developed a plan to check involute curves with a standard CMM, but when we tried to implement it, we ran into the patterning issues I mentioned. We are fairly new to PCDMIS and we have never tried something like this. PCDMIS Gear may be an option. We really need to sit down with our Big Yellow customer and see exactly what they want to see on the report.

          Thanks.

      • #6
        Method for this is as follows.

        Create main alignment.
        Create x90 alignments - for this I copy alignment like this

        ROT_ALN_1 = Alignment/Start
        Rotate 4
        Alignment End

        And paste with pattern (89 times) then you just have to go in and change the angle - PITA I know but there it is. Make sure your alignment ID ends with a 1 then PWP will increment them _2, _3 etc


        I'd start with a document comment so you can see where each 'block' starts

        Now recall ROT_ALN_1

        Now program your features and constructions and where applicable dimensions etc for that 'slice'. Make sure all features etc in the first slice end with _1 PNT1_1, PNT2_1, LIN1_1 etc

        Now copy that 'block' including the document comment, and PWP 89 times, BUT with no offsets, this takes care of the naming, you will have the same slice in exactly the same place 90 times (but each ending with _1, _2,_3 etc

        Now from top to bottom click on each RECALL alignment (after the doc comment) and select the next alignment, answering NO to update the commands below question.

        Code:
        RECALL/ALIGNMENT,INTERNAL,DEC
        ROT_ALN_1  =ALIGNMENT/START,RECALL:DEC,LIST=YES
                      ALIGNMENT/ROTATE_OFFSET,0,ABOUT,ZPLUS
                    ALIGNMENT/END
        ROT_ALN_2  =ALIGNMENT/START,RECALL:DEC,LIST=YES
                      ALIGNMENT/ROTATE_OFFSET,90,ABOUT,ZPLUS
                    ALIGNMENT/END
        ROT_ALN_3  =ALIGNMENT/START,RECALL:DEC,LIST=YES
                      ALIGNMENT/ROTATE_OFFSET,180,ABOUT,ZPLUS
                    ALIGNMENT/END
        ROT_ALN_4  =ALIGNMENT/START,RECALL:DEC,LIST=YES
                      ALIGNMENT/ROTATE_OFFSET,270,ABOUT,ZPLUS
                    ALIGNMENT/END
                    WORKPLANE/YMINUS
        $$ NO,
                    ###################################
                    RECALL/ALIGNMENT,INTERNAL,ROT_ALN_1
        PNT1_1     =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
                    THEO/<135.281,0,19>,<0.5925587,0,0.8055272>
                    ACTL/<135.281,0,19>,<0.5925587,0,0.8055272>
                    TARG/<135.281,0,19>,<0.5925587,0,0.8055272>
                    SNAP=NO
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=YES
                      AVOIDANCE MOVE=BOTH,DISTANCE=10
                    SHOW HITS=NO
        PNT2_1     =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
                    THEO/<128.484,0,24>,<0.5925587,0,0.8055272>
                    ACTL/<128.484,0,24>,<0.5925587,0,0.8055272>
                    TARG/<128.484,0,24>,<0.5925587,0,0.8055272>
                    SNAP=NO
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=YES
                      AVOIDANCE MOVE=BOTH,DISTANCE=10
                    SHOW HITS=NO
        LIN1_1     =FEAT/LINE,CARTESIAN,UNBOUNDED,NO
                    THEO/<135.281,0,19>,<-0.8055272,0,0.5925587>
                    ACTL/<135.281,0,19>,<-0.8055272,0,0.5925587>
                    CONSTR/LINE,BF,3D,PNT1_1,PNT2_1,,
                    OUTLIER_REMOVAL/OFF,3
                    FILTER/OFF,WAVELENGTH=0
        $$ NO,
                    ###################################
                    RECALL/ALIGNMENT,INTERNAL,ROT_ALN_2
        PNT1_2     =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
                    THEO/<135.281,0,19>,<0.5925587,0,0.8055272>
                    ACTL/<0,-135.281,19>,<0,-0.5925587,0.8055272>
                    TARG/<135.281,0,19>,<0.5925587,0,0.8055272>
                    SNAP=NO
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=YES
                      AVOIDANCE MOVE=BOTH,DISTANCE=10
                    SHOW HITS=NO
        PNT2_2     =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
                    THEO/<128.484,0,24>,<0.5925587,0,0.8055272>
                    ACTL/<0,-128.484,24>,<0,-0.5925587,0.8055272>
                    TARG/<128.484,0,24>,<0.5925587,0,0.8055272>
                    SNAP=NO
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=YES
                      AVOIDANCE MOVE=BOTH,DISTANCE=10
                    SHOW HITS=NO
        LIN1_2     =FEAT/LINE,CARTESIAN,UNBOUNDED,NO
                    THEO/<135.281,0,19>,<-0.8055272,0,0.5925587>
                    ACTL/<0,-135.281,19>,<0,0.8055272,0.5925587>
                    CONSTR/LINE,BF,3D,PNT1_2,PNT2_2,,
                    OUTLIER_REMOVAL/OFF,3
                    FILTER/OFF,WAVELENGTH=0
        $$ NO,
                    ###################################
                    RECALL/ALIGNMENT,INTERNAL,ROT_ALN_3
        PNT1_3     =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
                    THEO/<135.281,0,19>,<0.5925587,0,0.8055272>
                    ACTL/<-135.281,0,19>,<-0.5925587,0,0.8055272>
                    TARG/<135.281,0,19>,<0.5925587,0,0.8055272>
                    SNAP=NO
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=YES
                      AVOIDANCE MOVE=BOTH,DISTANCE=10
                    SHOW HITS=NO
        PNT2_3     =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
                    THEO/<128.484,0,24>,<0.5925587,0,0.8055272>
                    ACTL/<-128.484,0,24>,<-0.5925587,0,0.8055272>
                    TARG/<128.484,0,24>,<0.5925587,0,0.8055272>
                    SNAP=NO
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=YES
                      AVOIDANCE MOVE=BOTH,DISTANCE=10
                    SHOW HITS=NO
        LIN1_3     =FEAT/LINE,CARTESIAN,UNBOUNDED,NO
                    THEO/<135.281,0,19>,<-0.8055272,0,0.5925587>
                    ACTL/<-135.281,0,19>,<0.8055272,0,0.5925587>
                    CONSTR/LINE,BF,3D,PNT1_3,PNT2_3,,
                    OUTLIER_REMOVAL/OFF,3
                    FILTER/OFF,WAVELENGTH=0
        $$ NO,
                    ###################################
                    RECALL/ALIGNMENT,INTERNAL,ROT_ALN_4
        PNT1_4     =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
                    THEO/<135.281,0,19>,<0.5925587,0,0.8055272>
                    ACTL/<0,135.281,19>,<0,0.5925587,0.8055272>
                    TARG/<135.281,0,19>,<0.5925587,0,0.8055272>
                    SNAP=NO
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=YES
                      AVOIDANCE MOVE=BOTH,DISTANCE=10
                    SHOW HITS=NO
        PNT2_4     =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
                    THEO/<128.484,0,24>,<0.5925587,0,0.8055272>
                    ACTL/<0,128.484,24>,<0,0.5925587,0.8055272>
                    TARG/<128.484,0,24>,<0.5925587,0,0.8055272>
                    SNAP=NO
                    SHOW FEATURE PARAMETERS=NO
                    SHOW CONTACT PARAMETERS=YES
                      AVOIDANCE MOVE=BOTH,DISTANCE=10
                    SHOW HITS=NO
        LIN1_4     =FEAT/LINE,CARTESIAN,UNBOUNDED,NO
                    THEO/<135.281,0,19>,<-0.8055272,0,0.5925587>
                    ACTL/<0,135.281,19>,<0,-0.8055272,0.5925587>
                    CONSTR/LINE,BF,3D,PNT1_4,PNT2_4,,
                    OUTLIER_REMOVAL/OFF,3
                    FILTER/OFF,WAVELENGTH=0
        Last edited by NinjaBadger; 12-09-2019, 05:54 AM.
        Applications Engineer
        Hexagon UK

        Comment

        Related Topics

        Collapse

        • toffield
          looping
          by toffield
          3.5mr2

          Hi to all. I have a radial surface to inspect on a multi vane casting. I want to use the loop so that I do not have to rotate...
          03-09-2006, 06:45 AM
        • Mindaugas
          Aligning part inside loop
          by Mindaugas
          Hello. We got fixture to measure 8 parts at the same time. But the part is complex and I want to measure align inside loop every time. The problem is...
          12-18-2018, 03:10 AM
        • AuRules
          Looping
          by AuRules
          Would like to check 100 points on the inside of a 5" bearing race then check 100 points on the outside, each point at 3.6 degrees and then do a 2d...
          08-07-2007, 09:18 AM
        • GOFOBROKE
          Rotating Alignment in Loop
          by GOFOBROKE
          I have recently been thwarted into the position of programming our CMM with PC-DMIS... I have successfully created a loop to measure holes in a pattern,...
          09-11-2015, 11:05 AM
        • EmilySue
          Broken Loop/Alignment/Brain?
          by EmilySue
          - SOLVED - (at least... I built the alignment externally, saved it and re-pasted all of my features and report commands... and it is now running.) ...
          12-27-2017, 09:19 AM
        Working...
        X