Section: Scientific Foundations

Robustness and Tolerance

During CAD processes one uses a myriad of tolerances, many of which are not directly related to the actual manufacturing process. Some interesting questions here include: What are the most relevant machining tolerances?

How to set the army of computational tolerances, e.g. those of systems of equations, to guarantee machining within the required accuracy? How tolerances in different spaces, e.g. in model space and in parameter space, are related. That is, how to set the parameter space tolerance in order to guarantee model space accuracy? How tolerances in different arrangements, e.g. parallel and perpendicular lines, are related? That is, should we set different tolerances for parallel and perpendicular lines, and if yes, then how to relate them to one another?

Numerical instabilities also account for the majority of computational errors in commercial CAD systems. The problems related to robustness haunt every programmer who has ever worked on commercial systems. Fixing numerical bugs can be very frustrating, and often times results in patching up the code simply because no solution exists to remedy the problem. Current efforts in interval arithmetic and fuzzy logic may look nice, however, they may open up new problems in the process of solving some old ones. What would be a significant help is to know as much as possible about the entities to be computed on? For example, if we know how far we are from the root, i.e. where is the guess point in relation to the root, and then the method can be adjusted to guarantee convergence?

Lastly but not least, algorithms also are the places in any CAD process where the inherently "dirty" data, e.g. point cloud, gets received and converted into another set of data, e.g. an STL file, for manufacturing. The issue of data processing will be looked at later, however, what must be understood at the outset is that proper algorithm design begins with the selection of the right solution.