Curves and Surfaces from Constraints

##

The Curves and Surfaces from Constraints component groups together high level functions used in 2D and 3D geometry for:

- creating faired and minimal variation 2D curves

- construction of ruled surfaces

- construction of pipe surfaces

- filling surfaces

- construction of plate surfaces

- extension of a 3D curve or surface beyond its original bounds.

2D Curves from constraints

Elastic beam curves have their origin in traditional methods of modeling such as those in boat-building, where a long thin piece of wood, a lathe, was forced to pass between two sets of nails and in this way, take the form of a curve based on the two points, the directions of the forces applied at those points, and the properties of the wooden lathe itself.

Maintaining these constraints requires both longitudinal and transversal forces to be applied to the beam in order to compensate for its internal elasticity. The longitudinal forces can be a push or a pull and the beam may or may not be allowed to slide over these fixed points.

The class Batten produces curves defined on the basis of one or more constraints on each of the two reference points. These include point and angle of tangency settings. The class MinimalVariation produces curves with minimal variation in curvature. The exact degree of variation is provided by curvature settings.

Ruled Surfaces

A ruled surface is built by ruling a line along the length of two curves.

Pipe Surfaces

A pipe is built by sweeping a curve (the section) along another curve (the path).

The following types of construction are available:

- pipes with a circular section of constant radius,

- pipes with a constant section,

- pipes with a section evolving between two given curves.

Surface filling

It is often convenient to create a surface from two or more curves which will form the boundaries that define the new surface.

A case in point is the intersection of two fillets at a corner. If the radius of the fillet on one edge is different from that of the fillet on another, it becomes impossible to sew together all the edges of the resulting surfaces. This leaves a gap in the overall surface of the object which you are constructing.

Intersecting filleted edges with differing radii

These algorithms allow you to fill this gap from two, three or four curves. This can be done with or without constraints, and the resulting surface will be either a Bezier or a BSpline surface in one of a range of filling styles.

This package was designed with a view to handling gaps produced during fillet construction. Satisfactory results cannot be guaranteed for other uses.

Plate surfaces

In CAD, it is often necessary to generate a surface which has no exact mathematical definition, but which is defined by respective constraints. These can be of a mathematical, a technical or an aesthetic order.

Essentially, a plate surface is constructed by deforming a surface so that it conforms to a given number of curve or point constraints. In the figure below, you can see four segments of the outline of the plane, and a point which have been used as the curve constraints and the point constraint respectively. The resulting surface can be converted into a BSpline surface by using the function MakeApprox.

The surface is built using a variational spline algorithm. It uses the principle of deformation of a thin plate by localised mechanical forces. If not already given in the input, an initial surface is calculated. This corresponds to the plate prior to deformation. Then, the algorithm is called to calculate the final surface. It looks for a solution satisfying constraints and minimizing energy input.

A surface generated from four curves and a point.

A surface generated from two curves and a point.

Extension of a 3D curve or surface beyond its original bounds

The extension is performed according to a geometric requirement and a continuity constraint. It should be a small extension with respect to the size of the original curve or surface.