Files
modeling-app/docs/kcl/revolve.md
Adam Chalmers bb3f9e0377 KCL docs improvements (#4043)
* 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
2024-09-30 11:43:16 -07:00

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

Rendered example of revolve 0

// A donut shape.
const sketch001 = startSketchOn('XY')
  |> circle({ center: [15, 0], radius: 5 }, %)
  |> revolve({ angle: 360, axis: 'y' }, %)

Rendered example of revolve 1

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 }, %)

Rendered example of revolve 2

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, %)

Rendered example of revolve 3

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' }, %)

Rendered example of revolve 4

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)
     }, %)

Rendered example of revolve 5

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
     }, %)

Rendered example of revolve 6

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)

Rendered example of revolve 7