Fix KCL warnings in doc comments from let, const, and new fn syntax (#4756)

* Fix KCL warnings in doc comments from let, const, and new fn syntax

* Update docs
This commit is contained in:
Jonathan Tran
2024-12-12 11:33:37 -05:00
committed by GitHub
parent 7ed26e21c6
commit 05163fdded
22 changed files with 336 additions and 336 deletions

View File

@ -43,7 +43,7 @@ fn sum(arr) {
/* The above is basically like this pseudo-code: /* The above is basically like this pseudo-code:
fn sum(arr): fn sum(arr):
let sumSoFar = 0 sumSoFar = 0
for i in arr: for i in arr:
sumSoFar = add(sumSoFar, i) sumSoFar = add(sumSoFar, i)
return sumSoFar */ return sumSoFar */
@ -96,14 +96,14 @@ fn decagon(radius) {
/* The `decagon` above is basically like this pseudo-code: /* The `decagon` above is basically like this pseudo-code:
fn decagon(radius): fn decagon(radius):
let stepAngle = (1/10) * tau() stepAngle = (1/10) * tau()
let startOfDecagonSketch = startSketchAt([(cos(0)*radius), (sin(0) * radius)]) startOfDecagonSketch = startSketchAt([(cos(0)*radius), (sin(0) * radius)])
// Here's the reduce part. // Here's the reduce part.
let partialDecagon = startOfDecagonSketch partialDecagon = startOfDecagonSketch
for i in [1..10]: for i in [1..10]:
let x = cos(stepAngle * i) * radius x = cos(stepAngle * i) * radius
let y = sin(stepAngle * i) * radius y = sin(stepAngle * i) * radius
partialDecagon = lineTo([x, y], partialDecagon) partialDecagon = lineTo([x, y], partialDecagon)
fullDecagon = partialDecagon // it's now full fullDecagon = partialDecagon // it's now full
return fullDecagon */ return fullDecagon */

View File

@ -149142,9 +149142,9 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"// This function adds two numbers.\nfn add(a, b) {\n return a + b\n}\n\n// This function adds an array of numbers.\n// It uses the `reduce` function, to call the `add` function on every\n// element of the `arr` parameter. The starting value is 0.\nfn sum(arr) {\n return reduce(arr, 0, add)\n}\n\n/* The above is basically like this pseudo-code:\nfn sum(arr):\n let sumSoFar = 0\n for i in arr:\n sumSoFar = add(sumSoFar, i)\n return sumSoFar */\n\n\n// We use `assertEqual` to check that our `sum` function gives the\n// expected result. It's good to check your work!\nassertEqual(sum([1, 2, 3]), 6, 0.00001, \"1 + 2 + 3 summed is 6\")", "// This function adds two numbers.\nfn add(a, b) {\n return a + b\n}\n\n// This function adds an array of numbers.\n// It uses the `reduce` function, to call the `add` function on every\n// element of the `arr` parameter. The starting value is 0.\nfn sum(arr) {\n return reduce(arr, 0, add)\n}\n\n/* The above is basically like this pseudo-code:\nfn sum(arr):\n sumSoFar = 0\n for i in arr:\n sumSoFar = add(sumSoFar, i)\n return sumSoFar */\n\n\n// We use `assertEqual` to check that our `sum` function gives the\n// expected result. It's good to check your work!\nassertEqual(sum([1, 2, 3]), 6, 0.00001, \"1 + 2 + 3 summed is 6\")",
"// This example works just like the previous example above, but it uses\n// an anonymous `add` function as its parameter, instead of declaring a\n// named function outside.\narr = [1, 2, 3]\nsum = reduce(arr, 0, fn(i, result_so_far) {\n return i + result_so_far\n})\n\n// We use `assertEqual` to check that our `sum` function gives the\n// expected result. It's good to check your work!\nassertEqual(sum, 6, 0.00001, \"1 + 2 + 3 summed is 6\")", "// This example works just like the previous example above, but it uses\n// an anonymous `add` function as its parameter, instead of declaring a\n// named function outside.\narr = [1, 2, 3]\nsum = reduce(arr, 0, fn(i, result_so_far) {\n return i + result_so_far\n})\n\n// We use `assertEqual` to check that our `sum` function gives the\n// expected result. It's good to check your work!\nassertEqual(sum, 6, 0.00001, \"1 + 2 + 3 summed is 6\")",
"// Declare a function that sketches a decagon.\nfn decagon(radius) {\n // Each side of the decagon is turned this many degrees from the previous angle.\n stepAngle = 1 / 10 * tau()\n\n // Start the decagon sketch at this point.\n startOfDecagonSketch = startSketchAt([cos(0) * radius, sin(0) * radius])\n\n // Use a `reduce` to draw the remaining decagon sides.\n // For each number in the array 1..10, run the given function,\n // which takes a partially-sketched decagon and adds one more edge to it.\n fullDecagon = reduce([1..10], startOfDecagonSketch, fn(i, partialDecagon) {\n // Draw one edge of the decagon.\n x = cos(stepAngle * i) * radius\n y = sin(stepAngle * i) * radius\n return lineTo([x, y], partialDecagon)\n })\n\n return fullDecagon\n}\n\n/* The `decagon` above is basically like this pseudo-code:\nfn decagon(radius):\n let stepAngle = (1/10) * tau()\n let startOfDecagonSketch = startSketchAt([(cos(0)*radius), (sin(0) * radius)])\n\n // Here's the reduce part.\n let partialDecagon = startOfDecagonSketch\n for i in [1..10]:\n let x = cos(stepAngle * i) * radius\n let y = sin(stepAngle * i) * radius\n partialDecagon = lineTo([x, y], partialDecagon)\n fullDecagon = partialDecagon // it's now full\n return fullDecagon */\n\n\n// Use the `decagon` function declared above, to sketch a decagon with radius 5.\ndecagon(5.0)\n |> close(%)" "// Declare a function that sketches a decagon.\nfn decagon(radius) {\n // Each side of the decagon is turned this many degrees from the previous angle.\n stepAngle = 1 / 10 * tau()\n\n // Start the decagon sketch at this point.\n startOfDecagonSketch = startSketchAt([cos(0) * radius, sin(0) * radius])\n\n // Use a `reduce` to draw the remaining decagon sides.\n // For each number in the array 1..10, run the given function,\n // which takes a partially-sketched decagon and adds one more edge to it.\n fullDecagon = reduce([1..10], startOfDecagonSketch, fn(i, partialDecagon) {\n // Draw one edge of the decagon.\n x = cos(stepAngle * i) * radius\n y = sin(stepAngle * i) * radius\n return lineTo([x, y], partialDecagon)\n })\n\n return fullDecagon\n}\n\n/* The `decagon` above is basically like this pseudo-code:\nfn decagon(radius):\n stepAngle = (1/10) * tau()\n startOfDecagonSketch = startSketchAt([(cos(0)*radius), (sin(0) * radius)])\n\n // Here's the reduce part.\n partialDecagon = startOfDecagonSketch\n for i in [1..10]:\n x = cos(stepAngle * i) * radius\n y = sin(stepAngle * i) * radius\n partialDecagon = lineTo([x, y], partialDecagon)\n fullDecagon = partialDecagon // it's now full\n return fullDecagon */\n\n\n// Use the `decagon` function declared above, to sketch a decagon with radius 5.\ndecagon(5.0)\n |> close(%)"
] ]
}, },
{ {

View File

@ -30,7 +30,7 @@ pub async fn map(exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kcl
/// Given a list like `[a, b, c]`, and a function like `f`, returns /// Given a list like `[a, b, c]`, and a function like `f`, returns
/// `[f(a), f(b), f(c)]` /// `[f(a), f(b), f(c)]`
/// ```no_run /// ```no_run
/// const r = 10 // radius /// r = 10 // radius
/// fn drawCircle(id) { /// fn drawCircle(id) {
/// return startSketchOn("XY") /// return startSketchOn("XY")
/// |> circle({ center: [id * 2 * r, 0], radius: r}, %) /// |> circle({ center: [id * 2 * r, 0], radius: r}, %)
@ -39,15 +39,15 @@ pub async fn map(exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kcl
/// // Call `drawCircle`, passing in each element of the array. /// // Call `drawCircle`, passing in each element of the array.
/// // The outputs from each `drawCircle` form a new array, /// // The outputs from each `drawCircle` form a new array,
/// // which is the return value from `map`. /// // which is the return value from `map`.
/// const circles = map( /// circles = map(
/// [1..3], /// [1..3],
/// drawCircle /// drawCircle
/// ) /// )
/// ``` /// ```
/// ```no_run /// ```no_run
/// const r = 10 // radius /// r = 10 // radius
/// // Call `map`, using an anonymous function instead of a named one. /// // Call `map`, using an anonymous function instead of a named one.
/// const circles = map( /// circles = map(
/// [1..3], /// [1..3],
/// fn(id) { /// fn(id) {
/// return startSketchOn("XY") /// return startSketchOn("XY")
@ -106,17 +106,17 @@ pub async fn reduce(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// using the previous value and the element. /// using the previous value and the element.
/// ```no_run /// ```no_run
/// // This function adds two numbers. /// // This function adds two numbers.
/// fn add = (a, b) => { return a + b } /// fn add(a, b) { return a + b }
/// ///
/// // This function adds an array of numbers. /// // This function adds an array of numbers.
/// // It uses the `reduce` function, to call the `add` function on every /// // It uses the `reduce` function, to call the `add` function on every
/// // element of the `arr` parameter. The starting value is 0. /// // element of the `arr` parameter. The starting value is 0.
/// fn sum = (arr) => { return reduce(arr, 0, add) } /// fn sum(arr) { return reduce(arr, 0, add) }
/// ///
/// /* /// /*
/// The above is basically like this pseudo-code: /// The above is basically like this pseudo-code:
/// fn sum(arr): /// fn sum(arr):
/// let sumSoFar = 0 /// sumSoFar = 0
/// for i in arr: /// for i in arr:
/// sumSoFar = add(sumSoFar, i) /// sumSoFar = add(sumSoFar, i)
/// return sumSoFar /// return sumSoFar
@ -139,7 +139,7 @@ pub async fn reduce(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ``` /// ```
/// ```no_run /// ```no_run
/// // Declare a function that sketches a decagon. /// // Declare a function that sketches a decagon.
/// fn decagon = (radius) => { /// fn decagon(radius) {
/// // Each side of the decagon is turned this many degrees from the previous angle. /// // Each side of the decagon is turned this many degrees from the previous angle.
/// stepAngle = (1/10) * tau() /// stepAngle = (1/10) * tau()
/// ///
@ -151,8 +151,8 @@ pub async fn reduce(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// // which takes a partially-sketched decagon and adds one more edge to it. /// // which takes a partially-sketched decagon and adds one more edge to it.
/// fullDecagon = reduce([1..10], startOfDecagonSketch, fn(i, partialDecagon) { /// fullDecagon = reduce([1..10], startOfDecagonSketch, fn(i, partialDecagon) {
/// // Draw one edge of the decagon. /// // Draw one edge of the decagon.
/// let x = cos(stepAngle * i) * radius /// x = cos(stepAngle * i) * radius
/// let y = sin(stepAngle * i) * radius /// y = sin(stepAngle * i) * radius
/// return lineTo([x, y], partialDecagon) /// return lineTo([x, y], partialDecagon)
/// }) /// })
/// ///
@ -163,14 +163,14 @@ pub async fn reduce(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// /* /// /*
/// The `decagon` above is basically like this pseudo-code: /// The `decagon` above is basically like this pseudo-code:
/// fn decagon(radius): /// fn decagon(radius):
/// let stepAngle = (1/10) * tau() /// stepAngle = (1/10) * tau()
/// let startOfDecagonSketch = startSketchAt([(cos(0)*radius), (sin(0) * radius)]) /// startOfDecagonSketch = startSketchAt([(cos(0)*radius), (sin(0) * radius)])
/// ///
/// // Here's the reduce part. /// // Here's the reduce part.
/// let partialDecagon = startOfDecagonSketch /// partialDecagon = startOfDecagonSketch
/// for i in [1..10]: /// for i in [1..10]:
/// let x = cos(stepAngle * i) * radius /// x = cos(stepAngle * i) * radius
/// let y = sin(stepAngle * i) * radius /// y = sin(stepAngle * i) * radius
/// partialDecagon = lineTo([x, y], partialDecagon) /// partialDecagon = lineTo([x, y], partialDecagon)
/// fullDecagon = partialDecagon // it's now full /// fullDecagon = partialDecagon // it's now full
/// return fullDecagon /// return fullDecagon
@ -224,8 +224,8 @@ async fn call_reduce_closure<'a>(
/// Returns a new array with the element appended. /// Returns a new array with the element appended.
/// ///
/// ```no_run /// ```no_run
/// let arr = [1, 2, 3] /// arr = [1, 2, 3]
/// let new_arr = push(arr, 4) /// new_arr = push(arr, 4)
/// assertEqual(new_arr[3], 4, 0.00001, "4 was added to the end of the array") /// assertEqual(new_arr[3], 4, 0.00001, "4 was added to the end of the array")
/// ``` /// ```
#[stdlib { #[stdlib {

View File

@ -31,7 +31,7 @@ pub async fn assert(_exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// is false. /// is false.
/// ///
/// ```no_run /// ```no_run
/// const myVar = true /// myVar = true
/// assert(myVar, "should always be true") /// assert(myVar, "should always be true")
/// ``` /// ```
#[stdlib { #[stdlib {
@ -70,8 +70,8 @@ pub async fn assert_gt(_exec_state: &mut ExecState, args: Args) -> Result<KclVal
/// otherwise raise an error. /// otherwise raise an error.
/// ///
/// ```no_run /// ```no_run
/// let n = 1.0285 /// n = 1.0285
/// let o = 1.0286 /// o = 1.0286
/// assertEqual(n, o, 0.01, "n is within the given tolerance for o") /// assertEqual(n, o, 0.01, "n is within the given tolerance for o")
/// ``` /// ```
#[stdlib { #[stdlib {

View File

@ -43,19 +43,19 @@ pub async fn chamfer(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ///
/// ```no_run /// ```no_run
/// // Chamfer a mounting plate. /// // Chamfer a mounting plate.
/// const width = 20 /// width = 20
/// const length = 10 /// length = 10
/// const thickness = 1 /// thickness = 1
/// const chamferLength = 2 /// chamferLength = 2
/// ///
/// const mountingPlateSketch = startSketchOn("XY") /// mountingPlateSketch = startSketchOn("XY")
/// |> startProfileAt([-width/2, -length/2], %) /// |> startProfileAt([-width/2, -length/2], %)
/// |> lineTo([width/2, -length/2], %, $edge1) /// |> lineTo([width/2, -length/2], %, $edge1)
/// |> lineTo([width/2, length/2], %, $edge2) /// |> lineTo([width/2, length/2], %, $edge2)
/// |> lineTo([-width/2, length/2], %, $edge3) /// |> lineTo([-width/2, length/2], %, $edge3)
/// |> close(%, $edge4) /// |> close(%, $edge4)
/// ///
/// const mountingPlate = extrude(thickness, mountingPlateSketch) /// mountingPlate = extrude(thickness, mountingPlateSketch)
/// |> chamfer({ /// |> chamfer({
/// length = chamferLength, /// length = chamferLength,
/// tags = [ /// tags = [
@ -69,8 +69,8 @@ pub async fn chamfer(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ///
/// ```no_run /// ```no_run
/// // Sketch on the face of a chamfer. /// // Sketch on the face of a chamfer.
/// fn cube = (pos, scale) => { /// fn cube(pos, scale) {
/// const sg = startSketchOn('XY') /// sg = startSketchOn('XY')
/// |> startProfileAt(pos, %) /// |> startProfileAt(pos, %)
/// |> line([0, scale], %) /// |> line([0, scale], %)
/// |> line([scale, 0], %) /// |> line([scale, 0], %)
@ -79,7 +79,7 @@ pub async fn chamfer(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// return sg /// return sg
/// } /// }
/// ///
/// const part001 = cube([0,0], 20) /// part001 = cube([0,0], 20)
/// |> close(%, $line1) /// |> close(%, $line1)
/// |> extrude(20, %) /// |> extrude(20, %)
/// |> chamfer({ /// |> chamfer({
@ -87,7 +87,7 @@ pub async fn chamfer(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// tags = [getOppositeEdge(line1)] /// tags = [getOppositeEdge(line1)]
/// }, %, $chamfer1) // We tag the chamfer to reference it later. /// }, %, $chamfer1) // We tag the chamfer to reference it later.
/// ///
/// const sketch001 = startSketchOn(part001, chamfer1) /// sketch001 = startSketchOn(part001, chamfer1)
/// |> startProfileAt([10, 10], %) /// |> startProfileAt([10, 10], %)
/// |> line([2, 0], %) /// |> line([2, 0], %)
/// |> line([0, 2], %) /// |> line([0, 2], %)

View File

@ -21,7 +21,7 @@ pub async fn int(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// DEPRECATED use floor(), ceil(), or round(). /// DEPRECATED use floor(), ceil(), or round().
/// ///
/// ```no_run /// ```no_run
/// let n = int(ceil(5/2)) /// n = int(ceil(5/2))
/// assertEqual(n, 3, 0.0001, "5/2 = 2.5, rounded up makes 3") /// assertEqual(n, 3, 0.0001, "5/2 = 2.5, rounded up makes 3")
/// // Draw n cylinders. /// // Draw n cylinders.
/// startSketchOn('XZ') /// startSketchOn('XZ')

View File

@ -33,7 +33,7 @@ pub async fn extrude(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// cut into an existing solid. /// cut into an existing solid.
/// ///
/// ```no_run /// ```no_run
/// const example = startSketchOn('XZ') /// example = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([10, 0], %) /// |> line([10, 0], %)
/// |> arc({ /// |> arc({
@ -54,7 +54,7 @@ pub async fn extrude(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([-10, 0], %) /// |> startProfileAt([-10, 0], %)
/// |> arc({ /// |> arc({
/// angleStart = 120, /// angleStart = 120,
@ -72,7 +72,7 @@ pub async fn extrude(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// |> line([-5, -2], %) /// |> line([-5, -2], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(10, exampleSketch) /// example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "extrude" name = "extrude"

View File

@ -68,19 +68,19 @@ pub async fn fillet(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// will smoothly blend the transition. /// will smoothly blend the transition.
/// ///
/// ```no_run /// ```no_run
/// const width = 20 /// width = 20
/// const length = 10 /// length = 10
/// const thickness = 1 /// thickness = 1
/// const filletRadius = 2 /// filletRadius = 2
/// ///
/// const mountingPlateSketch = startSketchOn("XY") /// mountingPlateSketch = startSketchOn("XY")
/// |> startProfileAt([-width/2, -length/2], %) /// |> startProfileAt([-width/2, -length/2], %)
/// |> lineTo([width/2, -length/2], %, $edge1) /// |> lineTo([width/2, -length/2], %, $edge1)
/// |> lineTo([width/2, length/2], %, $edge2) /// |> lineTo([width/2, length/2], %, $edge2)
/// |> lineTo([-width/2, length/2], %, $edge3) /// |> lineTo([-width/2, length/2], %, $edge3)
/// |> close(%, $edge4) /// |> close(%, $edge4)
/// ///
/// const mountingPlate = extrude(thickness, mountingPlateSketch) /// mountingPlate = extrude(thickness, mountingPlateSketch)
/// |> fillet({ /// |> fillet({
/// radius = filletRadius, /// radius = filletRadius,
/// tags = [ /// tags = [
@ -93,19 +93,19 @@ pub async fn fillet(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const width = 20 /// width = 20
/// const length = 10 /// length = 10
/// const thickness = 1 /// thickness = 1
/// const filletRadius = 1 /// filletRadius = 1
/// ///
/// const mountingPlateSketch = startSketchOn("XY") /// mountingPlateSketch = startSketchOn("XY")
/// |> startProfileAt([-width/2, -length/2], %) /// |> startProfileAt([-width/2, -length/2], %)
/// |> lineTo([width/2, -length/2], %, $edge1) /// |> lineTo([width/2, -length/2], %, $edge1)
/// |> lineTo([width/2, length/2], %, $edge2) /// |> lineTo([width/2, length/2], %, $edge2)
/// |> lineTo([-width/2, length/2], %, $edge3) /// |> lineTo([-width/2, length/2], %, $edge3)
/// |> close(%, $edge4) /// |> close(%, $edge4)
/// ///
/// const mountingPlate = extrude(thickness, mountingPlateSketch) /// mountingPlate = extrude(thickness, mountingPlateSketch)
/// |> fillet({ /// |> fillet({
/// radius = filletRadius, /// radius = filletRadius,
/// tolerance = 0.000001, /// tolerance = 0.000001,
@ -195,7 +195,7 @@ pub async fn get_opposite_edge(exec_state: &mut ExecState, args: Args) -> Result
/// Get the opposite edge to the edge given. /// Get the opposite edge to the edge given.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([10, 0], %) /// |> line([10, 0], %)
/// |> angledLine({ /// |> angledLine({
@ -213,7 +213,7 @@ pub async fn get_opposite_edge(exec_state: &mut ExecState, args: Args) -> Result
/// }, %, $referenceEdge) /// }, %, $referenceEdge)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// |> fillet({ /// |> fillet({
/// radius = 3, /// radius = 3,
/// tags = [getOppositeEdge(referenceEdge)], /// tags = [getOppositeEdge(referenceEdge)],
@ -268,7 +268,7 @@ pub async fn get_next_adjacent_edge(exec_state: &mut ExecState, args: Args) -> R
/// Get the next adjacent edge to the edge given. /// Get the next adjacent edge to the edge given.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([10, 0], %) /// |> line([10, 0], %)
/// |> angledLine({ /// |> angledLine({
@ -286,7 +286,7 @@ pub async fn get_next_adjacent_edge(exec_state: &mut ExecState, args: Args) -> R
/// }, %, $referenceEdge) /// }, %, $referenceEdge)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// |> fillet({ /// |> fillet({
/// radius = 3, /// radius = 3,
/// tags = [getNextAdjacentEdge(referenceEdge)], /// tags = [getNextAdjacentEdge(referenceEdge)],
@ -353,7 +353,7 @@ pub async fn get_previous_adjacent_edge(exec_state: &mut ExecState, args: Args)
/// Get the previous adjacent edge to the edge given. /// Get the previous adjacent edge to the edge given.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([10, 0], %) /// |> line([10, 0], %)
/// |> angledLine({ /// |> angledLine({
@ -371,7 +371,7 @@ pub async fn get_previous_adjacent_edge(exec_state: &mut ExecState, args: Args)
/// }, %, $referenceEdge) /// }, %, $referenceEdge)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// |> fillet({ /// |> fillet({
/// radius = 3, /// radius = 3,
/// tags = [getPreviousAdjacentEdge(referenceEdge)], /// tags = [getPreviousAdjacentEdge(referenceEdge)],

View File

@ -42,7 +42,7 @@ pub async fn helix(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// Create a helix on a cylinder. /// Create a helix on a cylinder.
/// ///
/// ```no_run /// ```no_run
/// const part001 = startSketchOn('XY') /// part001 = startSketchOn('XY')
/// |> circle({ center: [5, 5], radius: 10 }, %) /// |> circle({ center: [5, 5], radius: 10 }, %)
/// |> extrude(10, %) /// |> extrude(10, %)
/// |> helix({ /// |> helix({

View File

@ -148,23 +148,23 @@ pub async fn import(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// [KCL modules](/docs/kcl/modules). /// [KCL modules](/docs/kcl/modules).
/// ///
/// ```no_run /// ```no_run
/// const model = import("tests/inputs/cube.obj") /// model = import("tests/inputs/cube.obj")
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const model = import("tests/inputs/cube.obj", {format: "obj", units: "m"}) /// model = import("tests/inputs/cube.obj", {format: "obj", units: "m"})
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const model = import("tests/inputs/cube.gltf") /// model = import("tests/inputs/cube.gltf")
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const model = import("tests/inputs/cube.sldprt") /// model = import("tests/inputs/cube.sldprt")
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const model = import("tests/inputs/cube.step") /// model = import("tests/inputs/cube.step")
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run

View File

@ -63,7 +63,7 @@ pub async fn loft(exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// ///
/// ```no_run /// ```no_run
/// // Loft a square and a triangle. /// // Loft a square and a triangle.
/// const squareSketch = startSketchOn('XY') /// squareSketch = startSketchOn('XY')
/// |> startProfileAt([-100, 200], %) /// |> startProfileAt([-100, 200], %)
/// |> line([200, 0], %) /// |> line([200, 0], %)
/// |> line([0, -200], %) /// |> line([0, -200], %)
@ -71,7 +71,7 @@ pub async fn loft(exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// |> lineTo([profileStartX(%), profileStartY(%)], %) /// |> lineTo([profileStartX(%), profileStartY(%)], %)
/// |> close(%) /// |> close(%)
/// ///
/// const triangleSketch = startSketchOn(offsetPlane('XY', 75)) /// triangleSketch = startSketchOn(offsetPlane('XY', 75))
/// |> startProfileAt([0, 125], %) /// |> startProfileAt([0, 125], %)
/// |> line([-15, -30], %) /// |> line([-15, -30], %)
/// |> line([30, 0], %) /// |> line([30, 0], %)
@ -83,7 +83,7 @@ pub async fn loft(exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// ///
/// ```no_run /// ```no_run
/// // Loft a square, a circle, and another circle. /// // Loft a square, a circle, and another circle.
/// const squareSketch = startSketchOn('XY') /// squareSketch = startSketchOn('XY')
/// |> startProfileAt([-100, 200], %) /// |> startProfileAt([-100, 200], %)
/// |> line([200, 0], %) /// |> line([200, 0], %)
/// |> line([0, -200], %) /// |> line([0, -200], %)
@ -91,10 +91,10 @@ pub async fn loft(exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// |> lineTo([profileStartX(%), profileStartY(%)], %) /// |> lineTo([profileStartX(%), profileStartY(%)], %)
/// |> close(%) /// |> close(%)
/// ///
/// const circleSketch0 = startSketchOn(offsetPlane('XY', 75)) /// circleSketch0 = startSketchOn(offsetPlane('XY', 75))
/// |> circle({ center = [0, 100], radius = 50 }, %) /// |> circle({ center = [0, 100], radius = 50 }, %)
/// ///
/// const circleSketch1 = startSketchOn(offsetPlane('XY', 150)) /// circleSketch1 = startSketchOn(offsetPlane('XY', 150))
/// |> circle({ center = [0, 100], radius = 20 }, %) /// |> circle({ center = [0, 100], radius = 20 }, %)
/// ///
/// loft([squareSketch, circleSketch0, circleSketch1]) /// loft([squareSketch, circleSketch0, circleSketch1])
@ -102,7 +102,7 @@ pub async fn loft(exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// ///
/// ```no_run /// ```no_run
/// // Loft a square, a circle, and another circle with options. /// // Loft a square, a circle, and another circle with options.
/// const squareSketch = startSketchOn('XY') /// squareSketch = startSketchOn('XY')
/// |> startProfileAt([-100, 200], %) /// |> startProfileAt([-100, 200], %)
/// |> line([200, 0], %) /// |> line([200, 0], %)
/// |> line([0, -200], %) /// |> line([0, -200], %)
@ -110,10 +110,10 @@ pub async fn loft(exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// |> lineTo([profileStartX(%), profileStartY(%)], %) /// |> lineTo([profileStartX(%), profileStartY(%)], %)
/// |> close(%) /// |> close(%)
/// ///
/// const circleSketch0 = startSketchOn(offsetPlane('XY', 75)) /// circleSketch0 = startSketchOn(offsetPlane('XY', 75))
/// |> circle({ center = [0, 100], radius = 50 }, %) /// |> circle({ center = [0, 100], radius = 50 }, %)
/// ///
/// const circleSketch1 = startSketchOn(offsetPlane('XY', 150)) /// circleSketch1 = startSketchOn(offsetPlane('XY', 150))
/// |> circle({ center = [0, 100], radius = 20 }, %) /// |> circle({ center = [0, 100], radius = 20 }, %)
/// ///
/// loft([squareSketch, circleSketch0, circleSketch1], { /// loft([squareSketch, circleSketch0, circleSketch1], {

View File

@ -48,7 +48,7 @@ pub async fn cos(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// Compute the cosine of a number (in radians). /// Compute the cosine of a number (in radians).
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = 30, /// angle = 30,
@ -57,7 +57,7 @@ pub async fn cos(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// |> yLineTo(0, %) /// |> yLineTo(0, %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "cos", name = "cos",
@ -78,7 +78,7 @@ pub async fn sin(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// Compute the sine of a number (in radians). /// Compute the sine of a number (in radians).
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = 50, /// angle = 50,
@ -87,7 +87,7 @@ pub async fn sin(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// |> yLineTo(0, %) /// |> yLineTo(0, %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "sin", name = "sin",
@ -108,7 +108,7 @@ pub async fn tan(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// Compute the tangent of a number (in radians). /// Compute the tangent of a number (in radians).
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = 50, /// angle = 50,
@ -117,7 +117,7 @@ pub async fn tan(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// |> yLineTo(0, %) /// |> yLineTo(0, %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "tan", name = "tan",
@ -137,12 +137,12 @@ pub async fn pi(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kcl
/// Return the value of `pi`. Archimedes constant (π). /// Return the value of `pi`. Archimedes constant (π).
/// ///
/// ```no_run /// ```no_run
/// const circumference = 70 /// circumference = 70
/// ///
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> circle({ center = [0, 0], radius = circumference/ (2 * pi()) }, %) /// |> circle({ center = [0, 0], radius = circumference/ (2 * pi()) }, %)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "pi", name = "pi",
@ -163,7 +163,7 @@ pub async fn sqrt(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// Compute the square root of a number. /// Compute the square root of a number.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = 50, /// angle = 50,
@ -172,7 +172,7 @@ pub async fn sqrt(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// |> yLineTo(0, %) /// |> yLineTo(0, %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "sqrt", name = "sqrt",
@ -193,9 +193,9 @@ pub async fn abs(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// Compute the absolute value of a number. /// Compute the absolute value of a number.
/// ///
/// ```no_run /// ```no_run
/// const myAngle = -120 /// myAngle = -120
/// ///
/// const sketch001 = startSketchOn('XZ') /// sketch001 = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([8, 0], %) /// |> line([8, 0], %)
/// |> angledLine({ /// |> angledLine({
@ -209,7 +209,7 @@ pub async fn abs(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// }, %) /// }, %)
/// |> close(%) /// |> close(%)
/// ///
/// const baseExtrusion = extrude(5, sketch001) /// baseExtrusion = extrude(5, sketch001)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "abs", name = "abs",
@ -230,14 +230,14 @@ pub async fn round(_exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// Round a number to the nearest integer. /// Round a number to the nearest integer.
/// ///
/// ```no_run /// ```no_run
/// const sketch001 = startSketchOn('XZ') /// sketch001 = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> lineTo([12, 10], %) /// |> lineTo([12, 10], %)
/// |> line([round(7.02986), 0], %) /// |> line([round(7.02986), 0], %)
/// |> yLineTo(0, %) /// |> yLineTo(0, %)
/// |> close(%) /// |> close(%)
/// ///
/// const extrude001 = extrude(5, sketch001) /// extrude001 = extrude(5, sketch001)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "round", name = "round",
@ -258,14 +258,14 @@ pub async fn floor(_exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// Compute the largest integer less than or equal to a number. /// Compute the largest integer less than or equal to a number.
/// ///
/// ```no_run /// ```no_run
/// const sketch001 = startSketchOn('XZ') /// sketch001 = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> lineTo([12, 10], %) /// |> lineTo([12, 10], %)
/// |> line([floor(7.02986), 0], %) /// |> line([floor(7.02986), 0], %)
/// |> yLineTo(0, %) /// |> yLineTo(0, %)
/// |> close(%) /// |> close(%)
/// ///
/// const extrude001 = extrude(5, sketch001) /// extrude001 = extrude(5, sketch001)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "floor", name = "floor",
@ -286,14 +286,14 @@ pub async fn ceil(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// Compute the smallest integer greater than or equal to a number. /// Compute the smallest integer greater than or equal to a number.
/// ///
/// ```no_run /// ```no_run
/// const sketch001 = startSketchOn('XZ') /// sketch001 = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> lineTo([12, 10], %) /// |> lineTo([12, 10], %)
/// |> line([ceil(7.02986), 0], %) /// |> line([ceil(7.02986), 0], %)
/// |> yLineTo(0, %) /// |> yLineTo(0, %)
/// |> close(%) /// |> close(%)
/// ///
/// const extrude001 = extrude(5, sketch001) /// extrude001 = extrude(5, sketch001)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "ceil", name = "ceil",
@ -314,7 +314,7 @@ pub async fn min(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// Compute the minimum of the given arguments. /// Compute the minimum of the given arguments.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = 70, /// angle = 70,
@ -323,7 +323,7 @@ pub async fn min(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// |> line([20, 0], %) /// |> line([20, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "min", name = "min",
@ -351,7 +351,7 @@ pub async fn max(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// Compute the maximum of the given arguments. /// Compute the maximum of the given arguments.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = 70, /// angle = 70,
@ -360,7 +360,7 @@ pub async fn max(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// |> line([20, 0], %) /// |> line([20, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "max", name = "max",
@ -402,7 +402,7 @@ pub async fn pow(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// Compute the number to a power. /// Compute the number to a power.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = 50, /// angle = 50,
@ -411,7 +411,7 @@ pub async fn pow(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// |> yLineTo(0, %) /// |> yLineTo(0, %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "pow", name = "pow",
@ -432,7 +432,7 @@ pub async fn acos(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// Compute the arccosine of a number (in radians). /// Compute the arccosine of a number (in radians).
/// ///
/// ```no_run /// ```no_run
/// const sketch001 = startSketchOn('XZ') /// sketch001 = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = toDegrees(acos(0.5)), /// angle = toDegrees(acos(0.5)),
@ -442,7 +442,7 @@ pub async fn acos(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// |> lineTo([12, 0], %) /// |> lineTo([12, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const extrude001 = extrude(5, sketch001) /// extrude001 = extrude(5, sketch001)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "acos", name = "acos",
@ -463,7 +463,7 @@ pub async fn asin(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// Compute the arcsine of a number (in radians). /// Compute the arcsine of a number (in radians).
/// ///
/// ```no_run /// ```no_run
/// const sketch001 = startSketchOn('XZ') /// sketch001 = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = toDegrees(asin(0.5)), /// angle = toDegrees(asin(0.5)),
@ -472,7 +472,7 @@ pub async fn asin(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// |> yLineTo(0, %) /// |> yLineTo(0, %)
/// |> close(%) /// |> close(%)
/// ///
/// const extrude001 = extrude(5, sketch001) /// extrude001 = extrude(5, sketch001)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "asin", name = "asin",
@ -493,7 +493,7 @@ pub async fn atan(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// Compute the arctangent of a number (in radians). /// Compute the arctangent of a number (in radians).
/// ///
/// ```no_run /// ```no_run
/// const sketch001 = startSketchOn('XZ') /// sketch001 = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = toDegrees(atan(1.25)), /// angle = toDegrees(atan(1.25)),
@ -502,7 +502,7 @@ pub async fn atan(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// |> yLineTo(0, %) /// |> yLineTo(0, %)
/// |> close(%) /// |> close(%)
/// ///
/// const extrude001 = extrude(5, sketch001) /// extrude001 = extrude(5, sketch001)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "atan", name = "atan",
@ -544,14 +544,14 @@ pub async fn log(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// and `log10()` can produce more accurate results for base 10. /// and `log10()` can produce more accurate results for base 10.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([log(100, 5), 0], %) /// |> line([log(100, 5), 0], %)
/// |> line([5, 8], %) /// |> line([5, 8], %)
/// |> line([-10, 0], %) /// |> line([-10, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "log", name = "log",
@ -572,14 +572,14 @@ pub async fn log2(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// Compute the base 2 logarithm of the number. /// Compute the base 2 logarithm of the number.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([log2(100), 0], %) /// |> line([log2(100), 0], %)
/// |> line([5, 8], %) /// |> line([5, 8], %)
/// |> line([-10, 0], %) /// |> line([-10, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "log2", name = "log2",
@ -600,14 +600,14 @@ pub async fn log10(_exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// Compute the base 10 logarithm of the number. /// Compute the base 10 logarithm of the number.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([log10(100), 0], %) /// |> line([log10(100), 0], %)
/// |> line([5, 8], %) /// |> line([5, 8], %)
/// |> line([-10, 0], %) /// |> line([-10, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "log10", name = "log10",
@ -628,14 +628,14 @@ pub async fn ln(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kcl
/// Compute the natural logarithm of the number. /// Compute the natural logarithm of the number.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([ln(100), 15], %) /// |> line([ln(100), 15], %)
/// |> line([5, -6], %) /// |> line([5, -6], %)
/// |> line([-10, -10], %) /// |> line([-10, -10], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "ln", name = "ln",
@ -655,7 +655,7 @@ pub async fn e(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclE
/// Return the value of Eulers number `e`. /// Return the value of Eulers number `e`.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = 30, /// angle = 30,
@ -664,7 +664,7 @@ pub async fn e(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclE
/// |> yLineTo(0, %) /// |> yLineTo(0, %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(10, exampleSketch) /// example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "e", name = "e",
@ -684,7 +684,7 @@ pub async fn tau(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// Return the value of `tau`. The full circle constant (τ). Equal to 2π. /// Return the value of `tau`. The full circle constant (τ). Equal to 2π.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = 50, /// angle = 50,
@ -693,7 +693,7 @@ pub async fn tau(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// |> yLineTo(0, %) /// |> yLineTo(0, %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "tau", name = "tau",
@ -714,7 +714,7 @@ pub async fn to_radians(_exec_state: &mut ExecState, args: Args) -> Result<KclVa
/// Converts a number from degrees to radians. /// Converts a number from degrees to radians.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = 50, /// angle = 50,
@ -723,7 +723,7 @@ pub async fn to_radians(_exec_state: &mut ExecState, args: Args) -> Result<KclVa
/// |> yLineTo(0, %) /// |> yLineTo(0, %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "toRadians", name = "toRadians",
@ -744,7 +744,7 @@ pub async fn to_degrees(_exec_state: &mut ExecState, args: Args) -> Result<KclVa
/// Converts a number from radians to degrees. /// Converts a number from radians to degrees.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = 50, /// angle = 50,
@ -753,7 +753,7 @@ pub async fn to_degrees(_exec_state: &mut ExecState, args: Args) -> Result<KclVa
/// |> yLineTo(0, %) /// |> yLineTo(0, %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "toDegrees", name = "toDegrees",

View File

@ -40,7 +40,7 @@ pub async fn mirror_2d(exec_state: &mut ExecState, args: Args) -> Result<KclValu
/// ///
/// ```no_run /// ```no_run
/// // Mirror an un-closed sketch across the Y axis. /// // Mirror an un-closed sketch across the Y axis.
/// const sketch001 = startSketchOn('XZ') /// sketch001 = startSketchOn('XZ')
/// |> startProfileAt([0, 10], %) /// |> startProfileAt([0, 10], %)
/// |> line([15, 0], %) /// |> line([15, 0], %)
/// |> line([-7, -3], %) /// |> line([-7, -3], %)
@ -52,38 +52,38 @@ pub async fn mirror_2d(exec_state: &mut ExecState, args: Args) -> Result<KclValu
/// |> line([-19, -0], %) /// |> line([-19, -0], %)
/// |> mirror2d({axis = 'Y'}, %) /// |> mirror2d({axis = 'Y'}, %)
/// ///
/// const example = extrude(10, sketch001) /// example = extrude(10, sketch001)
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// // Mirror a un-closed sketch across the Y axis. /// // Mirror a un-closed sketch across the Y axis.
/// const sketch001 = startSketchOn('XZ') /// sketch001 = startSketchOn('XZ')
/// |> startProfileAt([0, 8.5], %) /// |> startProfileAt([0, 8.5], %)
/// |> line([20, -8.5], %) /// |> line([20, -8.5], %)
/// |> line([-20, -8.5], %) /// |> line([-20, -8.5], %)
/// |> mirror2d({axis = 'Y'}, %) /// |> mirror2d({axis = 'Y'}, %)
/// ///
/// const example = extrude(10, sketch001) /// example = extrude(10, sketch001)
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// // Mirror a un-closed sketch across an edge. /// // Mirror a un-closed sketch across an edge.
/// const helper001 = startSketchOn('XZ') /// helper001 = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([0, 10], %, $edge001) /// |> line([0, 10], %, $edge001)
/// ///
/// const sketch001 = startSketchOn('XZ') /// sketch001 = startSketchOn('XZ')
/// |> startProfileAt([0, 8.5], %) /// |> startProfileAt([0, 8.5], %)
/// |> line([20, -8.5], %) /// |> line([20, -8.5], %)
/// |> line([-20, -8.5], %) /// |> line([-20, -8.5], %)
/// |> mirror2d({axis = edge001}, %) /// |> mirror2d({axis = edge001}, %)
/// ///
/// const example = extrude(10, sketch001) /// example = extrude(10, sketch001)
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// // Mirror an un-closed sketch across a custom axis. /// // Mirror an un-closed sketch across a custom axis.
/// const sketch001 = startSketchOn('XZ') /// sketch001 = startSketchOn('XZ')
/// |> startProfileAt([0, 8.5], %) /// |> startProfileAt([0, 8.5], %)
/// |> line([20, -8.5], %) /// |> line([20, -8.5], %)
/// |> line([-20, -8.5], %) /// |> line([-20, -8.5], %)
@ -96,7 +96,7 @@ pub async fn mirror_2d(exec_state: &mut ExecState, args: Args) -> Result<KclValu
/// } /// }
/// }, %) /// }, %)
/// ///
/// const example = extrude(10, sketch001) /// example = extrude(10, sketch001)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "mirror2d", name = "mirror2d",

View File

@ -146,12 +146,12 @@ pub async fn pattern_transform_2d(exec_state: &mut ExecState, args: Args) -> Res
/// ///
/// ```no_run /// ```no_run
/// // Each instance will be shifted along the X axis. /// // Each instance will be shifted along the X axis.
/// fn transform = (id) => { /// fn transform(id) {
/// return { translate = [4 * id, 0, 0] } /// return { translate = [4 * id, 0, 0] }
/// } /// }
/// ///
/// // Sketch 4 cylinders. /// // Sketch 4 cylinders.
/// const sketch001 = startSketchOn('XZ') /// sketch001 = startSketchOn('XZ')
/// |> circle({ center = [0, 0], radius = 2 }, %) /// |> circle({ center = [0, 0], radius = 2 }, %)
/// |> extrude(5, %) /// |> extrude(5, %)
/// |> patternTransform(4, transform, %) /// |> patternTransform(4, transform, %)
@ -160,24 +160,24 @@ pub async fn pattern_transform_2d(exec_state: &mut ExecState, args: Args) -> Res
/// // Each instance will be shifted along the X axis, /// // Each instance will be shifted along the X axis,
/// // with a gap between the original (at x = 0) and the first replica /// // with a gap between the original (at x = 0) and the first replica
/// // (at x = 8). This is because `id` starts at 1. /// // (at x = 8). This is because `id` starts at 1.
/// fn transform = (id) => { /// fn transform(id) {
/// return { translate: [4 * (1+id), 0, 0] } /// return { translate: [4 * (1+id), 0, 0] }
/// } /// }
/// ///
/// const sketch001 = startSketchOn('XZ') /// sketch001 = startSketchOn('XZ')
/// |> circle({ center = [0, 0], radius = 2 }, %) /// |> circle({ center = [0, 0], radius = 2 }, %)
/// |> extrude(5, %) /// |> extrude(5, %)
/// |> patternTransform(4, transform, %) /// |> patternTransform(4, transform, %)
/// ``` /// ```
/// ```no_run /// ```no_run
/// fn cube = (length, center) => { /// fn cube(length, center) {
/// let l = length/2 /// l = length/2
/// let x = center[0] /// x = center[0]
/// let y = center[1] /// y = center[1]
/// let p0 = [-l + x, -l + y] /// p0 = [-l + x, -l + y]
/// let p1 = [-l + x, l + y] /// p1 = [-l + x, l + y]
/// let p2 = [ l + x, l + y] /// p2 = [ l + x, l + y]
/// let p3 = [ l + x, -l + y] /// p3 = [ l + x, -l + y]
/// ///
/// return startSketchAt(p0) /// return startSketchAt(p0)
/// |> lineTo(p1, %) /// |> lineTo(p1, %)
@ -188,8 +188,8 @@ pub async fn pattern_transform_2d(exec_state: &mut ExecState, args: Args) -> Res
/// |> extrude(length, %) /// |> extrude(length, %)
/// } /// }
/// ///
/// let width = 20 /// width = 20
/// fn transform = (i) => { /// fn transform(i) {
/// return { /// return {
/// // Move down each time. /// // Move down each time.
/// translate = [0, 0, -i * width], /// translate = [0, 0, -i * width],
@ -203,20 +203,20 @@ pub async fn pattern_transform_2d(exec_state: &mut ExecState, args: Args) -> Res
/// } /// }
/// } /// }
/// ///
/// let myCubes = /// myCubes =
/// cube(width, [100,0]) /// cube(width, [100,0])
/// |> patternTransform(25, transform, %) /// |> patternTransform(25, transform, %)
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// fn cube = (length, center) => { /// fn cube(length, center) {
/// let l = length/2 /// l = length/2
/// let x = center[0] /// x = center[0]
/// let y = center[1] /// y = center[1]
/// let p0 = [-l + x, -l + y] /// p0 = [-l + x, -l + y]
/// let p1 = [-l + x, l + y] /// p1 = [-l + x, l + y]
/// let p2 = [ l + x, l + y] /// p2 = [ l + x, l + y]
/// let p3 = [ l + x, -l + y] /// p3 = [ l + x, -l + y]
/// ///
/// return startSketchAt(p0) /// return startSketchAt(p0)
/// |> lineTo(p1, %) /// |> lineTo(p1, %)
@ -227,8 +227,8 @@ pub async fn pattern_transform_2d(exec_state: &mut ExecState, args: Args) -> Res
/// |> extrude(length, %) /// |> extrude(length, %)
/// } /// }
/// ///
/// let width = 20 /// width = 20
/// fn transform = (i) => { /// fn transform(i) {
/// return { /// return {
/// translate = [0, 0, -i * width], /// translate = [0, 0, -i * width],
/// rotation = { /// rotation = {
@ -238,36 +238,36 @@ pub async fn pattern_transform_2d(exec_state: &mut ExecState, args: Args) -> Res
/// } /// }
/// } /// }
/// } /// }
/// let myCubes = /// myCubes =
/// cube(width, [100,100]) /// cube(width, [100,100])
/// |> patternTransform(4, transform, %) /// |> patternTransform(4, transform, %)
/// ``` /// ```
/// ```no_run /// ```no_run
/// // Parameters /// // Parameters
/// const r = 50 // base radius /// r = 50 // base radius
/// const h = 10 // layer height /// h = 10 // layer height
/// const t = 0.005 // taper factor [0-1) /// t = 0.005 // taper factor [0-1)
/// // Defines how to modify each layer of the vase. /// // Defines how to modify each layer of the vase.
/// // Each replica is shifted up the Z axis, and has a smoothly-varying radius /// // Each replica is shifted up the Z axis, and has a smoothly-varying radius
/// fn transform = (replicaId) => { /// fn transform(replicaId) {
/// let scale = r * abs(1 - (t * replicaId)) * (5 + cos(replicaId / 8)) /// scale = r * abs(1 - (t * replicaId)) * (5 + cos(replicaId / 8))
/// return { /// return {
/// translate = [0, 0, replicaId * 10], /// translate = [0, 0, replicaId * 10],
/// scale = [scale, scale, 0], /// scale = [scale, scale, 0],
/// } /// }
/// } /// }
/// // Each layer is just a pretty thin cylinder. /// // Each layer is just a pretty thin cylinder.
/// fn layer = () => { /// fn layer() {
/// return startSketchOn("XY") // or some other plane idk /// return startSketchOn("XY") // or some other plane idk
/// |> circle({ center = [0, 0], radius = 1 }, %, $tag1) /// |> circle({ center = [0, 0], radius = 1 }, %, $tag1)
/// |> extrude(h, %) /// |> extrude(h, %)
/// } /// }
/// // The vase is 100 layers tall. /// // The vase is 100 layers tall.
/// // The 100 layers are replica of each other, with a slight transformation applied to each. /// // The 100 layers are replica of each other, with a slight transformation applied to each.
/// let vase = layer() |> patternTransform(100, transform, %) /// vase = layer() |> patternTransform(100, transform, %)
/// ``` /// ```
/// ``` /// ```
/// fn transform = (i) => { /// fn transform(i) {
/// // Transform functions can return multiple transforms. They'll be applied in order. /// // Transform functions can return multiple transforms. They'll be applied in order.
/// return [ /// return [
/// { translate: [30 * i, 0, 0] }, /// { translate: [30 * i, 0, 0] },
@ -312,7 +312,7 @@ async fn inner_pattern_transform<'a>(
/// Just like patternTransform, but works on 2D sketches not 3D solids. /// Just like patternTransform, but works on 2D sketches not 3D solids.
/// ```no_run /// ```no_run
/// // Each instance will be shifted along the X axis. /// // Each instance will be shifted along the X axis.
/// fn transform = (id) => { /// fn transform(id) {
/// return { translate: [4 * id, 0] } /// return { translate: [4 * id, 0] }
/// } /// }
/// ///
@ -689,7 +689,7 @@ pub async fn pattern_linear_2d(exec_state: &mut ExecState, args: Args) -> Result
/// of distance between each repetition, some specified number of times. /// of distance between each repetition, some specified number of times.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> circle({ center = [0, 0], radius = 1 }, %) /// |> circle({ center = [0, 0], radius = 1 }, %)
/// |> patternLinear2d({ /// |> patternLinear2d({
/// axis = [1, 0], /// axis = [1, 0],
@ -697,7 +697,7 @@ pub async fn pattern_linear_2d(exec_state: &mut ExecState, args: Args) -> Result
/// distance = 4 /// distance = 4
/// }, %) /// }, %)
/// ///
/// const example = extrude(1, exampleSketch) /// example = extrude(1, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "patternLinear2d", name = "patternLinear2d",
@ -746,14 +746,14 @@ pub async fn pattern_linear_3d(exec_state: &mut ExecState, args: Args) -> Result
/// of distance between each repetition, some specified number of times. /// of distance between each repetition, some specified number of times.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([0, 2], %) /// |> line([0, 2], %)
/// |> line([3, 1], %) /// |> line([3, 1], %)
/// |> line([0, -4], %) /// |> line([0, -4], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(1, exampleSketch) /// example = extrude(1, exampleSketch)
/// |> patternLinear3d({ /// |> patternLinear3d({
/// axis = [1, 0, 1], /// axis = [1, 0, 1],
/// instances = 7, /// instances = 7,
@ -900,7 +900,7 @@ pub async fn pattern_circular_2d(exec_state: &mut ExecState, args: Args) -> Resu
/// solid with respect to the center of the circle is maintained. /// solid with respect to the center of the circle is maintained.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([.5, 25], %) /// |> startProfileAt([.5, 25], %)
/// |> line([0, 5], %) /// |> line([0, 5], %)
/// |> line([-1, 0], %) /// |> line([-1, 0], %)
@ -913,7 +913,7 @@ pub async fn pattern_circular_2d(exec_state: &mut ExecState, args: Args) -> Resu
/// rotateDuplicates = true /// rotateDuplicates = true
/// }, %) /// }, %)
/// ///
/// const example = extrude(1, exampleSketch) /// example = extrude(1, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "patternCircular2d", name = "patternCircular2d",
@ -967,10 +967,10 @@ pub async fn pattern_circular_3d(exec_state: &mut ExecState, args: Args) -> Resu
/// solid with respect to the center of the circle is maintained. /// solid with respect to the center of the circle is maintained.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> circle({ center = [0, 0], radius = 1 }, %) /// |> circle({ center = [0, 0], radius = 1 }, %)
/// ///
/// const example = extrude(-5, exampleSketch) /// example = extrude(-5, exampleSketch)
/// |> patternCircular3d({ /// |> patternCircular3d({
/// axis = [1, -1, 0], /// axis = [1, -1, 0],
/// center = [10, -20, 0], /// center = [10, -20, 0],

View File

@ -65,7 +65,7 @@ pub async fn offset_plane(exec_state: &mut ExecState, args: Args) -> Result<KclV
/// ///
/// ```no_run /// ```no_run
/// // Loft a square and a circle on the `XY` plane using offset. /// // Loft a square and a circle on the `XY` plane using offset.
/// const squareSketch = startSketchOn('XY') /// squareSketch = startSketchOn('XY')
/// |> startProfileAt([-100, 200], %) /// |> startProfileAt([-100, 200], %)
/// |> line([200, 0], %) /// |> line([200, 0], %)
/// |> line([0, -200], %) /// |> line([0, -200], %)
@ -73,7 +73,7 @@ pub async fn offset_plane(exec_state: &mut ExecState, args: Args) -> Result<KclV
/// |> lineTo([profileStartX(%), profileStartY(%)], %) /// |> lineTo([profileStartX(%), profileStartY(%)], %)
/// |> close(%) /// |> close(%)
/// ///
/// const circleSketch = startSketchOn(offsetPlane('XY', 150)) /// circleSketch = startSketchOn(offsetPlane('XY', 150))
/// |> circle({ center = [0, 100], radius = 50 }, %) /// |> circle({ center = [0, 100], radius = 50 }, %)
/// ///
/// loft([squareSketch, circleSketch]) /// loft([squareSketch, circleSketch])
@ -81,7 +81,7 @@ pub async fn offset_plane(exec_state: &mut ExecState, args: Args) -> Result<KclV
/// ///
/// ```no_run /// ```no_run
/// // Loft a square and a circle on the `XZ` plane using offset. /// // Loft a square and a circle on the `XZ` plane using offset.
/// const squareSketch = startSketchOn('XZ') /// squareSketch = startSketchOn('XZ')
/// |> startProfileAt([-100, 200], %) /// |> startProfileAt([-100, 200], %)
/// |> line([200, 0], %) /// |> line([200, 0], %)
/// |> line([0, -200], %) /// |> line([0, -200], %)
@ -89,7 +89,7 @@ pub async fn offset_plane(exec_state: &mut ExecState, args: Args) -> Result<KclV
/// |> lineTo([profileStartX(%), profileStartY(%)], %) /// |> lineTo([profileStartX(%), profileStartY(%)], %)
/// |> close(%) /// |> close(%)
/// ///
/// const circleSketch = startSketchOn(offsetPlane('XZ', 150)) /// circleSketch = startSketchOn(offsetPlane('XZ', 150))
/// |> circle({ center = [0, 100], radius = 50 }, %) /// |> circle({ center = [0, 100], radius = 50 }, %)
/// ///
/// loft([squareSketch, circleSketch]) /// loft([squareSketch, circleSketch])
@ -97,7 +97,7 @@ pub async fn offset_plane(exec_state: &mut ExecState, args: Args) -> Result<KclV
/// ///
/// ```no_run /// ```no_run
/// // Loft a square and a circle on the `YZ` plane using offset. /// // Loft a square and a circle on the `YZ` plane using offset.
/// const squareSketch = startSketchOn('YZ') /// squareSketch = startSketchOn('YZ')
/// |> startProfileAt([-100, 200], %) /// |> startProfileAt([-100, 200], %)
/// |> line([200, 0], %) /// |> line([200, 0], %)
/// |> line([0, -200], %) /// |> line([0, -200], %)
@ -105,7 +105,7 @@ pub async fn offset_plane(exec_state: &mut ExecState, args: Args) -> Result<KclV
/// |> lineTo([profileStartX(%), profileStartY(%)], %) /// |> lineTo([profileStartX(%), profileStartY(%)], %)
/// |> close(%) /// |> close(%)
/// ///
/// const circleSketch = startSketchOn(offsetPlane('YZ', 150)) /// circleSketch = startSketchOn(offsetPlane('YZ', 150))
/// |> circle({ center = [0, 100], radius = 50 }, %) /// |> circle({ center = [0, 100], radius = 50 }, %)
/// ///
/// loft([squareSketch, circleSketch]) /// loft([squareSketch, circleSketch])
@ -113,7 +113,7 @@ pub async fn offset_plane(exec_state: &mut ExecState, args: Args) -> Result<KclV
/// ///
/// ```no_run /// ```no_run
/// // Loft a square and a circle on the `-XZ` plane using offset. /// // Loft a square and a circle on the `-XZ` plane using offset.
/// const squareSketch = startSketchOn('-XZ') /// squareSketch = startSketchOn('-XZ')
/// |> startProfileAt([-100, 200], %) /// |> startProfileAt([-100, 200], %)
/// |> line([200, 0], %) /// |> line([200, 0], %)
/// |> line([0, -200], %) /// |> line([0, -200], %)
@ -121,7 +121,7 @@ pub async fn offset_plane(exec_state: &mut ExecState, args: Args) -> Result<KclV
/// |> lineTo([profileStartX(%), profileStartY(%)], %) /// |> lineTo([profileStartX(%), profileStartY(%)], %)
/// |> close(%) /// |> close(%)
/// ///
/// const circleSketch = startSketchOn(offsetPlane('-XZ', -150)) /// circleSketch = startSketchOn(offsetPlane('-XZ', -150))
/// |> circle({ center = [0, 100], radius = 50 }, %) /// |> circle({ center = [0, 100], radius = 50 }, %)
/// ///
/// loft([squareSketch, circleSketch]) /// loft([squareSketch, circleSketch])

View File

@ -34,7 +34,7 @@ pub async fn polar(_exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// cartesian (x/y/z grid) coordinates. /// cartesian (x/y/z grid) coordinates.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line(polar({angle: 30, length: 5}), %, $thing) /// |> line(polar({angle: 30, length: 5}), %, $thing)
/// |> line([0, 5], %) /// |> line([0, 5], %)
@ -42,7 +42,7 @@ pub async fn polar(_exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// |> line([-20, 10], %) /// |> line([-20, 10], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "polar", name = "polar",

View File

@ -113,7 +113,7 @@ pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// Revolve occurs around a local sketch axis rather than a global axis. /// Revolve occurs around a local sketch axis rather than a global axis.
/// ///
/// ```no_run /// ```no_run
/// const part001 = startSketchOn('XY') /// part001 = startSketchOn('XY')
/// |> startProfileAt([4, 12], %) /// |> startProfileAt([4, 12], %)
/// |> line([2, 0], %) /// |> line([2, 0], %)
/// |> line([0, -6], %) /// |> line([0, -6], %)
@ -128,7 +128,7 @@ pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ///
/// ```no_run /// ```no_run
/// // A donut shape. /// // A donut shape.
/// const sketch001 = startSketchOn('XY') /// sketch001 = startSketchOn('XY')
/// |> circle({ center = [15, 0], radius = 5 }, %) /// |> circle({ center = [15, 0], radius = 5 }, %)
/// |> revolve({ /// |> revolve({
/// angle = 360, /// angle = 360,
@ -137,7 +137,7 @@ pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const part001 = startSketchOn('XY') /// part001 = startSketchOn('XY')
/// |> startProfileAt([4, 12], %) /// |> startProfileAt([4, 12], %)
/// |> line([2, 0], %) /// |> line([2, 0], %)
/// |> line([0, -6], %) /// |> line([0, -6], %)
@ -151,7 +151,7 @@ pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const part001 = startSketchOn('XY') /// part001 = startSketchOn('XY')
/// |> startProfileAt([4, 12], %) /// |> startProfileAt([4, 12], %)
/// |> line([2, 0], %) /// |> line([2, 0], %)
/// |> line([0, -6], %) /// |> line([0, -6], %)
@ -162,7 +162,7 @@ pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// |> line([-2, 0], %) /// |> line([-2, 0], %)
/// |> close(%) /// |> close(%)
/// |> revolve({axis = 'y', angle = 180}, %) /// |> revolve({axis = 'y', angle = 180}, %)
/// const part002 = startSketchOn(part001, 'end') /// part002 = startSketchOn(part001, 'end')
/// |> startProfileAt([4.5, -5], %) /// |> startProfileAt([4.5, -5], %)
/// |> line([0, 5], %) /// |> line([0, 5], %)
/// |> line([5, 0], %) /// |> line([5, 0], %)
@ -172,7 +172,7 @@ pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const box = startSketchOn('XY') /// box = startSketchOn('XY')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([0, 20], %) /// |> line([0, 20], %)
/// |> line([20, 0], %) /// |> line([20, 0], %)
@ -180,7 +180,7 @@ pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// |> close(%) /// |> close(%)
/// |> extrude(20, %) /// |> extrude(20, %)
/// ///
/// const sketch001 = startSketchOn(box, "END") /// sketch001 = startSketchOn(box, "END")
/// |> circle({ center = [10,10], radius = 4 }, %) /// |> circle({ center = [10,10], radius = 4 }, %)
/// |> revolve({ /// |> revolve({
/// angle = -90, /// angle = -90,
@ -189,7 +189,7 @@ pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const box = startSketchOn('XY') /// box = startSketchOn('XY')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([0, 20], %) /// |> line([0, 20], %)
/// |> line([20, 0], %) /// |> line([20, 0], %)
@ -197,7 +197,7 @@ pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// |> close(%) /// |> close(%)
/// |> extrude(20, %) /// |> extrude(20, %)
/// ///
/// const sketch001 = startSketchOn(box, "END") /// sketch001 = startSketchOn(box, "END")
/// |> circle({ center = [10,10], radius = 4 }, %) /// |> circle({ center = [10,10], radius = 4 }, %)
/// |> revolve({ /// |> revolve({
/// angle = 90, /// angle = 90,
@ -206,7 +206,7 @@ pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const box = startSketchOn('XY') /// box = startSketchOn('XY')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([0, 20], %) /// |> line([0, 20], %)
/// |> line([20, 0], %) /// |> line([20, 0], %)
@ -214,7 +214,7 @@ pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// |> close(%) /// |> close(%)
/// |> extrude(20, %) /// |> extrude(20, %)
/// ///
/// const sketch001 = startSketchOn(box, "END") /// sketch001 = startSketchOn(box, "END")
/// |> circle({ center = [10,10], radius = 4 }, %) /// |> circle({ center = [10,10], radius = 4 }, %)
/// |> revolve({ /// |> revolve({
/// angle = 90, /// angle = 90,
@ -224,14 +224,14 @@ pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const sketch001 = startSketchOn('XY') /// sketch001 = startSketchOn('XY')
/// |> startProfileAt([10, 0], %) /// |> startProfileAt([10, 0], %)
/// |> line([5, -5], %) /// |> line([5, -5], %)
/// |> line([5, 5], %) /// |> line([5, 5], %)
/// |> lineTo([profileStartX(%), profileStartY(%)], %) /// |> lineTo([profileStartX(%), profileStartY(%)], %)
/// |> close(%) /// |> close(%)
/// ///
/// const part001 = revolve({ /// part001 = revolve({
/// axis = { /// axis = {
/// custom: { /// custom: {
/// axis = [0.0, 1.0], /// axis = [0.0, 1.0],

View File

@ -30,7 +30,7 @@ pub async fn segment_end(exec_state: &mut ExecState, args: Args) -> Result<KclVa
/// |> close(%) /// |> close(%)
/// |> extrude(5, %) /// |> extrude(5, %)
/// ///
/// fn cylinder = (radius, tag) => { /// fn cylinder(radius, tag) {
/// return startSketchAt([0, 0]) /// return startSketchAt([0, 0])
/// |> circle({ radius = radius, center = segEnd(tag) }, %) /// |> circle({ radius = radius, center = segEnd(tag) }, %)
/// |> extrude(radius, %) /// |> extrude(radius, %)
@ -67,7 +67,7 @@ pub async fn segment_end_x(exec_state: &mut ExecState, args: Args) -> Result<Kcl
/// Compute the ending point of the provided line segment along the 'x' axis. /// Compute the ending point of the provided line segment along the 'x' axis.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([20, 0], %, $thing) /// |> line([20, 0], %, $thing)
/// |> line([0, 5], %) /// |> line([0, 5], %)
@ -75,7 +75,7 @@ pub async fn segment_end_x(exec_state: &mut ExecState, args: Args) -> Result<Kcl
/// |> line([-20, 10], %) /// |> line([-20, 10], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "segEndX", name = "segEndX",
@ -103,7 +103,7 @@ pub async fn segment_end_y(exec_state: &mut ExecState, args: Args) -> Result<Kcl
/// Compute the ending point of the provided line segment along the 'y' axis. /// Compute the ending point of the provided line segment along the 'y' axis.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([20, 0], %) /// |> line([20, 0], %)
/// |> line([0, 3], %, $thing) /// |> line([0, 3], %, $thing)
@ -112,7 +112,7 @@ pub async fn segment_end_y(exec_state: &mut ExecState, args: Args) -> Result<Kcl
/// |> line([-10, 0], %) /// |> line([-10, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "segEndY", name = "segEndY",
@ -149,7 +149,7 @@ pub async fn segment_start(exec_state: &mut ExecState, args: Args) -> Result<Kcl
/// |> close(%) /// |> close(%)
/// |> extrude(5, %) /// |> extrude(5, %)
/// ///
/// fn cylinder = (radius, tag) => { /// fn cylinder(radius, tag) {
/// return startSketchAt([0, 0]) /// return startSketchAt([0, 0])
/// |> circle({ radius = radius, center = segStart(tag) }, %) /// |> circle({ radius = radius, center = segStart(tag) }, %)
/// |> extrude(radius, %) /// |> extrude(radius, %)
@ -186,7 +186,7 @@ pub async fn segment_start_x(exec_state: &mut ExecState, args: Args) -> Result<K
/// Compute the starting point of the provided line segment along the 'x' axis. /// Compute the starting point of the provided line segment along the 'x' axis.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([20, 0], %, $thing) /// |> line([20, 0], %, $thing)
/// |> line([0, 5], %) /// |> line([0, 5], %)
@ -194,7 +194,7 @@ pub async fn segment_start_x(exec_state: &mut ExecState, args: Args) -> Result<K
/// |> line([-20, 10], %) /// |> line([-20, 10], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "segStartX", name = "segStartX",
@ -222,7 +222,7 @@ pub async fn segment_start_y(exec_state: &mut ExecState, args: Args) -> Result<K
/// Compute the starting point of the provided line segment along the 'y' axis. /// Compute the starting point of the provided line segment along the 'y' axis.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([20, 0], %) /// |> line([20, 0], %)
/// |> line([0, 3], %, $thing) /// |> line([0, 3], %, $thing)
@ -231,7 +231,7 @@ pub async fn segment_start_y(exec_state: &mut ExecState, args: Args) -> Result<K
/// |> line([-10, 0], %) /// |> line([-10, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "segStartY", name = "segStartY",
@ -259,7 +259,7 @@ pub async fn last_segment_x(_exec_state: &mut ExecState, args: Args) -> Result<K
/// sketch. /// sketch.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([5, 0], %) /// |> line([5, 0], %)
/// |> line([20, 5], %) /// |> line([20, 5], %)
@ -267,7 +267,7 @@ pub async fn last_segment_x(_exec_state: &mut ExecState, args: Args) -> Result<K
/// |> line([-15, 0], %) /// |> line([-15, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "lastSegX", name = "lastSegX",
@ -299,7 +299,7 @@ pub async fn last_segment_y(_exec_state: &mut ExecState, args: Args) -> Result<K
/// sketch. /// sketch.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([5, 0], %) /// |> line([5, 0], %)
/// |> line([20, 5], %) /// |> line([20, 5], %)
@ -307,7 +307,7 @@ pub async fn last_segment_y(_exec_state: &mut ExecState, args: Args) -> Result<K
/// |> line([-15, 0], %) /// |> line([-15, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "lastSegY", name = "lastSegY",
@ -337,7 +337,7 @@ pub async fn segment_length(exec_state: &mut ExecState, args: Args) -> Result<Kc
/// Compute the length of the provided line segment. /// Compute the length of the provided line segment.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = 60, /// angle = 60,
@ -353,7 +353,7 @@ pub async fn segment_length(exec_state: &mut ExecState, args: Args) -> Result<Kc
/// }, %) /// }, %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "segLen", name = "segLen",
@ -383,7 +383,7 @@ pub async fn segment_angle(exec_state: &mut ExecState, args: Args) -> Result<Kcl
/// Compute the angle (in degrees) of the provided line segment. /// Compute the angle (in degrees) of the provided line segment.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([10, 0], %) /// |> line([10, 0], %)
/// |> line([5, 10], %, $seg01) /// |> line([5, 10], %, $seg01)
@ -393,7 +393,7 @@ pub async fn segment_angle(exec_state: &mut ExecState, args: Args) -> Result<Kcl
/// |> angledLine([segAng(seg01), -15], %) /// |> angledLine([segAng(seg01), -15], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(4, exampleSketch) /// example = extrude(4, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "segAng", name = "segAng",
@ -528,7 +528,7 @@ pub async fn angle_to_match_length_x(exec_state: &mut ExecState, args: Args) ->
/// Returns the angle to match the given length for x. /// Returns the angle to match the given length for x.
/// ///
/// ```no_run /// ```no_run
/// const sketch001 = startSketchOn('XZ') /// sketch001 = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([2, 5], %, $seg01) /// |> line([2, 5], %, $seg01)
/// |> angledLineToX([ /// |> angledLineToX([
@ -537,7 +537,7 @@ pub async fn angle_to_match_length_x(exec_state: &mut ExecState, args: Args) ->
/// ], %) /// ], %)
/// |> close(%) /// |> close(%)
/// ///
/// const extrusion = extrude(5, sketch001) /// extrusion = extrude(5, sketch001)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "angleToMatchLengthX", name = "angleToMatchLengthX",
@ -591,7 +591,7 @@ pub async fn angle_to_match_length_y(exec_state: &mut ExecState, args: Args) ->
/// Returns the angle to match the given length for y. /// Returns the angle to match the given length for y.
/// ///
/// ```no_run /// ```no_run
/// const sketch001 = startSketchOn('XZ') /// sketch001 = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([1, 2], %, $seg01) /// |> line([1, 2], %, $seg01)
/// |> angledLine({ /// |> angledLine({
@ -601,7 +601,7 @@ pub async fn angle_to_match_length_y(exec_state: &mut ExecState, args: Args) ->
/// |> yLineTo(0, %) /// |> yLineTo(0, %)
/// |> close(%) /// |> close(%)
/// ///
/// const extrusion = extrude(5, sketch001) /// extrusion = extrude(5, sketch001)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "angleToMatchLengthY", name = "angleToMatchLengthY",

View File

@ -56,14 +56,14 @@ pub async fn circle(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// the provided (x, y) origin point. /// the provided (x, y) origin point.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("-XZ") /// exampleSketch = startSketchOn("-XZ")
/// |> circle({ center = [0, 0], radius = 10 }, %) /// |> circle({ center = [0, 0], radius = 10 }, %)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([-15, 0], %) /// |> startProfileAt([-15, 0], %)
/// |> line([30, 0], %) /// |> line([30, 0], %)
/// |> line([0, 30], %) /// |> line([0, 30], %)
@ -71,7 +71,7 @@ pub async fn circle(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// |> close(%) /// |> close(%)
/// |> hole(circle({ center = [0, 15], radius = 5 }, %), %) /// |> hole(circle({ center = [0, 15], radius = 5 }, %), %)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "circle", name = "circle",

View File

@ -38,7 +38,7 @@ pub async fn shell(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// ///
/// ```no_run /// ```no_run
/// // Remove the end face for the extrusion. /// // Remove the end face for the extrusion.
/// const firstSketch = startSketchOn('XY') /// firstSketch = startSketchOn('XY')
/// |> startProfileAt([-12, 12], %) /// |> startProfileAt([-12, 12], %)
/// |> line([24, 0], %) /// |> line([24, 0], %)
/// |> line([0, -24], %) /// |> line([0, -24], %)
@ -55,7 +55,7 @@ pub async fn shell(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// ///
/// ```no_run /// ```no_run
/// // Remove the start face for the extrusion. /// // Remove the start face for the extrusion.
/// const firstSketch = startSketchOn('-XZ') /// firstSketch = startSketchOn('-XZ')
/// |> startProfileAt([-12, 12], %) /// |> startProfileAt([-12, 12], %)
/// |> line([24, 0], %) /// |> line([24, 0], %)
/// |> line([0, -24], %) /// |> line([0, -24], %)
@ -72,7 +72,7 @@ pub async fn shell(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// ///
/// ```no_run /// ```no_run
/// // Remove a tagged face and the end face for the extrusion. /// // Remove a tagged face and the end face for the extrusion.
/// const firstSketch = startSketchOn('XY') /// firstSketch = startSketchOn('XY')
/// |> startProfileAt([-12, 12], %) /// |> startProfileAt([-12, 12], %)
/// |> line([24, 0], %) /// |> line([24, 0], %)
/// |> line([0, -24], %) /// |> line([0, -24], %)
@ -89,7 +89,7 @@ pub async fn shell(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// ///
/// ```no_run /// ```no_run
/// // Remove multiple faces at once. /// // Remove multiple faces at once.
/// const firstSketch = startSketchOn('XY') /// firstSketch = startSketchOn('XY')
/// |> startProfileAt([-12, 12], %) /// |> startProfileAt([-12, 12], %)
/// |> line([24, 0], %) /// |> line([24, 0], %)
/// |> line([0, -24], %) /// |> line([0, -24], %)
@ -106,8 +106,8 @@ pub async fn shell(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// ///
/// ```no_run /// ```no_run
/// // Shell a sketch on face. /// // Shell a sketch on face.
/// let size = 100 /// size = 100
/// const case = startSketchOn('-XZ') /// case = startSketchOn('-XZ')
/// |> startProfileAt([-size, -size], %) /// |> startProfileAt([-size, -size], %)
/// |> line([2 * size, 0], %) /// |> line([2 * size, 0], %)
/// |> line([0, 2 * size], %) /// |> line([0, 2 * size], %)
@ -115,11 +115,11 @@ pub async fn shell(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// |> close(%) /// |> close(%)
/// |> extrude(65, %) /// |> extrude(65, %)
/// ///
/// const thing1 = startSketchOn(case, 'end') /// thing1 = startSketchOn(case, 'end')
/// |> circle({ center = [-size / 2, -size / 2], radius = 25 }, %) /// |> circle({ center = [-size / 2, -size / 2], radius = 25 }, %)
/// |> extrude(50, %) /// |> extrude(50, %)
/// ///
/// const thing2 = startSketchOn(case, 'end') /// thing2 = startSketchOn(case, 'end')
/// |> circle({ center = [size / 2, -size / 2], radius = 25 }, %) /// |> circle({ center = [size / 2, -size / 2], radius = 25 }, %)
/// |> extrude(50, %) /// |> extrude(50, %)
/// ///
@ -129,8 +129,8 @@ pub async fn shell(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// ///
/// ```no_run /// ```no_run
/// // Shell a sketch on face object on the end face. /// // Shell a sketch on face object on the end face.
/// let size = 100 /// size = 100
/// const case = startSketchOn('XY') /// case = startSketchOn('XY')
/// |> startProfileAt([-size, -size], %) /// |> startProfileAt([-size, -size], %)
/// |> line([2 * size, 0], %) /// |> line([2 * size, 0], %)
/// |> line([0, 2 * size], %) /// |> line([0, 2 * size], %)
@ -138,11 +138,11 @@ pub async fn shell(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// |> close(%) /// |> close(%)
/// |> extrude(65, %) /// |> extrude(65, %)
/// ///
/// const thing1 = startSketchOn(case, 'end') /// thing1 = startSketchOn(case, 'end')
/// |> circle({ center = [-size / 2, -size / 2], radius = 25 }, %) /// |> circle({ center = [-size / 2, -size / 2], radius = 25 }, %)
/// |> extrude(50, %) /// |> extrude(50, %)
/// ///
/// const thing2 = startSketchOn(case, 'end') /// thing2 = startSketchOn(case, 'end')
/// |> circle({ center = [size / 2, -size / 2], radius = 25 }, %) /// |> circle({ center = [size / 2, -size / 2], radius = 25 }, %)
/// |> extrude(50, %) /// |> extrude(50, %)
/// ///
@ -154,8 +154,8 @@ pub async fn shell(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// // Shell sketched on face objects on the end face, include all sketches to shell /// // Shell sketched on face objects on the end face, include all sketches to shell
/// // the entire object. /// // the entire object.
/// ///
/// let size = 100 /// size = 100
/// const case = startSketchOn('XY') /// case = startSketchOn('XY')
/// |> startProfileAt([-size, -size], %) /// |> startProfileAt([-size, -size], %)
/// |> line([2 * size, 0], %) /// |> line([2 * size, 0], %)
/// |> line([0, 2 * size], %) /// |> line([0, 2 * size], %)
@ -163,11 +163,11 @@ pub async fn shell(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// |> close(%) /// |> close(%)
/// |> extrude(65, %) /// |> extrude(65, %)
/// ///
/// const thing1 = startSketchOn(case, 'end') /// thing1 = startSketchOn(case, 'end')
/// |> circle({ center = [-size / 2, -size / 2], radius = 25 }, %) /// |> circle({ center = [-size / 2, -size / 2], radius = 25 }, %)
/// |> extrude(50, %) /// |> extrude(50, %)
/// ///
/// const thing2 = startSketchOn(case, 'end') /// thing2 = startSketchOn(case, 'end')
/// |> circle({ center = [size / 2, -size / 2], radius = 25 }, %) /// |> circle({ center = [size / 2, -size / 2], radius = 25 }, %)
/// |> extrude(50, %) /// |> extrude(50, %)
/// ///
@ -257,7 +257,7 @@ pub async fn hollow(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ///
/// ```no_run /// ```no_run
/// // Hollow a basic sketch. /// // Hollow a basic sketch.
/// const firstSketch = startSketchOn('XY') /// firstSketch = startSketchOn('XY')
/// |> startProfileAt([-12, 12], %) /// |> startProfileAt([-12, 12], %)
/// |> line([24, 0], %) /// |> line([24, 0], %)
/// |> line([0, -24], %) /// |> line([0, -24], %)
@ -269,7 +269,7 @@ pub async fn hollow(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ///
/// ```no_run /// ```no_run
/// // Hollow a basic sketch. /// // Hollow a basic sketch.
/// const firstSketch = startSketchOn('-XZ') /// firstSketch = startSketchOn('-XZ')
/// |> startProfileAt([-12, 12], %) /// |> startProfileAt([-12, 12], %)
/// |> line([24, 0], %) /// |> line([24, 0], %)
/// |> line([0, -24], %) /// |> line([0, -24], %)
@ -281,8 +281,8 @@ pub async fn hollow(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ///
/// ```no_run /// ```no_run
/// // Hollow a sketch on face object. /// // Hollow a sketch on face object.
/// let size = 100 /// size = 100
/// const case = startSketchOn('-XZ') /// case = startSketchOn('-XZ')
/// |> startProfileAt([-size, -size], %) /// |> startProfileAt([-size, -size], %)
/// |> line([2 * size, 0], %) /// |> line([2 * size, 0], %)
/// |> line([0, 2 * size], %) /// |> line([0, 2 * size], %)
@ -290,11 +290,11 @@ pub async fn hollow(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// |> close(%) /// |> close(%)
/// |> extrude(65, %) /// |> extrude(65, %)
/// ///
/// const thing1 = startSketchOn(case, 'end') /// thing1 = startSketchOn(case, 'end')
/// |> circle({ center = [-size / 2, -size / 2], radius = 25 }, %) /// |> circle({ center = [-size / 2, -size / 2], radius = 25 }, %)
/// |> extrude(50, %) /// |> extrude(50, %)
/// ///
/// const thing2 = startSketchOn(case, 'end') /// thing2 = startSketchOn(case, 'end')
/// |> circle({ center = [size / 2, -size / 2], radius = 25 }, %) /// |> circle({ center = [size / 2, -size / 2], radius = 25 }, %)
/// |> extrude(50, %) /// |> extrude(50, %)
/// ///

View File

@ -104,14 +104,14 @@ pub async fn line_to(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// Draw a line from the current origin to some absolute (x, y) point. /// Draw a line from the current origin to some absolute (x, y) point.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> lineTo([10, 0], %) /// |> lineTo([10, 0], %)
/// |> lineTo([0, 10], %) /// |> lineTo([0, 10], %)
/// |> lineTo([-10, 0], %) /// |> lineTo([-10, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "lineTo", name = "lineTo",
@ -175,7 +175,7 @@ pub async fn x_line_to(exec_state: &mut ExecState, args: Args) -> Result<KclValu
/// then xLineTo(4) draws a line from (1, 1) to (4, 1) /// then xLineTo(4) draws a line from (1, 1) to (4, 1)
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> xLineTo(15, %) /// |> xLineTo(15, %)
/// |> angledLine({ /// |> angledLine({
@ -191,7 +191,7 @@ pub async fn x_line_to(exec_state: &mut ExecState, args: Args) -> Result<KclValu
/// |> xLineTo(10, %) /// |> xLineTo(10, %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(10, exampleSketch) /// example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "xLineTo", name = "xLineTo",
@ -225,7 +225,7 @@ pub async fn y_line_to(exec_state: &mut ExecState, args: Args) -> Result<KclValu
/// then yLineTo(4) draws a line from (1, 1) to (1, 4) /// then yLineTo(4) draws a line from (1, 1) to (1, 4)
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = 50, /// angle = 50,
@ -234,7 +234,7 @@ pub async fn y_line_to(exec_state: &mut ExecState, args: Args) -> Result<KclValu
/// |> yLineTo(0, %) /// |> yLineTo(0, %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "yLineTo", name = "yLineTo",
@ -266,25 +266,25 @@ pub async fn line(exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// from the current position. /// from the current position.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([25, 15], %) /// |> line([25, 15], %)
/// |> line([5, -6], %) /// |> line([5, -6], %)
/// |> line([-10, -10], %) /// |> line([-10, -10], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([10, 0], %) /// |> line([10, 0], %)
/// |> line([0, 10], %) /// |> line([0, 10], %)
/// |> line([-10, 0], %) /// |> line([-10, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "line", name = "line",
@ -349,7 +349,7 @@ pub async fn x_line(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// from the current position along the 'x' axis. /// from the current position along the 'x' axis.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> xLine(15, %) /// |> xLine(15, %)
/// |> angledLine({ /// |> angledLine({
@ -365,7 +365,7 @@ pub async fn x_line(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// |> xLine(-15, %) /// |> xLine(-15, %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(10, exampleSketch) /// example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "xLine", name = "xLine",
@ -394,7 +394,7 @@ pub async fn y_line(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// from the current position along the 'y' axis. /// from the current position along the 'y' axis.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> yLine(15, %) /// |> yLine(15, %)
/// |> angledLine({ /// |> angledLine({
@ -405,7 +405,7 @@ pub async fn y_line(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// |> yLine(-5, %) /// |> yLine(-5, %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(10, exampleSketch) /// example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "yLine", name = "yLine",
@ -450,7 +450,7 @@ pub async fn angled_line(exec_state: &mut ExecState, args: Args) -> Result<KclVa
/// measure of some angle and distance. /// measure of some angle and distance.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> yLineTo(15, %) /// |> yLineTo(15, %)
/// |> angledLine({ /// |> angledLine({
@ -461,7 +461,7 @@ pub async fn angled_line(exec_state: &mut ExecState, args: Args) -> Result<KclVa
/// |> yLineTo(0, %) /// |> yLineTo(0, %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(10, exampleSketch) /// example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "angledLine", name = "angledLine",
@ -537,14 +537,14 @@ pub async fn angled_line_of_x_length(exec_state: &mut ExecState, args: Args) ->
/// along some angle (in degrees) for some relative length in the 'x' dimension. /// along some angle (in degrees) for some relative length in the 'x' dimension.
/// ///
/// ```no_run /// ```no_run
/// const sketch001 = startSketchOn('XZ') /// sketch001 = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLineOfXLength({ angle = 45, length = 10 }, %, $edge1) /// |> angledLineOfXLength({ angle = 45, length = 10 }, %, $edge1)
/// |> angledLineOfXLength({ angle = -15, length = 20 }, %, $edge2) /// |> angledLineOfXLength({ angle = -15, length = 20 }, %, $edge2)
/// |> line([0, -5], %) /// |> line([0, -5], %)
/// |> close(%, $edge3) /// |> close(%, $edge3)
/// ///
/// const extrusion = extrude(10, sketch001) /// extrusion = extrude(10, sketch001)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "angledLineOfXLength", name = "angledLineOfXLength",
@ -608,14 +608,14 @@ pub async fn angled_line_to_x(exec_state: &mut ExecState, args: Args) -> Result<
/// in the 'x' dimension. /// in the 'x' dimension.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLineToX({ angle = 30, to = 10 }, %) /// |> angledLineToX({ angle = 30, to = 10 }, %)
/// |> line([0, 10], %) /// |> line([0, 10], %)
/// |> line([-10, 0], %) /// |> line([-10, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(10, exampleSketch) /// example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "angledLineToX", name = "angledLineToX",
@ -667,7 +667,7 @@ pub async fn angled_line_of_y_length(exec_state: &mut ExecState, args: Args) ->
/// along some angle (in degrees) for some relative length in the 'y' dimension. /// along some angle (in degrees) for some relative length in the 'y' dimension.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([10, 0], %) /// |> line([10, 0], %)
/// |> angledLineOfYLength({ angle = 45, length = 10 }, %) /// |> angledLineOfYLength({ angle = 45, length = 10 }, %)
@ -676,7 +676,7 @@ pub async fn angled_line_of_y_length(exec_state: &mut ExecState, args: Args) ->
/// |> line([-10, 0], %) /// |> line([-10, 0], %)
/// |> line([0, -30], %) /// |> line([0, -30], %)
/// ///
/// const example = extrude(10, exampleSketch) /// example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "angledLineOfYLength", name = "angledLineOfYLength",
@ -729,14 +729,14 @@ pub async fn angled_line_to_y(exec_state: &mut ExecState, args: Args) -> Result<
/// in the 'y' dimension. /// in the 'y' dimension.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLineToY({ angle = 60, to = 20 }, %) /// |> angledLineToY({ angle = 60, to = 20 }, %)
/// |> line([-20, 0], %) /// |> line([-20, 0], %)
/// |> angledLineToY({ angle = 70, to = 10 }, %) /// |> angledLineToY({ angle = 70, to = 10 }, %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(10, exampleSketch) /// example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "angledLineToY", name = "angledLineToY",
@ -802,7 +802,7 @@ pub async fn angled_line_that_intersects(exec_state: &mut ExecState, args: Args)
/// segment. /// segment.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> lineTo([5, 10], %) /// |> lineTo([5, 10], %)
/// |> lineTo([-10, 10], %, $lineToIntersect) /// |> lineTo([-10, 10], %, $lineToIntersect)
@ -814,7 +814,7 @@ pub async fn angled_line_that_intersects(exec_state: &mut ExecState, args: Args)
/// }, %) /// }, %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(10, exampleSketch) /// example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "angledLineThatIntersects", name = "angledLineThatIntersects",
@ -859,33 +859,33 @@ pub async fn start_sketch_at(exec_state: &mut ExecState, args: Args) -> Result<K
/// Start a new 2-dimensional sketch at a given point on the 'XY' plane. /// Start a new 2-dimensional sketch at a given point on the 'XY' plane.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchAt([0, 0]) /// exampleSketch = startSketchAt([0, 0])
/// |> line([10, 0], %) /// |> line([10, 0], %)
/// |> line([0, 10], %) /// |> line([0, 10], %)
/// |> line([-10, 0], %) /// |> line([-10, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchAt([10, 10]) /// exampleSketch = startSketchAt([10, 10])
/// |> line([10, 0], %) /// |> line([10, 0], %)
/// |> line([0, 10], %) /// |> line([0, 10], %)
/// |> line([-10, 0], %) /// |> line([-10, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchAt([-10, 23]) /// exampleSketch = startSketchAt([-10, 23])
/// |> line([10, 0], %) /// |> line([10, 0], %)
/// |> line([0, 10], %) /// |> line([0, 10], %)
/// |> line([-10, 0], %) /// |> line([-10, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "startSketchAt", name = "startSketchAt",
@ -961,65 +961,65 @@ pub async fn start_sketch_on(exec_state: &mut ExecState, args: Args) -> Result<K
/// Start a new 2-dimensional sketch on a specific plane or face. /// Start a new 2-dimensional sketch on a specific plane or face.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XY") /// exampleSketch = startSketchOn("XY")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([10, 0], %) /// |> line([10, 0], %)
/// |> line([0, 10], %) /// |> line([0, 10], %)
/// |> line([-10, 0], %) /// |> line([-10, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ///
/// const exampleSketch002 = startSketchOn(example, 'end') /// exampleSketch002 = startSketchOn(example, 'end')
/// |> startProfileAt([1, 1], %) /// |> startProfileAt([1, 1], %)
/// |> line([8, 0], %) /// |> line([8, 0], %)
/// |> line([0, 8], %) /// |> line([0, 8], %)
/// |> line([-8, 0], %) /// |> line([-8, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example002 = extrude(5, exampleSketch002) /// example002 = extrude(5, exampleSketch002)
/// ///
/// const exampleSketch003 = startSketchOn(example002, 'end') /// exampleSketch003 = startSketchOn(example002, 'end')
/// |> startProfileAt([2, 2], %) /// |> startProfileAt([2, 2], %)
/// |> line([6, 0], %) /// |> line([6, 0], %)
/// |> line([0, 6], %) /// |> line([0, 6], %)
/// |> line([-6, 0], %) /// |> line([-6, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example003 = extrude(5, exampleSketch003) /// example003 = extrude(5, exampleSketch003)
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn("XY") /// exampleSketch = startSketchOn("XY")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([10, 0], %) /// |> line([10, 0], %)
/// |> line([0, 10], %, $sketchingFace) /// |> line([0, 10], %, $sketchingFace)
/// |> line([-10, 0], %) /// |> line([-10, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(10, exampleSketch) /// example = extrude(10, exampleSketch)
/// ///
/// const exampleSketch002 = startSketchOn(example, sketchingFace) /// exampleSketch002 = startSketchOn(example, sketchingFace)
/// |> startProfileAt([1, 1], %) /// |> startProfileAt([1, 1], %)
/// |> line([8, 0], %) /// |> line([8, 0], %)
/// |> line([0, 8], %) /// |> line([0, 8], %)
/// |> line([-8, 0], %) /// |> line([-8, 0], %)
/// |> close(%, $sketchingFace002) /// |> close(%, $sketchingFace002)
/// ///
/// const example002 = extrude(10, exampleSketch002) /// example002 = extrude(10, exampleSketch002)
/// ///
/// const exampleSketch003 = startSketchOn(example002, sketchingFace002) /// exampleSketch003 = startSketchOn(example002, sketchingFace002)
/// |> startProfileAt([-8, 12], %) /// |> startProfileAt([-8, 12], %)
/// |> line([0, 6], %) /// |> line([0, 6], %)
/// |> line([6, 0], %) /// |> line([6, 0], %)
/// |> line([0, -6], %) /// |> line([0, -6], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example003 = extrude(5, exampleSketch003) /// example003 = extrude(5, exampleSketch003)
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XY') /// exampleSketch = startSketchOn('XY')
/// |> startProfileAt([4, 12], %) /// |> startProfileAt([4, 12], %)
/// |> line([2, 0], %) /// |> line([2, 0], %)
/// |> line([0, -6], %) /// |> line([0, -6], %)
@ -1030,20 +1030,20 @@ pub async fn start_sketch_on(exec_state: &mut ExecState, args: Args) -> Result<K
/// |> line([-2, 0], %) /// |> line([-2, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = revolve({ axis: 'y', angle: 180 }, exampleSketch) /// example = revolve({ axis: 'y', angle: 180 }, exampleSketch)
/// ///
/// const exampleSketch002 = startSketchOn(example, 'end') /// exampleSketch002 = startSketchOn(example, 'end')
/// |> startProfileAt([4.5, -5], %) /// |> startProfileAt([4.5, -5], %)
/// |> line([0, 5], %) /// |> line([0, 5], %)
/// |> line([5, 0], %) /// |> line([5, 0], %)
/// |> line([0, -5], %) /// |> line([0, -5], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example002 = extrude(5, exampleSketch002) /// example002 = extrude(5, exampleSketch002)
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const a1 = startSketchOn({ /// a1 = startSketchOn({
/// plane: { /// plane: {
/// origin = { x = 0, y = 0, z = 0 }, /// origin = { x = 0, y = 0, z = 0 },
/// xAxis = { x = 1, y = 0, z = 0 }, /// xAxis = { x = 1, y = 0, z = 0 },
@ -1177,36 +1177,36 @@ pub async fn start_profile_at(exec_state: &mut ExecState, args: Args) -> Result<
/// Start a new profile at a given point. /// Start a new profile at a given point.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([10, 0], %) /// |> line([10, 0], %)
/// |> line([0, 10], %) /// |> line([0, 10], %)
/// |> line([-10, 0], %) /// |> line([-10, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('-XZ') /// exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([10, 10], %) /// |> startProfileAt([10, 10], %)
/// |> line([10, 0], %) /// |> line([10, 0], %)
/// |> line([0, 10], %) /// |> line([0, 10], %)
/// |> line([-10, 0], %) /// |> line([-10, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('-XZ') /// exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([-10, 23], %) /// |> startProfileAt([-10, 23], %)
/// |> line([10, 0], %) /// |> line([10, 0], %)
/// |> line([0, 10], %) /// |> line([0, 10], %)
/// |> line([-10, 0], %) /// |> line([-10, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(5, exampleSketch) /// example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "startProfileAt", name = "startProfileAt",
@ -1320,7 +1320,7 @@ pub async fn profile_start_x(_exec_state: &mut ExecState, args: Args) -> Result<
/// value. /// value.
/// ///
/// ```no_run /// ```no_run
/// const sketch001 = startSketchOn('XY') /// sketch001 = startSketchOn('XY')
/// |> startProfileAt([5, 2], %) /// |> startProfileAt([5, 2], %)
/// |> angledLine([-26.6, 50], %) /// |> angledLine([-26.6, 50], %)
/// |> angledLine([90, 50], %) /// |> angledLine([90, 50], %)
@ -1344,7 +1344,7 @@ pub async fn profile_start_y(_exec_state: &mut ExecState, args: Args) -> Result<
/// value. /// value.
/// ///
/// ```no_run /// ```no_run
/// const sketch001 = startSketchOn('XY') /// sketch001 = startSketchOn('XY')
/// |> startProfileAt([5, 2], %) /// |> startProfileAt([5, 2], %)
/// |> angledLine({ angle = -60, length = 14 }, %) /// |> angledLine({ angle = -60, length = 14 }, %)
/// |> angledLineToY({ angle = 30, to = profileStartY(%) }, %) /// |> angledLineToY({ angle = 30, to = profileStartY(%) }, %)
@ -1367,7 +1367,7 @@ pub async fn profile_start(_exec_state: &mut ExecState, args: Args) -> Result<Kc
/// value. /// value.
/// ///
/// ```no_run /// ```no_run
/// const sketch001 = startSketchOn('XY') /// sketch001 = startSketchOn('XY')
/// |> startProfileAt([5, 2], %) /// |> startProfileAt([5, 2], %)
/// |> angledLine({ angle = 120, length = 50 }, %, $seg01) /// |> angledLine({ angle = 120, length = 50 }, %, $seg01)
/// |> angledLine({ angle = segAng(seg01) + 120, length = 50 }, %) /// |> angledLine({ angle = segAng(seg01) + 120, length = 50 }, %)
@ -1406,13 +1406,13 @@ pub async fn close(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('-XZ') /// exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([10, 0], %) /// |> line([10, 0], %)
/// |> line([0, 10], %) /// |> line([0, 10], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(10, exampleSketch) /// example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "close", name = "close",
@ -1524,7 +1524,7 @@ pub async fn arc(exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kcl
/// for to construct your shape, you're likely looking for tangentialArc. /// for to construct your shape, you're likely looking for tangentialArc.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([10, 0], %) /// |> line([10, 0], %)
/// |> arc({ /// |> arc({
@ -1533,7 +1533,7 @@ pub async fn arc(exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kcl
/// radius = 16 /// radius = 16
/// }, %) /// }, %)
/// |> close(%) /// |> close(%)
/// const example = extrude(10, exampleSketch) /// example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "arc", name = "arc",
@ -1631,14 +1631,14 @@ pub async fn arc_to(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// the start and end. /// the start and end.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> arcTo({ /// |> arcTo({
/// end = [10,0], /// end = [10,0],
/// interior = [5,5] /// interior = [5,5]
/// }, %) /// }, %)
/// |> close(%) /// |> close(%)
/// const example = extrude(10, exampleSketch) /// example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "arcTo", name = "arcTo",
@ -1767,7 +1767,7 @@ pub async fn tangential_arc(exec_state: &mut ExecState, args: Args) -> Result<Kc
/// degrees along the imaginary circle. /// degrees along the imaginary circle.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = 60, /// angle = 60,
@ -1780,7 +1780,7 @@ pub async fn tangential_arc(exec_state: &mut ExecState, args: Args) -> Result<Kc
/// }, %) /// }, %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(10, exampleSketch) /// example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "tangentialArc", name = "tangentialArc",
@ -1900,7 +1900,7 @@ pub async fn tangential_arc_to_relative(exec_state: &mut ExecState, args: Args)
/// coordinates. /// coordinates.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = 60, /// angle = 60,
@ -1910,7 +1910,7 @@ pub async fn tangential_arc_to_relative(exec_state: &mut ExecState, args: Args)
/// |> line([10, -15], %) /// |> line([10, -15], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(10, exampleSketch) /// example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "tangentialArcTo", name = "tangentialArcTo",
@ -1966,7 +1966,7 @@ async fn inner_tangential_arc_to(
/// distance away. /// distance away.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = 45, /// angle = 45,
@ -1976,7 +1976,7 @@ async fn inner_tangential_arc_to(
/// |> line([-10, 0], %) /// |> line([-10, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(10, exampleSketch) /// example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "tangentialArcToRelative", name = "tangentialArcToRelative",
@ -2108,7 +2108,7 @@ pub async fn bezier_curve(exec_state: &mut ExecState, args: Args) -> Result<KclV
/// shape. /// shape.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XZ') /// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([0, 10], %) /// |> line([0, 10], %)
/// |> bezierCurve({ /// |> bezierCurve({
@ -2119,7 +2119,7 @@ pub async fn bezier_curve(exec_state: &mut ExecState, args: Args) -> Result<KclV
/// |> lineTo([10, 0], %) /// |> lineTo([10, 0], %)
/// |> close(%) /// |> close(%)
/// ///
/// const example = extrude(10, exampleSketch) /// example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "bezierCurve", name = "bezierCurve",
@ -2188,7 +2188,7 @@ pub async fn hole(exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// Use a 2-dimensional sketch to cut a hole in another 2-dimensional sketch. /// Use a 2-dimensional sketch to cut a hole in another 2-dimensional sketch.
/// ///
/// ```no_run /// ```no_run
/// const exampleSketch = startSketchOn('XY') /// exampleSketch = startSketchOn('XY')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([0, 5], %) /// |> line([0, 5], %)
/// |> line([5, 0], %) /// |> line([5, 0], %)
@ -2197,12 +2197,12 @@ pub async fn hole(exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// |> hole(circle({ center = [1, 1], radius = .25 }, %), %) /// |> hole(circle({ center = [1, 1], radius = .25 }, %), %)
/// |> hole(circle({ center = [1, 4], radius = .25 }, %), %) /// |> hole(circle({ center = [1, 4], radius = .25 }, %), %)
/// ///
/// const example = extrude(1, exampleSketch) /// example = extrude(1, exampleSketch)
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// fn squareHoleSketch = () => { /// fn squareHoleSketch() {
/// const squareSketch = startSketchOn('-XZ') /// squareSketch = startSketchOn('-XZ')
/// |> startProfileAt([-1, -1], %) /// |> startProfileAt([-1, -1], %)
/// |> line([2, 0], %) /// |> line([2, 0], %)
/// |> line([0, 2], %) /// |> line([0, 2], %)
@ -2211,10 +2211,10 @@ pub async fn hole(exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kc
/// return squareSketch /// return squareSketch
/// } /// }
/// ///
/// const exampleSketch = startSketchOn('-XZ') /// exampleSketch = startSketchOn('-XZ')
/// |> circle({ center = [0, 0], radius = 3 }, %) /// |> circle({ center = [0, 0], radius = 3 }, %)
/// |> hole(squareHoleSketch(), %) /// |> hole(squareHoleSketch(), %)
/// const example = extrude(1, exampleSketch) /// example = extrude(1, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "hole", name = "hole",

View File

@ -34,7 +34,7 @@ pub async fn mm(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kcl
/// `10 * (1/25.4)`, if the project settings are in inches. /// `10 * (1/25.4)`, if the project settings are in inches.
/// ///
/// ```no_run /// ```no_run
/// const totalWidth = 10 * mm() /// totalWidth = 10 * mm()
/// ``` /// ```
#[stdlib { #[stdlib {
name = "mm", name = "mm",
@ -75,7 +75,7 @@ pub async fn inch(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// `10 * 25.4`, if the project settings are in millimeters. /// `10 * 25.4`, if the project settings are in millimeters.
/// ///
/// ```no_run /// ```no_run
/// const totalWidth = 10 * inch() /// totalWidth = 10 * inch()
/// ``` /// ```
#[stdlib { #[stdlib {
name = "inch", name = "inch",
@ -117,7 +117,7 @@ pub async fn ft(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kcl
/// `10 * 304.8`, if the project settings are in millimeters. /// `10 * 304.8`, if the project settings are in millimeters.
/// ///
/// ```no_run /// ```no_run
/// const totalWidth = 10 * ft() /// totalWidth = 10 * ft()
/// ``` /// ```
#[stdlib { #[stdlib {
name = "ft", name = "ft",
@ -159,7 +159,7 @@ pub async fn m(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclE
/// `10 * 1000`, if the project settings are in millimeters. /// `10 * 1000`, if the project settings are in millimeters.
/// ///
/// ```no_run /// ```no_run
/// const totalWidth = 10 * m() /// totalWidth = 10 * m()
/// ``` /// ```
#[stdlib { #[stdlib {
name = "m", name = "m",
@ -201,7 +201,7 @@ pub async fn cm(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kcl
/// `10 * 10`, if the project settings are in millimeters. /// `10 * 10`, if the project settings are in millimeters.
/// ///
/// ```no_run /// ```no_run
/// const totalWidth = 10 * cm() /// totalWidth = 10 * cm()
/// ``` /// ```
#[stdlib { #[stdlib {
name = "cm", name = "cm",
@ -243,7 +243,7 @@ pub async fn yd(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kcl
/// `10 * 914.4`, if the project settings are in millimeters. /// `10 * 914.4`, if the project settings are in millimeters.
/// ///
/// ```no_run /// ```no_run
/// const totalWidth = 10 * yd() /// totalWidth = 10 * yd()
/// ``` /// ```
#[stdlib { #[stdlib {
name = "yd", name = "yd",