Comput. & Graphics Vol. 8, No. 4, pp. 439--447, 1984
0097-8493/84 $3.00 + .00 © 1985 Pergamon Press Ltd.
Printed in the U.S.A.
Glossary/SurveysSection AN INTRODUCTION TO SOLID MODELLING GEORGE ALLEN MeAuto---Cypress, California, U.S.A. Abstract--After some preliminary definitions, we begin by describing some schemes used for representing geometry in state-of-the-art solid modelling systems. Next, we describe some of the construction and editing techniques which might be used to create geometry in such a system. Finally, we discuss the feasibility of some applications in various areas of engineering analysis and NC manufacturing.
I. INTRODUCFION During the last two decades, computer-aided design and manufacturing (CAD/CAM) systems have been used successfully in a variety of industries to improve productivity in drafting and electrical circuit design. In the earliest systems, the stored data were simply the two-dimensional graphical entities which went to make up drawings. More recent systems have attempted to store descriptions of physical objects themselves, rather than drawings of them. This stored description can then be used for many different purposes: engineering drawings and other graphical output can be produced, various forms of analysis can be performed, and numeric control (NC) instructions can be generated for manufacturing. One vital component of this stored description is a geometric model which contains information about the shape of thc object under consideration. The richness and completeness of the geometric model has a profound affect on the capabilitiesof the system. In trying to develop more sophisticated applications algorithms delivering higher levels of automation, it becomes clear that the representations of geometry used in many current systems have some deficiencies, and that better schemes need to be devised. This has led to the development of so-called solid modelling systems. In this paper, we survey the state-of-the-art in solid modelling and discuss its impact on future commercial CAD/CAM systems from the user's point of view. In Section 2 we describe some schemes for representing geometry and their properties. Section 3 is a survey of construction and editing techniques which might be used to input geometry. Finally, Section 4 summarises some of the applications of solid modelling systems in engineering and manufacturing. Applications also exist in entertainment (animation) and medicine, but these are only briefly mentioned in this document.
1.1 Some definitions and terminology The terms geometric modelling and solid modelling mean many different things to different people, so some definitions are in order. For the purposes of this paper, a geometric modelling system is a system which supports the storage and manipulation of descriptions of the geometry of physical objects.
Thus, all contemporary CAD/CAM systems are, to some extent, geometric modelling systems: they all model geometry of one sort or another. What distinguishes solid modelling systems is that they store and manipulate complete, unambiguous descriptions of the geometry of solid objects. These concepts are explained more fully in Section 2. To some people, a solid modelling system is a system which storesobjects as combinations of primitives. As we shall see in Section 2, there are other methods of storinggeometry which are equally viable. Notice also that the definitionssay nothing about the techniques used to input geometry into the system; a wide range of techniques can be provided, some of which arc discussed in Section 3. Finally, it should be emphasised that there is no intrinsicconnection between solid modelling and the production of continuous-tonc shaded displays.These two concepts are often confused, probably because many (but not all) solid modelling systems produce these kinds of displays, and because they appear "solid". As we shall see in Section 4, the production of graphical output is only one of many applications of solid modelling systems.
2. REPRESENTATION SCHEMES AND THEIR PROPERTIES
In this section we first describe two of the most widely used schemes for storing the geometry of objects: boundary representations and constructive sofid geometry (CSG) rel~esentations. Next, we discuss some general properties of representation schemes, namely, geometric coverage, informational completeness, validity and usefulness in applications.
2.1. Representation schemes There are many different schemes for digitally representing the geometry of physical objects; these are described and analysed in great detail in Ref. [32]. Two of the most common schemes are boundary representations and CSG representations. A boundary representation consists of a list of all the faces and edges of an object. Sometimes the vertices of the object are also represented, and the faces, edges and vertices are linked together to form a complex graphlike data structure, such as the "winged edge" structure
439
440
GEORGEALLEN
originally devised by Baumgart [2]. Boundary repre- representations which are necessary to maintain consentations are sometimes known as evaluated, explicit sistency. or surface representations. Contemporary systems employing primarily boundary representations include 2.2 Geometric coverage BUILD [5, l 1], GLIDE [13], ROMULUS [37], DEThe geometric coverage of a representation scheme SIGN [12], EUCLID and MEDUSA. For display characterises the range of objects that can be described purposes, EUCLID, MEDUSA and GDP use a special using the scheme. Current state-of-the-art modelling type of boundary representation scheme in which systems all seem to have roughly the same geometric planar faces only are present; curved surfaces are coverage. The surface types commonly supported are handled by approximating them with networks of planes, cylinders, cones, spheres and toil; support of planar facets. Systems using this type of scheme are free-form "sculptured" surfaces is rather limited at called polyhedral, facetted or tessellated modellers. present. Future systems are likely to provide better Most of the traditional turnkey CAD/CAM systems support of sculptured surfaces, especially where these (UNIGRAPHICS, COMPUTERVISION, CALMA) occur as blends between other surfaces. use three-dimensional "wire frame" models; these It should be emphasized that the geometric coverage are incomplete boundary representations in which of CSG-based systems cannot be compared by simply only edges are present. Sometimes a few surfaces counting the number of primitives they provide. may be represented also, but it is only rarely that the Rather, it is the number of different surface types complete boundary of an object is described. which is important. For example, if a system already In a CSG representation, an object is stored as a supports arbitrarily oriented block primitives, then combination of simple primitives such as blocks and the addition of wedges and pyramids does not allow cylinders. The data are usually arranged in a treelike more objects to be described, although it may make structure in which the leaves are primitives. CSG construction more convenient. This idea is developed representations are sometimes known as unevaluated, further in Section 3. I. implicit, volumetric, combinatorial or constructive Current turnkey systems have rather peculiar georepresentations. Systems that use CSG as their primary metric coverage. On the one hand, many of them representation scheme include PADL-I [39], PADL- can represent extremely complex free-form curves 2 [10], GMSOLID [4], TIPS [30], G D P [42], SYN- and surfaces. However, it is usually the case that all THAVISION [ 18] and UNISOLIDS. but planar faces are restricted to being basically As we shall see later, no one representation is (parametrically) rectangular. Consequently, it is often uniformly best for all applications, so consequently difficult to model faces which have other than four some systems maintain multiple representations. edges, or ones which have interior "holes". Some PADL-I, PADL-2, GMSOLID, G D P and UNISO- examples are shown in Fig. 2. LIDS, for instance, use both boundary and CSG representations. This strategy provides great flexibility 2.3 Informational completeness Wire frame models are sometimes ambiguous. in the design of applications algorithms; a given capability can be implemented using whichever rep- Suppose, for example, that we store the collection of resentation is more appropriate. For example, UNI- lines shown in the centre diagram of Fig. 3, with the SOLIDS uses its boundary representations to produce understanding that these lines form the edges of some simple line drawings, but most of its other algorithms object. Then it is not clear which object is being use only CSG representations. A disadvantage of represented, since there are several objects having the using multiple representations is that problems of given set of lines as edges. Two such objects are conversion and consistency arise. If a change is made shown, the one on the left is a cube with a chamfered in one representation, then a conversion algorithm is hole running through it from top to bottom, and the needed to effect the corresponding changes in other one on the right has a similar hole from front to back. Thus, the wire frame model is an incomplete, ambiguous representation of a physical object: it does not contain enough information to fully define the CONSTRUCTIVE REPRESENTATION (C-REE)
BOUNDARYREPRESENTATION (B-REP}
.4~11111j ~x,NOBdECT / Fig. 1. Representations of objects.
object. Wire frame models arc adequate sources of information for some purposes, such as drafting, but are inadequate for m a n y others, such as hidden line removal or mass property calculations. If a wide range of applications are to be supported, and especially in an open-ended developing system in which the range of future applications is unknown, it is important to use informationally complete representations.
Properly designed boundary representations and CSG representations are both informationally corn-
An introduction to solid modelling
SPHERICAL FACE WITH THREE EDGES
CYLINDER FACE WITH AN INTERIOR HOLE
Fig. 2.
plete. The completeness of boundary representations is sometimes questioned, since they describe only the surface of the "skin" of an object. However, it is intuitively clear to most people that an object is unambiguously defined once its boundary is known, and in fact there are mathematical theorems which support this view [31 ]. 2.4 Validity Figure 4 shows some examples of objects that are invalid in the sense that they cannot be physically realized. If application algorithms such as mass property calculation are applied to invalid models, then the answers will obviously be meaningless. However, if by chance these answers appear reasonable, the user may assume that they are correct and use them as the basis for further decisions, with possibly disastrous consequences. Clearly, then, some means of ensuring validity, integrity, or well-formedness are desirable. Various systems address this issue in various ways. In most current commercial systems, the integrity o~ the model is solely the responsibility of the user: invalid objects are meaant to be detected by examining graphic displays. At the other extreme are CSG-based systems which automatically guarantee validity at all times. The low-level primitives are valid objects, and the boolean operations are regularised so as to preserve validity [34], and hence any boolean combination of primitives is again valid. Most boundary representation systems have adopted a compromise approach. They guarantee the connective (or "topological") integrity of the model, usually by the use of some form of Euler's law [14]. This ensures that there are no faces missing and that no
TOP TO BOTTOM
441
faces or edges are unattached and dangling, as is the case with the "open" object shown at the left in Fig. 4, but will not reveal problems such as the selfintersection shown on the right in Fig. 4. Allowing invalid objects as temporary transition states during interactive construction provides a flexibility which can perhaps be useful at times [22]. However, when construction is complete there should be some way to verify the validity of the model. Furthermore, in a highly automated environment where object definitions are generated by other programs, there may be no graphical displays and no human user to assist in this verification process. Algorithms can be devised which will rigorously check the validity of boundary representations and detect self-intersection problems such as the one shown in Fig. 4, but these require considerable amounts of computation.
2.5 Suitability for applications For any given application, viable algorithms can usually be found which operate either on boundary representations or on CSG representations. This topic is addressed further in Section 4. Neither representation scheme is uniformly better than the other over all applications, but, in general terms, CSG representations have some advantages. The first is that a CSG representation tells us how to break an object up into simpler parts and therefore allows the use of extremely powerful divide-and-conquer algorithms [33]. These algorithms are usually fast, reliable, and relatively easy to develop and maintain. On the other hand, algorithms based on boundary representations alone are often very complex, and tend to suffer from robustness problems: for example, boolean operations on objects with coincident faces are often very unreliable. Second, CSG representations are fundamental in the sense that they can be converted into other types of representations when necessary. For example, CSG representations can be converted into boundary representations [40], but very little is known about the reverse conversion, although a few algorithms have recently appeared [45]. With current technology, boundary representations are necessary for producing rapid displays, and hence any system which incorporates interactive graphics is
FRONT TO BACK
Fig. 3. Wire-frame models are ambiguous---Where is the hole?
442
GEORGEALLEN
3.1 Instantiation of primitives
"OPEN" OBJECT (TOP FACE MISSING ) SELF PENETRATING OBJECT
Fig. 4. Invalid objects. likely to employ boundary representations. The distinguishing feature of systems such as BUILD, GLIDE, ROMULUS, DESIGN, EUCLID and MEDUSA is that they use only boundary representations. On the other hand, systems such as PADL, GMSOLID, GDP, SYNTHAVISION and UNISOLIDS use boundary representations for producing rapid simple displays, but use CSG representations for most other applications. It is dif~cult to say which of these two approaches will prove to be the more fruitful in the long run. Both approaches are being pursued at McAuto: more complete boundary representations are being incorporated into UNIGRAPHICS, and a CSG-based system called UNISOLIDS is also being developed, using PADL-2 as a foundation.
3. CONSTRUCTION AND EDITING TECHNIQUES As we shall see in Section 4, systems which store rich informationally complete geometric models have many advantages. However, such systems will realise their full potential only if we can devise natural and effective techniques for the creation and modification of these models. A well-designed friendly user interface is an essential part of any production computing system. In particular, long experience with UNIGRAPHICS has taught us that tutorial menu-driven systems are preferable to language-driven systems which require the user to memorise command syntax. This section outlines some of the approaches used in the user interfaces of contemporary geometric modelling systems. A common feature of the construction techniques described here is that they are all very economical in the sense that a great deal of change can be effected with very little user input. For example, one boolean operation might do the work of several dozen drafting operations of the type used in traditional CAD systems. For this reason, the types of operations described here offer potentially great productivity gains, even though there may be many periods during which the operator is idle, waiting for an operation to be completed. Users accustomed to the rapid response of traditional systems often find these idle periods frustrating, even though the overall design time may be shorter.
Instantiation of system-supplied primitives was supported in the earliest systems [5] and could by now be considered as a traditional method of creating geometry. The usefulness of this technique obviously depends heavily on the range of primitives that are available and on the number and types of the values that can be specified at the time of instantiation. In a contemporary system, we would expect the basic set of primitives to include arbitrarily orientable blocks, cylinders, cones, spheres and perhaps toil. These might be supplemented with "convenience" primitives such as wedges, fillets and truncated cones. The convenience primitives do not contain any new surface types, which means that they do not extend the range of objects which can be described. On the other hand, they are often very useful, and are usually quite easy for the system developer to implement. Some typical convenience primitives are shown in Fig. 5. More sophisticated systems allow the end user to extend the range of primitives by defining parameterised objects of his own; the "generic object" feature of PADL-2 is one example of this type of capability [10]. A generic cover plate defined in PADL-2 is shown in the right-hand illustration in Fig. 6. The user can employ this new "primitive" in exactly the same way that he uses system-supplied primitives such as the block shown on the left of Fig. 6. 3.2 Sweep operations In a sweep operation, an object known as a generator is moved along a curve called a trajectory in order to "sweep out" a new object. A simple example is shown in Fig. 7: a face representing a cross-section is swept along a linear trajectory in order to create the object. In general, the generator may be a curve (or string of curves), a face or a solid, and the trajectory may be any curve or string of curves. In practice, however, some rather strong restrictions are usually imposed. Usually, the trajectory must be either a straight line or a (circular) arc, and the generator must be a string of lines and arcs or a planar arc having lines and arcs as edges. With these restrictions, the resulting objects will have faces which
TRUNCATED CONE
SPHERICAL CAP
I
FILLET
PIPE
Fig. 5. "Convenience" primitives.
An introduction to solid modelling
443
it
Fig. 8. Rotational sweeping of a string of curves. BI= BLO (x.3, y=2, z=4]
P. PLATE (DIAM.=8, T,0.5, N=8)
Fig. 6. PADL-2 generic objects. User-defined primitives.
are planar, cylindrical, conical, spherical or toroidal. A few "sculptured surface" systems [20, 23] support more general sweeping capabilities. Sweeping is a very natural and convenient input technique, especially if sophisticated curve sketching techniques are provided to help in the creation of the generator. For many objects, the majority of the construction can be performed with just a few simple sweep operations. For example, extruded or projected parts are easily modelled using sweep operations in which the trajectory is a straight line. Also, turned parts can be modelled using rotational sweep operations as shown in Fig. 8. 3.3 Fleshing out of wire frames and projections Since many current users of CAD/CAM systems have extensive archives of wire frame models, it would be of enormous value if some automatic method of "fleshing out" wire frames could be found which did not require user intervention. Algorithms have been developed which will do this for unambiguous planar faced objects [29]. For more general objects, heuristic algorithms will probably emerge which will assist the user by automatically inserting some surfaces. Any missing ones can then be inserted manually, and any mistakes can be rectified. This still places an enormous burden on the human user, but is preferable to trying to insert all surfaces manually. A related problem is that of trying to flesh out collections of 2D orthographic projections, such as those which are found in conventional engineering drawings. Again, algorithms have been developed which can do this automatically in certain cases [43]. 3.4 Boolean operations The well-known set theoretic boolean operations of intersection, union and difference provide a useful method of constructing complex objects from simpler ones. Instantiation or sweeping might be used to
Fig. 7. Translational sweeping of a planar face.
create simple basic shapes, and these would then be combined t~sing sequences of boolean operations. The operations need not be applied in a purely binary manner. For example, it should be possible to apply the union operation to a sequence of objects in one step or subtract several objects from a given object simultaneously. The boolean operations are usually "regularised" in some way [34] to guarantee that valid input will always produce valid output; this prevents the creation of unrealistic features such as dangling faces and edges. Experience so far seems to indicate that booleans are a very natural construction technique, and user acceptance has been good. In particular, the boolean operation of subtraction seems very natural to people with experience in material removal processes. In many cases the object being subtracted can be thought of as the volume swept out by a cutting tool such as a mill or a drill. Similarly, the union operation is analogous to bonding processes such as gluing and welding (at least in cases in which the original objec,ts do not overlap). There does not seem to be any such everyday analog of the intersection operation. This may explain why intersection is so seldom used in practice, even in situations in which it would in fact provide the simplest method of performing a given construction.
3.5 Automated filleting and chamfering Fillets and chamfers are sometimes represented merely as notes on an engineering drawing or as attributes of edges and vertices in a geometric model. Under certain circumstances, however, their geometry is significant, and has to be modelled more completely. It is possible to provide highly automated functions for the construction of fillets and chamfers, though these may only be applicable in simple situations. At present, BUILD seems to be the only system in which such functions have actually been implemented. Linear edges can often be filleted fairly easily: if the user identifies the edge and specifies a fillet radius, then the system can create a cylindrical face and its four edges and can automatically modify all adjoining faces and edges, as shown in Fig. 9. Algorithms for doing this are described in Ref. [7]. As an extension, a whole network of linear edges can sometimes be blended simultaneously by the creation of cylindrical, spherical and toroidal faces, as shown in Fig. 10. Similar functions can be devised for chamfering. The algorithms are very similar, but only planar faces need to be created. In situations in which many edges meet at a vertex, or when some of the faces involved
444
GEORGE ALLEN
Fig. 9. Automated filleting. Fig. 11. Upper surfaces of base plate tweaked upwards. are nonplanar, blending problems become much more difficult, though they may still be solvable using recursive subdivision techniques [38]. 3.6 Tweaking Tweaking is an editing operation in which a face of an object is moved (or "tweaked") in some way; the tweaked face and the faces adjacent to it are then adjusted so as to maintain the integrity of the object. Probably the best way to perform this adjustment is to recompute the intersection of the tweaked face and the faces adjacent to it; the intersection curves become the new common boundaries. In the illustration shown in Fig. 11, the two upper faces of the base of the object have been tweaked upwards slightly. This has resulted in modifications to almost every face on the object. Tweaking is currently implemented in the BUILD system, and may well appear in future in other systems with a similar heritage, such as ROMULUS and DESIGN. A possible drawback of tweaking is that it can easily lead to the formation of invalid "nonsense" objects in systems which use boundary representations. In systems which use CSG representations, tweaking is somewhat inappropriate and awkward to implement, since it is essentially a faceoriented operation [15]. There is a danger that the behaviour of the part during tweaking will be unpredictable, since it will depend on how it was constructed. This is illustrated in Fig. 12. 3.7 Interaction techniques When performing operations on a geometric model, the various entities which are to be the operands could conceivably be indicated either by entering their names or by pointing to them on a graphical display.
Fig. 10. Blending a network of edges.
If any selection is to be performed by naming, then obviously some scheme is needed whereby either the user or the system can assign names to entities in the first place. Moreover, no matter how rational and meaningful a naming scheme we devise, the user may still need help in correlating names with the features he sees on the graphics display. One technique is to provide a function which labels entities with their names on the graphics display, so that the user can read and type in the names of those entities he wishes to select. This is a rather roundabout procedure, and the displays generated are often cluttered and difficult to read; simply pointing at the entities would seem to be preferable. Selection by pointing also presents some problems. In particular, when pointing at entities in an hierarchical structure, it may not be clear exactly what is being selected. For example, if the user points to an edge of an object in an assembly, there is often no way of knowing whether the edge, the object or the whole assembly is to be operated upon, though sometimes the intention can be inferred from the context. There are several techniques available for the entry of geometric information such as locations, lengths and orientations. The first and most obvious method is to simply type in numerical data. Thus, locations would be indicated by typing in coordinates, and orientations would be specified by entering rotation angles. User-definable local coordinate systems (both cartesian and polar) may be supported to simplify the process. Nevertheless, in order to employ this technique, the user may still have to do extensive preparatory work in the form of sketching and numerical computations. The easiest way to enter geometric data is by referencing features of the existing
PART FORMED BY SUBTRACTION
TWEAK OPERATION
R
PART FORMED AS A UNION
TWEAK OPERATION
RESUL'I
Fig. 12. Tweaking in CSG-based systems.
An introduction to sofid modelling model. For example, a location would be specified by pointing at an existing vertex, or the diameter of an existing cylinder might be used during the creation of a new one. 4. APPLICATIONS The ability to merely create, store and manipulate geometric models is of little practical value by itself. The real benefits of modelling systems lie in the capabilities provided by applications algorithms which make use of these stored descriptions. In this section we discuss some applications of geometric modelling systems in engineering and manufacturing. Most of the applications discussed are already addressed in various academic and research systems and are likely to appear in commercial production systems during the next few years. In each case, we try to give some estimate of the difficulties involved in designing and implementing the necessary algorithms.
4.1 Graphic displays Some common forms of graphical output are simple line drawings, sophisticated line drawings with hidden lines removed and shaded displays. Many current systems can generate line drawings with various forms of hidden line removal. Systems which use boundary representations can produce simple line drawings very quickly; the few systems which maintain only CSG representations are somewhat slower, since extensive calculations arc required [18, 40]. On the other hand, shaded displays seem to be easier to produce from CSG representations, using "ray casting" techniques [33]. High-quality graphical output is important for a number of reasons. First, during interactive design, graphical displays help the user understand the shape and structure of his part, and hence how it will perform. To be useful in this way, displays must be produced fairly rapidly, otherwise the interactivity of the system is impaired. Consquently, for this purpose, simple line drawings are probably the most appropriate form of graphical output, possibly with the addition of such enhancements as depth cueing, perspectives, dynamic rotation and local hidden line removal. Producing more lifelike graphical output such as shaded displays and line drawings with full hidden line removal is very time-consuming on standard hardware, so these types of displays are less appropriate for interactive work. On the other hand, for people involved in fields such as technical illustration, graphic arts or animation, the graphical output is the end product. The realism of the image is often of vital importance, and longer computation times can be tolerated, so capabilities such as shading and full hidden line removal are appropriate. 4.2 Mass property calculations Calculation of mass properties such as volume, centre of mass or moments of inertia is possible using
445
either boundary or CSG representations. When using boundary representations, one popular approach is to appeal to Gauss's theorem, which allows the various mass properties to be expressed in terms of surface integrals over the faces of the object [5, 36]. When using CSG representations, the usual technique is to decompose the object into simple "cells" such as slabs, columns or cubes. The mass properties of all of the cells are easily computed, and these are then summed to obtain the corresponding properties of the original object [25]. These algorithms also have the virtue of producing statistical error estimates. Refinements to current algorithms can be expected which will improve speed [35]. 4.3 Interference and collision problems A few existing systems have functions for automatic detection of interference in static assemblies. Detection of interference in moving parts is considerably more complicated, though some work has been done in this area [3, 42]. The problem of planning and generating collision-free trajectories is more difficult still [28]. In the case of one of the moving parts being a cutting tool or a robot, the collision detection problem is closely related to NC verification, and trajectory planning is similar to the problem of producing NC instructions. 4.4 Verification of NC instructions A thorough discussion of NC verification problems can be found in Ref. [41]. A grossly simplified account follows. Suppose we have a model of a part, an NC tool path, and a model of the blank material from which the part is to be cut. Using the data in the NC tool path, we can construct a model of the volume swept out by the cutting tool. Subtracting this volume from the stock gives us a model of the object that the tool path will produce. If we compare this object with the original part model, as designed, then we can verify that the tool path is correct. We can also verify that the volume swept out by each tool motion does not interfere with any clamps or fixtures, but does intersect the workpiece, so that the tool is not "cutting air". The algorithms require the ability to perform boolean operations with a high degree of reliability, and hence are most easily implemented in systems which employ CSG representations. If three-axis or five-axis motions are involved, then the volumes swept out by a cutting tool may include some complex shapes which are very difficult to handle. Therefore, most systems will require some improvements in their geometric coverage before verification of multiaxis tool paths can be fully addressed. Note that the verification process described above involves no human intervention whatsoever, it is completely automatic. This is in sharp contrast with the situation in most current systems, in which a human user tries to detect errors by examining the display of tool paths on a CRT or a plotter.
446
GEORGE ALLEN
In one contemporary system [17], a compromise approach has been adopted. This system cannot perform completely automatic verification, but it detects problem areas and highlights them on a colour raster display. This makes the task of visual verification very much easier for the user. 4.5 Some other applications Other applications currently being studied include generation of N C instructions [1, 21], assignment of part classification codes [24] and generation of finite element meshes [46]. In principle, all of these can be accomplished completely automatically without human intervention, although subsequent manual fine tuning of the results may be desirable. However, the systems which exist at present are rather limited, and a great deal of further research remains to be done.
REFERENCES
1. G. T. Armstrong, M. S. Bloor, A. de Pennington and J. S. Swift, "PADL--A constructive solid geometry based geometric modeller, in Geometric Modelling Seminar (Edited by W. A. Carter) CAM-I document P-80GM-01 (November 1979). 2. B. Baumgart, Winged edge polyhedron representation. AIM-79, STAN-CS-320, Stanford University (1972). 3. J. W. Boyse, Interference detection among solids and surfaces. Commun. ACM 22, 3-9 (1979). 4. J. W. Boyse and J. M. Rosen, GMSolid: Interactive modeling for design and analysis of solids. 1EEE Comp. Gr. & Applications 2:2, 27-40 (March 1982). 5. I. C. Braid, Designing with volumes. Ph.D. thesis, University of Cambridge, Cambridge, England (1973). 6. I. C. Braid, R. C. Hillyard, and I. A. Stroud, Stepwise construction of potyhedra. CAD Group Document 100, University of Cambridge, Cambridge, England (1978). 7. I. C. Braid and T. C. Woo, Course notes on geometric modelling. University of Michigan, Ann Arbor (August 1980). 8. C. M. Brown, Structured interactive design: A goal for CAD systems. Proc. 1981 National Computer Graphics Association Conference, 331-343 (June 198 l). 9. C. M. Brown, Special purpose computer hardware for mechanical design systems. Proc. 1981 National Computer Graphics Conference, 331-343 (June 198 I). 10. C. M. Brown, PADL-2: A technical summary. IEEE Comp. Gr. & Applications 2:2, 69-84 (March 1982). 11. C. A. G. Cary, Build users' guide. CAD Group Document No. 102, University of Cambridge, Cambridge, England (May 1980). 12. D. L. Dewhirst and R. C. Hillyard, Application of volumetric modelling to mechanical design and analysis. Proc. 18th Design Automation Conference, 171-178 (June 1981). 13. C. M. Eastman and M. Henrion, GLIDE: A language for design information systems. ACM Computer Graphics 11:2, 24-33 (July 1977). 14. C. M. Eastman and K. Weiler, Geometric modelling using the Euler operators. Proc. 1st Ann. Conf. on Computer Graphics in CAD/CAM Systems, 248-259 (April 1979). 15. W. B. Fisher, A study of basic issues underlying the design of interactive graphic input facilities for geometric modeling systems. M.S. thesis, University of Rochester, Rochester, N.Y. (1979). 16. W. Fitzgerald, F. Gracer and R. Wolfe, GRIN: Interactive graphics for modeling solids. IBM J. Res. & Develop. 25:4, 281-294 (July 1981).
17. R. Fridshal, K. P. Cheng, D. Duncan and W. Zucker, Numerical control part program verification system. Proc. Conf. on CAD/CAM Technology in Mechanical Engineering, 236-254 (March 1982). 18. R. Goldstein and L. Malin, 3D modelling with the synthavision system. Proc. 1st Ann. Conf. on Computer Graphics in CAD/CAM Systems, 244-247 (April 1979). 19. R. Goldstein, Defining the bounding edges of a Synthavision solid model. Proc. 18th Design Automation Conf., 457-461 (June 1981). 20. T. H. Gossling, The DUCT system for design of practical objects. Proc. World Congress on the Theory of Machines and Mechanisms (1976). 21. A. R. Grayer, The automatic production of machined components starting from a stored geometric description, in Advances in Computer-Aided Manu/acture (Edited by D. McPherson). North-Holland, Amsterdam (1977). 22. A. R. Grayer, Alternative approaches in geometric modelling, Computer Aided Design, 12:4, 189-192 (July 1980). 23. J. K. Hinds and L. P. Kuan, Surfaces designed by curve transformations. Proc 15th Numerical Control Society Annual Meeting, 325-340 (April 1978). 24. L. Kyprianou, Shape classification in computer-aided design. Ph.D. dissertation, University of Cambridge, Cambridge, England (1980). 25. Y. T. Lee and A. A. G. Requicha, Algorithms for computing the volume and other integral properties of solid objects. Tech. Memo. No. 35a, Production Automation Project, University of Rochester, Rochester, N.Y. (February 1980). (A revised version of this report appeared in Commun. ACM in 1982.) 26. J. P. Lerro, CAD/CAM system: Capabilities are now extended to include solids. Design News (November 1981). 27. T. C. Lim, Derivation of CSG definitions from a 2-D outline. GM/PADL:2.5D, University of Leeds, Leeds, England (1980). 28. T. Lozano-Perez and M. A. Wesley, An algorithm for planning collision-free paths among polyhedral obstacles. Commun. ACM 22, 260-270 (1979). 29. G. Markowsky and M. A. Wesley, Fleshing out wireframes. IBM J. Res. Develop. 24:5, 582-597 (September 1980). 30. N. Okino, Y. Kakazu and H. Kubo, TIPS-l: Technical information processing system for computer-aided design, drawing, and manufacturing, in Computer Language for Numerical Control (Edited by J. Hatvany). NorthHolland, Amsterdam (1973). 31. A. A. G. Requicha, Mathematical models of rigid solid objects. Tech. Memo 28, Production Automation Project, University of Rochester, Rochester, N.Y. (November 1977). 32. A. A. G. Requicha, Representations for rigid solids: Theory, methods, and systems. ACM Computing Surveys, 12:4, 437-464 (December 1980). 33. S. D. Roth, Ray casting as a method for solid modelling. Research Publication GMR-3466, Computer Science Dept., General Motors Research Laboratories (October 1980). 34. R. B. Tilove and A. A. G. Requicha, Closure of boolean operations on geometric entities. Computer Aided Deisgn 12:5, 219-220 (September 1980). 35. R. B. Tilove, Exploiting spatial and structural locality in geometric modelling. Tech. Memo. No. 38, Production Automation Project, University of Rochester, Rochester, N.Y. (1981). 36. H. G. Timmer and J. M. Stem, Computation of global geometric properties of solid objects. Computer Aided Design 12:6, 301-304 (November 1980). 37. P. Veenman, ROMULUS--The design of a geometric modeller, in Geometric Modelling Seminar (Edited by
An introduction to solid modelling
38.
39.
40.
41.
W. A. Carter). CAM-I document P-80-GM-01 (November 1979). P. Veenman, The design of sculptured surfaces using recursive subdivision techniques. Proc. Cont~ on CAD/ CAM Technology in Mechanical Engineering, 54-63 (March 1982). H. B. Voelcker et al,, The PADL-I.0/2 system for defining and displaying solid objects. A C M Computer Graphics 12:3, 257-263 (August 1978). H. B. Voelcker et al., Boundary evaluation procedures for objects defined via constructive solid geometry. Tech. Memo. 26, Production Automation Project, University of Rochester, Rochester, N.Y. (1980). H. B. Voelcker and W. A. Hunt, An exploratory study of automatic verification of programs for numerically controlled machine tools. Tech. Memo. 34, Production
42.
43. 44. 45. 46.
447
Automation Project, University of Rochester, Rochester, N.Y. (1982). M. A. Wesley, T. Lozano-Perez, L. I. Lieberman, M. A. Lavin and D. D. Grossman, A geometric modeling system for automated mechanical assembly. I B M J. Res. & Develop. 24:1, 64-74 (January 1980). M. A. Wesley, Fleshing out projections. I B M J. Res. & Develop. 25:6, 934-954 (November 1981). R. Wolfe, W. Fitzgerald and F. Gracer, Interactive graphics for volume modeling, Proc. 18th Design Automation Conference, 463=-470 (June 1981). T. C. Woo, Feature extraction by volume decomposition. Proc. Conf. on CAD/CAM Technology in Mechanical Engineering, 76-94 (March 1982). B. Wordenweber, Volume triangulation. CAD Group Document No. 110, University of Cambridge, Cambridge, England (1980).