### Solid modeling strategies

Solid modeling programs that use the above mentioned binary (or

boolean) operations are said to use the

constructive solid modeling (or

CSG for short) approach. This was the standard method for early solid modlers (eg.

Cimplex, a program of the late 1980s).

More modern solid modelers tend to use the so-called **feature based approach**, where you do not subtract a cylinder from the main part, you directly direct the system to *create a hole*. This is not just a word game: while the binary operation may indeed result in the creation of a hole, it also requires the creation of an intermediate and unnecessary part (the cylinder); besides, the feature concept is open to enrich the *hole* operation whith details about the hole type (through all, blind, tapered) and shape (non-round, countersunk,...). In a feature based system, for instance, you may request the selection of all the "bosses".

Various technological aspects of solid modelers are used as means of classification.

One of the first dichotomies to emerge in the field, besides the above mentioned CSG/feature based, was the B-rep vs. faceted one.
This has to do with the way a solid modeler represent the elementary portion of surfaces: a faceted modeler approximates it with a plane facet, while a B-rep (boundary representation) modeler uses segments of higher degree surfaces (often NURBS surfaces), which are more precise but more computationally intensive. The diatribe has been solved in favor of B-rep modelers by the speed and power increase of modern computers.

Another (subtler) technological point of contention revolves around the parametric/variational distinction.

**Parametric** solid modelers regard the geometric measurements and constraints (lenghts, angles, tangency requirements, and so on) as a set of parameters that need to be **entirely** specified before the part can be constructed. By way of example, the construction of a quadrangle (four sided planar closed figure) requires 5 parameters - two lengths and three angles. Traditional parametric modelers may also require that the set of constraints is independent.

**Variational** solid modelers, on the other hand,are less unforgiving, and (using an internal ''coupled'' strategy for solving the equations derived from the constraining process) allow the user to build incompletely specified parts.

In both cases, large amount of constraint information is normally inferred a from the *sketching* phase of the construction. This way squareness can be inferred from a sketch that *looks like* it may be square, the 5 parameters ordeal becomes unnecessary.

Though the variational approach looks more flexible and preferable to the parametric one, all important implementation details tend, in general, to tilt the scale in favor of one approach or the other in different products, or even in the same product, given that most vendors normally choose a mixed strategy where elements of variational and parametric techniques are simultaneously present.