Files
modeling-app/docs/kcl-std/bezierCurve.md
Adam Chalmers 04a2c184d7 KCL: Absolute point bezier curves (#7172)
Previously KCL bezier curves could only use relative control points. Now you can use absolute control points too. 

Here's an example of the new arguments:

```kcl
startSketchOn(XY)
  |> startProfile(at = [300, 300])
  |> bezierCurve(control1Absolute = [600, 300], control2Absolute = [-300, -100], endAbsolute = [600, 300])
  |> close()
  |> extrude(length = 10)
```

Closes https://github.com/KittyCAD/modeling-app/issues/7083
2025-05-22 13:06:06 -04:00

107 KiB

title, subtitle, excerpt, layout
title subtitle excerpt layout
bezierCurve Function in std::sketch Draw a smooth, continuous, curved line segment from the current origin to the desired (x, y), using a number of control points to shape the curve's shape. manual

Draw a smooth, continuous, curved line segment from the current origin to the desired (x, y), using a number of control points to shape the curve's shape.

bezierCurve(
  @sketch: Sketch,
  control1?: Point2d,
  control2?: Point2d,
  end?: Point2d,
  control1Absolute?: Point2d,
  control2Absolute?: Point2d,
  endAbsolute?: Point2d,
  tag?: TagDeclarator,
): Sketch

Arguments

Name Type Description Required
sketch Sketch Which sketch should this path be added to? Yes
control1 Point2d First control point for the cubic No
control2 Point2d Second control point for the cubic No
end Point2d How far away (along the X and Y axes) should this line go? No
control1Absolute Point2d First control point for the cubic. Absolute point. No
control2Absolute Point2d Second control point for the cubic. Absolute point. No
endAbsolute Point2d Coordinate on the plane at which this line should end. No
tag TagDeclarator Create a new tag which refers to this line No

Returns

Sketch - A sketch is a collection of paths.

Examples

// Example using relative control points.
exampleSketch = startSketchOn(XZ)
  |> startProfile(at = [0, 0])
  |> line(end = [0, 10])
  |> bezierCurve(control1 = [5, 0], control2 = [5, 10], end = [10, 10])
  |> line(endAbsolute = [10, 0])
  |> close()

example = extrude(exampleSketch, length = 10)

Rendered example of bezierCurve 0

// Example using absolute control points.
startSketchOn(XY)
  |> startProfile(at = [300, 300])
  |> bezierCurve(control1Absolute = [600, 300], control2Absolute = [-300, -100], endAbsolute = [600, 600])
  |> close()
  |> extrude(length = 10)

Rendered example of bezierCurve 1