Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
PLANE-ELEMENT DISTORTION DETECTION SYSTEM, AND PLANE-ELEMENT DISTORTION DETECTING METHOD AND PROGRAM
Document Type and Number:
WIPO Patent Application WO/2008/012668
Kind Code:
A3
Abstract:
A plane-element distortion detection system for detecting distortion of plane elements created by a computer-aided design system that forms a surface of a 3-D model by combining the plane elements covering at least a part of the 3-D model includes : means for obtaining normal vectors at difference positions on each of selected ones of the plane elements (S213), means for calculating a value indicative of the relationship between adjacent ones of the normal vectors (S214), and plane-element distortion determining means for determining that distortion occurs in the plane element when the value indicative of the relationship between the adjacent normal vectors exceeds a predetermined value (S215,S216). The system reduces occurrence of distortion in shape during a morphing operation on a three-dimensional model comprised of curved patches in which a plurality of normal vectors are defined.

Inventors:
FUKAZAWA KAZUHIRO (JP)
FUJITA HISASHI (JP)
NAGATA RYUJI (JP)
Application Number:
PCT/IB2007/002152
Publication Date:
June 26, 2008
Filing Date:
July 27, 2007
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
TOYOTA MOTOR CO LTD (JP)
FUKAZAWA KAZUHIRO (JP)
FUJITA HISASHI (JP)
NAGATA RYUJI (JP)
International Classes:
G06F17/50
Other References:
"ISO/IEC 19775-1:2004, part 1--11 Rendering component", 2004, X3D, XP002463959
KIM ET AL: "Finding ridges and valleys in a discrete surface using a modified MLS approximation", December 2005, COMPUTER AIDED DESIGN, ELSEVIER PUBLISHERS BV., BARKING, GB, PAGE(S) 1533-1542, ISSN: 0010-4485, XP005554979
Download PDF:
Claims:

CLAIMS:

1. A plane-element distortion detection system for detecting distortion of plane elements that cover at least a part of a three-dimensional model, said plane elements being created by a computer-aided design system that forms a surface of the three-dimensional model by combining the plane elements together, comprising: means for obtaining normal vectors at difference positions on each of selected ones of the plane elements," means for calculating a value indicative of the relationship between adjacent ones of the normal vectors with respect to said each plane element; and plane-element distortion determining means for determining that distortion occurs in the plane element containing the adjacent normal vectors when the value indicative of the relationship between the adjacent normal vectors exceeds a predetermined value.

2. A plane -element distortion detection system according to claim 1, further comprising means for displaying the plane element in which the distortion occurs.

3. A plane-element distortion detection system according to claim 1 or 2, further comprising: means for calculating a value indicative of the relationship between normal vectors of adjacent ones of the plane elements, when the plane-element distortion determining means determines that no distortion occurs in said each plane element, with respect to plane data as a collection of a plurality of plane elements as said plane elements! and means for determining that distortion occurs in the plane data when the value indicative of the relationship between the normal vectors of said adjacent

ones of the plane elements exceeds a predetermined value.

4. A plane-element distortion detection system according to claim 3, further comprising means for displaying said adjacent ones of the plane elements with respect to which occurrence of the distortion has been determined.

5. A plane-element distortion detection system according to any one of claims 1 to 4, wherein the relationship between the normal vectors is an angle between adjacent ones of the normal vectors.

6. A plane-element distortion detection system for detecting distortion of plane elements that cover at least a part of a three-dimensional model, said plane elements being created by a computer-aided design system that forms a surface of the three-dimensional model by combining the plane elements together, comprising: ridgeline extracting means for extracting a ridgeline that provides a boundary between adjacent ones of the plane elements, from plane data as a collection of a plurality of plane elements as said plane elements; curvature calculating means for calculating a curvature of the ridgeline extracted by the ridgeline extracting means; and ridgeline distortion determining means for determining that distortion occurs in the ridgeline in at least one of the case where the curvature calculated by the curvature calculating means exceeds a predetermined value and the case where a change in the curvature exceeds a predetermined limit.

7. A plane-element distortion detection system for detecting distortion of plane elements that cover at least a part of a three-dimensional model, said plane elements being created by a computer-aided design system that forms a surface of the three-dimensional model by combining the plane elements together,

comprising: means for extracting an apex from plane data as a collection of a plurality of plane elements as said plane elements i nearby ridgeline extracting means for extracting a ridgeline located in the vicinity of the apex, from the plane data, said ridgeline providing a boundary between adjacent ones of the plane elements; projecting means for forming a plane from a normal vector on the apex in the plane data and a tangent vector of the ridgeline located in the vicinity of the apex, and projecting the ridgeline onto the formed plane; projection curvature calculating means for calculating a curvature of the ridgeline on the plane formed by the projecting means; and ridgeline distortion determining means for determining that distortion occurs to the ridgeline in at least one of the case where the curvature calculated by the projection curvature calculating means exceeds a predetermined value and the case where a change in the curvature exceeds a predetermined limit.

8. A plane-element distortion detection system according to claim 6 or 7, further comprising means for displaying the plane elements associated with the ridgeline to which distortion occurs.

9. A plane-element distortion detection system according to any one of claims 1 to 7, wherein each of the plane elements comprises a polygon or a surface.

10. A method of detecting distortion of plane elements that cover at least a part of a three-dimensional model, said plane elements being created by a computer-aided design system that forms a surface of the three-dimensional model by combining the plane elements together, comprising: a step of obtaining normal vectors at difference positions on each of selected ones of the plane elements, in response to a command for detecting distortion in

the plane elements which is entered through input means! a step of calculating a value indicative of the relationship between adjacent ones of the normal vectors with respect to said each plane element; and a plane-element distortion determining step of determining that distortion occurs in the plane element containing the adjacent normal vectors when the value indicative of the relationship between the adjacent normal vectors exceeds a predetermined value.

11. A method of detecting distortion of plane elements according to claim 10, further comprising: a step of calculating a value indicative of the relationship between normal vectors of adjacent ones of the plane elements, when the plane-element distortion determining step determines that no distortion occurs in said each plane element, with respect to plane data as a collection of a plurality of plane elements as said plane elements; and a step of determining that distortion occurs in the plane data when the value indicative of the relationship between the normal vectors of said adjacent ones of the plane elements exceeds a predetermined value.

12. A method of detecting distortion of plane elements that cover at least a part of a three-dimensional model, said plane elements being created by a computer-aided design system that forms a surface of the three-dimensional model by combining the plane elements together, comprising: a ridgeline extracting step of extracting a ridgeline that provides a boundary between adjacent ones of the plane elements, from plane data as a collection of a plurality of plane elements as said plane elements; a curvature calculating step of calculating a curvature of the ridgeline extracted in the ridgeline extracting step; and a ridgeline distortion determining step of determining that distortion

occurs in the ridgeline in at least one of the case where the curvature calculated in the curvature calculating step exceeds a predetermined value and the case where a change in the curvature exceeds a predetermined limit.

13. A method of detecting distortion of plane elements that cover at least a part of a three-dimensional model, said plane elements being created by a computer-aided design system that forms a surface of the three-dimensional model by combining the plane elements together, comprising: a step of extracting an apex from plane data as a collection of a plurality of plane elements as said plane elements; a nearby ridgeline extracting step of extracting a ridgeline located in the vicinity of the apex, from the plane data, said ridgeline providing a boundary between adjacent ones of the plane elements,' a projecting step of forming a plane from a normal vector on the apex in the plane data and a tangent vector of the ridgeline located in the vicinity of the apex, and projecting the ridgeline onto the formed plane! a projection curvature calculating step of calculating a curvature of the ridgeline on the plane formed in the projecting step>" and a ridgeline distortion determining step of determining that distortion occurs to the ridgeline in at least one of the case where the curvature calculated in the projection curvature calculating step exceeds a predetermined value and the case where a change in the curvature exceeds a predetermined limit.

14. A computer executable program for detecting distortion of plane elements that cover at least a part of a three-dimensional model, said plane elements being created by a computer-aided design system that forms a surface of the three-dimensional model by combining the plane elements together, comprising: a step of causing a computer to obtain normal vectors at difference

positions on each of selected ones of the plane elements, in response to a command for detecting distortion in the plane elements which is entered through input means! a step of calculating a value indicative of the relationship between adjacent ones of the normal vectors with respect to said each plane element; and a plane-element distortion determining step of determining that distortion occurs in the plane element containing the adjacent normal vectors when the value indicative of the relationship between the adjacent normal vectors exceeds a predetermined value.

15. A computer executable program for detecting distortion of plane elements according to claim 14, further comprising: a step of calculating a value indicative of the relationship between normal vectors of adjacent ones of the plane elements, when the plane-element distortion determining step determines that no distortion occurs in said each plane element, with respect to plane data as a collection of a plurality of plane elements as said plane elements; and a step of determining that distortion occurs in the plane data when the value indicative of the relationship between the normal vectors of said adjacent ones of the plane elements exceeds a predetermined value.

16. A computer executable program for detecting distortion of plane elements that cover at least a part of a three-dimensional model, said plane elements being created by a computer-aided design system that forms a surface of the three-dimensional model by combining the plane elements together, comprising: a ridgeline extracting step of causing a computer to extract a ridgeline that provides a boundary between adjacent ones of the plane elements, from plane data as a collection of a plurality of plane elements as said plane elements;

a curvature calculating step of calculating a curvature of the ridgeline extracted in the ridgeline extracting step; and a ridgeline distortion determining step of determining that distortion occurs in the ridgeline in at least one of the case where the curvature calculated in the curvature calculating step exceeds a predetermined value and the case where a change in the curvature exceeds a predetermined limit.

17. A computer executable program for detecting distortion of plane elements that cover at least a part of a three-dimensional model, said plane elements being created by a computer-aided design system that forms a surface of the three-dimensional model by combining the plane elements together, comprising: a step of causing a computer to extract an apex from plane data as a collection of a plurality of plane elements as said plane elements.' a nearby ridgeline extracting step of extracting a ridgeline located in the vicinity of the apex, from the plane data, said ridgeline providing a boundary between adjacent ones of the plane elements; a projecting step of forming a plane from a normal vector on the apex in the plane data and a tangent vector of the ridgeline located in the vicinity of the apex, and projecting the ridgeline onto the formed plane; a projection curvature calculating step of calculating a curvature of the ridgeline on the plane formed in the projecting step; and a ridgeline distortion determining step of determining that distortion occurs to the ridgeline in at least one of the case where the curvature calculated in the projection curvature calculating step exceeds a predetermined value and the case where a change in the curvature exceeds a predetermined limit.

18. A plane-element distortion detection system for detecting distortion of plane elements that cover at least a part of a three-dimensional model, said plane

elements being created by a computer-aided design system that forms a surface of the three-dimensional model by combining the plane elements together, comprising : a normal vector obtaining portion that obtains normal vectors at difference positions on each of selected ones of the plane elements," a relationship indicative value calculating portion that calculates a value indicative of the relationship between adjacent ones of the normal vectors with respect to said each plane element,' and a plane-element distortion determining portion that determines that distortion occurs in the plane element containing the adjacent normal vectors when the value indicative of the relationship between the adjacent normal vectors exceeds a predetermined value.

Description:

PLANE-ELEMENT DISTORTION DETECTION SYSTEM, AND PLANE-ELEMENT DISTORTION DETECTING METHOD AND PROGRAM

BACKGROUND OF THE INVENTION 1. Field of the Invention

[OOOl] The invention relates to computer-aided design technologies.

2. Description of the Related Art

[0002] Morphing is known as a processing technology for altering the shape of an image by smoothly changing image data. Three-dimensional CAD (Computer Aided Design) systems are also known to which the morphing technology is applied. This type of system receives a user operation entered through an operating means, such as a pointing device, and alters the shape of a three-dimensional model. The three-dimensional model is generally formed by combining, for example, polygons, patches (each consisting of a polygon or two or more polygons), or curved surfaces called surfaces.

[0003] According to the three-dimensional CAD technology in general, after a three-dimensional (3-D) model is created, the 3-D model is divided into a plurality of meshes (for example, tetrameshes) to be analyzed in various aspects. If an analysis is then carried out, and the user is not satisfied with the result of the analysis, it may become necessary to make a change(s) to the 3-D model. In this case, if the three-dimensional CAD system is used to change the original 3-D model, the model needs to be divided into meshes again, resulting in an increased number of man-hours. Therefore, the system usually alters the three-dimensional shape through morphing while the data representing the 3-D model is in a divided form, namely, in a mesh pattern as a collection of meshes.

[0004] In the CAD system to which the known morphing technology is applied, however, distortion in shape, such as wrinkles or sags, may appear in a surface of the 3-D model, namely, in polygons or patches that constitute the

three-dimensional shape, as a result of morphing processing of three-dimensional shape data. Such distortion in shape may deteriorate the appearance and quality of the three-dimensional shape. In particular, if the three-dimensional shape that has been subjected to morphing is then analyzed with a CAE (Computer Aided Engineering) system, it becomes necessary to modify and improve its surfaces, resulting in an increased number of man-hours. An example of the technology concerned with morphing of three-dimensional shapes is disclosed in JP-A- 11- 195054.

[0005] In the above-indicated technology, however, the system assumes that patches or polygons are flat or in the form of flat surfaces, and thus may not be able to recognize distortion when the three-dimensional shape is altered to such an extent that exceeds the limit of expansion or contraction of patches that constitute the three-dimensional shape, or that of polygons contained in the patches. If, for example, a patch (or polygon) is originally in the form of a curved surface in which two or more normal vectors are defined, distortion of the patch itself, or the polygon itself, may not be recognized with the above-indicated technology. Also, the system may not be able to detect a morphing operation that has altered the three-dimensional shape to such an extent that exceeds the limit of expansion or contraction.

SUMMARY OF THE INVENTION

[0006] It is therefore an object of the invention to provide a technology concerning morphing of a three-dimensional model comprised of patches or polygons in which a plurality of normal vectors are defined, for detecting the limit of expansion or contraction of the patches or polygons, thereby to reduce occurrence of distortion in shape, such as wrinkles or sags, in the patches or polygons.

[0007] A first aspect of the invention relates to a plane-element distortion detection system for detecting distortion of plane elements that cover at least a part of a three-dimensional model and are created by a computer-aided design

system that forms a surface of the three-dimensional model by combining the plane elements together. The distortion detection system includes (a) means for obtaining normal vectors at difference positions on each of selected ones of the plane elements, (b) means for calculating a value indicative of the relationship between adjacent ones of the normal vectors with respect to the above -indicated each plane element, and (c) plane-element distortion determining means for determining that distortion occurs in the plane element containing the adjacent normal vectors when the value indicative of the relationship between the adjacent normal vectors exceeds a predetermined value. [0008] According to the first aspect of the invention, the normal vectors are respectively obtained at difference positions on each of selected ones of the plane elements, and the value indicative of the relationship between adjacent ones of the normal vectors is calculated. When the value indicative of the relationship between the adjacent normal vectors exceeds the predetermined value, it is determined that distortion occurs in the plane element. It is thus possible to quantitatively determine whether distortion that is beyond a certain limit occurs in the plane element.

[0009] In this case, the system may further include a means for displaying the plane element in which the distortion occurs. With the displaying means, the system can inform the user of occurrence of distortion, and draw the user's attention to the distortion.

[0010] The distortion detection system as described above may further include means for calculating a value indicative of the relationship between normal vectors of adjacent ones of the plane elements, when the plane-element distortion determining means determines that no distortion occurs in each plane element, with respect to plane data as a collection of a plurality of plane elements, and means for determining that distortion occurs in the plane data when the value indicative of the relationship between the normal vectors of the adjacent plane elements exceeds a predetermined value.

[OOll] With the above arrangement, even if it is determined that no distortion occurs in each of the selected ones of the plane elements, occurrence of distortion in the plane data may be quantitatively determined from the relationship between adjacent ones of the plane elements. [0012] The relationship between the normal vectors may be an angle between adjacent ones of the normal vectors, since distortion can be detected by determining the angle between the normal vectors.

[0013] According to a second aspect of the invention, a plane-element distortion detection system for detecting distortion of plane elements that cover at least a part of a three-dimensional model and are created by a computer-aided design system that forms a surface of the three-dimensional model by combining the plane elements together includes : (a) ridge line extracting means for extracting a ridgeline that provides a boundary between adjacent ones of the plane elements, from plane data as a collection of a plurality of plane elements, (b) curvature calculating means for calculating a curvature of the ridgeline extracted by the ridgeline extracting means, and (c) ridgeline distortion determining means for determining that distortion occurs in the ridgeline in at least one of the case where the curvature calculated by the curvature calculating means exceeds a predetermined value and the case where a change in the curvature exceeds a predetermined limit.

[0014] According to the second aspect of the invention, the distortion detection system extracts ridgelines each providing the boundary between two adjacent plane elements, and calculates the curvature of each of the extracted ridgelines. In at least one of the case where the curvature exceeds the predetermined value, and the case where a change in the curvature exceeds the predetermined limit, the system determines that distortion occurs to the ridgeline. Thus, the system is able to quantitatively determine whether distortion occurs to the boundary between two adjacent plane elements. Here, a change in the curvature means, for example, a change in the direction of the curvature on a

single ridgeline, or a change in the magnitude of the curvature, or the like. Also, a change in the curvature means, for example, a change in the number of points of inflection on the ridgeline, or the presence of a large number of (for example, three or more) points of inflection, or the like. The ridgeline distortion determining means may record the curvature with respect to each of the ridgelines, and consider a difference between the curvature obtained in the last cycle of determination and the curvature obtained in the current cycle as a change in the curvature.

[0015] According to a third aspect of the invention, a plane-element distortion detection system for detecting distortion of plane elements that cover at least a part of a three-dimensional model and are created by a computer-aided design system that forms a surface of the three-dimensional model by combining the plane elements together includes : (a) means for extracting an apex from plane data as a collection of a plurality of plane elements as said plane elements, (b) nearby ridgeline extracting means for extracting a ridgeline located in the vicinity of the apex, from the plane data, the ridgeline providing a boundary between adjacent ones of the plane elements, (c) projecting means for forming a plane from a normal vector on the apex in the plane data and a tangent vector of the ridgeline located in the vicinity of the apex, and projecting the ridgeline onto the formed plane, (d) projection curvature calculating means for calculating a curvature of the ridgeline on the plane formed by the projecting means, and (e) ridgeline distortion determining means for determining that distortion occurs to the ridgeline in at least one of the case where the curvature calculated by the projection curvature calculating means exceeds a predetermined value and the case where a change in the curvature exceeds a predetermined limit.

[0016] According to the third aspect of the invention, the ridgeline is projected onto the plane, and the curvature of the ridgeline on the projection plane is calculated. In at least one of the case where the curvature exceeds the predetermined value, and the case where a change in the curvature exceeds the

predetermined limit, it is determined that distortion occurs to the ridgeline. It is thus possible to quantitatively determine distortion of the ridgeline.

[0017] The invention may also be concerned with a program executed by a computer for implementing any of the above-described processes. The invention may also be concerned with a computer-readable recording medium, such as a CD-ROM, DVD, or a flash-memory card, which stores the above-mentioned program. Furthermore, the invention may be concerned with a method practiced by a computer for implementing any of the above "described processes.

[0018] According to the invention, during a morphing operation of a three-dimensional model comprised of patches or polygons in which a plurality of normal vectors are defined, the limit of expansion or contraction of the patches or polygons can be detected, and occurrence of distortion in shape, such as wrinkles or sags, in the patches or polygons can be reduced.

BRIEF DESCRIPTION OF THE DRAWINGS

[0019] The foregoing and further objects, features and advantages of the invention will become apparent from the following description of exemplary embodiments with reference to the accompanying drawings, wherein like numerals are used to represent like elements and wherein^ FIG. 1 is a view showing an example of morphing of a three-dimensional model comprised of curved polygons;

FIG. 2 is a view showing an example in which the curved polygons are divided into meshes;

FIG. 3 is a view showing an example of a three-dimensional model made up of triangular patches;

FIG. 4 is a view showing a third-order Bezier curve!

FIG. 5 is a view showing an example of a third-order Bezier curved surface in the form of a quadrangular patch;

FIG. 6 is a view showing a third-order quadrangular patch and the location

of its internal control points;

FIG. 7 is a view showing a fourth-order quadrangular patch and the location of its internal control points;

FIG. 8 is a view showing an example of a third-order Bezier curved surface in the form of a triangular patch;

FIG. 9 is a view showing a third-order triangular patch and the location of its internal control point;

FIG. 10 is a view showing a fourth-order triangular patch and the location of its internal control points! FIG. 11 is a view showing the relationships between sample points and a plurality of curved polygons located around the sample points;

FIG. 12 is a view showing the relationships among a position vector of a point on a curve, its first-order differential, and its second-order differential;

FIG. 13 is a view showing the concept of a curvature analysis of curved polygons;

FIG. 14 is a flowchart illustrating a process of morphing operation performed on a three-dimensional model;

FIG. 15 is a flowchart illustrating details of a distortion detecting process;

FIG. 16 is a flowchart illustrating details of a process for checking normal vectors in a curved polygon;

FIG. 17 is a flowchart illustrating details of a process for checking normal vectors of different curved polygons;

FIG. 18 is a flowchart illustrating details of a process for analyzing the curvatures on ridgelines, " FIG. 19 is a flowchart illustrating details of a process for analyzing the curvatures of curved polygons (patches);

FIG. 20 is a view useful for explaining the concept of a distortion detecting process using normal vectors during creation of data! and

FIG. 21 is a flowchart illustrating the procedure of the distortion detecting

process using normal vectors during creation of data.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS [0020] In the following, a computer-aided design system according to an embodiment of the invention as the best mode for carrying out the invention will be described with reference to the drawings. It is to be understood that the construction of the embodiment is merely exemplary, and the invention is not limited to the construction of this embodiment.

[0021] Gist of the Invention The computer-aided design system of this embodiment accepts user operations performed by the user with an operating means, such as a pointing device, with respect to a three-dimensional (3-D) model comprised of polygons or patches each of which is a combination of polygons, and performs morphing of the three-dimensional model. The polygons that constitute the 3-D model are called curved polygons, each of which has normal vectors that extend in a plurality of directions, in the plane of the polygon.

[0022] FIG. 1 shows an example of morphing of a three-dimensional model comprised of curved polygons. In this example, distortion appears in a circle denoted by Cl in FIG. 1. FIG. 2 shows an example in which the curved polygons of FIG. 1 are divided into meshes. In this example, the curved polygon is constructed by combining a plurality of triangle meshes together. The curved surface thus formed is known as, for example, "Bezier curved surface".

[0023] A Bezier curve is a polynomial curve defined by a plurality of points (a series of points) called "control points", and the Bezier curved surface is a curved surface defined based on a plurality of points arranged two- dime nsionally. In the present embodiment, a unit of the curved surface is called "patch", which consists of one curved polygon or two or more curved polygons. Namely, a plurality of curved polygons (e.g., third-order triangular Bezier curved surfaces) may be collected or combined together to provide a patch.

[0024] When morphing a three-dimensional model covered with the curved

polygons, the computer-aided design system monitors a plurality of normal vectors in each of the curved polygons. Then, the system obtains an angle between adjacent normal vectors, and the percentage of change of the angle between the adjacent normal vectors as a result of morphing of the 3-D model, namely, the ratio of the angle after morphing to the original angle. In the case where the angle between the adjacent normal vectors exceeds a predetermined value, and the case where the percentage of change of the angle between the adjacent normal vectors exceeds a predetermined value, the system determines that distortion occurs in the plane of the curved polygon monitored. [0025] FIG. 3 shows an example of a three-dimensional model made up of triangular patches. In FIG. 3, a polyhedron comprised of triangular planes is illustrated. In FIG. 3, the triangular patches are depicted as flat surfaces for the sake of brevity. However, since a patch, or curved polygon, is generally a curved surface defined by a polynomial based on control points, two or more normals are actually contained in each triangle (or triangular patch) shown in FIG. 3. In FIG. 3, the normals on the curved polygons are represented by arrows.

[0026] The computer-aided design system of this embodiment monitors the normal vectors in each of the curved polygons, and detects occurrence of distortion in the curved polygon. [0027] Furthermore, after confirming that no distortion occurs in each of the polygons, as a result of monitoring of the normal vectors as described above, the computer-aided design system of this embodiment selects typical normal vectors in the curved polygon of interest and a curved polygon adjacent to that curved polygon, respectively, and detects occurrence of distortion between the two adjacent curved polygons in a similar manner.

[0028] Namely, the system determines that distortion occurs in the plane over two adjacent curved polygons in the case where the angle between the normal vectors belonging to the two adjacent curved polygons exceeds a predetermined value, and the case where the percentage of change of the angle between the

adjacent normal vectors exceeds a predetermined value.

[0029] Furthermore, the system sets a sample point of interest on each of the curved polygons, extracts ridgelines passing the sample point or passing the vicinity of the sample point, and obtains the curvatures on the ridgelines. If the curvature of any ridgeline exceeds a predetermined value, it is determined that distortion occurs in the curved polygon(s) containing the ridgeline. Here, the "ridgeline" means the boundary between a curved polygon and another curved polygon.

[0030] When distortion is detected in any curved polygon during morphing of the three-dimensional model in this manner, the computer-aided design system displays a warning indicating that distortion of the curved polygon has been detected. With the warning thus displayed, the user recognizes occurrence of distortion, and stops morphing of the three-dimensional model. Then, the user changes the procedure of morphing operations, so as to provide, through morphing, a three-dimensional model that is free from distortion of curved polygons.

[0031] Alternatively, the use may continue morphing operations while recognizing occurrence of distortion, and correct a portion or portions where distortion of a curved polygon(s) occurs, after completion of the morphing operations. [0032] The above -de scribed functions are implemented as one function of a

CAD system provided on a computer, according to computer programs to be executed on the computer. Here, the computer includes CPU (Central Processing Unit), memory, input/output interface, external storage device connected to the input/output interface, display device, input device, communications device, and so forth.

[0033] The external storage device may be, for example, a hard disk drive. The external storage device may also be selected from drives for removable storage media, such as CD-ROM (Compact Disc Read Only Memory) and DVD (Digital Versatile Disk). Furthermore, a flash-memory card may be used as the external

storage device.

[0034] The display device may be, for example, CRT (Cathode Ray Tube), a liquid crystal display, or the like. The input device may be, for example, a keyboard, a pointing device, or the like. The pointing device may be selected from a mouse, a joystick, a touch panel, a flat pointing device of electrostatic type, a stick-like pointing device, and others. The communications device may be, for example, LAN board, or the like.

[0035] Data Structure of Curved Surface of 3D model FIG. 4 through FIG. 10 show examples of the data structure used when the computer-aided design system of the present embodiment specifies a curved surface of a three-dimensional model. FIG. 4 shows a third-order Bezier curve. Generally, a curve specified by a polynomial based on (n + l) control points is called "n th -order Bezier curve". The n th -order Bezier curve is given by Equation (l) as a general expression indicated below. In this expression, Qi is a position vector of a control point, t is a parameter, and P is a position vector on the n th -order Bezier curve. [0036]

-trm

... ( D

[0037] For example, the third-order Bezier curve P is given by P = (1 — t) 3 Q0 + 3t(l-t) 2 Ql + 3t 2 (l-t)Q2 + t 3 Q3.

[0038] FIG. 5 shows an example of a third-order Bezier curved surface in the form of a quadrangular patch. Generally, a Bezier curved surface constructed by control points arranged in an (n + l) x (n + l) array is called "n th -order Bezier curved surface". The n th -order Bezier curved surface in the form of a quadrangular patch is given by Equation (2) as a general expression indicated below. In this expression, Qij is a position vector of a control point, and u and v

are parameters, while P is a position vector on the n th "order Bezier curved surface. [0039]

m n m! n!

P(U 1 V) = Y Y — (i - upu 1 — - — (1 - v) n - j v j Q π

...(2) [0040] The third-order Bezier curved surface in the form of the quadrangular patch has sixteen control points (including four internal control points). A surface of a three-dimensional model may be formed by connecting such quadrangular Bezier curved surfaces.

[0041] FIG. 6 shows a third-order quadrangular patch and the location of its internal control points. FIG.7 shows a fourth-order quadrangular patch and the location of its internal control points. In the case of quadrangular patches, the number of the internal control points increases from 4 to 9, 16, ... as the order increases from third-order to fourth-order, fifth-order ....

[0042] FIG. 8 shows an example of a third-order Bezier curved surface in the form of a triangular patch. The n th -order Bezier curved surface in the form of a triangular patch is given by Equation (3) as a general expression indicated below. In the expression, Qijk is a position vector of a control point, and u, v and w are parameters. [0043]

... (3)

[0044] The third-order Bezier curved surface in the form of the triangular patch has ten control points (including one internal control point). A surface of a three-dimensional model may be formed by connecting such triangular Bezier

curved surfaces.

[0045] FIG. 9 shows a third-order triangular patch and the location of its internal control point. FIG. 10 shows a fourth-order triangular patch and the location of its internal control points. In the case of triangular patches, the number of internal control points increases from 1 to 3, 6, 9, ... as the order increases from third-order to fourth-order, fifth order, sixth order, ....

[0046] The computer-aided design system of this embodiment use the nth-order Bezier curved surface (for example, the triangular, third-order Bezier curved surface as shown in FIG. 8) as a curved polygon (also called "patch"), and constructs a three-dimensional model by combining the curved polygons together. A plurality of curved polygons may be combined together to provide a patch, and a plurality of such patches may constitute a three-dimensional model.

[0047] Distortion Detecting Function The computer-aided design system of the present embodiment detects occurrence of distortion based on agreement or disagreement between the angles of normals in a curved polygon, the percentage of change in the angle of a normal, agreement or disagreement of normals between a plurality of curved polygons in the vicinity of a sample point, the percentage of change in the angle between the normals, and the percentage of change of the curvature on a ridgeline passing a sample point or the vicinity of the sample point. In this embodiment, the boundary between two or more curved polygons is called "ridgeline". (l) Checking agreement between normals in a curved polygon: with regard to a single curved polygon, a plurality of normal vectors contained in the polygon are likely to be identical with each other or a difference in angle between the normal vectors is likely to be equal to or smaller than a predetermined reference value (El).

[0048] Thus, the computer-aided design system of this embodiment calculates normal vectors at a plurality of positions in each of the curved polygons, and determines whether the angle between the normal vectors is equal to or smaller than the predetermined reference value (El). Where a certain position

vector on the curved polygon is expressed as S(u, v), the normal vector at this position is given by Equation (4) as follows. [0049]

...(4)

[0050] To find the normal vector, the position vector on the curved polygon (surface shape) may be partially differentiated in the direction of u as a line element and the direction of v as a line element, respectively, the outer product (vector product) of these partial differentials may be obtained. The angle between the normal vectors may be obtained from the inner product (scalar product) of the normal vectors and the inverse trigonometric function. In this manner, occurrence of distortion in the curved polygon is detected. (2) Checking agreement of normal lines between different curved polygons^ Even if occurrence of distortion is not detected in each curved polygon, distortion may occur due to the positional relationship between two or more curved polygons. Generally, with respect to adjacent curved polygons covering a surface of a three-dimensional model, the normal vectors of the respective curved polygons are likely to be identical with each other or an angular difference between the normal vectors is likely to be equal to or smaller than a predetermined reference value (El), at locations other than a portion in which the inclination changes discontinuously on the ridgeline (i.e., a location where a bent appears in the plane). In the portion in which the inclination changes discontinuously on the ridgeline, on the other hand, an angular difference between the normal vectors of the respective curved polygons is likely to be equal to or larger than a reference value (E2) that is larger than the above -indicated reference value El. Therefore, empirical rules concerning general three-dimensional shapes are incorporated into processing on the computer.

[0051] FIG. 11 shows the relationship between a specified sample point PA and the normal vectors Nl - N5 of a plurality of curved polygons 11 - 15 present around the sample point PA. In this case, the normal vector NA of the sample point PA is given by Equation (5) as follows :

[0052]

V w 1 N 1

...(5)

[0053] The above equation (5) indicates the weighted addition of a plurality of normal vectors. The weight may be determined by, for example, the area of each of the patches. The weight may also be set to 1. The system of this embodiment detects occurrence of distortion by determining whether the angle between the normal vectors Nl - N5 and the normal vector NA of the sample point PA is within the range from the reference value El to the reference value E2. (3) Checking agreement among normals on a ridge line: a plurality of normals of curved polygons are obtained on a ridgeline located at the boundary between two curved polygons, and it is determined whether the angle between the normals is equal to or smaller than the predetermined reference value (El). The procedure for implementing this process is similar to that of (l) as described above, except that the normals to be checked are on the ridgeline. (4) Analyzing the curvature of a ridgeline: the curvature is obtained at some points on a ridgeline that provides the boundary between two curved polygons. During morphing operations, the system monitors the curvature of each ridgeline concerned, and detects a point at which the curvature is larger than a reference value. Alternatively, the system detects a point at which the curvature undergoes a large change (for example, a point at which the inner product (scalar product) taken between vectors representing the curvature is smaller than 0, namely, the curvature changes by an angle larger than 90 degrees). To detect a change of the curvature, the system

may detect a change in the direction of the curvature on a single ridgeline, or may detect a change in the magnitude of the curvature on a single ridgeline. Namely, the system may detect a point at which the direction of the curvature undergoes an excessively large change, or a point at which the value of the curvature undergoes an excessively large change. Also, the system may detect the number of points of inflection on a ridgeline, for example, and the ridgeline on which the number of the points of inflection is equal to or larger than a certain value may be regarded as a ridgeline on which distortion is detected. Furthermore, the ridgeline distortion determining means of the system may record the curvature with respect to each ridgeline, and determine a difference between the curvature recorded in the last cycle of the distortion determination process and the curvature obtained in the current cycle, as a change of the curvature.

[0054] The curvature may be obtained as a second-order differential of the position vector P of a point on a curve. A first-order differential P' = dP/ds of the position vector P of the point on the curve with respect to the length s of the curve is given by Equation (6) below. In this equation, P marked with one dot (a black circle located above vector P) represents a time differential (velocity) of the vector P, and will be referred to as "one-dot P". The one-dot P represents a vector extending in the direction of a tangent to the curve. Equation (6) provides a unit vector in the direction of the tangent. [0055]

...(6)

[0056] If the first-order P' as represented by Eq. (6) above is further differentiated with respect to the length s of the curve, the curvature R = P" is obtained according to Equation (7) below. In this equation, P marked with two dots (two black circles located above vector P) represents a second-order time

differential (acceleration) of the vector P, and will be referred to as "two-dot P". [0057]

...(7) [0058] The curvature R may also be represented in the form of Equation

(8) below.

[0059]

R _ (Px P)x P P 4

...(8) [0060] Where P represents the position vector of a point on a curve, the relationships among the curvature R = P", velocity one-dot P, and acceleration two-dot P are schematically illustrated in FIG. 12. In FIG. 12, the velocity one-dot P is a vector extending in the direction of the tangent to the curve, and a vector representing the curvature P" extends in a direction orthogonal to the tangent. [0061] As shown in FIG. 12, the acceleration two-dot P is obtained from the velocity one-dot P, and a rectangle 22 is created which has one side given by the velocity one-dot P, and its opposite side passing the tip of the acceleration two-dot P. Then, an intersection 26 between a straight line 24 that passes the tip 21 of the velocity one-dot P and is orthogonal to a diagonal line 23 of the rectangle 22, and a straight line 25 that is drawn from a point of contact between the velocity one-dot P and the curve and is orthogonal to the velocity one-dot P is obtained. In this case, the length from the point of contact 20 to the intersection 26 is the curvature P". (5) Analyzing the curvature of curved polygons : FIG. 13 shows the concept of the curvature analysis of curved polygons. The curved polygon, or patch, consists of, for example, one or more Bezier curved surface(s). Unlike the ridgelines as

described above, the curvature analysis using general expressions (e.g., Eq. (7) and Eq. (8)) cannot be performed on curved polygons. Thus, the computer-aided design system of the present embodiment performs the curvature analysis of curved polygons according to a procedure including steps (a) through (f) as follows. (a) The system specifies a region of a three-dimensional model to be analyzed. This may be done through, for example, a user operation that allows the user to select a region to be analyzed, (b) The system extracts the apexes of each curved polygon included in the region to be analyzed, for example, the external control points (control points on ridgelines) of the Bezier curved surfaces, (c) The system obtains a normal vector N (also called Nk when distinguished with respect to each apex) at each of the apexes, (d) The system obtains ridgelines L (also called Li when distinguished for each of the ridgelines) connected to each apex. Alternatively, all of the ridgelines that are within a certain distance from the apex may be selected. Then, the system obtains tangents T (also called Ti when distinguished with respect to each ridgeline) to the ridgelines L in the vicinity of the apex concerned, (e) The system projects each of the ridgelines L onto the plane defined by the normal N of the apex and the tangent T to the ridgeline L. As a result, the ridgeline L on a three-dimensional space becomes a projected line on a plane. The curvatures of some points on the projected line are then calculated according to Eq. (7) or Eq. (8). Then, the maximum value R (also called Ri when distinguished with respect to each ridgeline) of the curvatures on the projected line is determined. (f) For all of the apexes in the region to be analyzed, the system repeats the steps of (c) through (e) with respect to all of the ridgelines connected to each of the apexes in the region. In this manner, the maximum curvature in the region to be analyzed is determined, and is set as the curvature of curved polygons. The system then determines occurrence of distortion by determining whether the curvature of curved polygons exceeds a predetermined reference value E3. The system may display the curvatures Ri obtained by repeating the steps (c) through (e) in a histogram so as to indicate the conditions of

occurrence of distortion.

[0062] Control Flow FIG. 14 is a flowchart illustrating the control flow of a 3-D model morphing process performed by the computer-aided design system of this embodiment. This process is implemented as a computer program executed on the CPU of the computer-aided design system.

[0063] In this process, the user initially manipulates an input device, such as a pointing device, so as to make a change to the shape of a three-dimensional model on the screen of the display device. The computer-aided design system detects input data entered by the user via the input device, and successively alters the shape of the 3-D model. Namely, morphing is performed (Sl).

[0064] In the process of morphing, the computer-aided design system carries out a distortion detecting process of detecting occurrence of distortion (S2). The CPU of the computer-aided design system that performs this process may be considered as the plane-element distortion detection system according to the invention. If distortion is detected, the computer-aided design system displays a warning on the display device (S3). In this case, a location (such as a patch) at which occurrence of distortion is determined, on the 3D model, may be displayed in a different color, namely, with its color changed. Furthermore, sound may be generated from a loudspeaker to call attention to the detection of the distortion. The CPU of the computer-aided design system that performs this process may be considered as the above-mentioned means for displaying a plane element in which distortion occurs, according to the invention.

[0065] If a warning is displayed, the user halts the morphing operation, and redoes the operation (S4). According to the guidance of the computer-assisted design system, the user is able to create data that is free from distortion, such as wrinkles and sags, in the planes (S7).

[0066] Even if a warning is displayed, the user may continue the morphing operation. In this case, the user is required to perform an operation to correct the 3-D model on the screen through the input device, so as to reduce or eliminate the

distortion of the 3-D model (S6). Even in this case, since the user recognizes an approximate location where distortion occurs in the 3-D model, owing to the warning issued in step S3, the user can perform a correcting operation with improved efficiency. Through the correcting operation, the user is able to create data that is free from distortion, such as wrinkles and sags, in the planes (S7).

[0067] FIG. 15 shows details of the distortion detecting process (S2 in FIG. 14). When the user performs a morphing operation on a three-dimensional model, the distortion detecting process is repeatedly carried out along with morphing of the 3-D model, thereby to detect distortion of curved polygons at certain intervals. [0068] In the distortion detecting process, the computer-aided design system initially performs a normal vector checking process for checking normal vectors in a curved polygon (S21). The computer-aided design system then performs a normal vector checking process for checking and comparing normal vectors between curved polygons (S22). The computer-aided design system then performs a normal vector checking process for checking normal vectors on a ridgeline (S23). The computer-aided design system then performs a curvature analyzing process for analyzing the curvatures on ridgelines (S24). Furthermore, the computer-aided design system performs a curvature analyzing process for analyzing the curvatures of curved polygons (S25). [0069] The above-mentioned processes are not necessarily executed in the order of S21, S22, S23, S24, S25, as shown in FIG. 15, but may be executed in different orders. Also, it is not necessary to execute all of the processes of S21 through S25. The processes of S21 to S25 may also be executed independently of one another at different time intervals. [0070] If no distortion is detected in the process of S21 for checking normal vectors in each curved polygon (if normal vectors are substantially identical with each other in each of the curved polygons), the process of S22 for checking normal vectors of different curved polygons may be carried out. In this manner, the system can compare normal vectors between different curved polygons only after

confirming the identity of normal vectors in each of the curved polygons (i.e., after confirming that a single normal vector exists in each curved polygon).

[0071] FIG. 16 shows details of the process (S21 in FIG. 15) for checking normal vectors in a curved polygon. In this process, the computer-aided design system selects curved polygons for which the process of detecting occurrence of distortion is to be performed (S211). As an example of the manner of selecting the curved polygons, all of the curved polygons contained in the three-dimensional model may be selected as those to be checked in the detecting process. In another example, a certain number of curved polygons may be selected at random, as those to be checked. In a further example, curved polygons contained in a region on the 3-D model, which region is specified by the user through the input device, may be selected. In the present embodiment, each of the curved polygons is specified by identifying information that identifies the curved polygon, the number (the order of the curved surface) of control points that constitute the curved polygon, and the coordinates of the control points.

[0072] In the next step (S212), the computer-aided design system of this embodiment sets sample points in each of the curved polygons to be checked. The sample points may be determined, for example, with reference to u and v values set in advance on the curved polygon S(u, v). For example, the u and v values may be set by the user, or may be default parameters of the system. The computer-aided design system may designate the above-mentioned control points as sample points.

[0073] In the next step (S213), the computer-aided design system calculates a normal vector at each of the sample points. The normal vector is calculated according to Eq. (4) as indicated above. The CPU (not shown) of the computer-aided design system which executes this step (S213) may be regarded as the above-mentioned means for obtaining normal vectors according to the invention.

[0074] In the next step (S214), the computer-aided design system calculates the angle between the normal vectors of two different sample points on

the curved polygon concerned. The angle between the normal vectors is obtained from the inner product (scalar product) of the normal vectors and the inverse trigonometric function. The CPU of the computer-aided design system which executes this step (S214) may be regarded as the above-mentioned means for calculating a value indicative of the relationship between the normal vectors according to the invention.

[0075] In the next step (S215), the computer-aided design system determines whether the angle between normal vectors obtained with respect to each set of sample points is larger than the reference value El. The reference value El may be, for example, a value specified by the user, or a default parameter of the system. The reference value El may also be set based on an empirical value (s) that defines an acceptable limit of distortion. The CPU of the computer-aided design system which executes this step (S215) may be regarded as the plane-element distortion determining means of the invention. [0076] If the angle between any set of normal vectors is larger than the reference value El, the system provides an indication of the presence of distortion in the curved polygon concerned, and establishes an error code along with the identifying information of the curved polygon or the coordinates of the control points (S216). The indication of the presence of distortion in the curved polygon may be provided by, for example, changing the display color of the curved polygon. The error code may be read out in step S3 of FIG. 14, in which a warning is displayed on the display device. Changing of the display color of the curved polygon may be effected in step S3 of FIG. 14.

[0077] In the next step (S217), the computer-aided design system determines whether all of the curved polygons to be checked have been checked. If any of the curved polygons to be checked has not been checked, the computer-aided design system returns the control to step S211. If all of the curved polygons to be checked have been checked, the computer-aided design system finishes the process of FIG. 16.

[0078] FIG. 17 shows details of the process (S22 of FIG. 15) for checking normal vectors of different curved polygons. In this process, the computer-aided design system selects sample points to be monitored on a three-dimensional model (S221). As an example of the manner of selecting the sample points, a certain point (for example, one control point on a ridgeline) may be selected from each of all of the curved polygons (i.e., one point per curved polygon), as a sample point to be monitored. In another example, a certain number of curved polygons may be selected at random, and a certain point contained in each of the selected curved polygons may be selected as a sample point to be monitored. In a further example, certain points may be selected from curved polygons contained in a region on the 3-D model, which region is specified by the user through the input device. It is also possible to extract the curved polygons in which no distortion is detected in the process of S21 in FIG. 15, and subject the extracted curved polygons to the process of S22. [0079] In the next step (S222), the computer-aided design system of this embodiment retrieves curved polygons located around the sample points. Namely, the system may extract curved polygons to which the sample points selected in step S221 belong.

[0080] In the next step (S223), the computer-aided design system calculates a normal vector of each of the curved polygons. The normal vector may be calculated at, for example, any one of the internal control points in each curved polygon, or the center of gravity of the curved polygon, or the like. The normal vector is calculated according to Eq. (4) indicated above.

[0081] In the next step (S224), the computer-aided design system calculates the angle between normal vectors of different curved polygons.- The angle between the normal vectors is obtained from the inner product (scalar product) of the normal vectors and the inverse trigonometric function.

[0082] In the next step (S225), the computer-aided design system determines whether the angle between normal vectors obtained with respect to

each set of curved polygons in step S224 are within the range of the reference value El to E2. The reference values El, E2 are, for example, values designated by the user, or default parameters of the system. The reference value El may be set based on an empirical value(s) that defines an acceptable limit of distortion. The reference value E2 may be set to a value (a sufficiently large angle, for example, a value equal to or larger than 20 degrees) used for excluding two curved polygons between which a crease or bent exists as the boundary therebetween, from the curved polygons to be checked. The CPU of the computer-aided design system which executes this step (S225) may be regarded as the above-mentioned means for determining that distortion occurs in the plane data, according to the invention.

[0083] If the angle between the normal vectors of any set of curved polygons is in the range of the reference value El to E2, the system provides an indication of the presence of distortion in the curved polygons concerned, and establishes an error code along with the identifying information of the curved polygons or the coordinates of the control points (S226). In this manner, the computer-aided design system is able to detect distortion from a difference in angle between the normal vectors when the difference exceeds a permissible value, while excluding the locations where creases or bents exist inherently, from the object to be checked, thus reducing the possibility of false indication of errors. [0084] In the next step (S227), the computer-aided design system determines whether all of the sample points to be checked have been checked. If any of the curved polygons to be checked has not been checked, the computer-aided design system returns the control to step S221. If all of the curved polygons to be checked have been checked, the computer-aided design system finishes the process of FIG. 17.

[0085] The process (S23 of FIG. 15) for checking normal vectors on ridgelines may be accomplished by limiting the sample points to those on the ridgelines in the process (FIG. 16) for checking normal vectors in a curved polygon. Thus, the checking procedure of the process of S23 is similar to that of FIG. 16, and

will not be explained herein.

[0086] FIG. 18 shows details of the process (S24 of FIG. 15) for analyzing the curvatures on ridgelines. In this process, the computer-aided design system selects sample points (S241). This operation is similar to that of S221 of FIG. 17. [0087] In the next step (S242), the computer-aided design system selects ridgelines located around the sample points. In this process, the system may retrieve curved polygons located around the sample points, and select ridgelines that belong to the retrieved curved polygons. For example, a certain number of ridgelines per sample point may be specified as the upper limit of the number of ridgelines to be selected. Alternatively, all of the ridgelines located within a certain distance from each sample point may be selected. The CPU of the computer-aided design system which executes this step (S242) may be regarded as the ridgeline extracting means of the invention.

[0088] In the next step (S243), the computer-aided design system obtains the maximum value R of the curvatures on each of the ridgelines. For example, the curvatures may be obtained at certain intervals on the ridgeline, and the maximum value of the curvatures thus obtained may be selected. Alternatively, the curvature may be checked or observed dichotomously from the opposite ends of the ridgeline, to find the direction in which the curvature increases. Then, the curvature obtained at a point at which the rate of increase of the curvature reaches a certain limit may be determined as the maximum value of the curvatures. The curvature may be calculated according to Eq. (7) or Eq. (8) indicated above. The CPU of the computer-aided design system which executes this step (S243) may be regarded as the curvature calculating means of the invention. [0089] In the next step (S245), the computer-aided design system determines whether the maximum value R of the curvatures exceeds the predetermined reference value E3. The CPU of the computer-aided design system which executes this step (S245) may be regarded as the ridgeline distortion determining means of the invention. If the maximum value R of the curvatures

exceeds the reference value E3, the computer-aided design system provides an indication of the presence of distortion in the curved polygon including the ridgeline concerned, and establishes an error code along with the identifying information of the curved polygon or the coordinates of the control points (S246). [0090] While it is determined whether the magnitude of the curvature exceeds the predetermined reference value E3 in the above-described process, it may be determined that a change in the curvature, instead of the magnitude of the curvature, exceeds a predetermined limit.

[0091] Furthermore, originally bent portions may be excluded from the object to be checked. Namely, in the operations of S242 and S243, the ridgelines on which the curvatures already exceeded a certain limit value E4 at the time of a start of the morphing operation may be excluded. Also, if the maximum value R of the curvatures already exceeded the limit value E4 at the time of a start of the morphing operation, the system may ignore the maximum value R when making the above-described determination of step S245.

[0092] When a bending operation is performed during morphing of the 3-D model, bent portions, namely, portions subjected to the bending operation, may be excluded from the object to be checked. Namely, the curvatures may be monitored along with the morphing operation, and the ridgelines on which the curvature exceeds the limit value E4 as a result of the morphing operation may be excluded from those to be checked in the operations of S242 and S243. Also, the curvatures may be monitored along with the morphing operation, and, if the maximum value R of the curvatures exceeds the limit value E4 as a result of the morphing operation, the system may ignore the maximum value R when making the determination of step S245.

[0093] Subsequently, the computer-aided design system determines whether all of the ridgelines to be monitored, which are located around the sample point concerned, have been checked (S247). If any of the ridgelines to be checked has not been checked, the computer-aided design system returns the control to step

S242. If all of the ridgelines to be monitored, which are located around the sample point concerned, have been checked, the computer-aided design system determines whether all of the sample points to be checked have been checked (S248).

[0094] If any of the sample points to be checked has not been checked, the computer-aided design system returns the control to step S241. If all of the sample points to be checked have been checked, on the other hand, the computer-aided design system finishes the process of FIG. 18.

[0095] FIG. 19 shows details of the process (S25 of FIG. 15) for analyzing the curvatures of curved polygons (patches). In this process, the user designates a region to be analyzed on a three-dimensional model, through the input device, and the computer-aided design system receives the designated region to be analyzed (S250). The region to be analyzed may be set in advance before a morphing operation.

[0096] In the next step (S251), the computer-aided design system selects apexes in the region to be analyzed. The computer-aided design system then calculates a normal Ni of each of the apexes, and tangents Ti of ridgelines Li connected to the apex (or ridgelines in the vicinity of the apex) (S252). The CPU of the computer-aided design system which executes this step (S252) may be regarded as the nearby ridgeline extracting means of the invention. [0097] In the next step (S253), the computer-aided design system projects each of the ridgelines Li onto a plane defined by the normal Ni and the tangent Ti, and obtains the maximum curvature Ri on the projected line on the plane (S253). The maximum curvature Ri on the projected line may be determined according to a procedure similar to that of step S243 of FIG. 18. Namely, the curvatures Ri may be successively obtained at certain intervals on the projected line, according to Eq. 7 or Eq. (8) indicated above. Alternatively, the curvatures may be checked or observed dichotomously from the opposite ends on the projected line, to find the direction in which the curvature Ri increases, or a point at which the curvature Ri reaches its maximum. The CPU of the computer-aided design system which

executes this step (S253) may be regarded as the projection curvature calculating means of the invention.

[0098] In the next step (S254), the computer-aided design system determines whether all of the ridgelines around the apex currently analyzed have been checked. If any of the ridgelines around the apex has not been checked, the computer-aided design system returns the control to step S252, and repeats the process of S252 and S253 for the next ridgeline.

[0099] If all of the ridgelines around the apex have been checked, the computer-aided design system determines whether all of the apexes in the region to be analyzed have been checked (S255). If any of the apexes in the region to be analyzed has not been checked, the computer-aided design system returns the control to step S251, and repeats the process of step S251 through S254 for the next apex.

[OIOO] If all of the apexes in the region to be analyzed have been checked, the computer-aided design system determines or selects the maximum value Rmax from the maximum curvatures Ri obtained for the respective ridgelines (S256).

Then, the computer-aided design system determines whether the maximum value

Rmax of the maximum curvatures Ri for the respective ridgelines exceeds the predetermined reference value E3 (S257). The CPU of the computer-aided design system which executes this step (S257) may be regarded as the ridgeline distortion determining means of the invention. If the maximum value Rmax exceeds the reference value E3, the computer-aided design system provides an indication of the presence of distortion in the curved polygons involving the ridgeline concerned, and establishes an error code along with the identifying information of the curved polygons (S258).

[0101] While it is determined whether the magnitude of the curvature exceeds the predetermined reference value E3 in the above-described process, it may be determined that a change in the curvature, instead of the magnitude of the curvature, exceeds a predetermined limit.

[0102] Furthermore, originally bent portions may be excluded from the object to be checked. Namely, in the operation of S253, the ridgelines on which the maximum curvature Ri already exceeded a certain limit value E4 at the time of a start of the morphing operation may be excluded. Also, if the maximum curvature Ri already exceeded the limit value E4 at the time of a start of the morphing operation, the system may ignore the maximum curvature Ri when making the above -described determination of step S257.

[0103] When a bending operation is performed during morphing of the 3-D model, bent portions, namely, portions subjected to the bending operation, may be excluded from the object to be checked. Namely, the curvatures may be monitored along with the morphing operation, and the ridgelines on which the maximum curvature Ri exceeds the limit value E4 as a result of the morphing operation may be excluded from those to be checked in the operation of step S253. Also, the curvatures may be monitored along with the morphing operation, and, if the maximum curvature Ri of any of the ridgelines exceeds the limit value E4 as a result of the morphing operation, the system may ignore the maximum curvature Ri when making the determination of step S257.

[0104] As described above, during a morphing operation of a three-dimensional model, the computer-aided design system of the present embodiment monitors occurrence of distortion in each of the selected curved polygons that constitute the 3-D model. The occurrence of the distortion is determined depending upon whether the angles between normal vectors of two or more points on the curved polygon (or the amount of change in the angle) exceeds a predetermined reference value. If occurrence of distortion in the curved polygon is detected, a warning is displayed.

[0105] Even in the case where no distortion in each curved polygon is detected, the computer-aided design system obtains the angle between normal vectors of different curved polygons, and determines whether the angle (or the amount of change in the angle) falls within the range of the reference value El to

E2, so as to detect occurrence of distortion in the curved polygons. In this case, if the angle between the normal vectors (or the amount of change in the angle) exceeds the reference value El, occurrence of distortion that exceeds a permissible amount can be determined. If the angle between the normal vectors (or the amount of change in the angle) exceeds the reference value E2, the two curved polygons having these normal vectors are originally in bent conditions relative to each other, and can be excluded from the object to be checked for detection of distortion. Thus, the computer-aided design system is able to inform the user of occurrence of distortion to be detected, while reducing the possibility of displaying unnecessary warnings.

[0106] Furthermore, the computer-aided design system of this embodiment analyzes the angle between two or more normal vectors on a ridgeline that provides the boundary between adjacent curved polygons, and detects occurrence of distortion depending upon whether the angle (or the percentage of change in the angle) exceeds the predetermined reference value El.

[0107] Furthermore, the computer-aided design system of this embodiment monitors the curvature at some points on a ridgeline that provides the boundary between adjacent curved polygons, and detects occurrence of distortion in the curved polygons depending upon whether the curvature exceeds the predetermined reference value El. Alternatively, the system detects occurrence of distortion in the curved polygons depending upon whether a change in the curvature exceeds the predetermined limit.

[0108] Moreover, the computer-aided design system of this embodiment projects a ridgeline located in the vicinity of an apex on a curved region, onto a plane defined by a normal vector of the apex and a tangent to the ridgeline, and obtains the curvature at some points on the ridgeline. The system then detects occurrence of distortion in the curved polygons depending upon whether the curvature exceeds the predetermined reference value El. Alternatively, the system detects occurrence of distortion in the curved polygons depending upon

whether a change in the curvature exceeds the predetermined limit. In this manner, the system, when receiving designation of a particular region by the user, is able to monitor distortion of the entire curved surface that covers the designated region. [0109] In the manners as described above, the computer-aided design system of the present embodiment is able to monitor occurrence of distortion on the 3-D model according to a plurality of criteria, and give a warning that informs the user of occurrence of distortion when it appears. With the warning thus issued, the user may halt the morphing operation, and resume the morphing operation according to a procedure that does not cause distortion to occur. Alternatively, the user may continue the morphing operation, and remove distortion by performing a morphing operation again on a portion(s) of the 3-D model in the vicinity of the location where distortion was detected, after completion of the initial morphing operation. [0110] By excluding originally bent portions from the object to be checked for detection of distortion, or excluding portions bent through a bending operation, if any, in the process of morphing operation, from the object to be checked, the possibility of giving unnecessary error indications can be reduced, thus making it easier to recognize error indications that should be noted, which would be otherwise embedded in a large number of noise-like error indications.

[0111] Modified Examples In the illustrated embodiment, the computer-aided design system monitors normal vectors in a single curved polygon and normal vectors of different curved polygons, along with a morphing operation by the user, and detects occurrence of distortion based on the angle between the normal vectors or the percentage of change in the angle. Also, the system monitors the curvatures on ridgelines and the curvatures of curved polygons, along with a morphing operation by the user, and detects occurrence of distortion based on the curvatures.

[0112] However, instead of the above-described process executed along

with the morphing operation, it may be determined whether distortion occurs on a three-dimensional model that is already in existence, namely, on a 3-D model that is not subjected to morphing operations. The procedure of the determination process is similar to that of the illustrated embodiment, except that the process is carried out independently of or in isolation from morphing operations.

[0113] FIG. 20 is a view useful for explaining the concept of a process of detecting distortion based on normal vectors during creation of data. The computer-aided design system may calculate normal vectors at a plurality of sample points in a portion to be checked, for example, in curved polygons present in a region delimited by a circle (FIG. 20), and determine whether the angle between each pair of normal vectors is equal to or smaller than a predetermined reference value. The system may also determine whether the curvature of each ridgeline is equal to or smaller than a predetermined reference value.

[0114] FIG. 21 shows the procedure of the process of detecting distortion based on normal vectors during creation of data. In this process, the computer-aided design system draws product data in response to user operations (S80). The system then finishes or completes drawing of the product data (S8l).

[0115] Upon completion of drawing of the product data, the computer-aided design system extracts all of the planes having problems as described above with reference to FIG. 15 through FIG. 18, namely, the planes in which distortion occurs (S82).

[0116] The user then performs an operation to modify or correct the planes extracted in step S82 so as to improve the 3-D model. The computer-aided design system receives the user operation, to implement the modification and improvement of the planes (S83).

[0117] Instead of detecting distortion with respect to the 3-D model as a whole in the above manner, distortion may be detected with respect to each specified unit of work, or each portion of the 3-D model (S91). In this case, the user performs an operation to improve the 3-D model, by modifying the plane or

planes for each unit of work or each portion of the model. The computer-aided design system receives the user operation, and implements the modification and improvement of the plane(s) with respect to each unit of work or each portion of the model (S92). These operations are repeated, and creation of product data is completed (S93).

[0118] Through the process as described above, it is possible to create product data that is free from distortion, such as wrinkles or sags.

[0119] In the illustrated embodiments, the computer-aided design system for use in designing of a three-dimensional model comprised of curved polygons is taken as an example, for explanation of the process of detecting distortion during morphing of the 3-D model or detecting distortion during creation of the 3-D model. However, the three-dimensional model is not limited to the one comprised of curved polygons. For example, a three-dimensional model may be constructed by combining curved surfaces each obtained by rotating a curve, such as a spline curve, a circle, an ellipse, or a curve represented by a polynomial function, about a certain axis of rotation, and/or curved surfaces each in the form of a trail of the above-indicated curve moved in a certain direction, for example. In this case, too, the process of the invention can be implemented. For example, sample points may be set at certain intervals on each of the curved surfaces, and the angle between the normal vectors on adjacent sample points, or a change in the angle, may be monitored. Also, a plane may be formed from a normal vector and a tangent vector of a curved surface in the vicinity of a sample point, and a ridgeline may be formed by projecting the curved surface onto the plane, so that the curvature is monitored according to a procedure similar to that of FIG. 19. [0120] While the invention has been described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the described embodiments or constructions. To the contrary, the invention is intended to cover various modifications and equivalent arrangements. In addition, while the various elements of the exemplary embodiments are shown in

various combinations and configurations, other combinations and configurations, including more, less, or only a single element, are also within the spirit and scope of the invention.