Files
modeling-app/docs/kcl-std/functions/std-sketch-line.md
2025-06-19 17:08:46 +12:00

81 KiB

title, subtitle, excerpt, layout
title subtitle excerpt layout
line Function in std::sketch Extend the current sketch with a new straight line. manual

Extend the current sketch with a new straight line.

triangle = startSketchOn(XZ)
  |> startProfile(at = [0, 0])
  // The END argument means it ends at exactly [10, 0].
  // This is an absolute measurement, it is NOT relative to
  // the start of the sketch.
  |> line(endAbsolute = [10, 0])
  |> line(endAbsolute = [0, 10])
  |> line(endAbsolute = [-10, 0], tag = $thirdLineOfTriangle)
  |> close()
  |> extrude(length = 5)

box = startSketchOn(XZ)
  |> startProfile(at = [10, 10])
  // The 'to' argument means move the pen this much.
  // So, [10, 0] is a relative distance away from the current point.
  |> line(end = [10, 0])
  |> line(end = [0, 10])
  |> line(end = [-10, 0], tag = $thirdLineOfBox)
  |> close()
  |> extrude(length = 5)

Arguments

Name Type Description Required
sketch Sketch Which sketch should this path be added to? Yes
endAbsolute Point2d Which absolute point should this line go to? Incompatible with end. No
end Point2d How far away (along the X and Y axes) should this line go? Incompatible with endAbsolute. No
tag TagDecl Create a new tag which refers to this line. No

Returns

Sketch - A sketch is a collection of paths.

Function signature

line(
  @sketch: Sketch,
  endAbsolute?: Point2d,
  end?: Point2d,
  tag?: TagDecl,
): Sketch

Examples

triangle = startSketchOn(XZ)
  |> startProfile(at = [0, 0])
  // The END argument means it ends at exactly [10, 0].
  // This is an absolute measurement, it is NOT relative to
  // the start of the sketch.
  |> line(endAbsolute = [10, 0])
  |> line(endAbsolute = [0, 10])
  |> line(endAbsolute = [-10, 0], tag = $thirdLineOfTriangle)
  |> close()
  |> extrude(length = 5)

box = startSketchOn(XZ)
  |> startProfile(at = [10, 10])
  // The 'to' argument means move the pen this much.
  // So, [10, 0] is a relative distance away from the current point.
  |> line(end = [10, 0])
  |> line(end = [0, 10])
  |> line(end = [-10, 0], tag = $thirdLineOfBox)
  |> close()
  |> extrude(length = 5)

Rendered example of line 0