The authors are developing an automated reverse engineering system for reconstructing the shape of simple mechanical parts. B-rep models are created by fitting surfaces to point clouds obtained by scanning an object using a 3D laser scanner. The resulting models, although valid, are often not suitable for purposes such as redesign because expected regularities and constraints are not present. This information is lost because each face of the model is determined independently. A global approach is required, in particular one that is capable of finding symmetries originally present. This paper describes a practical algorithm for finding global symmetries in suitable B-rep models built from planes, spheres, cylinders, cones and tori. It has been implemented and used to determine approximate symmetries of models with up to about 200 vertices in reasonable time. The time performance of the algorithm in the worst case is bounded by  O ( n   3.5  log 4   n ), and a justification is given that on common engineering objects it takes about  O ( n  2  log 4   n ), making it a practical tool for use in a reverse engineering package. Details of the algorithm are given, along with some results from a number of illustrative test runs.
['Bruce I. Mills', 'Frank Curd Langbein', 'Andrew David Marshall', 'Ralph Robert Martin']
Approximate symmetry detection for reverse engineering