hexagon logo

Manual vs DCC alignment

I have taken the basic 1 week PCDMIS course from Hexagon.

Currently I have only modified part programs written by the programmer at our parent company location to run on our cmms.

I work with version 3.7 on cmm 2 and 2014 on cmm 3.

Cmm 1 has Measuremax which I am not sure how to program. This question is regarding cmm 2.

I think I may be a little confused about the purpose of running the dcc alignment after the manual alignment has run. I was under the impression that the manual alignment was to locate the part on the cmm, and the dcc alignment was the "fine tuning" and would adjust for very slight placement changes.

We have a fixture that is bolted to the fixture plate. The part is then mounted on the fixture and screwed into place using 1 screw. The part is secure, but due to different cavities with different die conditions may sit slightly different in the fixture each time. We are measuring the true position of a bore on the x minus side of the part with respect to the plane and bore at the x/y/z 0 position that is used to set the part alignment.

What we have noticed is that when we run the first part with the manual alignment the true position is within tolerance (.04mm). When we run a second part, if I mark all but choose not to mark the manual alignment portion, we see true position values between 0.1mm and 0.2mm.

If I then run the program on that same part again using the manual alignment without moving the part the true position values are again within tolerance. From what I read online yesterday after lots of digging it looks like the dcc alignment serves only to ensure the alignment features are properly probed and defined.

Is there any way around running the manual alignment each time? I don't mind if it's necessary for different cavities or runs, but for a 300pc cpk it's quite time consuming. Thanks in advance for any answers and/or suggestions. Oh, and I'm well aware of the noob hazing here. I have thick skin Slight smile.

Amber
  • Can you pose the code, I am sure that people will be more than able to help you out once you do. I think its [c0de][/c0de] replace the 0 with o

    and welcome to the forum and the massive amount of learning required to program well, still a noob myself.
  • Does the DCC alignment probe the same features as the manual alignment?
  • Here's the first part of the code. 1000 character limit Disappointed
    STARTUP    =ALIGNMENT/START,RECALL:, LIST= YES
                ALIGNMENT/END
                MODE/MANUAL
                WORKPLANE/ZPLUS
                GOTO/SKIPPIC
     
    SKIPPIC    =LABEL/
                CHECK/ 7,1
                MOVESPEED/ 95
                PREHIT/ 2
                RETRACT/ 2
                WORKPLANE/XPLUS
                FORMAT/TEXT,OPTIONS, ,HEADINGS,SYMBOLS, ;MEAS,NOM,TOL,DEV,OUTTOL, , 
                LOADPROBE/4MM X 50MM
                TIP/T1A90B-90, SHANKIJK=1, 0, 0, ANGLE=-90
                COMMENT/REPT,
                            ,
                OPTIONPROBE/MAXFORCE=0.36, LOWFORCE=0.01, UPPERFORCE=0.18, TRIGGERFORCE=0.03,
                           PROBEACCURACY=0.1, POSACCURACY=0.1, #RETURNDATA=7,
                           RETURNSPEED=1, SCANPNTDENSITY=2,
                           SCANACCELERATION=10, SCANOFFSETFORCE=0.12,
                           PROBINGMODE=DFL, MANFINEPROBING=NO
    C1         =COMMENT/INPUT,YES,'SAMPLE PART :  :'
                COMMENT/REPT,
                            ,
    C2         =COMMENT/INPUT,YES,'CAVITY :  :'
                COMMENT/REPT,
                            ,
                COMMENT/OPER,NO,
                               ,PLACE LARGE V-BLOCK
                               ,AT  M18.  DATUM A FACE
                               ,TO BE LEVEL TO X+ EDGE
                               ,OF VEE.
                               ,
                               ,.350 BLOCKS UNDER
                               ,EDGES OF PART
                               ,
                               ,TAKE A FOUR POINT
                               ,PLANE ON A FACE
                               ,
    PLN1       =FEAT/PLANE,RECT,TRIANGLE
                THEO/-0.5,-19.723,2.791,1,0,0
                ACTL/353.744,209.894,-336.358,0.9999678,0.0025928,0.0075939
                MEAS/PLANE,4
                HIT/BASIC,NORMAL,-0.5,98.334,9.263,1,0,0,353.335,312.358,-317.023,USE THEO = YES
                HIT/BASIC,NORMAL,-0.5,-35.054,92.956,1,0,0,353.013,227.592,-246.673,USE THEO = YES
                HIT/BASIC,NORMAL,-0.5,-101.29,-0.068,1,0,0,354.033,116.093,-341.87,USE THEO = YES
                HIT/BASIC,NORMAL,-0.5,-40.883,-90.985,1,0,0,354.595,183.535,-439.868,USE THEO = YES
                ENDMEAS/
    A1         =ALIGNMENT/START,RECALL:STARTUP, LIST= YES
                ALIGNMENT/LEVEL,XPLUS,PLN1
                ALIGNMENT/TRANS,XAXIS,PLN1
                ALIGNMENT/END
                TIP/T1A90B-90, SHANKIJK=1, 0.004, -0.004, ANGLE=-90.001
                COMMENT/OPER,NO,
                               ,TAKE A FOUR POINT
                               ,
                               ,CIRCLE IN 157 BORE
                               ,
                               ,
                               ,SEE CAD GRAPHIC
                               ,
    CIR1       =AUTO/CIRCLE,SHOWALLPARAMS = YES,SHOWHITS = NO
                THEO/0,0,0,1,0,0,157.55
                ACTL/0,216.45,-349.209,1,0,0,157.575
                TARG/0,0,0,1,0,0
                THEO_THICKNESS = 0,RECT,IN,STRAIGHT,LEAST_SQR,ONERROR = NO,$
                AUTO MOVE = NO,DISTANCE = 5,RMEAS = None,None,None,$
                READ POS = NO,FIND HOLE = NO,REMEASURE = NO,$
                NUMHITS = 4,INIT = 0,PERM = 0,SPACER = 0,PITCH = 0,$
                START ANG = 0,END ANG = 360,DEPTH = 2,$
                ANGLE VEC = 0,0.0000131,-1
                DISPLAYPRECISION/5
                COMMENT/OPER,NO,
                               ,TAKE A FOUR POINT
                               ,
                               ,CIRCLE IN MIDDLE
                               ,
                               ,Y- HOLE ON A FACE
                               ,
                               ,SEE CAD GRAPHIC
                               ,
    CIR2       =AUTO/CIRCLE,SHOWALLPARAMS = YES,SHOWHITS = NO
                THEO/0,0,0,1,0,0,11.25
                ACTL/0,310.31904,-348.72898,1,0,0,11.89729
                TARG/0,0,0,1,0,0
                THEO_THICKNESS = 0,RECT,IN,STRAIGHT,LEAST_SQR,ONERROR = NO,$
                AUTO MOVE = BOTH,DISTANCE = 10,RMEAS = None,None,None,$
                READ POS = NO,FIND HOLE = NO,REMEASURE = NO,$
                NUMHITS = 4,INIT = 0,PERM = 0,SPACER = 0,PITCH = 0,$
                START ANG = 0,END ANG = 360,DEPTH = 2,$
                ANGLE VEC = 0,0.0000131,-1
                COMMENT/OPER,NO,
                               ,DCC ABOUT
                               ,
                               ,TO START
                MODE/DCC
    MAN        =ALIGNMENT/START,RECALL:A1, LIST= YES
                ALIGNMENT/LEVEL,XPLUS,PLN1
                ALIGNMENT/TRANS,XAXIS,PLN1
                ALIGNMENT/ROTATE_CIRCLE,YPLUS,TO,CIR1,AND,CIR2,ABOUT,XPLUS
                ALIGNMENT/TRANS,YAXIS,CIR1
                ALIGNMENT/TRANS,ZAXIS,CIR1
                ALIGNMENT/END
                PREHIT/ 2
                RETRACT/ 2
    A_PNT1     =AUTO/VECTOR POINT,SHOWALLPARAMS = YES
                THEO/0,-26.80858,95.9821,1,0,0
                ACTL/-0.00362,-26.80102,95.97285,1,0,0
                TARG/0,-26.80858,95.9821,1,0,0
                THEO_THICKNESS = 0,RECT,SNAP = NO,$
                AUTO MOVE = NO,DISTANCE = 5
    A_PNT2     =AUTO/VECTOR POINT,SHOWALLPARAMS = YES
                THEO/0,-68.56493,70.6051,1,0,0
                ACTL/-0.02746,-68.54876,70.65029,1,0,0
                TARG/0,-68.56493,70.6051,1,0,0
                THEO_THICKNESS = 0,RECT,SNAP = NO,$
                AUTO MOVE = NO,DISTANCE = 5
    A_PNT3     =AUTO/VECTOR POINT,SHOWALLPARAMS = YES
                THEO/0,-97.33189,17.07016,1,0,0
                ACTL/-0.01864,-97.31782,17.11909,1,0,0
                TARG/0,-97.33189,17.07016,1,0,0
                THEO_THICKNESS = 0,RECT,SNAP = NO,$
                AUTO MOVE = NO,DISTANCE = 5
    A_PNT4     =AUTO/VECTOR POINT,SHOWALLPARAMS = YES
                THEO/0,-70.99906,-71.70193,1,0,0
                ACTL/0.00321,-71.02332,-71.65526,1,0,0
                TARG/0,-70.99906,-71.70193,1,0,0
                THEO_THICKNESS = 0,RECT,SNAP = NO,$
                AUTO MOVE = NO,DISTANCE = 5
    A_PNT5     =AUTO/VECTOR POINT,SHOWALLPARAMS = YES
                THEO/0,-45.56341,-72.57513,1,0,0
                ACTL/0.0385,-45.59111,-72.52626,1,0,0
                TARG/0,-45.56341,-72.57513,1,0,0
                THEO_THICKNESS = 0,RECT,SNAP = NO,$
                AUTO MOVE = NO,DISTANCE = 5
                MOVE/POINT,NORMAL,10.87591,7.20273,-52.94458
    A_PNT6     =AUTO/VECTOR POINT,SHOWALLPARAMS = YES
                THEO/0,23.04603,-78.4457,1,0,0
                ACTL/0.02142,23.01922,-78.3762,1,0,0
                TARG/0,23.04603,-78.4457,1,0,0
                THEO_THICKNESS = 0,RECT,SNAP = NO,$
                AUTO MOVE = NO,DISTANCE = 5
    A_PNT7     =AUTO/VECTOR POINT,SHOWALLPARAMS = YES
                THEO/0,79.1366,-61.35908,1,0,0
                ACTL/0.0474,79.09927,-61.37084,1,0,0
                TARG/0,79.1366,-61.35908,1,0,0
                THEO_THICKNESS = 0,RECT,SNAP = NO,$
                AUTO MOVE = NO,DISTANCE = 5
    A_PNT8     =AUTO/VECTOR POINT,SHOWALLPARAMS = YES
                THEO/0,80.8082,-15.19794,1,0,0
                ACTL/0.03084,80.7829,-15.21318,1,0,0
                TARG/0,80.8082,-15.19794,1,0,0
                THEO_THICKNESS = 0,RECT,SNAP = NO,$
                AUTO MOVE = NO,DISTANCE = 5
    A_PNT9     =AUTO/VECTOR POINT,SHOWALLPARAMS = YES
                THEO/0,73.3012,66.63921,1,0,0
                ACTL/-0.00482,73.31186,66.62647,1,0,0
                TARG/0,73.3012,66.63921,1,0,0
                THEO_THICKNESS = 0,RECT,SNAP = NO,$
                AUTO MOVE = NO,DISTANCE = 5
    A_PNT10    =AUTO/VECTOR POINT,SHOWALLPARAMS = YES
                THEO/0,21.38568,96.94605,1,0,0
                ACTL/-0.01694,21.39602,96.92579,1,0,0
                TARG/0,21.38568,96.94605,1,0,0
                THEO_THICKNESS = 0,RECT,SNAP = NO,$
                AUTO MOVE = NO,DISTANCE = 7
    DAT_A      =FEAT/PLANE,RECT,TRIANGLE
                THEO/0,-3.15902,4.79628,1,0,0
                ACTL/0.00699,-3.16728,4.81527,0.9999999,-0.0001868,0.0002614
                CONSTR/PLANE,BF,A_PNT1,A_PNT2,A_PNT3,A_PNT4,A_PNT5,A_PNT6,A_PNT7,A_PNT8,A_PNT9,A_PNT10,,
                OUTLIER_REMOVAL/OFF,3
                FILTER/OFF,WAVELENGTH=0
    
  • Here's the rest
    A0         =ALIGNMENT/START,RECALL:MAN, LIST= YES
                ALIGNMENT/LEVEL,XPLUS,DAT_A
                ALIGNMENT/TRANS,XAXIS,DAT_A
                ALIGNMENT/END
    CIR1_2     =AUTO/CIRCLE,SHOWALLPARAMS = YES,SHOWHITS = YES
                THEO/0,0,0,1,0,0,157.55
                ACTL/0,-0.001,0.00251,1,0,0,157.57
                TARG/0,0,0,1,0,0
                THEO_THICKNESS = 0,RECT,IN,CIRCULAR,LEAST_SQR,ONERROR = NO,$
                AUTO MOVE = BOTH,DISTANCE = 20,RMEAS = None,None,None,$
                READ POS = NO,FIND HOLE = NO,REMEASURE = NO,$
                NUMHITS = 8,INIT = 0,PERM = 0,SPACER = 0,PITCH = 0,$
                START ANG = -30,END ANG = 290,DEPTH = 3,$
                ANGLE VEC = 0,0.7405029,-0.6720532
                MEAS/CIRCLE
                HIT/BASIC,-3,26.6508,-74.12986,0,-0.33832,0.94103,-2.99316,26.67625,-74.12694
                HIT/BASIC,-3,71.34617,-33.39498,0,-0.9057,0.42393,-2.99848,71.42107,-33.23591
                HIT/BASIC,-3,73.99604,27.02012,0,-0.93933,-0.343,-2.98909,74.01473,27.00101
                HIT/BASIC,-3,33.03879,71.51181,0,-0.41941,-0.9078,-2.98905,33.0142,71.54488
                HIT/BASIC,-3,-27.38878,73.86038,0,0.34768,-0.93761,-3.0053,-27.42191,73.85949
                HIT/BASIC,-3,-71.67567,32.68177,0,0.90988,-0.41487,-3.01551,-71.74361,32.5456
                HIT/BASIC,-3,-73.72288,-27.75675,0,0.93587,0.35235,-3.0203,-73.76586,-27.67229
                HIT/BASIC,-3,-32.32395,-71.83776,0,0.41033,0.91194,-3.02218,-32.31297,-71.86031
                ENDMEAS/
                DISPLAYPRECISION/5
                MOVE/POINT,NORMAL,4.99767,94.00016,-0.00026
    CIR2_2     =FEAT/CIRCLE,RECT,IN,LEAST_SQR
                THEO/-3.29065,93.64547,0.00877,1,0,0,11.91164
                ACTL/-3.30566,93.86515,0.01457,1,0,0,11.88978
                MEAS/CIRCLE,6,WORKPLANE
                HIT/BASIC,NORMAL,-3.30814,89.30301,4.06031,0,0.7311745,-0.6821905,-3.29871,89.34286,3.85709,USE THEO = YES
                MOVE/CIRCULAR
                HIT/BASIC,NORMAL,-3.30497,87.73089,0.86093,0,0.9897797,-0.1426048,-3.31988,87.94502,0.69379,USE THEO = YES
                MOVE/CIRCULAR
                HIT/BASIC,NORMAL,-3.30266,89.64196,-4.39455,0,0.6727178,0.7398992,-3.33899,89.65532,-4.17802,USE THEO = YES
                MOVE/CIRCULAR
                HIT/BASIC,NORMAL,-3.28814,98.35194,-3.62335,0,-0.7916668,0.610953,-3.31243,98.52439,-3.6614,USE THEO = YES
                MOVE/CIRCULAR
                HIT/BASIC,NORMAL,-3.27502,99.61533,-0.03702,0,-0.9999706,0.0076701,-3.29093,99.82469,-0.0459,USE THEO = YES
                MOVE/CIRCULAR
                HIT/BASIC,NORMAL,-3.26498,98.11605,3.94112,0,-0.7508612,-0.6604601,-3.27302,98.18777,4.08875,USE THEO = YES
                ENDMEAS/
                MOVE/POINT,NORMAL,19.99776,94.0006,1.99903
                DISPLAYPRECISION/3
    A4         =ALIGNMENT/START,RECALL:A0, LIST= YES
                ALIGNMENT/LEVEL,XPLUS,DAT_A
                ALIGNMENT/TRANS,XAXIS,DAT_A
                ALIGNMENT/ROTATE_CIRCLE,YPLUS,TO,CIR1_2,AND,CIR2_2,ABOUT,XPLUS
                ALIGNMENT/TRANS,XAXIS,CIR1_2
                ALIGNMENT/TRANS,YAXIS,CIR1_2
                ALIGNMENT/END
    
  • And yes. The DCC aligment probes the same features that the manual alignment does.
  • On alignments, always follow the order of level then rotate then translate (origin). I have never had consistent success with using auto features in my manual alignment so I always start with measured features to get my manual alignment.

    The problem could be related to your dimensioning of the true position, so please post your code for that as well.
  • in your final allignment A4 you level your X axis and then translate, you hten rotate your Y axis, but you then translate your X axis again to a different feature and then you translate your Y axis.

    you have translated your X axis twice and forgotten about the Z axis so not locking all 6 dof.
  • Thank you bigtall! I do see that I forgot to translate Z in my A4 alignment. Ugh, I'm starting to think it's more difficult to edit someone else's programs than to create your own. I will change that now and see if it has an effect on my issue. And, as requested, here is the code for the creation of datum D and the TP dimension code.
    DAT_D_CYL  =FEAT/CYLINDER,RECT,IN,MAX_INSC
                THEO/6.141,-0.008,-0.02,-1,-0.0000985,-0.0002292,124.435,7.75
                ACTL/6.138,0.006,0.003,-1,0.000159,0.0002539,124.425,7.81
                CONSTR/CYLINDER,BF,D_BOT,D_MID,D_TOP,,
    DIM LOC16= TRUE POSITION OF CYLINDER DAT_D_CYL  USE AXIS=START PT  REF LENGTH=0.000  UNITS=MM ,$
    GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH  DEV PERPEN CENTERLINE=OFF  DISPLAY=DIAMETER
    AX    MEAS      NOMINAL     +TOL       -TOL       BONUS       DEV      OUTTOL   
    Y       0.004      0.000                                       0.004           
    Z       0.012      0.000                                       0.012           
    DF                            0.025      0.025                -0.010      0.000 --#------
    TP                   RFS      0.040                 0.000      0.026      0.000 -----#---
    END OF DIMENSION LOC16
    
  • in your final allignment A4 you level your X axis and then translate, you hten rotate your Y axis, but you then translate your X axis again to a different feature and then you translate your Y axis.

    you have translated your X axis twice and forgotten about the Z axis so not locking all 6 dof.


    +1
  • Hello and welcome to the forum, Amber!


    The part is secure, but due to different cavities with different die conditions may sit slightly different in the fixture each time.


    This is the red flag clue.

    What's happening is that when you run the Manual "the part's sitting in this part of the ballpark" alignment on Part #1, the machine knows exactly where #1's datums are and can go into DCC mode and beep them with little to no error, getting a good alignment on them and making a good report.

    And then when you grab part #2 (which is a little different, being from a different cavity made on a different shift etc) and skip the Manual alignment, the machine goes into DCC mode and aims for where it thinks the datums should be - where they were on Part #1. Now they're not too far off, not enough to make it crash but far enough that when it beeps it's not hitting with a DCC approach vector perfectly perpendicular to the datum surface. So each datum point is now being probed with some error, we call it cosine error, getting a shoddy alignment and poor results.

    And then as you figured out simply run the Manual alignment on part #2 and it's fine.

    The solution is to layer a third alignment after 1st two:
    1) Manual alignment - can be skipped as long as the fixture isn't moved.
    2) DCC Rough alignment - never skipped, finds how badly the part is sitting on the fixture.
    3) DCC Fine alignment - never skipped, all motion is based on DCC Rough's findings.

    Also, there is one additional change that must be made: after each Level portion of the alignment and before circles are measures, the WORKPLANE really needs to be set to XPLUS for those circles to get good data. This is probably contributing to some of that positional error.

    ~~~

    Finally, based on your keen observations of the issue and evident problem-solving skills in coming to the forum to sort it out, I predict that you will soon outshine your coworker who made that program. Good luck and keep us posted!