kcl

helix

Create a helix.

helix(
  revolutions: number,
  angleStart: number,
  ccw?: bool,
  radius: number,
  axis: Axis3dOrEdgeReference,
  length?: number,
): HelixValue

Arguments

NameTypeDescriptionRequired
revolutionsnumberNumber of revolutions.Yes
angleStartnumberStart angle (in degrees).Yes
ccwboolIs the helix rotation counter clockwise? The default is false.No
radiusnumberRadius of the helix.Yes
axisAxis3dOrEdgeReferenceAxis to use for the helix.Yes
lengthnumberLength of the helix. This is not necessary if the helix is created around an edge. If not given the length of the edge is used.No

Returns

HelixValue - A helix.

Examples

// Create a helix around the Z axis.
helixPath = helix(
  angleStart = 0,
  ccw = true,
  revolutions = 5,
  length = 10,
  radius = 5,
  axis = 'Z',
)

// Create a spring by sweeping around the helix path.
springSketch = startSketchOn('YZ')
  |> circle(center = [0, 0], radius = 0.5)
  |> sweep(path = helixPath)

Rendered example of helix 0

// Create a helix around an edge.
helper001 = startSketchOn('XZ')
  |> startProfileAt([0, 0], %)
  |> line(end = [0, 10], tag = $edge001)

helixPath = helix(
  angleStart = 0,
  ccw = true,
  revolutions = 5,
  length = 10,
  radius = 5,
  axis = edge001,
)

// Create a spring by sweeping around the helix path.
springSketch = startSketchOn('XY')
  |> circle(center = [0, 0], radius = 0.5)
  |> sweep(path = helixPath)

Rendered example of helix 1

// Create a helix around a custom axis.
helixPath = helix(
  angleStart = 0,
  ccw = true,
  revolutions = 5,
  length = 10,
  radius = 5,
  axis = {
    custom = {
      axis = [0, 0, 1.0],
      origin = [0, 0.25, 0]
    }
  },
)

// Create a spring by sweeping around the helix path.
springSketch = startSketchOn('XY')
  |> circle(center = [0, 0], radius = 1)
  |> sweep(path = helixPath)

Rendered example of helix 2