Files
modeling-app/docs/kcl/revolve.md
Jess Frazelle 099c48cd63 better docs on solids and sketches (#5428)
* updates

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

* fix docs;

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>

* updates

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>

* updates

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>

* parens

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

* parens

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

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2025-02-20 03:48:27 +00: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 - A 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

Rendered example of revolve 0

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

Rendered example of revolve 1

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

Rendered example of revolve 2

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)

Rendered example of revolve 3

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

Rendered example of revolve 4

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

Rendered example of revolve 5

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

Rendered example of revolve 6

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)

Rendered example of revolve 7