hexagon logo

True position bad math

Either I'm having a huge brainfart or PC-DMIS has a new bug after this last update (2017 R2 SP9). Look at the actual hole locations and then look at the positions. I don't know what kind of common core math it's doing to get those numbers.

The only factor that I can think of, which shouldn't be a factor at all, is that each cylinder is constructed out of two circles. The Z nominal of the bottom circle is at the bottom of the part with a vector of 0,0,-1, as I intended to get a full length cylinder. As it turned out, I was unable to reach the bottom of the part and instead took it from the top at a much shallower depth with a vector of 0,0,1. I don't see how this would affect anything but it's the only thing I can think of.




  • Code snippet for CYL_24_11:

    CIR_24_11T =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                THEO/<65,30,0>,<0,0,1>,24
                ACTL/<65.044,29.893,0>,<0,0,1>,24.161
                TARG/<65,30,0>,<0,0,1>
                START ANG=0,END ANG=360
                ANGLE VEC=<1,0,0>
                DIRECTION=CCW
                SHOW FEATURE PARAMETERS=YES
                  VOID DETECTION=NO
                  REMEASURE=NO
                  SURFACE=THICKNESS_NONE,0
                  MEASURE MODE=NOMINALS
                  RMEAS=NONE,NONE,NONE
                  GRAPHICAL ANALYSIS=NO
                  FEATURE LOCATOR=NO,NO,""
                SHOW CONTACT PARAMETERS=YES
                  NUMHITS=5,DEPTH=3,PITCH=0
                  SAMPLE METHOD=SAMPLE_HITS
                  SAMPLE HITS=0,SPACER=0
                  FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
                SHOW HITS=YES
                  HIT/BASIC,<77,30,-3>,<-1,0,0>,<72.423,20.339,-2.931>
                  HIT/BASIC,<68.708,41.413,-3>,<-0.309017,-0.9510565,0>,<76.475,33.777,-2.954>
                  HIT/BASIC,<55.292,37.053,-3>,<0.809017,-0.5877853,0>,<66.822,41.871,-2.509>
                  HIT/BASIC,<55.292,22.947,-3>,<0.809017,0.5877853,0>,<55.307,36.981,-2.494>
                  HIT/BASIC,<68.708,18.587,-3>,<-0.309017,0.9510565,0>,<54.172,24.571,-2.029>
                ENDMEAS/
    CIR_24_11B =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                THEO/<65,30,-206>,<0,0,-1>,24
                ACTL/<65.085,29.986,-206>,<0,0,-1>,24.103
                TARG/<65,30,-206>,<0,0,-1>
                START ANG=0,END ANG=360
                ANGLE VEC=<-1,0,0>
                DIRECTION=CCW
                SHOW FEATURE PARAMETERS=YES
                  VOID DETECTION=NO
                  REMEASURE=NO
                  SURFACE=THICKNESS_NONE,0
                  MEASURE MODE=NOMINALS
                  RMEAS=NONE,NONE,NONE
                  GRAPHICAL ANALYSIS=NO
                  FEATURE LOCATOR=NO,NO,""
                SHOW CONTACT PARAMETERS=YES
                  NUMHITS=5,DEPTH=3,PITCH=0
                  SAMPLE METHOD=SAMPLE_HITS
                  SAMPLE HITS=0,SPACER=0
                  FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
                SHOW HITS=YES
                  HIT/BASIC,<53,30,-203>,<1,0,0>,<72.111,20.2,-9.334>
                  HIT/BASIC,<61.292,41.413,-203>,<0.309017,-0.9510565,0>,<77.032,31.523,-8.24>
                  HIT/BASIC,<74.708,37.053,-203>,<-0.809017,-0.5877853,0>,<67.597,41.791,-8.941>
                  HIT/BASIC,<74.708,22.947,-203>,<-0.809017,0.5877853,0>,<56.082,37.969,-8.099>
                  HIT/BASIC,<61.292,18.587,-203>,<0.309017,0.9510565,0>,<54.922,23.488,-9.056>
                ENDMEAS/
    CYL_24_11  =FEAT/CYLINDER,CARTESIAN,IN,LEAST_SQR,NO
                THEO/<65,30,-103>,<0,0,1>,24,200
                ACTL/<65.064,29.938,-5.561>,<-0.0065085,-0.0142661,0.9998771>,24.132,7.358
                CONSTR/CYLINDER,BF,CIR_24_11B,CIR_24_11T,,


    And for the dimension:

    24MM_HOLES =POSITION : CYL_24_1,CYL_24_2,CYL_24_3,...
                FEATCTRLFRAME/SHOWNOMS=NO,SHOWPARAMS=YES,SHOWEXPANDED=YES
                CADGRAPH=OFF,REPORTGRAPH=OFF,TEXT=OFF,MULT=10.00,ARROWDENSITY=100,OUTPUT=BOTH,UNITS=MM
                COMPOSITE=NO,FIT TO DATUMS=YES,DEV PERPEN CENTERLINE=ON,OUTPUT ALIGNMENT=Current Alignment
                CUSTOMIZED DRF=NO
                STANDARDTYPE=ASME_Y14_5
                  SIZE TOLERANCES/16,DIAMETER,24,0.5,0.15
                  PRIMARY DIMENSION/POSITION,DIAMETER,1.7,MMC,<PZ>,<len>,A,B,MMC,<size>,C,MMC,<size>
                  SECONDARY DIMENSION/<Dim>,<tol>,<MC>,<dat>,<dat>,<dat>
                  NOTE/24MM_HOLES
                FEATURES/CYL_24_1,CYL_24_2,CYL_24_3,CYL_24_4,CYL_24_5,
                                       CYL_24_6,CYL_24_7,CYL_24_8,CYL_24_9,
                                       CYL_24_10,CYL_24_11,CYL_24_12,CYL_24_13,
                                       CYL_24_14,CYL_24_15,CYL_24_16,,


    Current alignment is the same as FCF, not that that should matter either.
  • Can you report the Z axis too. I think that the xact measure will use all applicable axis to calculate the position regardless of reported axis. It looks like z is off in CYL_24_11. This is a long shot by the way.
  • Well, one thing I notice is "USE AXIS=WORST" and the number shown are for (START_PT). Also, your cylinder nominal is -103, but actual is -5.561, and height is 200, but measured height is 7.358. That's a lot of room for your cylinder to be slightly off axis. And slightly off axis at 200mm could be very big.

    That's my 2 cents.
  • Can you report the Z axis too. I think that the xact measure will use all applicable axis to calculate the position regardless of reported axis. It looks like z is off in CYL_24_11. This is a long shot by the way.


    It shouldn't take the third axis into account, unless the feature isn't normal to the alignment (ie. 45 degree hole).
  • Perp to C/L is ON. That shouldn't happen.

    Although, I think the expected height versus actual height (the difference we see in Z) is probably a factor.
  • Deviation in Z is 193.76. That would give me a t.p. of 581.28 if it were taken into account.
  • Try punching out a legacy dimension for one of the "bad" cylinders and create a few different ones with "Use worst", "use best", "use start", "use end", whatever, and see if you get values that are similar to the Xact dimensions for any of them.

    I have a feeling that my earlier post is the problem.
  • Even though Z rotation is -0.000 shouldn't that be Fixed? if "B" to "C" controls rotation of Z. and shouldn't Z be able to shift? with datum "B" being center of X and Y? My question is what is C? Can we see a picture of your drawing? Either your X or your Y should be Fixed from rotation from B to C
  • Well, one thing I notice is "USE AXIS=WORST" and the number shown are for (START_PT). Also, your cylinder nominal is -103, but actual is -5.561, and height is 200, but measured height is 7.358. That's a lot of room for your cylinder to be slightly off axis. And slightly off axis at 200mm could be very big.

    That's my 2 cents.


    +1 to Vinni !
    You could try to construct the cylinders from hits ?

     CYL_24_11  =FEAT/CYLINDER,CARTESIAN,IN,LEAST_SQR,NO            
    THEO/<65,30,[COLOR=#FF0000]-103[/COLOR]>,<0,0,1>,24,[COLOR=#FF0000]200[/COLOR]            
    ACTL/<65.064,29.938,[COLOR=#FF0000]-5.561[/COLOR]>,<-0.0065085,-0.0142661,0.9998771>,24.132,[COLOR=#FF0000]7.358[/COLOR]            
    CONSTR/CYLINDER,BF,CIR_24_11B[COLOR=#0000FF].HIT[1..5][/COLOR],CIR_24_11T[COLOR=#0000FF].HIT[1..5][/COLOR],,
  • A is a plane. B and C are cylinders that are perpendicular to the plane. Z is allowed to rotate because A and B have datum modifiers.