kcl

rotate

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

NameTypeDescriptionRequired
solidSolidThe solid to rotate.Yes
rollnumberThe roll angle in degrees. Must be used with pitch and yaw. Must be between -360 and 360.No
pitchnumberThe pitch angle in degrees. Must be used with roll and yaw. Must be between -360 and 360.No
yawnumberThe 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
anglenumberThe angle to rotate in degrees. Must be used with axis. Must be between -360 and 360.No
globalboolIf 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