Today's computer aided design (CAD) systems are used for a variety of applications, such as mechanical or electronic engineering. A common characteristic of all of these applications is that parts, whether mechanical, electronic or of whatever kind, are designed in interactive mode. That is, the part--as far as already designed--is displayed on a screen (e.g. as two-dimensional, or as perspective view) such as a CRT (cathode ray tube) or an LCD (liquid crystal display). The user enters commands via appropriate input means, preferably a computer mouse, a graphics tablet or a light pen, in order to complement or modify the existing structure. When the editing process is finished, i.e., the part is defined, it may be plotted or otherwise be reproduced. It is also possible to generate punch or magnetic tapes which then directly control a numerically controlled machine tool, in order to manufacture a physical representation of the object.
It is understood that it is quite easy to generate or modify parts (or their contour) of simple geometry, such as straight lines, circles, arcs, cylinders, spheres and the like, as these can be expressed and calculated in simple mathematical terms and equations. However, the task becomes more complicated for surfaces and boundary lines which cannot easily be expressed in analytical mathematical terms, but should still intentionally be smooth curves. A well-known example of this kind is the body of a vessel.
Therefore, in a variety of applications, it has become common practice to use a low-degree polynomial function (in some cases, even functions of other types, such as exponential or trigonometric functions) to describe non-regular contours of a physical object. A well-known function of this type is the B-Spline which approximates a non-regular contour. The contour or curve is derived from a control polygon (a piecewise linear function associated with the B-Spline) by means of a matrix multiplication of the control points (corner points of the control polygon) with the so-called basic functions of the B-Spline.
This will be illustrated now in more detailed manner. As an example, the B-Spline approximation has been chosen. However, it has to be noted that this selection has only been made for convenience; the present invention may be applied to other approximation techniques (e.g., the Bezier or Hermite form) as well.
In general, a B-Spline can be denoted in parametric terms as follows: ##EQU1## wherein Q(t) denotes the curve (contour of the B-Spline)), the B.sub.i (t) are the basic functions of the B-Spline (rational or non-rational), and the P.sub.i are the control points of the control polygon. As the Spline curve is usually a graph in two- or three-dimensional space, the above equation is a vector equation; the vectors are denoted as bold characters herein. "i" is an index running over all control points and basic functions.
In a more general case, the geometric object is a surface in space, approximated by a B-Spline surface of the notation ##EQU2## with u,v as (independent) parameters, the basic functions M.sub.i (u) and N.sub.i (v), the control points P.sub.ij and the indices "i" and "j".
There are basically two ways of defining a B-Spline curve or surface. The first is to define the control points P.sub.i of the control polygon; the B-Spline curve. is then calculated from the control points according to the above equation. This way requires only few programming efforts and computing power; however, as the curve or surface is generated indirectly, the user does not have full control over the final geometry, such that several iterations may be necessary until the desired curve or surface is designed.
The second way is based on the definition of interpolation points which are located on the function (B Spline curve or surface). The B-Spline is then generated by interpolation of several B-Spline profiles. It is understood that this way is more convenient to the user, but requires higher programming effort and more computational power.
A common problem in either of these cases is the modification of already defined ("existing") B-Spline curves or surfaces (this applies also to other functions representing a geometric object). The prior art provides two solutions to this problem:
a) In case the Spline curve or surface was generated via the control points of the associated control polygon, single control points can be moved. The Spline is then rebuilt on the basis of the modified control polygon. PA1 This kind of modification operates in quite indirect manner, i.e., the user cannot exactly predict what will happen with the curve or surface when a control point is shifted. In order words, the modified Spline will seldom meet his expectations, such that further iterations are necessary. Needless to say that this process is very time-consuming. PA1 b) In case the Spline curve or surface was generated via interpolation of multiple Splines, it is possible to access interpolation points, or Spline profiles, directly and shift them to another location. PA1 This process provides better control for the user, i.e., the modified Spline will meet his expectations better than in case a). However, this technique has other disadvantages. PA1 The most serious drawback is that the modification of the Spline is not locally restricted. I.e., a modification will result in a modification of the whole Spline, instead of only a local region thereof. This effect is usually not desired. Likewise, the modified Spline will oscillate around the interpolation points. PA1 Further, access is only possible to the interpolation points, but not to other points of the curve or surface. This limits the user's choices to modify the Spline. PA1 identifying at least one point of origin on the geometric object, PA1 identifying a target point for replacing the point of origin, PA1 transforming the shift of the point of origin to the target point into an at least local or regional shift or modification of the at least piecewise polynomial function, PA1 defining a modified geometric object as a function of the modified piecewise polynomial function. PA1 The selected point on the unmodified, and/or the modified, geometric object (or the Splines representing them); and/or PA1 the Spline functions themselves; and/or PA1 the parameter value of the selected point(s) of the unmodified, and/or the modified, geometric object (or the Splines representing them); and/or PA1 form or contour parameters arbitrarily selectable by the user, such form or contour-parameters defining the shape, and the local extent, of Spline modification.
The disadvantages and effects of the prior art techniques for Spline modification will be illustrated, and discussed further, in the detailed description.
Consequently, there is a need for an improved modification technique which avoids the disadvantages encountered with the prior art modification techniques, either partially or completely.