Varkon Geometry Tutorial: Conic Lofting Surface 2006-03-25

Conic Lofting Surface

Please refer to the Varkon Users Manual for a description of the "Conic lofing surface" as generated using the SUR_CONIC() function.

When defining a conic lofting surface start with as few limit/tangent curves as possible. Add curves and/or segments only as required to get the required shape and quality of the surface.

It is recommended to use “constant tangent angle” curves as input to the surface. Top, bottom, and maximum width curves (terminology from the aircraft industry) are examples of such curves. These are curves where the tangent curve can be defined as a translated limit curve.

These curves will become silhouette curves in the surface. Such “reflection” curves define the quality of a surface, and it makes sense to smooth these limit curves as individual curves in a separate pre-step to the surface creation. Note that it may be a waist of time to smooth “not-constant tangent angle” as individual curves. It is the combination of limit and tangent curves that define the "reflection lines" quality of the surface.

Use CUR_CONIC curves for all spine, limit, and tangent curves. The CUR_SPLINE curve type should not be used since it easily oscillates and would need many, very well defined points in order to get a high quality curve. Such well-defined points cannot be defined manually (interactively). Smoothing functions are needed in order to be able to use splines as input to surfaces and the Varkon CUR_SPLINE functions do not contain such smoothing enhancements.

For all bicubic curve and surface definitions the user should generally favor use of P-value curves instead of midpoint curves to control any curve or surface. They are easier to alter when the shape and quality of the surface requires adjustment. The P-value curve, which contains only x and y coordinate values, must always be defined using MODE_BASIC(). The x-coordinate value corresponds to the distance along the spine axis and the y-coordinate value corresponds to the desired P-value. The length of the P-Value curve must match the total length of the lofting surface spine curve. The limit and tangent curves must extend to (or beyond) normal lines projected from the ends of the spine.

The number patches in the V direction for the surface will be the number of limit curves minus one (1).

The input curves (all of them) also define the number of U patches. For each curve segment a U patch boundary will be created. It is recommended to create as few U patches as possible. This is achieved if the spine only have one segment and all limit, tangent and mid-curve (or P-value) segments starts and end at the same X values (assuming that the spine is parallel to the X axis). Please however note that there is no advantage to have input curves with the same number of segments. For the spine and often also for P-value curves it is often sufficient to use one segment curves.

Prior to attempting to create curve intersections (using the CUR_INT() function) against a conic lofting surface, it is recommended that the surface be converted to a bicubic surface using the SUR_APPROX() with a “CUB_SUR” surface type.

An intersect calculation is based on calculations of coordinates and derivatives with respect to the surface parameters U and V. The calculation of these derivatives is very fast for CUB_SUR surfaces and rather time-consuming for LFT_SUR surfaces. For a good approximation should one (1) LFT_SUR patch be converted to 16 - 25 CUB_SUR patches, but this number of patches is of course dependent on the surface shape.

For the quality analysis silhouette curves (CUR_SIL) can be used. Curvature analysis should also be made. Please refer to Quality Analysis of Surfaces.

Special for LFT_SUR should also the iso-parameter curves be analyzed. For other surface types it may make no sense analyzing these curves. Also for high quality surfaces they may oscillate and be discontinuous.

For LFT_SUR surfaces the constant U curves are planar section curves. The constant V curves should be smooth for a high quality surface.

Sample documentation

Sample code