|
Home : EvalViewer : Overview :
![]() | Previous: Using EvalViewer as a surface evaluation tool |
Reverse Engineering and Computer-Aided Verification/Validation/Inspection applications both require functions that involve comparing shapes quantitatively in order to make acceptability decisions. For example, is the surface model I created within acceptable limits of the input data I was given? Or, does the data digitized from this designed part indicate that the manufacturing process is acceptable or not? These questions are difficult to answer without the appropriate software tools. This section of the manual will given an example of each of EvalViewer's compare functions.
The most basic comparison function is computing the distance between two points. The Distance function on the Query tab allows you to measure between two picked points. If you have a set of points, or a cloud of points, and you want to compare all the points on set A to the comparable closest points on set B, it would be very tedious to calculate the average (bias) difference vector for all the points along with the Root Mean Square Error and the Maximum Error. For this reason, EvalViewer offers the Cloud to Cloud comparison function for sets of points.
In the picture below, a cloud and an offset cloud are compared to find differences. A total of 432 points were compared. The searchsize that was used resulted in an average distance computation of 2.2 points on set B for every point on set A. The large the searchsize parameter, the larger the number in parenthesis will be, and the more computation will be required.
The RmsDist parameter is the Root Mean Square deviation of the one point set from the other. RMS distance is basically a special kind of average number that is computed by squaring all the distances, computing the average of the squared distances, and then taking the square root of that average of squares. The maximum distance is the maximum distance actually computed in the given run for the given searchsize. You will find that the MaxDist (maximum distance) value will usually be close to the searchsize distance. The average distance vector, known as the Bias between the two point sets, is given as an XYZ vector.
When the comparison computation is done, a set of deviation vectors is computed for display after the comparison function is completed. To increase the length of the Deviation Vectors for visualization purposes, use the Deviation Factor option in the Compare menu.
The next comparison function that EvalViewer provides is the Cloud to Line function. This function produces Deviation Vectors of the type shown in the picture above. The user must exercise some care and judgement in evaluating this number. The reason is apparent in the picture above. While all deviation vectors are perpendicular to the lines, the RMS and Maximum distance values will be larger than the distance of the lines from the surface represented by the cloud data. The values in the bias vector are probably the most meaningful statistic when looking at cloud-to-line displays.
The Clouds to Polygons function is useful when working directly with polygonal models, but also when working with View Meshes from cloud data. The cloud data points are mapped directly to polygonal mesh via the shortest 3d distance. The vertices of that polygon are set to the color value of the computed distance. You can then see trends in the cloud data relative to the polygon mesh as color variations. The example above shows a set of points that lies primarily above the given surface.
If you have line data or polygon data that you wish to compare to a given polygon mesh, you should use either the Lines>Convert Lines to Clouds menu option or the Polygons> Convert Polygons to Clouds menu option first and then set the Cloud to Polygons switch and then execute the Compute Comparison option.
The Clouds to Surfaces option allows you to compute the 3D distances between points in a cloud and B-spline (NURBS) surfaces. The point to surface deviations are output both as a set of deviation vectors and as a color error map.
If you are interested in speed more than accuracy, you may select the Approximate Chk to Pgns option rather than the Exact Chk to Surfs option. For small models you may not see much difference between the two. But for large models, the differences may run into minutes.
You can choose the Acceptable Range option in the Compare menu to set the color bar range to an exact value range rather than using the Up and Down arrows. Constant deviation contours are also computed to show where error exceeds the given limits.
If you have line data or polygon data that you wish to compare to a given polygon mesh, you should use either the Lines>Convert Lines to Clouds menu option or the Polygons> Convert Polygons to Clouds menu option first and then set the Cloud to Surfaces switch and then execute the Compute Comparison option.
Since you are often working with section data in EvalViewer, it is important to be able to compare sections directly that are computed from different sources: different clouds, different view meshes, different polygon sets, and different surfaces.
The picture above shows the differences in sections through a surface before a set of CVs is moved and after a set of CVs is moved. In this case, the simple example surface in the Examples menu was sectioned first and then sectioned again, after the 4 interior patch control points were moved in Z by exactly 1 mm using the (+,-) keys and the CV Incr(ement) option. This shows that sections through the surface vary by as much as 0.523 mm when 4 CVs on a cubic (16 CV) surface patch are moved by 1 mm.
EvalViewer is able to fit curves to line data. Certain statistics are computed during the fitting process. Those statistics are not necessarily the final result. You can check your curve fits back against the line data using the Lines to Curves comparison option.
In the picture below, we show the difference between the shapes of sections cut through a bicubic patch and the shapes of parabolic/quadratic curve fits to this cubic section data. A least squares fit states that the maximum deviation was over 5 mm, but here we see that the true 3D distance between the curve and data is only 2.628 mm. This discrepancy occurs because least squares fit must use parameter values that are not directly given by the raw data being fitted.
If you have section data that corresponds to particular surfaces or polygon meshes, and you would like to compare those lines to those surfaces or polygon meshes after either one has been modified or processed, then the Line to Surfaces or Line to Polygons options are the logical choice. A set of deviation vectors is computed and draw at the deviation factor scale. The picture below shows an example of three sections and a the surface after the surface has been slightly modified.
If you have line data or polygon data that you wish to compare to a given polygon mesh or surface, you should use either the Lines>Convert Lines to Clouds menu option or the Polygons> Convert Polygons to Clouds menu option first and then set the Cloud to Polygons or Cloud to Surfaces switch and finally execute the Compute Comparison option.
If you have polygon data that you wish to compare to a given polygon mesh or surface set and obtain a color error map, you should use the Polygons> Convert Polygons to Clouds menu option first and then set the Cloud to Polygons or Clouds to Surfaces switch and then execute the Compute Comparison option.
The Polygons to Polygons and Polygons to Surfaces options are designed to supply a slightly different comparison function. Sometimes you have polygon meshes or surfaces for shapes that are adjacent to each other, or come near each other in space. If there is a gap between two parts, you can check the minimum distance, or the closest approach, of those two shaded parts using the Clearance Check comparison function. An example of the Clearance Check function is shown in the picture below.
![]()
| Note: When you do the Compute Comparison function, you will be prompted for a searchsize parameter (just as you are prompted for all comparison functions). You must give an approximate distance that is slightly larger than the distance that you would expect. To get a reasonable value for the approximate distance, use the Tape Measure from the Query tab, or the Distance function from the Query tab, or tear off the Compare menu and run the check repeatedly working from smaller guesses up to bigger guesses. A guess that is very large will take significant time to compute. |
The other capability of the Polygon to Polygon and Polygon to Surface comparison functions is that they will compute the intersection curve of two objects with polygon meshes if the polygon meshes intersect. An example of the intersection of two simple surfaces is shown below.
![]()
| Note: The closest approach of these two objects is shown as 0.0 millimeters, which implies that they either just touch or they interpenetrate each other. Many intersections of this type can be detected visually, but the more complicated your part is and the more surfaces you have, the more likely it is that two parts designed by different people will have some type of detectable interference. |
In summary, the Polygon to Polygon comparison and Polygon to Surface comparison functions provide clearance and interference information.
If you have reasonably small data sets, and if you compute a comparison function and it executes quickly, you may be able to select the compute as needed function. This will execute a comparison check on every redraw. Do not click this option without experimenting with small data sets first.
The Compute as Needed option will allow you to execute any of the above functions while you are transforming objects in space, or while you are modifying control points on curves or surfaces.
This option allows you to log comparison information to a file.
![]() | Next: Overview of other EvalViewer tools |