532 KiB
532 KiB
title, excerpt, layout
| title | excerpt | layout |
|---|---|---|
| sweep | Extrude a sketch along a path. | manual |
Extrude a sketch along a path.
This, like extrude, is able to create a 3-dimensional solid from a 2-dimensional sketch. However, unlike extrude, this creates a solid by using the extent of the sketch as its path. This is useful for creating more complex shapes that can't be created with a simple extrusion.
You can provide more than one sketch to sweep, and they will all be swept along the same path.
By default, we set sectional to true, which means that the sweep will be broken up into sub-sweeps (extrusions, revolves, sweeps) based on the trajectory path components.
If your sweep fails, try setting sectional to false to create a single solid.
sweep(
sketches: [Sketch],
path: SweepPath,
sectional?: bool,
tolerance?: number,
tagStart?: TagDeclarator,
tagEnd?: TagDeclarator,
): [Solid]
Arguments
| Name | Type | Description | Required |
|---|---|---|---|
sketches |
[Sketch] |
The sketch or set of sketches that should be swept in space | Yes |
path |
SweepPath |
The path to sweep the sketch along | Yes |
sectional |
bool |
If true, the sweep will be broken up into sub-sweeps (extrusions, revolves, sweeps) based on the trajectory path components. This defaults to true. | No |
tolerance |
number |
Tolerance for this operation | No |
tagStart |
TagDeclarator |
A named tag for the face at the start of the sweep, i.e. the original sketch | No |
tagEnd |
TagDeclarator |
A named tag for the face at the end of the sweep | No |
Returns
Examples
// Create a pipe using a sweep.
// Create a path for the sweep.
sweepPath = startSketchOn(XZ)
|> startProfileAt([0.05, 0.05], %)
|> line(end = [0, 7])
|> tangentialArc({ offset = 90, radius = 5 }, %)
|> line(end = [-3, 0])
|> tangentialArc({ offset = -90, radius = 5 }, %)
|> line(end = [0, 7])
// Create a hole for the pipe.
pipeHole = startSketchOn(XY)
|> circle(center = [0, 0], radius = 1.5)
sweepSketch = startSketchOn(XY)
|> circle(center = [0, 0], radius = 2)
|> hole(pipeHole, %)
|> sweep(path = sweepPath, sectional = false)
// Create a spring by sweeping around a helix path.
// Create a helix around the Z axis.
helixPath = helix(
angleStart = 0,
ccw = true,
revolutions = 4,
length = 10,
radius = 5,
axis = Z,
)
// Create a spring by sweeping around the helix path.
springSketch = startSketchOn(YZ)
|> circle(center = [0, 0], radius = 1)
|> sweep(path = helixPath)
// Sweep two sketches along the same path.
sketch001 = startSketchOn(XY)
rectangleSketch = startProfileAt([-200, 23.86], sketch001)
|> angledLine([0, 73.47], %, $rectangleSegmentA001)
|> angledLine([
segAng(rectangleSegmentA001) - 90,
50.61
], %)
|> angledLine([
segAng(rectangleSegmentA001),
-segLen(rectangleSegmentA001)
], %)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
circleSketch = circle(sketch001, center = [200, -30.29], radius = 32.63)
sketch002 = startSketchOn(YZ)
sweepPath = startProfileAt([0, 0], sketch002)
|> yLine(length = 231.81)
|> tangentialArc({ radius = 80, offset = -90 }, %)
|> xLine(length = 384.93)
sweep([rectangleSketch, circleSketch], path = sweepPath)
// Sectionally sweep one sketch along the path
sketch001 = startSketchOn(XY)
circleSketch = circle(sketch001, center = [200, -30.29], radius = 32.63)
sketch002 = startSketchOn(YZ)
sweepPath = startProfileAt([0, 0], sketch002)
|> yLine(length = 231.81)
|> tangentialArc({ radius = 80, offset = -90 }, %)
|> xLine(length = 384.93)
sweep(circleSketch, path = sweepPath)