Files
modeling-app/docs/kcl/rotate.md
Nick Cameron df278c7e6a Various hover improvements (#5617)
* Show more info on hover for variables

Signed-off-by: Nick Cameron <nrc@ncameron.org>

* Move hover impls to lsp module

Signed-off-by: Nick Cameron <nrc@ncameron.org>

* Make hover work on names inside calls, fix doc line breaking, trim docs in tool tips

Signed-off-by: Nick Cameron <nrc@ncameron.org>

* Test the new hovers; fix signature syntax

Signed-off-by: Nick Cameron <nrc@ncameron.org>

* Hover tips for kwargs

Signed-off-by: Nick Cameron <nrc@ncameron.org>

---------

Signed-off-by: Nick Cameron <nrc@ncameron.org>
2025-03-04 09:53:31 +00:00

172 KiB

title, excerpt, layout
title excerpt layout
rotate Rotate a solid. manual

Rotate a solid.

Using Roll, Pitch, and Yaw

When rotating a part in 3D space, "roll," "pitch," and "yaw" refer to the three rotational axes used to describe its orientation: roll is rotation around the longitudinal axis (front-to-back), pitch is rotation around the lateral axis (wing-to-wing), and yaw is rotation around the vertical axis (up-down); essentially, it's like tilting the part on its side (roll), tipping the nose up or down (pitch), and turning it left or right (yaw).

So, in the context of a 3D model:

  • Roll: Imagine spinning a pencil on its tip - that's a roll movement.

  • Pitch: Think of a seesaw motion, where the object tilts up or down along its side axis.

  • Yaw: Like turning your head left or right, this is a rotation around the vertical axis

Using an Axis and Angle

When rotating a part around an axis, you specify the axis of rotation and the angle of rotation.

rotate(
  solid: Solid,
  roll?: number,
  pitch?: number,
  yaw?: number,
  axis?: [number],
  angle?: number,
  global?: bool,
): Solid

Arguments

Name Type Description Required
solid Solid The solid to rotate. Yes
roll number The roll angle in degrees. Must be used with pitch and yaw. Must be between -360 and 360. No
pitch number The pitch angle in degrees. Must be used with roll and yaw. Must be between -360 and 360. No
yaw number The yaw angle in degrees. Must be used with roll and pitch. Must be between -360 and 360. No
axis [number] The axis to rotate around. Must be used with angle. No
angle number The angle to rotate in degrees. Must be used with axis. Must be between -360 and 360. No
global bool If true, the transform is applied in global space. The origin of the model will move. By default, the transform is applied in local sketch axis, therefore the origin will not move. No

Returns

Solid - A solid is a collection of extrude surfaces.

Examples

// Rotate a pipe with roll, pitch, and yaw.


// Create a path for the sweep.
sweepPath = startSketchOn('XZ')
  |> startProfileAt([0.05, 0.05], %)
  |> line(end = [0, 7])
  |> tangentialArc({ offset = 90, radius = 5 }, %)
  |> line(end = [-3, 0])
  |> tangentialArc({ offset = -90, radius = 5 }, %)
  |> line(end = [0, 7])

// Create a hole for the pipe.
pipeHole = startSketchOn('XY')
  |> circle(center = [0, 0], radius = 1.5)

sweepSketch = startSketchOn('XY')
  |> circle(center = [0, 0], radius = 2)
  |> hole(pipeHole, %)
  |> sweep(path = sweepPath)
  |> rotate(roll = 10, pitch = 10, yaw = 90)

Rendered example of rotate 0

// Rotate a pipe about an axis with an angle.


// Create a path for the sweep.
sweepPath = startSketchOn('XZ')
  |> startProfileAt([0.05, 0.05], %)
  |> line(end = [0, 7])
  |> tangentialArc({ offset = 90, radius = 5 }, %)
  |> line(end = [-3, 0])
  |> tangentialArc({ offset = -90, radius = 5 }, %)
  |> line(end = [0, 7])

// Create a hole for the pipe.
pipeHole = startSketchOn('XY')
  |> circle(center = [0, 0], radius = 1.5)

sweepSketch = startSketchOn('XY')
  |> circle(center = [0, 0], radius = 2)
  |> hole(pipeHole, %)
  |> sweep(path = sweepPath)
  |> rotate(axis = [0, 0, 1.0], angle = 90)

Rendered example of rotate 1