hexagon logo

Legacy dimension - profile of a surface

First of all, I am aware this topic has been covered, but my google-fu failed to find a solution for my current conundrum.

All that follows is relative to PC-DMIS 2012

Part setup:
Datum A: Cylinder along Z, locking X, Y and two rotational DoF
Datum B: Plane perpendicular to A, locking Z
Datum C: Plane perpendicular to B at 5.5 basic from A's axis, locking the last rotational DoF

Callout:
Profile of a surface of datum C relative to datum A

The issue:
While this is pretty straightforward to do with exact dimensions, the report template at my current workplace plays nicely only with legacy dimensions.
The result of legacy profile of a surface (form and position, LSQ best fit) while aligned to ABC are different (worse) than exact above.
To my understanding this is to be expected as legacy "form and location" fits to the current alignment, which is restricting 6 DoF instead of just 4 as Datum A alone would.
If this is the case, is there any way to use legacy with the callout that I have?
  • Out of curiosity, do your results better match Xact if you set up your alignment per ACB?
  • It should not make any difference, A is constraining 4 DoF, the 2 free ones (Z position and rotation around Z) cannot be constrained by the other datum (B is a plane along XY so cannot constrain rotation around Z, C is a plane parallel to XZ so cannot constrain Z position).

    Edit: Given the above I am not even sure how I would try it.
  • To do it properly with legacy you would need to replicate the datum reference frame with the alignment. Since the datum reference frame only uses datum A your alignment would need to level the datum A cylinder to Z and origin X & Y. You would then need to do a 2D bestfit in the Z workplane allowing rotation only on your datum C plane. You can then dimension profile, form & location of your datum C feature to the active alignment and should get the same result as XactMeasure. If the result is different then check you are using the same fit as XactMeasure is using for it's bestfit calculation (shown on the Nominals tab of the XactMeasure dialog - it should be vector min max to comply with ASME Y14.5).
  • This makes a lot of sense, but I still cannot get the numbers to align.

    Alignment (recalling ABC):
    Level on A
    Zero XY on A
    2D no r̶o̶t̶a̶t̶i̶o̶n̶ translation Best fit (Z+ workplane) C

    Results:

    exact dimension: 0.049/0.006 (ASME Y14.5)
    Legacy with LSQ best fit (0.034 deviation): 0.050/0.002 (exact Z rotation datum shift reports 0.094)
    Legacy with Vector (-0.034 deviation): 0.053/0.0017 (exact Z rotation datum shift reports 0.300)
    Legacy with Min/Max (0.034 deviation): 0.050/0.002 (exact Z rotation datum shift reports 0.094)
  • Your best fit alignment needs to be 2D no translation - it needs to allow rotation around Z but you don't want it to move the origin.
  • My bad, it IS no translation, but my post was incorrect.
  • can you either share your program or post your code? It should look something like this...

    CYL1 =FEAT/CONTACT/CYLINDER/DEFAULT,CARTESIAN,IN,LEAST_SQR
    THEO/<4.8819,1.9685,0>,<0,0,1>,2.3819,0.5906
    ACTL/<4.8819,1.9685,0>,<0,0,1>,2.3819,0.5906
    TARG/<4.8819,1.9685,0>,<0,0,1>
    START ANG=0,END ANG=360
    ANGLE VEC=<1,0,0>
    DIRECTION=CCW
    SHOW FEATURE PARAMETERS=NO
    SHOW CONTACT PARAMETERS=YES
    NUMHITS=3,NUMLEVELS=3,DEPTH=0,END OFFSET=0,PITCH=0
    SAMPLE METHOD=SAMPLE_HITS
    SAMPLE HITS=0,SPACER=0
    AVOIDANCE MOVE=BOTH,DISTANCE=0.3937
    FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
    SHOW HITS=NO
    PLN1 =FEAT/CONTACT/PLANE/DEFAULT,CARTESIAN,OUTLINE,LEAST_SQR
    THEO/<5.4747,0.5272,-20>,<0.9953962,0.0958458,0>
    ACTL/<5.4747,0.5272,-20>,<0.9953962,0.0958458,0>
    TARG/<5.4747,0.5272,-20>,<0.9953962,0.0958458,0>
    ANGLE VEC=<0.9953962,0.0958458,0>,SQUARE
    SHOW FEATURE PARAMETERS=NO
    SHOW CONTACT PARAMETERS=YES
    NUMHITS=3,NUMROWS=3
    SPACER=1
    AVOIDANCE MOVE=BOTH,DISTANCE=0.3937
    SHOW HITS=NO
    A1 =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
    ALIGNMENT/LEVEL,ZPLUS,CYL1
    ALIGNMENT/TRANS,XAXIS,CYL1
    ALIGNMENT/TRANS,YAXIS,CYL1
    ALIGNMENT/BF2D,ZPLUS,VECTOR_MIN_MAX,CREATE WEIGHTS=NO,ROTONLY,0,0,0,0
    ITERATEANDREPIERCECAD=NO
    Deviation Threshold=0.0003937
    SHOWALLINPUTS=NO,SHOWALLPARAMS=NO
    ALIGNMENT/END
    DIM PROF1= PROFILE OF SURFACE OF PLANE PLN1 FORMANDLOCATION 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.0005 0.0000 0.0000 0.0000 ----|----
    DATDEF/FEATURE=CYL1,A
    FCFPROF1 =SURFACE PROFILE : PLN1
    FEATCTRLFRAME/SHOWPARAMS=YES,SHOWEXPANDED=YES
    CADGRAPH=OFF,REPORTGRAPH=OFF,TEXT=OFF,MULT=10.00,A RROWDENSITY=100,OUTPUT=BOTH,UNITS=IN
    COMPOSITE=NO,
    CUSTOMIZED DRF=NO
    STANDARDTYPE=ASME_Y14_5
    PRIMARY DIMENSION/PROFILE OF SURFACE,0.001,<UZ>,<UTol>,A,<dat>,<dat>
    NOTE/FCFPROF1
    FEATURES/PLN1,,
  • Sorry about that, I didn’t fully understand the situation at first glance. My coffee has been too hot to drink
  • I cannot post the whole program, but I can post some snippets:

    DAT_B =FEAT/PLANE,CARTESIAN,TRIANGLE,NO
    THEO/<0,0,0>,<0,0,1>
    ACTL/<-0.003,-0.001,0.042>,<0.003575,0.0011308,0.999993>
    CONSTR/PLANE,BFRE,PNT58,PNT60,PNT61,PNT62,PNT63,PNT64,PNT 91,PNT95,PNT96,PNT100,PNT101,PNT102,PNT103,PNT104, PNT105,PNT106,PNT107,PNT108,PNT109,PNT110,,
    OUTLIER_REMOVAL/OFF,3
    FILTER/OFF,WAVELENGTH=0
    
    DATUM_C =FEAT/PLANE,CARTESIAN,TRIANGLE,NO
    THEO/<0,-5.5,2.85>,<0,-1,0>
    ACTL/<0.004,-5.524,2.814>,<-0.0066625,-0.999956,-0.0066109>
    CONSTR/PLANE,BFRE,DATC_1,DATC_2,DATC_3,DATC_4,DATC_5,DATC _6,DATC_7,DATC_8,DATC_9,DATC_10,,
    OUTLIER_REMOVAL/OFF,3
    FILTER/OFF,WAVELENGTH=0
    
    DATUM_A =FEAT/CYLINDER,CARTESIAN,OUT,LEAST_SQR,NO
    THEO/<0,0,-19.8>,<0,0,-1>,13,9.6
    ACTL/<0.002,0.01,-19.821>,<0.0000206,0.0004782,-0.9999999>,12.997,9.641
    CONSTR/CYLINDER,BFRE,PNT30,PNT29,PNT28,PNT27,PNT26,PNT25, PNT18,PNT17,PNT16,PNT15,PNT14,PNT13,PNT6,PNT5,PNT4 ,PNT3,PNT36,PNT39,PNT38,PNT37,PNT31,PNT7,PNT47,PNT 46,PNT45,PNT44,PNT40,PNT73,PNT32,PNT33,PNT34,PNT72 ,PNT71,PNT74,,
    
    DATUM_ABC =ALIGNMENT/START,RECALL[emoticon:6D505171FAA4497C85C5CA27290C555D]ATUM_BC,LIST=YES
    ALIGNMENT/LEVEL,ZMINUS,DATUM_A
    ALIGNMENT/TRANS,XAXIS,DATUM_A
    ALIGNMENT/TRANS,YAXIS,DATUM_A
    ALIGNMENT/TRANS,ZAXIS,DAT_B
    ALIGNMENT/ROTATE,YMINUS,TO,DATUM_C,ABOUT,ZMINUS
    ALIGNMENT/END


    ALN_PROFILE=ALIGNMENT/START,RECALL[emoticon:6D505171FAA4497C85C5CA27290C555D]ATUM_ABC,LIST=YES
    ALIGNMENT/LEVEL,ZPLUS,DATUM_A
    ALIGNMENT/TRANS,XAXIS,DATUM_A
    ALIGNMENT/TRANS,YAXIS,DATUM_A
    ALIGNMENT/BF2D,ZPLUS,MIN/MAX,CREATE WEIGHTS=NO,ROTONLY,0,0,0,359.606
    ITERATEANDREPIERCECAD=NO
    Deviation Threshold=0.2
    SHOWALLINPUTS=NO,SHOWALLPARAMS=NO
    ALIGNMENT/END
    
    DIM CTQ_13_PROFILE_DAT_C= PROFILE OF SURFACE OF PLANE DATUM_C FORMANDLOCATION UNITS=MM ,$
    GRAPH=OFF TEXT=OFF MULT=10.00 ARROWDENSITY=100 OUTPUT=BOTH
    AX NOMINAL MEAS +TOL -TOL DEV OUTTOL MAX MIN
    M 0.000 0.050 0.050 0.050 0.050 0.000 0.050 0.002 ---|--->
    
    XACT_PROFILE =SURFACE PROFILE : DATUM_C
    FEATCTRLFRAME/SHOWPARAMS=YES,SHOWEXPANDED=YES
    CADGRAPH=OFF,REPORTGRAPH=OFF,TEXT=OFF,MULT=1.00,AR ROWDENSITY=100,OUTPUT=BOTH,UNITS=MM
    COMPOSITE=NO,
    CUSTOMIZED DRF=NO
    STANDARDTYPE=ASME_Y14_5
    PRIMARY DIMENSION/PROFILE OF SURFACE,0.1,<UZ>,<UTol>,A,<dat>,<dat>
    NOTE/XACT_PROFILE
    FEATURES/DATUM_C,,
  • What are your MEAS, MAX and MIN results for the XACT_PROFILE - do they match the MEAS, MAX and MIN of DIM_CTQ_13? Also, can you double check the fit type for you bestfit alignment? It's showing MIN/MAX - it should be VECTOR_MIN_MAX. I don't have PC-Dmis 2012 installed on my PC so I'm not sure what options it had available.