Files
modeling-app/docs/kcl/revolve.md
Jess Frazelle 6303130e08 kcl std lib docs use handlebars now so making changes should be better (1st pass) (#4007)
* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* start of types docs

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)

* add types files

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* add links

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* better

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* uodates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-09-27 10:37:46 -04: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_group: SketchGroup) -> ExtrudeGroup

Arguments

Name Type Description Required
data RevolveData Data for revolution surfaces. Yes
sketch_group SketchGroup A sketch group is a collection of paths. Yes

Returns

ExtrudeGroup - An extrude group 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