hexagon logo

PC-DMIS 3D Line Straightness

PC-DMIS appears to have issues calculating the proper straightness of a 3D line. The definition of straightness from the PC-DMIS online help is: This is the diameter of a cylinder that contains all the input points. A best-fitting routine determines the axis of the cylinder. If this is actually what PC-DMIS is using then the results are wrong using any method available in PC-DMIS.

; test points and resulting line
PNT1 =FEAT/POINT,CARTESIAN,NO
THEO/<432.03501,-1213.3127,50.2008>,<0,0,1>
ACTL/<432.03501,-1213.3127,50.2008>,<0,0,1>
CONSTR/POINT,CAST,PT_46_1
PNT2 =FEAT/POINT,CARTESIAN,NO
THEO/<455.70566,-1213.79075,42.17132>,<0,0,1>
ACTL/<455.70566,-1213.79075,42.17132>,<0,0,1>
CONSTR/POINT,CAST,PT_46_2
PNT3 =FEAT/POINT,CARTESIAN,NO
THEO/<479.38146,-1214.19232,34.15272>,<0,0,1>
ACTL/<479.38146,-1214.19232,34.15272>,<0,0,1>
CONSTR/POINT,CAST,PT_46_3
PNT4 =FEAT/POINT,CARTESIAN,NO
THEO/<503.0449,-1214.60886,26.09845>,<0,0,1>
ACTL/<503.0449,-1214.60886,26.09845>,<0,0,1>
CONSTR/POINT,CAST,PT_46_4
PNT5 =FEAT/POINT,CARTESIAN,NO
THEO/<526.72087,-1215.06874,18.08364>,<0,0,1>
ACTL/<526.72087,-1215.06874,18.08364>,<0,0,1>
CONSTR/POINT,CAST,PT_46_5
LIN1 =FEAT/LINE,CARTESIAN,UNBOUNDED,NO
THEO/<432.0354,-1213.32863,50.20282>,<0.9468433,-0.0173208,-0.3212286>
ACTL/<432.0354,-1213.32863,50.20282>,<0.9468433,-0.0173208,-0.3212286>
CONSTR/LINE,BF,3D,PNT1,PNT2,PNT3,PNT4,PNT5,,
OUTLIER_REMOVAL/OFF,3
FILTER/OFF,WAVELENGTH=0

​; straightness results
DIM STRA3= STRAIGHTNESS OF LINE LIN1 UNITS=MM ,$
GRAPH=OFF TEXT=OFF MULT=10.00 ARROWDENSITY=100 OUTPUT=BOTH
AX NOMINAL +TOL -TOL MEAS DEV OUTTOL
M 0.00000 0.01000 0.00000 0.04133 0.04133 0.03133 -------->

​FCFSTRA2 =GEOMETRIC_TOLERANCE/STANDARD=ASME Y14.5,SHOWEXPANDED=YES,
UNITS=MM,OUTPUT=BOTH,ARROWDENSITY=100,
SEGMENT_1,STRAIGHTNESS,DIAMETER,0.01,TOL_ZONE_MATH =DEFAULT,
TEXT=OFF,CADGRAPH=OFF,REPORTGRAPH=OFF,MULT=10,
MEASURED:
LIN1:0.04623,
ADD
FEATURES/LIN1,,

​FCFSTRA3 =GEOMETRIC_TOLERANCE/STANDARD=ASME Y14.5,SHOWEXPANDED=YES,
UNITS=MM,OUTPUT=BOTH,ARROWDENSITY=100,
SEGMENT_1,STRAIGHTNESS,DIAMETER,0.01,TOL_ZONE_MATH =LSQ,
TEXT=OFF,CADGRAPH=OFF,REPORTGRAPH=OFF,MULT=10,
MEASURED:
LIN1:0.05824,
ADD
FEATURES/LIN1,,​


First off, why three different (and wrong) answers for the same thing?

The correct result is 0.04936 mm using the above data. I was able to verify this in PC-DMIS by creating an alignment from the best fit line and finding the smallest diameter circle containing all the input points:

A1 =ALIGNMENT/START,RECALL:MC_CSY,LIST=YES
ALIGNMENT/LEVEL,ZPLUS,LIN1
ALIGNMENT/TRANS,XAXIS,LIN1
ALIGNMENT/TRANS,YAXIS,LIN1
ALIGNMENT/END

CIR1 =FEAT/CIRCLE,CARTESIAN,IN,MIN_CIRCSC],NO
THEO/<-0.00715,0.00477,463.95901>,<0,0,1>,0.04936
ACTL/<-0.00715,0.00477,463.95901>,<0,0,1>,0.04936
CONSTR/CIRCLE,BF,2D,PNT1,PNT2,PNT3,PNT4,PNT5,,
OUTLIER_REMOVAL/OFF,3
FILTER/OFF,UPR=0


I did figure out the method PC-DMIS used to calculate the straightness with the GeoTol command when the TOL_ZONE_MATH is set to DEFAULT or LSQ (Least Squares is not a valid description by the way). Neither method results in the smallest containing cylinder. The legacy method is a mystery and clearly wrong.
Parents


  • @ neil.challinor​​ there is something obviously wrong with the 3D line results (Legacy and GeoTol LSQ). Although the standards define straightness as the smallest containing cylinder (or minimum separation of containing parallel planes for flatness) I don't have a problem with the Least Squares version. You have this an an option so I don't think you see this as a problem either. A CMM is just a big approximation machine to begin with and Least Squares is the preferred fit in most (maybe all) cases as it tends to filter out the filiers. The Least Squares result is usually what I expect to find in any software as the default.


    In terms of the Geometric Tolerance command, "DEFAULT" means that it will use the default calculation as defined in whichever standard you have selected (ISO 1101 or ASME Y14.5). In the case of Datum Math, this would be constrained L2 for ASME or constrained min/max for ISO. For feature math, again, there are differences between ASME and ISO with ISO having a number of rules which dictate different calculations depending on whether modifiers are invoked. For Tolerance Zone math, it will generally be a vector min/max fit for profile or, as you have already learnt, Chebyshev for form tolerances.

    You are able to override any of the math types by selecting Least Squares, but you would no longer be following the selected standard. Least Squares can be useful for providing process information and may yield a more repeatable result on systems that have a large amount of measurement uncertainty. The help file talks at length about math types and suggests users perform their own, "careful study" when deciding which math types to apply.

    https://docs.hexagonmi.com/pcdmis/2023.1/en/helpcenter/mergedProjects/core/geometric_tolerances/Introduction_to_Geometric_Tolerances_and_Feature_Control_Frames.htm?rhhlterm=careful%20study&rhsyns=%20#MiniTOCBookMark5
Reply


  • @ neil.challinor​​ there is something obviously wrong with the 3D line results (Legacy and GeoTol LSQ). Although the standards define straightness as the smallest containing cylinder (or minimum separation of containing parallel planes for flatness) I don't have a problem with the Least Squares version. You have this an an option so I don't think you see this as a problem either. A CMM is just a big approximation machine to begin with and Least Squares is the preferred fit in most (maybe all) cases as it tends to filter out the filiers. The Least Squares result is usually what I expect to find in any software as the default.


    In terms of the Geometric Tolerance command, "DEFAULT" means that it will use the default calculation as defined in whichever standard you have selected (ISO 1101 or ASME Y14.5). In the case of Datum Math, this would be constrained L2 for ASME or constrained min/max for ISO. For feature math, again, there are differences between ASME and ISO with ISO having a number of rules which dictate different calculations depending on whether modifiers are invoked. For Tolerance Zone math, it will generally be a vector min/max fit for profile or, as you have already learnt, Chebyshev for form tolerances.

    You are able to override any of the math types by selecting Least Squares, but you would no longer be following the selected standard. Least Squares can be useful for providing process information and may yield a more repeatable result on systems that have a large amount of measurement uncertainty. The help file talks at length about math types and suggests users perform their own, "careful study" when deciding which math types to apply.

    https://docs.hexagonmi.com/pcdmis/2023.1/en/helpcenter/mergedProjects/core/geometric_tolerances/Introduction_to_Geometric_Tolerances_and_Feature_Control_Frames.htm?rhhlterm=careful%20study&rhsyns=%20#MiniTOCBookMark5
Children
No Data