Patent ID: 7295202
Filing Date: 2007-11-13
Classification: G06T

Abstract:
1. A method for approximating CAD data representing a three-dimensional object, by approximating each face of the three-dimensional object with triangular or quadrilateral surfaces within a specified conversion tolarance, comprising steps of: (a) generating a mesh with mesh lines for approximating each face of the three-dimensional object represented by the CAD data within a rough conversion tolerance with respect to a specified conversion tolerance; (b) approximating a boundary edge surrounding and defining each individual face with a plurality of curves within the specified conversion tolerance, approximating each of the curves with a polyline comprising points and connecting lines within the rough conversion tolerance to define boundary points which are the points of the polylines, and obtaining a vector tangential to the curve at each of the boundary points; (c) generating polygons with three or four vertices by connecting internal points which are points of intersection of the mesh lines inside the boundary edge, and by connecting the boundary points and the internal points that are adjacent to and inside the boundary edge; (d) calculating a vector normal to the face at each of the vertices of each of the polygons, storing information identifying the vertices and the corresponding normal vectors, and storing the tangential vector at each of the boundary points obtained at the step (b); (e) converting each of the polygons with three or four vertices to a triangular or quadrilateral surface respectively, by using a plurality of control points obtained by processing the information identifying the vertices, the normal vectors, and the tangential vectors; and (f) examining if each of the triangular or quadrilateral surfaces is close to the face represented by the CAD data within the specified conversion tolerance, and if not, regenerating a mesh with a narrower mesh width and more mesh lines on the face to repeat the steps (c)-(e) and (f); and generating a mesh with mesh lines for approximating each face of the three-dimensional object within a rough conversion tolerance with respect to a specified conversion tolerance, approximating a boundary edge surrounding and defining each individual face with plurality of curves within the specified conversion tolerance, and approximating each of the curves with a polyline comprising points and connecting lines within the rough coversion tolerance to define boundary points which are the points of the polylines, for obtaining polygons to be used for approximating each face of the three-dimensional object with triangular or quadrilateral surfaces with the specified conversion tolerance; examining if each of the triangular or quadrilateral surfaces is close to the face represented by the CAD data within the specified conversion tolerance; and if not, regenerating a mesh with a narrower mesh width and more mesh lines on the face to obtain polygons; (m) display switching, comprising steps of: acquiring display conditions including display shapes and sizes; determining whether or not a detailed display be performed depending on the display conditions; and executing steps (i)-(I), if it is determined that the detailed display be performed, or displaying the polygons by use of the polygons data, otherwise, wherein the steps (i)-(I) are: (i) receiving and storing information identifying vertices and corresponding normal vectors for each of the polygons, and a tangential vector at each of the boundary points; (k) tessellating each of the surfaces into sub-polygons, the surfaces having been generated by using control points obtained by processing the information identifying the vertices, the normal vectors, and the tangential vectors stored at the step (i); and (I) displaying a three-dimensional shape comprised of the sub-polygons, wherein in the step (e), the control points between two internal points are generated by use of the normal vector at each of the internal points, the control points between one internal point and one boundary point are generated by use of the normal vector at each of the internal and boundary points, and the control points between two boundary points are generated by use of the tangential vector at each of the boundary points.