rotate
Rotate a solid or a sketch.
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(
objects: SolidOrSketchOrImportedGeometry,
roll?: number,
pitch?: number,
yaw?: number,
axis?: [number],
angle?: number,
global?: bool,
): SolidOrSketchOrImportedGeometry
Arguments
Name | Type | Description | Required |
---|---|---|---|
objects | SolidOrSketchOrImportedGeometry | The solid, sketch, or set of solids or sketches 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
SolidOrSketchOrImportedGeometry
- Data for a solid or an imported geometry.
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)
// 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)
// Rotate an imported model.
import "tests/inputs/cube.sldprt" as cube
cube
|> rotate(axis = [0, 0, 1.0], angle = 90)
// Sweep two sketches along the same path.
sketch001 = startSketchOn(XY)
rectangleSketch = startProfileAt([-200, 23.86], sketch001)
|> angledLine([0, 73.47], %, $rectangleSegmentA001)
|> angledLine([
segAng(rectangleSegmentA001) - 90,
50.61
], %)
|> angledLine([
segAng(rectangleSegmentA001),
-segLen(rectangleSegmentA001)
], %)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
circleSketch = circle(sketch001, center = [200, -30.29], radius = 32.63)
sketch002 = startSketchOn(YZ)
sweepPath = startProfileAt([0, 0], sketch002)
|> yLine(length = 231.81)
|> tangentialArc({ radius = 80, offset = -90 }, %)
|> xLine(length = 384.93)
parts = sweep([rectangleSketch, circleSketch], path = sweepPath)
// Rotate the sweeps.
rotate(parts, axis = [0, 0, 1.0], angle = 90)
// Translate and rotate a sketch to create a loft.
sketch001 = startSketchOn(XY)
fn square() {
return startProfileAt([-10, 10], sketch001)
|> xLine(length = 20)
|> yLine(length = -20)
|> xLine(length = -20)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
}
profile001 = square()
profile002 = square()
|> translate(translate = [0, 0, 20])
|> rotate(axis = [0, 0, 1.0], angle = 45)
loft([profile001, profile002])