* Preserve paragraph breaks in the KCL docs The KCL docs on the website are hard to read, because they concatenate all the paragraphs in my nicely-formatted docstrings in the stdlib functions into one big paragraph. PR should fix this. * Fix arc docs being split into two lines The 'summary' section of the docs has a maximum line length, and if you go over that length, your summary gets split into two lines weirdly. Makes the arc docs shorter, so the summary is back to one line like it should be. * Update docs for pattern transform
1.1 MiB
1.1 MiB
title, excerpt, layout
title | excerpt | layout |
---|---|---|
revolve | Rotate a sketch around some provided axis, creating a solid from its extent. | manual |
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
const part001 = startSketchOn('XY')
|> startProfileAt([4, 12], %)
|> line([2, 0], %)
|> line([0, -6], %)
|> line([4, -6], %)
|> line([0, -6], %)
|> line([-3.75, -4.5], %)
|> line([0, -5.5], %)
|> line([-2, 0], %)
|> close(%)
|> revolve({ axis: 'y' }, %) // default angle is 360
// A donut shape.
const sketch001 = startSketchOn('XY')
|> circle({ center: [15, 0], radius: 5 }, %)
|> revolve({ angle: 360, axis: 'y' }, %)
const part001 = startSketchOn('XY')
|> startProfileAt([4, 12], %)
|> line([2, 0], %)
|> line([0, -6], %)
|> line([4, -6], %)
|> line([0, -6], %)
|> line([-3.75, -4.5], %)
|> line([0, -5.5], %)
|> line([-2, 0], %)
|> close(%)
|> revolve({ axis: 'y', angle: 180 }, %)
const part001 = startSketchOn('XY')
|> startProfileAt([4, 12], %)
|> line([2, 0], %)
|> line([0, -6], %)
|> line([4, -6], %)
|> line([0, -6], %)
|> line([-3.75, -4.5], %)
|> line([0, -5.5], %)
|> line([-2, 0], %)
|> close(%)
|> revolve({ axis: 'y', angle: 180 }, %)
const part002 = startSketchOn(part001, 'end')
|> startProfileAt([4.5, -5], %)
|> line([0, 5], %)
|> line([5, 0], %)
|> line([0, -5], %)
|> close(%)
|> extrude(5, %)
const box = startSketchOn('XY')
|> startProfileAt([0, 0], %)
|> line([0, 20], %)
|> line([20, 0], %)
|> line([0, -20], %)
|> close(%)
|> extrude(20, %)
const sketch001 = startSketchOn(box, "END")
|> circle({ center: [10, 10], radius: 4 }, %)
|> revolve({ angle: -90, axis: 'y' }, %)
const box = startSketchOn('XY')
|> startProfileAt([0, 0], %)
|> line([0, 20], %)
|> line([20, 0], %)
|> line([0, -20], %, $revolveAxis)
|> close(%)
|> extrude(20, %)
const sketch001 = startSketchOn(box, "END")
|> circle({ center: [10, 10], radius: 4 }, %)
|> revolve({
angle: 90,
axis: getOppositeEdge(revolveAxis)
}, %)
const box = startSketchOn('XY')
|> startProfileAt([0, 0], %)
|> line([0, 20], %)
|> line([20, 0], %)
|> line([0, -20], %, $revolveAxis)
|> close(%)
|> extrude(20, %)
const sketch001 = startSketchOn(box, "END")
|> circle({ center: [10, 10], radius: 4 }, %)
|> revolve({
angle: 90,
axis: getOppositeEdge(revolveAxis),
tolerance: 0.0001
}, %)
const sketch001 = startSketchOn('XY')
|> startProfileAt([10, 0], %)
|> line([5, -5], %)
|> line([5, 5], %)
|> lineTo([profileStartX(%), profileStartY(%)], %)
|> close(%)
const part001 = revolve({
axis: {
custom: { axis: [0.0, 1.0], origin: [0.0, 0.0] }
}
}, sketch001)