I wrote a very basic shell of a program to test the functionality of XactMeasure - I believe it is not acting correctly and would like some input. I can send the program to anyone willing to play around, but it is also very easy to construct for yourself.
START PROGRAM
ENTER DCC MODE
CREATE AUTO INNER CYLINDER DATUM_C (X = 0, Y = 0, Z = 0, D = .6572, L = .2505) ALONG Z - LEVEL Z+
CREATE AUTO OUTER CYLINDER DATUM_D (X = .3286, Y = 0, Z = -.1253, D = .265, L = 3.5878) ALONG X - ROTATE X+ ABOUT Z+
ORIGIN X,Y TO DATUM_C
ORIGIN Z TO DATUM_D
CREATE AUTO INNER CYLINDER DATUM_E (X = 4.245, Y = .125, Z = 0, D = .6572, L = .2505) ALONG Y
MEASURE POSITION OF DATUM_E TO [PRIMARY DATUM_C AT MMB|SECONDARY DATUM_D AT MMB]
POSITION = 0 - DATUM_C CONTROLS XROTATION, YROTATION, XTRANSLATION, YTRANSLATION & DATUM_D CONTROLS ZROTATION, ZTRANSLATION
Following so far? Everything is as expected. All results should be 0.
CREATE AUTO INNER CYLINDER DATUM_CM (X = 0, Y = 0, Z = .1253, D = .6572, L = .2505) ALONG Z WHICH IS THE SAME FEATURE AS DATUM_C
BUT - FOR DATUM_CM CHANGE THE UNIT VECTOR I = 0.004
This will create a feature DATUM_CM in the place of DATUM_C but slightly tilted toward DATUM_E.
MEASURE POSITION OF DATUM_E AS BEFORE, BUT USE DATUM_CM AS PRIMARY.
Once your feature tolerances are set correctly (as listed below), you should see a large ZTranslation shift.
Now shut MMB off of DATUM_D and the ZTranslation goes away - the part fails.
The issue here is that while DATUM_D constrains ZTranslation, it certainly should not allow it to shift as much as it is.
Also, it claims that DATUM_D is not even using any bonus.
You can even exaggerate the tilt of DATUM_CM and not watch the situation improve.
The feature tolerances are DATUM_C = .6572 +0/-.0005
DATUM_D = .265 +.005/-.005
DATUM_E = .6572 +0/-.0005
DATUM_CM = .6572 +0/-.0005
I will also attach the code.
START PROGRAM
ENTER DCC MODE
CREATE AUTO INNER CYLINDER DATUM_C (X = 0, Y = 0, Z = 0, D = .6572, L = .2505) ALONG Z - LEVEL Z+
CREATE AUTO OUTER CYLINDER DATUM_D (X = .3286, Y = 0, Z = -.1253, D = .265, L = 3.5878) ALONG X - ROTATE X+ ABOUT Z+
ORIGIN X,Y TO DATUM_C
ORIGIN Z TO DATUM_D
CREATE AUTO INNER CYLINDER DATUM_E (X = 4.245, Y = .125, Z = 0, D = .6572, L = .2505) ALONG Y
MEASURE POSITION OF DATUM_E TO [PRIMARY DATUM_C AT MMB|SECONDARY DATUM_D AT MMB]
POSITION = 0 - DATUM_C CONTROLS XROTATION, YROTATION, XTRANSLATION, YTRANSLATION & DATUM_D CONTROLS ZROTATION, ZTRANSLATION
Following so far? Everything is as expected. All results should be 0.
CREATE AUTO INNER CYLINDER DATUM_CM (X = 0, Y = 0, Z = .1253, D = .6572, L = .2505) ALONG Z WHICH IS THE SAME FEATURE AS DATUM_C
BUT - FOR DATUM_CM CHANGE THE UNIT VECTOR I = 0.004
This will create a feature DATUM_CM in the place of DATUM_C but slightly tilted toward DATUM_E.
MEASURE POSITION OF DATUM_E AS BEFORE, BUT USE DATUM_CM AS PRIMARY.
Once your feature tolerances are set correctly (as listed below), you should see a large ZTranslation shift.
Now shut MMB off of DATUM_D and the ZTranslation goes away - the part fails.
The issue here is that while DATUM_D constrains ZTranslation, it certainly should not allow it to shift as much as it is.
Also, it claims that DATUM_D is not even using any bonus.
You can even exaggerate the tilt of DATUM_CM and not watch the situation improve.
The feature tolerances are DATUM_C = .6572 +0/-.0005
DATUM_D = .265 +.005/-.005
DATUM_E = .6572 +0/-.0005
DATUM_CM = .6572 +0/-.0005
I will also attach the code.
Code:
STARTUP =ALIGNMENT/START,RECALL:USE_PART_SETUP,LIST=YES ALIGNMENT/END MODE/MANUAL FORMAT/TEXT,OPTIONS, ,HEADINGS,SYMBOLS, ;NOM,TOL,MEAS,DEV,OUTTOL, , LOADPROBE/T5 TIP/T5-A0B0, SHANKIJK=0, 0, 1, ANGLE=0 MODE/DCC DATUM_C =FEAT/CONTACT/CYLINDER/DEFAULT,CARTESIAN,IN,LEAST_SQR THEO/<0,0,0>,<0,0,1>,0.6572,0.2505 ACTL/<0,0,0>,<0,0,1>,0.6572,0.2505 TARG/<0,0,0>,<0,0,1> START ANG=0,END ANG=360 ANGLE VEC=<0,0,-1> DIRECTION=CCW SHOW FEATURE PARAMETERS=NO SHOW CONTACT PARAMETERS=NO AUTO_1 =ALIGNMENT/START,RECALL:STARTUP,LIST=YES ALIGNMENT/LEVEL,ZPLUS,DATUM_C ALIGNMENT/END DATUM_D =FEAT/CONTACT/CYLINDER/DEFAULT,CARTESIAN,OUT,LEAST_SQR THEO/<0.3286,0,-0.1253>,<1,0,0>,0.265,3.5878 ACTL/<0.3286,0,-0.1253>,<1,0,0>,0.265,3.5878 TARG/<0.3286,0,-0.1253>,<1,0,0> START ANG=0,END ANG=360 ANGLE VEC=<0,0,1> DIRECTION=CCW SHOW FEATURE PARAMETERS=NO SHOW CONTACT PARAMETERS=NO AUTO_2 =ALIGNMENT/START,RECALL:AUTO_1,LIST=YES ALIGNMENT/LEVEL,ZPLUS,DATUM_C ALIGNMENT/ROTATE,XPLUS,TO,DATUM_D,ABOUT,ZPLUS ALIGNMENT/TRANS,XAXIS,DATUM_C ALIGNMENT/TRANS,YAXIS,DATUM_C ALIGNMENT/TRANS,ZAXIS,DATUM_D ALIGNMENT/END DATUM_E =FEAT/CONTACT/CYLINDER/DEFAULT,CARTESIAN,IN,LEAST_SQR THEO/<4.245,0.1253,0>,<0,1,0>,0.6572,0.2505 ACTL/<4.245,0.125,0>,<0,1,0>,0.6572,0.2505 TARG/<4.245,0.125,0>,<0,1,0> START ANG=0,END ANG=360 ANGLE VEC=<0,0,-1> DIRECTION=CCW SHOW FEATURE PARAMETERS=NO SHOW CONTACT PARAMETERS=NO DATDEF/FEATURE=DATUM_C,C DATDEF/FEATURE=DATUM_D,D DATDEF/FEATURE=DATUM_E,E COMMENT/REPT, .002 Position - E to [C(M)|D(M)] FCFLOC1 =POSITION : DATUM_E FEATCTRLFRAME/SHOWNOMS=YES,SHOWPARAMS=YES,SHOWEXPANDED=YES CADGRAPH=OFF,REPORTGRAPH=OFF,TEXT=OFF,MULT=10.00,A RROWDENSITY=100,OUTPUT=BOTH,UNITS=IN COMPOSITE=NO,FIT TO DATUMS=YES,DEV PERPEN CENTERLINE=ON,OUTPUT ALIGNMENT=Datum Reference Frame CUSTOMIZED DRF=NO STANDARDTYPE=ASME_Y14_5 SIZE TOLERANCES/1,DIAMETER,0.6572,0,0.0005 PRIMARY DIMENSION/POSITION,DIAMETER,0.002,MMC,<PZ>,<len>,C,MMC,<size >,D,MMC,<size>,<dat> SECONDARY DIMENSION/<Dim>,<tol>,<MC>,<dat>,<dat>,<dat> NOTE/FCFLOC1 FEATURES/DATUM_E,, DATUM_E X:NOM=4.245 Z:NOM=0 <NEW> DATUMS D1:NOM=0.6572,+TOL=0,-TOL=0.0005 D2:NOM=0.265,+TOL=0.005,-TOL=0.005 DATUM_CM =FEAT/CONTACT/CYLINDER/DEFAULT,CARTESIAN,IN,LEAST_SQR THEO/<0,0,0.1253>,<0.0043081,0,0.9999907>,0.6572,0.25 05 ACTL/<0,0,0.1253>,<0.004,0,0.9284703>,0.6572,0.2505 TARG/<0,0,0.1253>,<0.0043081,0,0.9999907> START ANG=0,END ANG=360 ANGLE VEC=<0,0,-1> DIRECTION=CCW SHOW FEATURE PARAMETERS=NO SHOW CONTACT PARAMETERS=NO DATDEF/FEATURE=DATUM_CM,CM COMMENT/REPT, .002 Position - E to [CM(M)|D(M)] FCFLOC2 =POSITION : DATUM_E FEATCTRLFRAME/SHOWNOMS=YES,SHOWPARAMS=YES,SHOWEXPANDED=YES CADGRAPH=OFF,REPORTGRAPH=OFF,TEXT=OFF,MULT=10.00,A RROWDENSITY=100,OUTPUT=BOTH,UNITS=IN COMPOSITE=NO,FIT TO DATUMS=YES,DEV PERPEN CENTERLINE=ON,OUTPUT ALIGNMENT=Datum Reference Frame CUSTOMIZED DRF=NO STANDARDTYPE=ASME_Y14_5 SIZE TOLERANCES/1,DIAMETER,0.6572,0,0.0005 PRIMARY DIMENSION/POSITION,DIAMETER,0.002,MMC,<PZ>,<len>,CM,MMC,<siz e>,D,MMC,<size>,<dat> SECONDARY DIMENSION/<Dim>,<tol>,<MC>,C,MMC,<size>,D,MMC,<size>,<dat> NOTE/FCFLOC2 FEATURES/DATUM_E,, DATUM_E X:NOM=4.245 Z:NOM=0 <NEW> DATUMS D1:NOM=0.6572,+TOL=0,-TOL=0.0005 D2:NOM=0.265,+TOL=0.005,-TOL=0.005