loft
Creates a sheet between curves.
Signatures
- loft( curve[] profiles )
- loft( curve[] profiles, bool orthBegin, bool orthoEnd )
- loft( curve[] profiles, bool orthBegin, vector vecEnd )
- loft( curve[] profiles, vector vecBegin, bool orthoEnd )
- loft( curve[] profiles, vector vecBegin, vector vecEnd )
Details
The loft function generates a sheet that smoothly transitions between a series of profile curves. These profiles define the cross-sectional shapes that the loft will pass through, creating a continuous surface. The function can be used to create complex shapes that are difficult to define with a single extrusion or revolution.
The profiles should be arranged in the order they are to be connected, and they should not intersect each other. The loft will interpolate between these profiles to create the final shape.
Example
curve square = <[-2.0, -2.0]> -> <[2.0, -2.0]> -> <[2.0, 2.0]> -> <[-2.0, 2.0]> -><-
curve circle = <[1.5, 0.0, 4.0]> -> arc( <[0.0, 0.0, 4.0]>, 2PI ) -><-
sheet lidBottom = min_surf( square )
sheet lidTop = min_surf( circle )
sheet coat = loft( [ square, circle ] )
make sheets_to_solid( [ lidBottom, lidTop, coat ] )
The optional vector parameters vecBegin and vecEnd can be used to control the direction of the surface at the start and end profiles, respectively. Alternatively, if orthBegin or orthEnd is set to 'true', the corresponding end of the loft will be perpendicular to the first or last profile curve. The effect of the different combination of these parameters can be seen in the following figure:
The profile curve do not need to reside on parallel planes:
Example
curve square = <[-25, -25, 0]> -> <[ 25, -25, 0]> -> <[25, 25, 0]> -> <[-25, 25, 0]> -><-
curve triangle = translation( <[0,-25,40]> ) >>
rotation( <[1,0,0]>, rad( 45.0 ) ) >>
( <[-20, -15, 0]> -> <[20, -15, 0]> -> <[0, 25, 0]> -><- )
curve circle = translation( <[0,-50,50]> ) >>
rotation( <[1, 0, 0]>, rad( 90.0 ) ) >>
( <[20.0, 0.0]> -> arc( <[0.0, 0.0]>, 2PI ) )
sheet coat = loft( [ square, triangle, circle ], false, true )
make sheets_to_solid( [ coat ] )
The resolution of the curved areas can, as usual, be tuned by the tesselation parameter gamma.
Note
The quality of the loft depends on the compatibility of the profiles. Profiles with significantly different shapes or numbers of vertices may result in a less smooth transition.
Return value
A sheet object that connects the curves in a smooth transition, forming a continuous surface.
Parameters
- profiles
-
A list of curves the loft is constructed inbetween.
- orthBegin
-
Defines whether the loft shape angle at the first profile is orthogonal (value 'true') or determined by the total loft shape ('false'). Default value is 'false'.
- orthEnd
-
Defines whether the loft shape angle at the last profile is orthogonal (value 'true') or determined by the total loft shape ('false'). Default value is 'false'.
- vecBegin
-
Determines an angle vector of the loft shape at the first profile.
- vecEnd
-
Determines an angle vector of the loft shape at the last profile.