hexagon logo

Tertiary Datum doesn't constrain any degrees of freedom?

2023.1--Selecting Datum A as a plane; Datum B as a hole, Datum C as a hole.
"GEOMAJIC" States Datum C doesn't control any degree of freedom
Without Datum C, Datum B doesn't constrain the final degree of rotational freedom.
Am I wrong here?
  • This is what the part looks like.

    Attached Files
  • Do datums B and C share the same axis? Can you show a sketch?

    EDIT: Can you share your code for the three datum features?
  • Check the Theo vector of the Circle matches that of the Plane, if it's inclined even a little GeoTol will see that as controlling the rotation also.
  • Yes they share a common axis (between the 2 of them) This constrains the final degree of rotational freedom.
  • pnt_a2       =feat/contact/vector point/default,cartesian
                  theo/<2.978355,-0.036323,-0.275574>,<0,0.9991945,-0.0401288>
                  actl/<2.978355,-0.036298,-0.275574>,<-0.0000016,0.9991945,-0.0401298>
                  targ/<2.978355,-0.011343,-0.276577>,<0,0.9991945,-0.0401288>
                  snap=no
                  show feature parameters=no
                  show contact parameters=no
    pnt_a1       =feat/contact/vector point/default,cartesian
                  theo/<-2.978357,-0.036322,-0.275572>,<0,0.9991945,-0.0401288>
                  actl/<-2.978357,-0.036306,-0.275572>,<-0.0000016,0.9991945,-0.0401298>
                  targ/<-2.978357,-0.011342,-0.276575>,<0,0.9991945,-0.0401288>
                  snap=no
                  show feature parameters=no
                  show contact parameters=no
    pnt_a3       =feat/contact/vector point/default,cartesian
                  theo/<0.999737,-0.025464,-22.590249>,<0,0.9995502,0.0299909>
                  actl/<0.999737,-0.025464,-22.590249>,<-0.0000016,0.9995502,0.0299899>
                  targ/<0.999737,-0.000476,-22.589499>,<0,0.9995502,0.0299909>
                  snap=no
                  show feature parameters=no
                  show contact parameters=no
    cir_c        =feat/contact/circle/default,cartesian,in,least_sqr
                  theo/<0,0.000119,-22.609302>,<-0.0000062,0.9995608,0.0296358>,0.25
                  actl/<0,0.000119,-22.609302>,<-0.0000062,0.9995608,0.0296358>,0.25
                  targ/<0,0.000119,-22.609302>,<-0.0000062,0.9995608,0.0296358>
                  start ang=0,end ang=360
                  angle vec=<-1,-0.0000062,-0.0000001>
                  direction=ccw
                  show feature parameters=no
                  show contact parameters=no
    cir_b        =feat/contact/circle/default,cartesian,in,least_sqr
                  theo/<0,0,0>,<0.000003,0.9990898,-0.0426563>,0.25
                  actl/<0,0,0>,<0.000003,0.9990898,-0.0426563>,0.25
                  targ/<0,0,0>,<0.000003,0.9990898,-0.0426563>
                  start ang=0,end ang=360
                  angle vec=<-1,0.000003,0>
                  direction=ccw
                  show feature parameters=no
                  show contact parameters=no
    a4           =alignment/start,recall:a3,list=yes
                    alignment/iterate
                      pnt target rad=0.002,start label=l1,fixture tol=0,error label=
                      meas all feat=always,max iterations=5,level axis=yaxis,rotate axis=xaxis,origin axis=zaxis
                    level=pnt_a1,pnt_a2,pnt_a3,,
                    rotate=cir_b,cir_c,,
                    origin=cir_b,,
                  alignment/end
    pln_a        =feat/plane,cartesian,outline,no,least_sqr
                  theo/<0.333245,-0.032703,-7.713798>,<-0.0000003,-0.9999999,-0.0004866>
                  actl/<0.333245,-0.032548,-7.704548>,<-0.0000003,-0.9999999,-0.0004575>
                  constr/plane,bf,pnt_a1,pnt_a2,pnt_a3,,
                  outlier_removal/off,3
                  filter/off,wavelength=0
    lin_bc       =feat/line,cartesian,unbounded,no
                  theo/<0,0.000119,-11.304651>,<0.0024382,-0.999997,0>
                  actl/<0,0.00012,-11.304651>,<0.0020544,-0.9999979,0>
                  constr/line,bf,2d,cir_c,cir_b,,
                  outlier_removal/off,3
                  filter/off,wavelength=0
    a_abc        =alignment/start,recall:a4,list=yes
                    alignment/level,yminus,pln_a
                    alignment/rotate,zplus,to,lin_bc,about,yminus
                    alignment/trans,yaxis,pln_a
                    alignment/trans,xaxis,cir_b
                    alignment/trans,zaxis,cir_b
                  alignment/end​


  • cir_b =feat/contact/circle/default,cartesian,in,least_sqr
    theo/<0,0,0>,<0.000003,0.9990898,-0.0426563>,0.25
    actl/<0,0,0>,<0.000003,0.9990898,-0.0426563>,0.25
    targ/<0,0,0>,<0.000003,0.9990898,-0.0426563>
    start ang=0,end ang=360
    angle vec=<-1,0.000003,0>
    direction=ccw
    show feature parameters=no
    show contact parameters=no
    a4 =alignment/start,recall:a3,list=yes
    alignment/iterate
    pnt target rad=0.002,start label=l1,fixture tol=0,error label=
    meas all feat=always,max iterations=5,level axis=yaxis,rotate axis=xaxis,origin axis=zaxis
    level=pnt_a1,pnt_a2,pnt_a3,,
    rotate=cir_b,cir_c,,
    origin=cir_b,,
    alignment/end
    pln_a =feat/plane,cartesian,outline,no,least_sqr
    theo/<0.333245,-0.032703,-7.713798>,<-0.0000003,-0.9999999,-0.0004866>
    actl/<0.333245,-0.032548,-7.704548>,<-0.0000003,-0.9999999,-0.0004575>
    constr/plane,bf,pnt_a1,pnt_a2,pnt_a3,,
    outlier_removal/off,3
    filter/off,wavelength=0​


    Yep - Dat B is not perp (at least mathematically as PC-Dmis sees it) to Dat A, therefore it's constraining rotation also.
  • In most ways this really is confusing. In actuality the final degree of rotation is not fully constrained. IF you use the auto align system; it uses both B and C to constrain the final degree of rotation??!