Files
modeling-app/docs/kcl-std/functions/std-helix.md
Nick Cameron 2fee3a424c More docs fixes (#6733)
* Fix various docs errors around std module

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

* remove KCL from lang docs titles and move settings docs

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

* Include functions declared in Rust in module docs

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

---------

Signed-off-by: Nick Cameron <nrc@ncameron.org>
2025-05-08 08:26:56 +12:00

928 KiB

title, subtitle, excerpt, layout
title subtitle excerpt layout
helix Function in std Create a helix. manual

Create a helix.

helix(
  revolutions: number(_),
  angleStart: number(Angle),
  ccw?: bool,
  radius?: number(Length),
  axis?: Axis3d | Edge,
  length?: number(Length),
  cylinder?: Solid,
): Helix

Arguments

Name Type Description Required
revolutions number(_) Number of revolutions. Yes
angleStart number(Angle) Start angle. Yes
ccw bool Is the helix rotation counter clockwise? The default is false. No
radius number(Length) Radius of the helix. No
axis Axis3d or Edge Axis to use for the helix. No
length number(Length) Length 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
cylinder Solid Cylinder to create the helix on. No

Returns

Helix - 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)
 |> startProfile(at = [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 = {
        direction = [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

// Create a helix on a cylinder.

part001 = startSketchOn(XY)
  |> circle( center = [5, 5], radius= 10 )
  |> extrude(length = 10)

helix(
    angleStart = 0,
    ccw = true,
    revolutions = 16,
    cylinder = part001,
 )

Rendered example of helix 3