kcl →
revolve
Rotate a sketch around some provided axis, creating a solid from its extent.
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 revolved around an axis rather than using the extent of the sketch linearly translated through a third dimension.
Revolve occurs around a local sketch axis rather than a global axis.
revolve(data: RevolveData, sketch: Sketch) -> Solid
Arguments
Name | Type | Description | Required |
---|---|---|---|
data | RevolveData | Data for revolution surfaces. | Yes |
sketch | Sketch | A sketch is a collection of paths. | Yes |
Returns
Solid
- An solid is a collection of extrude surfaces.
Examples
part001 = startSketchOn('XY')
|> startProfileAt([4, 12], %)
|> line(end = [2, 0])
|> line(end = [0, -6])
|> line(end = [4, -6])
|> line(end = [0, -6])
|> line(end = [-3.75, -4.5])
|> line(end = [0, -5.5])
|> line(end = [-2, 0])
|> close()
|> revolve({ axis = 'y' }, %) // default angle is 360
// A donut shape.
sketch001 = startSketchOn('XY')
|> circle({ center = [15, 0], radius = 5 }, %)
|> revolve({ angle = 360, axis = 'y' }, %)
part001 = startSketchOn('XY')
|> startProfileAt([4, 12], %)
|> line(end = [2, 0])
|> line(end = [0, -6])
|> line(end = [4, -6])
|> line(end = [0, -6])
|> line(end = [-3.75, -4.5])
|> line(end = [0, -5.5])
|> line(end = [-2, 0])
|> close()
|> revolve({ axis = 'y', angle = 180 }, %)
part001 = startSketchOn('XY')
|> startProfileAt([4, 12], %)
|> line(end = [2, 0])
|> line(end = [0, -6])
|> line(end = [4, -6])
|> line(end = [0, -6])
|> line(end = [-3.75, -4.5])
|> line(end = [0, -5.5])
|> line(end = [-2, 0])
|> close()
|> revolve({ axis = 'y', angle = 180 }, %)
part002 = startSketchOn(part001, 'end')
|> startProfileAt([4.5, -5], %)
|> line(end = [0, 5])
|> line(end = [5, 0])
|> line(end = [0, -5])
|> close()
|> extrude(length = 5)
box = startSketchOn('XY')
|> startProfileAt([0, 0], %)
|> line(end = [0, 20])
|> line(end = [20, 0])
|> line(end = [0, -20])
|> close()
|> extrude(length = 20)
sketch001 = startSketchOn(box, "END")
|> circle({ center = [10, 10], radius = 4 }, %)
|> revolve({ angle = -90, axis = 'y' }, %)
box = startSketchOn('XY')
|> startProfileAt([0, 0], %)
|> line(end = [0, 20])
|> line(end = [20, 0])
|> line(end = [0, -20], tag = $revolveAxis)
|> close()
|> extrude(length = 20)
sketch001 = startSketchOn(box, "END")
|> circle({ center = [10, 10], radius = 4 }, %)
|> revolve({
angle = 90,
axis = getOppositeEdge(revolveAxis)
}, %)
box = startSketchOn('XY')
|> startProfileAt([0, 0], %)
|> line(end = [0, 20])
|> line(end = [20, 0])
|> line(end = [0, -20], tag = $revolveAxis)
|> close()
|> extrude(length = 20)
sketch001 = startSketchOn(box, "END")
|> circle({ center = [10, 10], radius = 4 }, %)
|> revolve({
angle = 90,
axis = getOppositeEdge(revolveAxis),
tolerance = 0.0001
}, %)
sketch001 = startSketchOn('XY')
|> startProfileAt([10, 0], %)
|> line(end = [5, -5])
|> line(end = [5, 5])
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
part001 = revolve({
axis = {
custom = {
axis = [0.0, 1.0],
origin = [0.0, 0.0]
}
}
}, sketch001)