Mathematica 9 is now available

Wolfram Library Archive

Courseware Demos MathSource Technical Notes
All Collections Articles Books Conference Proceedings
Title Downloads

Computation of Self-Intersection of Surfaces with Rational Parametrization in Mathematica

Bohumír Bastl

2006 Wolfram Technology Conference
Conference location

Champaign IL

The research into surface self-intersection is motivated by the need to indicate problems caused by it, especially in mechanical engineering and milling. The path of the cutter has to be planned on an offset surface (in the case of 5-axis milling where a cutter can do not only translation movement but also rotational movement around two different axis, i.e. it is always possible to move and rotate a milling machine in such a way that the normalized direction vector of a milling machine axis and the normalized normal vector of the desired surface in a given contact point of the milling machine with the desired surface are identical) or a general offset surface (in case of 3-axis milling where a cutter is able to do only translation movement, not rotational) of the surface which should be machined. However, the offset surface (and, of course, also the general offset surface, but it is less surprising) can have different properties with respect to surface self-intersection - it can even have self-intersection, although the original surface has no self-intersection. The self-intersection of the offset surface (or general offset surface) causes "undercut" during the milling process, i.e. the milling machine cuts away more material than it should and this causes irreversible damage to the material used for milling. For this reason, it is desirable to decide automatically if the offset surface (or general offset surfaces) has self-intersection or not. Therefore, the main objective of this talk is to present implementation of the symbolic-numeric algorithm for the computation of self-intersection of surfaces with rational parametrization in Mathematica. The algorithm consists of several steps: 1. Elimination of variables from an initial system of equations where variable elimination methods are used (Groebner bases using the built-in function in Mathematica, or Dixon (or Dixon dialytic resultant) using the own implemented package for computation of various types of resultants developed in Mathematica); 2. Computation of start points on all components of the polynomial in two variables (variables are, in fact, parameters of the surface parametrization) which was obtained in the first step of the algorithm and which generally represents a plane curve; 3. Finding singular points of the plane curve because they can cause serious problems in the last step of the algorithm; 4. Removing improper components of the plane curve, i.e. components of the plane curve which do not correspond to real surface self-intersection; 5. Tracing, i.e. computation of sequences of points on each component using the component splitting in the parametric domain and local geometry of the plane curve. Thus, the output from the algorithm are sequences of points in the parametric domain of the parametric surface which can be either established into surface parametrization to display surface self-intersection or approximated to obtain parametric representation of self-intersection curves or anything else we need. The algorithm will be demonstrated on several examples. The first example contains computation of the surface self-intersection for typical surface used in CAGD - bicubic NURBS surface. The second example is devoted to practical example of a possible usage of the algorithm. We have a surface S which should be machined using the cutter E in 3-axis milling (of course, E is a surface of revolution obtained as an envelope of rotational movement of the cutter around its axis). Both these surfaces are given by rational parametric equations. As it was mentioned above, we must compute general offset surface a for S with respect to E (as a convolution surface a = S * (-E) ) to find possible locations of the reference point chosen on the cutter axis during the milling. Then the self-intersection of the surface a is computed to indicate the undercut during the milling - if there is no self-intersection of a, then the milling is without undercut. Otherwise, general offset surface contains self-intersection which causes undercut during the milling of surface S using the cutter E.

*Mathematica Technology > Programming > 3D Graphics

Download (3.2 MB) - ZIP archive