hexagon logo

Alignment strategy

Hello All
I received one part to measure in CMM with PCDMIS platform, and I am bit confused to alignment strategy on this.
Attached drawing snap for your understanding

Here Datum A is bottom face, Datum B represented to 4 holes.
In program I followed by below steps

The part is in XY plane
  • Measure datum A
  • Measure 4 holes
  • Connect holes 1 & 4 with Line 1
  • Connect holes 2 & 3 with Line 2
  • Intersect Line 1 & 2 and get a IntPoint
  • Construct MidPoint between holes 2 & 4
Alignment:
  • Datum A - Spatial alignment in Z
  • MidPoint - Planar alignment in X
  • IntPnt - Origin XY

My concern,
  • Is my alignment strategy is correct? please suggest
  • How we can apply MMC to B datum?

I need help on this please

Thanks













Attached Files
  • You need to use XactmMeasure dimensioning. Measure datum A as a plane and define it as datum A. Then measure the four datum B holes as cylinders, construct a feature set from them and define the set as datum B. Dimension the four holes in one XactMeasure position command. Measure datum C as a cylinder. Dimension datum C to datums A & B. Example code below...

  • [code]pln1 =feat/contact/plane/default,cartesian,outline,least_sqr
    theo/<95,47.5,0>,<0,0,-1>
    actl/<95,47.5,0>,<0,0,-1>
    targ/<95,47.5,0>,<0,0,-1>
    angle vec=<-0.0079997,0,0.999968>,square
    show feature parameters=yes
    void detection=no
    surface=thickness_none,0
    measure mode=nominals
    rmeas=none,none,none
    auto wrist=no
    circular moves=straight
    graphical analysis=no
    feature locator=no,no,""
    show contact parameters=yes
    numhits=3,numrows=2
    spacer=95
    show hits=yes
    hit/basic,<190,0,0>,<0,0,-1>,<190,0,0>
    hit/basic,<95,0,0>,<0,0,-1>,<95,0,0>
    hit/basic,<0,0,0>,<0,0,-1>,<0,0,0>
    hit/basic,<0,95,0>,<0,0,-1>,<0,95,0>
    hit/basic,<95,95,0>,<0,0,-1>,<95,95,0>
    hit/basic,<190,95,0>,<0,0,-1>,<190,95,0>
    endmeas/
    cyl1 =feat/contact/cylinder/default,cartesian,in,least_sqr
    theo/<20,85,10>,<0,0,1>,12,10
    actl/<20,85,10>,<0,0,1>,12,10
    targ/<20,85,10>,<0,0,1>
    start ang=0,end ang=360
    angle vec=<0,0,1>
    direction=ccw
    show feature parameters=yes
    void detection=yes
    remeasure=no,use theo=no
    surface=thickness_none,0
    measure mode=nominals
    rmeas=none,none,none
    auto wrist=no
    circular moves=straight
    graphical analysis=no
    feature locator=no,no,""
    show contact parameters=yes
    numhits=5,numlevels=3,depth=2,end offset=2,pitch=0
    sample method=sample_hits
    sample hits=0,spacer=0
    find hole=disabled,onerror=no,read pos=no
    show hits=yes
    hit/basic,<26,85,2>,<-1,0,0>,<26,85,2>
    hit/basic,<21.854,90.706,2>,<-0.309017,-0.9510565,0>,<21.854,90.706,2>
    hit/basic,<15.146,88.527,2>,<0.809017,-0.5877853,0>,<15.146,88.527,2>
    hit/basic,<15.146,81.473,2>,<0.809017,0.5877853,0>,<15 .146,81.473,2>
    hit/basic,<21.854,79.294,2>,<-0.309017,0.9510565,0>,<21.854,79.294,2>
    hit/basic,<21.854,79.294,5>,<-0.309017,0.9510565,0>,<21.854,79.294,5>
    hit/basic,<15.146,81.473,5>,<0.809017,0.5877853,0>,<15 .146,81.473,5>
    hit/basic,<15.146,88.527,5>,<0.809017,-0.5877853,0>,<15.146,88.527,5>
    hit/basic,<21.854,90.706,5>,<-0.309017,-0.9510565,0>,<21.854,90.706,5>
    hit/basic,<26,85,5>,<-1,0,0>,<26,85,5>
    hit/basic,<26,85,8>,<-1,0,0>,<26,85,8>
    hit/basic,<21.854,90.706,8>,<-0.309017,-0.9510565,0>,<21.854,90.706,8>
    hit/basic,<15.146,88.527,8>,<0.809017,-0.5877853,0>,<15.146,88.527,8>
    hit/basic,<15.146,81.473,8>,<0.809017,0.5877853,0>,<15 .146,81.473,8>
    hit/basic,<21.854,79.294,8>,<-0.309017,0.9510565,0>,<21.854,79.294,8>
    endmeas/
    cyl2 =feat/contact/cylinder/default,cartesian,in,least_sqr
    theo/<170,85,10>,<0,0,1>,12,10
    actl/<170,85,10>,<0,0,1>,12,10
    targ/<170,85,10>,<0,0,1>
    start ang=0,end ang=360
    angle vec=<0,0,1>
    direction=ccw
    show feature parameters=yes
    void detection=yes
    remeasure=no,use theo=no
    surface=thickness_none,0
    measure mode=nominals
    rmeas=none,none,none
    auto wrist=no
    circular moves=straight
    graphical analysis=no
    feature locator=no,no,""
    show contact parameters=yes
    numhits=5,numlevels=3,depth=2,end offset=2,pitch=0
    sample method=sample_hits
    sample hits=0,spacer=0
    find hole=disabled,onerror=no,read pos=no
    show hits=yes
    hit/basic,<176,85,2>,<-1,0,0>,<176,85,2>
    hit/basic,<171.854,90.706,2>,<-0.309017,-0.9510565,0>,<171.854,90.706,2>
    hit/basic,<165.146,88.527,2>,<0.809017,-0.5877853,0>,<165.146,88.527,2>
    hit/basic,<165.146,81.473,2>,<0.809017,0.5877853,0>,<1 65.146,81.473,2>
    hit/basic,<171.854,79.294,2>,<-0.309017,0.9510565,0>,<171.854,79.294,2>
    hit/basic,<171.854,79.294,5>,<-0.309017,0.9510565,0>,<171.854,79.294,5>
    hit/basic,<165.146,81.473,5>,<0.809017,0.5877853,0>,<1 65.146,81.473,5>
    hit/basic,<165.146,88.527,5>,<0.809017,-0.5877853,0>,<165.146,88.527,5>
    hit/basic,<171.854,90.706,5>,<-0.309017,-0.9510565,0>,<171.854,90.706,5>
    hit/basic,<176,85,5>,<-1,0,0>,<176,85,5>
    hit/basic,<176,85,8>,<-1,0,0>,<176,85,8>
    hit/basic,<171.854,90.706,8>,<-0.309017,-0.9510565,0>,<171.854,90.706,8>
    hit/basic,<165.146,88.527,8>,<0.809017,-0.5877853,0>,<165.146,88.527,8>
    hit/basic,<165.146,81.473,8>,<0.809017,0.5877853,0>,<1 65.146,81.473,8>
    hit/basic,<171.854,79.294,8>,<-0.309017,0.9510565,0>,<171.854,79.294,8>
    endmeas/
    cyl3 =feat/contact/cylinder/default,cartesian,in,least_sqr
    theo/<20,10,10>,<0,0,1>,12,10
    actl/<20,10,10>,<0,0,1>,12,10
    targ/<20,10,10>,<0,0,1>
    start ang=0,end ang=360
    angle vec=<0,0,1>
    direction=ccw
    show feature parameters=yes
    void detection=yes
    remeasure=no,use theo=no
    surface=thickness_none,0
    measure mode=nominals
    rmeas=none,none,none
    auto wrist=no
    circular moves=straight
    graphical analysis=no
    feature locator=no,no,""
    show contact parameters=yes
    numhits=5,numlevels=3,depth=2,end offset=2,pitch=0
    sample method=sample_hits
    sample hits=0,spacer=0
    find hole=disabled,onerror=no,read pos=no
    show hits=yes
    hit/basic,<26,10,2>,<-1,0,0>,<26,10,2>
    hit/basic,<21.854,15.706,2>,<-0.309017,-0.9510565,0>,<21.854,15.706,2>
    hit/basic,<15.146,13.527,2>,<0.809017,-0.5877853,0>,<15.146,13.527,2>
    hit/basic,<15.146,6.473,2>,<0.809017,0.5877853,0>,<15. 146,6.473,2>
    hit/basic,<21.854,4.294,2>,<-0.309017,0.9510565,0>,<21.854,4.294,2>
    hit/basic,<21.854,4.294,5>,<-0.309017,0.9510565,0>,<21.854,4.294,5>
    hit/basic,<15.146,6.473,5>,<0.809017,0.5877853,0>,<15. 146,6.473,5>
    hit/basic,<15.146,13.527,5>,<0.809017,-0.5877853,0>,<15.146,13.527,5>
    hit/basic,<21.854,15.706,5>,<-0.309017,-0.9510565,0>,<21.854,15.706,5>
    hit/basic,<26,10,5>,<-1,0,0>,<26,10,5>
    hit/basic,<26,10,8>,<-1,0,0>,<26,10,8>
    hit/basic,<21.854,15.706,8>,<-0.309017,-0.9510565,0>,<21.854,15.706,8>
    hit/basic,<15.146,13.527,8>,<0.809017,-0.5877853,0>,<15.146,13.527,8>
    hit/basic,<15.146,6.473,8>,<0.809017,0.5877853,0>,<15. 146,6.473,8>
    hit/basic,<21.854,4.294,8>,<-0.309017,0.9510565,0>,<21.854,4.294,8>
    endmeas/
    cyl4 =feat/contact/cylinder/default,cartesian,in,least_sqr
    theo/<170,10,10>,<0,0,1>,12,10
    actl/<170,10,10>,<0,0,1>,12,10
    targ/<170,10,10>,<0,0,1>
    start ang=0,end ang=360
    angle vec=<0,0,1>
    direction=ccw
    show feature parameters=yes
    void detection=yes
    remeasure=no,use theo=no
    surface=thickness_none,0
    measure mode=nominals
    rmeas=none,none,none
    auto wrist=no
    circular moves=straight
    graphical analysis=no
    feature locator=no,no,""
    show contact parameters=yes
    numhits=5,numlevels=3,depth=2,end offset=2,pitch=0
    sample method=sample_hits
    sample hits=0,spacer=0
    find hole=disabled,onerror=no,read pos=no
    show hits=yes
    hit/basic,<176,10,2>,<-1,0,0>,<176,10,2>
    hit/basic,<171.854,15.706,2>,<-0.309017,-0.9510565,0>,<171.854,15.706,2>
    hit/basic,<165.146,13.527,2>,<0.809017,-0.5877853,0>,<165.146,13.527,2>
    hit/basic,<165.146,6.473,2>,<0.809017,0.5877853,0>,<16 5.146,6.473,2>
    hit/basic,<171.854,4.294,2>,<-0.309017,0.9510565,0>,<171.854,4.294,2>
    hit/basic,<171.854,4.294,5>,<-0.309017,0.9510565,0>,<171.854,4.294,5>
    hit/basic,<165.146,6.473,5>,<0.809017,0.5877853,0>,<16 5.146,6.473,5>
    hit/basic,<165.146,13.527,5>,<0.809017,-0.5877853,0>,<165.146,13.527,5>
    hit/basic,<171.854,15.706,5>,<-0.309017,-0.9510565,0>,<171.854,15.706,5>
    hit/basic,<176,10,5>,<-1,0,0>,<176,10,5>
    hit/basic,<176,10,8>,<-1,0,0>,<176,10,8>
    hit/basic,<171.854,15.706,8>,<-0.309017,-0.9510565,0>,<171.854,15.706,8>
    hit/basic,<165.146,13.527,8>,<0.809017,-0.5877853,0>,<165.146,13.527,8>
    hit/basic,<165.146,6.473,8>,<0.809017,0.5877853,0>,<16 5.146,6.473,8>
    hit/basic,<171.854,4.294,8>,<-0.309017,0.9510565,0>,<171.854,4.294,8>
    endmeas/
    group_of_holes=feat/set,cartesian
    theo/<95,47.5,10>,<0,0,1>
    actl/<95,47.5,10>,<0,0,1>
    constr/set,basic,cyl1,cyl2,cyl3,cyl4,,
    datdef/a,features=pln1,,
    datdef/b,features=group_of_holes,,
    cyl5 =feat/contact/cylinder/default,cartesian,in,least_sqr
    theo/<95,47.5,45>,<0,0,1>,10,10
    actl/<95,47.5,45>,<0,0,1>,10,10
    targ/<95,47.5,45>,<0,0,1>
    start ang=0,end ang=360
    angle vec=<0,0,1>
    direction=ccw
    show feature parameters=yes
    void detection=yes
    remeasure=no,use theo=no
    surface=thickness_none,0
    measure mode=nominals
    rmeas=none,none,none
    auto wrist=no
    circular moves=straight
    graphical analysis=no
    feature locator=no,no,""
    show contact parameters=yes
    numhits=5,numlevels=3,depth=2,end offset=2,pitch=0
    sample method=sample_hits
    sample hits=0,spacer=0
    find hole=disabled,onerror=no,read pos=no
    show hits=yes
    hit/basic,<100,47.5,37>,<-1,0,0>,<100,47.5,37>
    hit/basic,<96.545,52.255,37>,<-0.309017,-0.9510565,0>,<96.545,52.255,37>
    hit/basic,<90.955,50.439,37>,<0.809017,-0.5877853,0>,<90.955,50.439,37>
    hit/basic,<90.955,44.561,37>,<0.809017,0.5877853,0>,<9 0.955,44.561,37>
    hit/basic,<96.545,42.745,37>,<-0.309017,0.9510565,0>,<96.545,42.745,37>
    hit/basic,<96.545,42.745,40>,<-0.309017,0.9510565,0>,<96.545,42.745,40>
    hit/basic,<90.955,44.561,40>,<0.809017,0.5877853,0>,<9 0.955,44.561,40>
    hit/basic,<90.955,50.439,40>,<0.809017,-0.5877853,0>,<90.955,50.439,40>
    hit/basic,<96.545,52.255,40>,<-0.309017,-0.9510565,0>,<96.545,52.255,40>
    hit/basic,<100,47.5,40>,<-1,0,0>,<100,47.5,40>
    hit/basic,<100,47.5,43>,<-1,0,0>,<100,47.5,43>
    hit/basic,<96.545,52.255,43>,<-0.309017,-0.9510565,0>,<96.545,52.255,43>
    hit/basic,<90.955,50.439,43>,<0.809017,-0.5877853,0>,<90.955,50.439,43>
    hit/basic,<90.955,44.561,43>,<0.809017,0.5877853,0>,<9 0.955,44.561,43>
    hit/basic,<96.545,42.745,43>,<-0.309017,0.9510565,0>,<96.545,42.745,43>
    endmeas/
    
    [/code]
  • FCFLOC1 =POSITION : CYL1,CYL2,CYL3,...
    FEATCTRLFRAME/SHOWNOMS=YES,SHOWPARAMS=YES,SHOWEXPANDED=YES,
    CADGRAPH=OFF,REPORTGRAPH=OFF,TEXT=OFF,MULT=10.00,A RROWDENSITY=100,OUTPUT=BOTH,UNITS=MM,
    COMPOSITE=NO,FIT TO DATUMS=YES,DEV PERPEN CENTERLINE=ON,OUTPUT ALIGNMENT=Datum Reference Frame
    CUSTOMIZED DRF=NO
    STANDARDTYPE=ASME_Y14_5
    SIZE TOLERANCES/4,DIAMETER,12,0.11,-0.11
    PRIMARY DIMENSION/POSITION,DIAMETER,0.05,<MC>,<PZ>,<len>,A,<dat>,<da t>
    SECONDARY DIMENSION/,<tol>,<MC>,<dat>,<dat>,<dat>
    NOTE/FCFLOC1
    FEATURES/CYL1,CYL2,CYL3,CYL4,,
    Set
    <NEW>
    CYL1
    X:NOM=20
    Y:NOM=85
    <NEW>
    CYL2
    X:NOM=170
    Y:NOM=85
    <NEW>
    CYL3
    X:NOM=20
    Y:NOM=10
    <NEW>
    CYL4
    X:NOM=170
    Y:NOM=10
    <NEW>
    FCFLOC2 =POSITION : CYL5
    FEATCTRLFRAME/SHOWNOMS=YES,SHOWPARAMS=YES,SHOWEXPANDED=YES,
    CADGRAPH=OFF,REPORTGRAPH=OFF,TEXT=OFF,MULT=10.00,A RROWDENSITY=100,OUTPUT=BOTH,UNITS=MM,
    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,10,0.15,-0.15
    PRIMARY DIMENSION/POSITION,DIAMETER,0.2,MMC,<PZ>,<len>,A,B,MMC,<size >,<dat>
    SECONDARY DIMENSION/,<tol>,<MC>,<dat>,<dat>,<dat>
    NOTE/FCFLOC2
    FEATURES/CYL5,,
    CYL5
    X:NOM=0
    Y:NOM=0
    <NEW>
    DATUMS
    D2:NOM=12,+TOL=0.11,-TOL=-0.11
  • Thanks Neil,Slight smile
    I understand the codes and let me share few clarifications

    Now we are setting plane A as Datum A and 4 holes set as Datum B, is the spatial alignment and origin to B not required as we are doing 3-2-1?

    Location of B holes you referenced to corner of datum face A, any reason please?

    Since this type scenario I came across first time, I need to understand clearly this strategy

    Thanks
    vAp









  • XactMeasure dimensioning works independently from the current alignment. PC-Dmis creates an alignment internally that satisfies the datum reference frame you specify within the command. However, if you did want to construct the alignment in PC-Dmis yourself you would Level to datum A (spatial alignment) and then perform a 2D bestfit on the four datum B cylinders allowing rotation and translation.