updates updates updates updates updates updates better updates array of updates updates updates updates Signed-off-by: Jess Frazelle <github@jessfraz.com>
		
			
				
	
	
	
		
			499 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			499 KiB
		
	
	
	
	
	
	
	
title, excerpt, layout
| title | excerpt | layout | 
|---|---|---|
| loft | Create a 3D surface or solid by interpolating between two or more sketches. | manual | 
Create a 3D surface or solid by interpolating between two or more sketches.
The sketches need to closed and on the same plane.
loft(sketches: [Sketch], data?: LoftData) -> Solid
Arguments
| Name | Type | Description | Required | 
|---|---|---|---|
sketches | 
[Sketch] | 
Yes | |
data | 
LoftData | 
Data for a loft. | No | 
Returns
Solid - An solid is a collection of extrude surfaces.
Examples
// Loft a square and a triangle.
const squareSketch = startSketchOn('XY')
  |> startProfileAt([-100, 200], %)
  |> line([200, 0], %)
  |> line([0, -200], %)
  |> line([-200, 0], %)
  |> lineTo([profileStartX(%), profileStartY(%)], %)
  |> close(%)
const triangleSketch = startSketchOn(offsetPlane('XY', 75))
  |> startProfileAt([0, 125], %)
  |> line([-15, -30], %)
  |> line([30, 0], %)
  |> lineTo([profileStartX(%), profileStartY(%)], %)
  |> close(%)
loft([squareSketch, triangleSketch])
// Loft a square, a circle, and another circle.
const squareSketch = startSketchOn('XY')
  |> startProfileAt([-100, 200], %)
  |> line([200, 0], %)
  |> line([0, -200], %)
  |> line([-200, 0], %)
  |> lineTo([profileStartX(%), profileStartY(%)], %)
  |> close(%)
const circleSketch0 = startSketchOn(offsetPlane('XY', 75))
  |> circle({ center: [0, 100], radius: 50 }, %)
const circleSketch1 = startSketchOn(offsetPlane('XY', 150))
  |> circle({ center: [0, 100], radius: 20 }, %)
loft([
  squareSketch,
  circleSketch0,
  circleSketch1
])
// Loft a square, a circle, and another circle with options.
const squareSketch = startSketchOn('XY')
  |> startProfileAt([-100, 200], %)
  |> line([200, 0], %)
  |> line([0, -200], %)
  |> line([-200, 0], %)
  |> lineTo([profileStartX(%), profileStartY(%)], %)
  |> close(%)
const circleSketch0 = startSketchOn(offsetPlane('XY', 75))
  |> circle({ center: [0, 100], radius: 50 }, %)
const circleSketch1 = startSketchOn(offsetPlane('XY', 150))
  |> circle({ center: [0, 100], radius: 20 }, %)
loft([
  squareSketch,
  circleSketch0,
  circleSketch1
], {
  // This can be set to override the automatically determined
  // topological base curve, which is usually the first section encountered.
  baseCurveIndex: 0,
  // Attempt to approximate rational curves (such as arcs) using a bezier.
  // This will remove banding around interpolations between arcs and non-arcs.
  // It may produce errors in other scenarios Over time, this field won't be necessary.
  bezApproximateRational: false,
  // Tolerance for the loft operation.
  tolerance: 0.000001,
  // Degree of the interpolation. Must be greater than zero.
  // For example, use 2 for quadratic, or 3 for cubic interpolation in
  // the V direction. This defaults to 2, if not specified.
  vDegree: 2
})