Remove trig functions from prelude and change their unit handling (BREAKING) (#6565)
Remove trig functions from prelude and change their unit handling Signed-off-by: Nick Cameron <nrc@ncameron.org>
This commit is contained in:
		@ -110,13 +110,13 @@ layout: manual
 | 
			
		||||
  * [`xLine`](kcl/xLine)
 | 
			
		||||
  * [`yLine`](kcl/yLine)
 | 
			
		||||
* **std::math**
 | 
			
		||||
  * [`E`](kcl/consts/std-math-E)
 | 
			
		||||
  * [`PI`](kcl/consts/std-math-PI)
 | 
			
		||||
  * [`TAU`](kcl/consts/std-math-TAU)
 | 
			
		||||
  * [`cos`](kcl/std-math-cos)
 | 
			
		||||
  * [`polar`](kcl/std-math-polar)
 | 
			
		||||
  * [`sin`](kcl/std-math-sin)
 | 
			
		||||
  * [`tan`](kcl/std-math-tan)
 | 
			
		||||
  * [`math::E`](kcl/consts/std-math-E)
 | 
			
		||||
  * [`math::PI`](kcl/consts/std-math-PI)
 | 
			
		||||
  * [`math::TAU`](kcl/consts/std-math-TAU)
 | 
			
		||||
  * [`math::cos`](kcl/std-math-cos)
 | 
			
		||||
  * [`math::polar`](kcl/std-math-polar)
 | 
			
		||||
  * [`math::sin`](kcl/std-math-sin)
 | 
			
		||||
  * [`math::tan`](kcl/std-math-tan)
 | 
			
		||||
* **std::sketch**
 | 
			
		||||
  * [`circle`](kcl/std-sketch-circle)
 | 
			
		||||
  * [`mirror2d`](kcl/std-sketch-mirror2d)
 | 
			
		||||
 | 
			
		||||
@ -178,7 +178,7 @@ t = 0.005 // taper factor [0-1)
 | 
			
		||||
// Defines how to modify each layer of the vase.
 | 
			
		||||
// Each replica is shifted up the Z axis, and has a smoothly-varying radius
 | 
			
		||||
fn transform(replicaId) {
 | 
			
		||||
  scale = r * abs(1 - (t * replicaId)) * (5 + cos((replicaId / 8): number(rad)))
 | 
			
		||||
  scale = r * abs(1 - (t * replicaId)) * (5 + math::cos((replicaId / 8): number(rad)))
 | 
			
		||||
  return {
 | 
			
		||||
    translate = [0, 0, replicaId * 10],
 | 
			
		||||
    scale = [scale, scale, 0]
 | 
			
		||||
 | 
			
		||||
@ -93,11 +93,14 @@ assert(
 | 
			
		||||
// Declare a function that sketches a decagon.
 | 
			
		||||
fn decagon(radius) {
 | 
			
		||||
  // Each side of the decagon is turned this many radians from the previous angle.
 | 
			
		||||
  stepAngle = 1 / 10 * TAU
 | 
			
		||||
  stepAngle = (1 / 10 * TAU): number(rad)
 | 
			
		||||
 | 
			
		||||
  // Start the decagon sketch at this point.
 | 
			
		||||
  startOfDecagonSketch = startSketchOn(XY)
 | 
			
		||||
    |> startProfile(at = [cos(0) * radius, sin(0) * radius])
 | 
			
		||||
    |> startProfile(at = [
 | 
			
		||||
         math::cos(0) * radius,
 | 
			
		||||
         math::sin(0) * radius
 | 
			
		||||
       ])
 | 
			
		||||
 | 
			
		||||
    // Use a `reduce` to draw the remaining decagon sides.
 | 
			
		||||
    // For each number in the array 1..10, run the given function,
 | 
			
		||||
@ -107,8 +110,8 @@ fn decagon(radius) {
 | 
			
		||||
    initial = startOfDecagonSketch,
 | 
			
		||||
    f = fn(i, partialDecagon) {
 | 
			
		||||
      // Draw one edge of the decagon.
 | 
			
		||||
      x = cos(stepAngle * i) * radius
 | 
			
		||||
      y = sin(stepAngle * i) * radius
 | 
			
		||||
      x = math::cos(stepAngle * i) * radius
 | 
			
		||||
      y = math::sin(stepAngle * i) * radius
 | 
			
		||||
      return line(partialDecagon, end = [x, y])
 | 
			
		||||
    },
 | 
			
		||||
  )
 | 
			
		||||
@ -118,15 +121,15 @@ fn decagon(radius) {
 | 
			
		||||
 | 
			
		||||
/* The `decagon` above is basically like this pseudo-code:
 | 
			
		||||
fn decagon(radius):
 | 
			
		||||
    stepAngle = (1/10) * TAU
 | 
			
		||||
    plane = startSketchOn('XY')
 | 
			
		||||
    startOfDecagonSketch = startProfile(plane, at = [(cos(0)*radius), (sin(0) * radius)])
 | 
			
		||||
    stepAngle = ((1/10) * TAU): number(rad)
 | 
			
		||||
    plane = startSketchOn(XY)
 | 
			
		||||
    startOfDecagonSketch = startProfile(plane, at = [(math::cos(0)*radius), (math::sin(0) * radius)])
 | 
			
		||||
 | 
			
		||||
    // Here's the reduce part.
 | 
			
		||||
    partialDecagon = startOfDecagonSketch
 | 
			
		||||
    for i in [1..10]:
 | 
			
		||||
        x = cos(stepAngle * i) * radius
 | 
			
		||||
        y = sin(stepAngle * i) * radius
 | 
			
		||||
        x = math::cos(stepAngle * i) * radius
 | 
			
		||||
        y = math::sin(stepAngle * i) * radius
 | 
			
		||||
        partialDecagon = line(partialDecagon, end = [x, y])
 | 
			
		||||
    fullDecagon = partialDecagon // it's now full
 | 
			
		||||
    return fullDecagon */
 | 
			
		||||
 | 
			
		||||
@ -1,10 +1,10 @@
 | 
			
		||||
---
 | 
			
		||||
title: "std::math::cos"
 | 
			
		||||
excerpt: "Compute the cosine of a number (in radians)."
 | 
			
		||||
excerpt: "Compute the cosine of a number."
 | 
			
		||||
layout: manual
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
Compute the cosine of a number (in radians).
 | 
			
		||||
Compute the cosine of a number.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -31,7 +31,7 @@ exampleSketch = startSketchOn(XZ)
 | 
			
		||||
  |> startProfile(at = [0, 0])
 | 
			
		||||
  |> angledLine(
 | 
			
		||||
    angle = 30,
 | 
			
		||||
    length = 3 / cos(30deg),
 | 
			
		||||
    length = 3 / math::cos(30deg),
 | 
			
		||||
  )
 | 
			
		||||
  |> yLine(endAbsolute = 0)
 | 
			
		||||
  |> close()
 | 
			
		||||
 | 
			
		||||
@ -34,7 +34,7 @@ polar(
 | 
			
		||||
```js
 | 
			
		||||
exampleSketch = startSketchOn(XZ)
 | 
			
		||||
  |> startProfile(at = [0, 0])
 | 
			
		||||
  |> line(end = polar(angle = 30, length = 5), tag = $thing)
 | 
			
		||||
  |> line(end = math::polar(angle = 30, length = 5), tag = $thing)
 | 
			
		||||
  |> line(end = [0, 5])
 | 
			
		||||
  |> line(end = [segEndX(thing), 0])
 | 
			
		||||
  |> line(end = [-20, 10])
 | 
			
		||||
 | 
			
		||||
@ -1,10 +1,10 @@
 | 
			
		||||
---
 | 
			
		||||
title: "std::math::sin"
 | 
			
		||||
excerpt: "Compute the sine of a number (in radians)."
 | 
			
		||||
excerpt: "Compute the sine of a number."
 | 
			
		||||
layout: manual
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
Compute the sine of a number (in radians).
 | 
			
		||||
Compute the sine of a number.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -31,7 +31,7 @@ exampleSketch = startSketchOn(XZ)
 | 
			
		||||
  |> startProfile(at = [0, 0])
 | 
			
		||||
  |> angledLine(
 | 
			
		||||
    angle = 50,
 | 
			
		||||
    length = 15 / sin(135deg),
 | 
			
		||||
    length = 15 / math::sin(135deg),
 | 
			
		||||
  )
 | 
			
		||||
  |> yLine(endAbsolute = 0)
 | 
			
		||||
  |> close()
 | 
			
		||||
 | 
			
		||||
@ -1,10 +1,10 @@
 | 
			
		||||
---
 | 
			
		||||
title: "std::math::tan"
 | 
			
		||||
excerpt: "Compute the tangent of a number (in radians)."
 | 
			
		||||
excerpt: "Compute the tangent of a number."
 | 
			
		||||
layout: manual
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
Compute the tangent of a number (in radians).
 | 
			
		||||
Compute the tangent of a number.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -31,7 +31,7 @@ exampleSketch = startSketchOn(XZ)
 | 
			
		||||
  |> startProfile(at = [0, 0])
 | 
			
		||||
  |> angledLine(
 | 
			
		||||
    angle = 50,
 | 
			
		||||
    length = 50 * tan((1/2): number(rad)),
 | 
			
		||||
    length = 50 * math::tan((1/2): number(rad)),
 | 
			
		||||
  )
 | 
			
		||||
  |> yLine(endAbsolute = 0)
 | 
			
		||||
  |> close()
 | 
			
		||||
 | 
			
		||||
@ -31,7 +31,7 @@ exampleSketch = startSketchOn(XZ)
 | 
			
		||||
  |> startProfile(at = [0, 0])
 | 
			
		||||
  |> angledLine(
 | 
			
		||||
    angle = 50,
 | 
			
		||||
    length = 70 * cos(units::toDegrees((PI/4): number(rad))),
 | 
			
		||||
    length = 70 * math::cos(units::toDegrees((PI/4): number(rad))),
 | 
			
		||||
  )
 | 
			
		||||
  |> yLine(endAbsolute = 0)
 | 
			
		||||
  |> close()
 | 
			
		||||
 | 
			
		||||
@ -31,7 +31,7 @@ exampleSketch = startSketchOn(XZ)
 | 
			
		||||
  |> startProfile(at = [0, 0])
 | 
			
		||||
  |> angledLine(
 | 
			
		||||
    angle = 50,
 | 
			
		||||
    length = 70 * cos(units::toRadians(45)),
 | 
			
		||||
    length = 70 * math::cos(units::toRadians(45)),
 | 
			
		||||
  )
 | 
			
		||||
  |> yLine(endAbsolute = 0)
 | 
			
		||||
  |> close()
 | 
			
		||||
 | 
			
		||||
@ -185676,7 +185676,7 @@
 | 
			
		||||
      "// Each instance will be shifted along the X axis,\n// with a gap between the original (at x = 0) and the first replica\n// (at x = 8). This is because `id` starts at 1.\nfn transform(id) {\n  return { translate = [4 * (1 + id), 0, 0] }\n}\n\nsketch001 = startSketchOn(XZ)\n  |> circle(center = [0, 0], radius = 2)\n  |> extrude(length = 5)\n  |> patternTransform(instances = 4, transform = transform)",
 | 
			
		||||
      "fn cube(length, center) {\n  l = length / 2\n  x = center[0]\n  y = center[1]\n  p0 = [-l + x, -l + y]\n  p1 = [-l + x, l + y]\n  p2 = [l + x, l + y]\n  p3 = [l + x, -l + y]\n\n  return startSketchOn(XY)\n    |> startProfile(at = p0)\n    |> line(endAbsolute = p1)\n    |> line(endAbsolute = p2)\n    |> line(endAbsolute = p3)\n    |> line(endAbsolute = p0)\n    |> close()\n    |> extrude(length = length)\n}\n\nwidth = 20\nfn transform(i) {\n  return {\n    // Move down each time.\n    translate = [0, 0, -i * width],\n    // Make the cube longer, wider and flatter each time.\n    scale = [\n      pow(1.1, exp = i),\n      pow(1.1, exp = i),\n      pow(0.9, exp = i)\n    ],\n    // Turn by 15 degrees each time.\n    rotation = { angle = 15 * i, origin = \"local\" }\n  }\n}\n\nmyCubes = cube(width, [100, 0])\n  |> patternTransform(instances = 25, transform = transform)",
 | 
			
		||||
      "fn cube(length, center) {\n  l = length / 2\n  x = center[0]\n  y = center[1]\n  p0 = [-l + x, -l + y]\n  p1 = [-l + x, l + y]\n  p2 = [l + x, l + y]\n  p3 = [l + x, -l + y]\n\n  return startSketchOn(XY)\n    |> startProfile(at = p0)\n    |> line(endAbsolute = p1)\n    |> line(endAbsolute = p2)\n    |> line(endAbsolute = p3)\n    |> line(endAbsolute = p0)\n    |> close()\n    |> extrude(length = length)\n}\n\nwidth = 20\nfn transform(i) {\n  return {\n    translate = [0, 0, -i * width],\n    rotation = {\n      angle = 90 * i,\n      // Rotate around the overall scene's origin.\n      origin = \"global\"\n    }\n  }\n}\nmyCubes = cube(width, [100, 100])\n  |> patternTransform(instances = 4, transform = transform)",
 | 
			
		||||
      "// Parameters\nr = 50 // base radius\nh = 10 // layer height\nt = 0.005 // taper factor [0-1)\n// Defines how to modify each layer of the vase.\n// Each replica is shifted up the Z axis, and has a smoothly-varying radius\nfn transform(replicaId) {\n  scale = r * abs(1 - (t * replicaId)) * (5 + cos((replicaId / 8): number(rad)))\n  return {\n    translate = [0, 0, replicaId * 10],\n    scale = [scale, scale, 0]\n  }\n}\n// Each layer is just a pretty thin cylinder.\nfn layer() {\n  return startSketchOn(XY)\n    // or some other plane idk\n    |> circle(center = [0, 0], radius = 1, tag = $tag1)\n    |> extrude(length = h)\n}\n// The vase is 100 layers tall.\n// The 100 layers are replica of each other, with a slight transformation applied to each.\nvase = layer()\n  |> patternTransform(instances = 100, transform = transform)",
 | 
			
		||||
      "// Parameters\nr = 50 // base radius\nh = 10 // layer height\nt = 0.005 // taper factor [0-1)\n// Defines how to modify each layer of the vase.\n// Each replica is shifted up the Z axis, and has a smoothly-varying radius\nfn transform(replicaId) {\n  scale = r * abs(1 - (t * replicaId)) * (5 + math::cos((replicaId / 8): number(rad)))\n  return {\n    translate = [0, 0, replicaId * 10],\n    scale = [scale, scale, 0]\n  }\n}\n// Each layer is just a pretty thin cylinder.\nfn layer() {\n  return startSketchOn(XY)\n    // or some other plane idk\n    |> circle(center = [0, 0], radius = 1, tag = $tag1)\n    |> extrude(length = h)\n}\n// The vase is 100 layers tall.\n// The 100 layers are replica of each other, with a slight transformation applied to each.\nvase = layer()\n  |> patternTransform(instances = 100, transform = transform)",
 | 
			
		||||
      "fn transform(i) {\n  // Transform functions can return multiple transforms. They'll be applied in order.\n  return [\n    { translate = [30 * i, 0, 0] },\n    { rotation = { angle = 45 * i } }\n  ]\n}\nstartSketchOn(XY)\n  |> startProfile(at = [0, 0])\n  |> polygon(\n       radius = 10,\n       numSides = 4,\n       center = [0, 0],\n       inscribed = false,\n     )\n  |> extrude(length = 4)\n  |> patternTransform(instances = 3, transform = transform)"
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
@ -232856,7 +232856,7 @@
 | 
			
		||||
    "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, initial = 0, f = 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// We use `assert` to check that our `sum` function gives the\n// expected result. It's good to check your work!\nassert(\n    sum([1, 2, 3]),\n  isEqualTo = 6,\n  tolerance = 0.1,\n  error = \"1 + 2 + 3 summed is 6\",\n)",
 | 
			
		||||
      "// 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(\n  arr,\n  initial = 0,\n  f = fn(i, result_so_far) {\n    return i + result_so_far\n  },\n)\n\n// We use `assert` to check that our `sum` function gives the\n// expected result. It's good to check your work!\nassert(\n  sum,\n  isEqualTo = 6,\n  tolerance = 0.1,\n  error = \"1 + 2 + 3 summed is 6\",\n)",
 | 
			
		||||
      "// Declare a function that sketches a decagon.\nfn decagon(radius) {\n  // Each side of the decagon is turned this many radians from the previous angle.\n  stepAngle = 1 / 10 * TAU\n\n  // Start the decagon sketch at this point.\n  startOfDecagonSketch = startSketchOn(XY)\n    |> startProfile(at = [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(\n    [1..10],\n    initial = startOfDecagonSketch,\n    f = fn(i, partialDecagon) {\n      // Draw one edge of the decagon.\n      x = cos(stepAngle * i) * radius\n      y = sin(stepAngle * i) * radius\n      return line(partialDecagon, end = [x, y])\n    },\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    plane = startSketchOn('XY')\n    startOfDecagonSketch = startProfile(plane, at = [(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 = line(partialDecagon, end = [x, y])\n    fullDecagon = partialDecagon // it's now full\n    return fullDecagon */\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 radians from the previous angle.\n  stepAngle = (1 / 10 * TAU): number(rad)\n\n  // Start the decagon sketch at this point.\n  startOfDecagonSketch = startSketchOn(XY)\n    |> startProfile(at = [\n         math::cos(0) * radius,\n         math::sin(0) * radius\n       ])\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(\n    [1..10],\n    initial = startOfDecagonSketch,\n    f = fn(i, partialDecagon) {\n      // Draw one edge of the decagon.\n      x = math::cos(stepAngle * i) * radius\n      y = math::sin(stepAngle * i) * radius\n      return line(partialDecagon, end = [x, y])\n    },\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): number(rad)\n    plane = startSketchOn(XY)\n    startOfDecagonSketch = startProfile(plane, at = [(math::cos(0)*radius), (math::sin(0) * radius)])\n\n    // Here's the reduce part.\n    partialDecagon = startOfDecagonSketch\n    for i in [1..10]:\n        x = math::cos(stepAngle * i) * radius\n        y = math::sin(stepAngle * i) * radius\n        partialDecagon = line(partialDecagon, end = [x, y])\n    fullDecagon = partialDecagon // it's now full\n    return fullDecagon */\n\n// Use the `decagon` function declared above, to sketch a decagon with radius 5.\ndecagon(5.0)\n  |> close()"
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
 | 
			
		||||
@ -36,35 +36,35 @@ fanCenter = startSketchOn(XZ)
 | 
			
		||||
fn fanBlade(offsetHeight, startAngle: number(deg)) {
 | 
			
		||||
  fanBlade = startSketchOn(offsetPlane(XY, offset = offsetHeight))
 | 
			
		||||
    |> startProfile(at = [
 | 
			
		||||
         15 * cos(startAngle),
 | 
			
		||||
         15 * sin(startAngle)
 | 
			
		||||
         15 * math::cos(startAngle),
 | 
			
		||||
         15 * math::sin(startAngle)
 | 
			
		||||
       ])
 | 
			
		||||
    |> arc(angleStart = startAngle, angleEnd = startAngle + 14, radius = 15)
 | 
			
		||||
    |> arc(
 | 
			
		||||
         endAbsolute = [
 | 
			
		||||
           fanSize * 22 / 50 * cos(startAngle - 20),
 | 
			
		||||
           fanSize * 22 / 50 * sin(startAngle - 20)
 | 
			
		||||
           fanSize * 22 / 50 * math::cos(startAngle - 20),
 | 
			
		||||
           fanSize * 22 / 50 * math::sin(startAngle - 20)
 | 
			
		||||
         ],
 | 
			
		||||
         interiorAbsolute = [
 | 
			
		||||
           fanSize * 11 / 50 * cos(startAngle + 3),
 | 
			
		||||
           fanSize * 11 / 50 * sin(startAngle + 3)
 | 
			
		||||
           fanSize * 11 / 50 * math::cos(startAngle + 3),
 | 
			
		||||
           fanSize * 11 / 50 * math::sin(startAngle + 3)
 | 
			
		||||
         ],
 | 
			
		||||
       )
 | 
			
		||||
    |> arc(
 | 
			
		||||
         endAbsolute = [
 | 
			
		||||
           fanSize * 22 / 50 * cos(startAngle - 24),
 | 
			
		||||
           fanSize * 22 / 50 * sin(startAngle - 24)
 | 
			
		||||
           fanSize * 22 / 50 * math::cos(startAngle - 24),
 | 
			
		||||
           fanSize * 22 / 50 * math::sin(startAngle - 24)
 | 
			
		||||
         ],
 | 
			
		||||
         interiorAbsolute = [
 | 
			
		||||
           fanSize * 22 / 50 * cos(startAngle - 22),
 | 
			
		||||
           fanSize * 22 / 50 * sin(startAngle - 22)
 | 
			
		||||
           fanSize * 22 / 50 * math::cos(startAngle - 22),
 | 
			
		||||
           fanSize * 22 / 50 * math::sin(startAngle - 22)
 | 
			
		||||
         ],
 | 
			
		||||
       )
 | 
			
		||||
    |> arc(
 | 
			
		||||
         endAbsolute = [profileStartX(%), profileStartY(%)],
 | 
			
		||||
         interiorAbsolute = [
 | 
			
		||||
           fanSize * 11 / 50 * cos(startAngle - 5),
 | 
			
		||||
           fanSize * 11 / 50 * sin(startAngle - 5)
 | 
			
		||||
           fanSize * 11 / 50 * math::cos(startAngle - 5),
 | 
			
		||||
           fanSize * 11 / 50 * math::sin(startAngle - 5)
 | 
			
		||||
         ],
 | 
			
		||||
       )
 | 
			
		||||
    |> close()
 | 
			
		||||
 | 
			
		||||
@ -44,7 +44,7 @@ balls = revolve(ballsSketch, axis = X)
 | 
			
		||||
chainSketch = startSketchOn(XY)
 | 
			
		||||
  |> startProfile(at = [
 | 
			
		||||
       shaftDia / 2 + wallThickness + sphereDia / 2 - (chainWidth / 2),
 | 
			
		||||
       0.125 * sin(60deg)
 | 
			
		||||
       0.125 * math::sin(60)
 | 
			
		||||
     ])
 | 
			
		||||
  |> arc(angleStart = 120, angleEnd = 60, radius = sphereDia / 2)
 | 
			
		||||
  |> line(end = [0, chainThickness])
 | 
			
		||||
 | 
			
		||||
@ -11,8 +11,8 @@ fn cycloidalGear(gearPitch, gearHeight, holeDiameter, helixAngle: number(deg)) {
 | 
			
		||||
    helixAngleP = helixAngle * gHeight / gearHeight
 | 
			
		||||
    gearProfile = startSketchOn(offsetPlane(XY, offset = gHeight))
 | 
			
		||||
      |> startProfile(at = [
 | 
			
		||||
           gearPitch * 1.55 * cos(helixAngleP) + gearPitch * sin(-helixAngleP),
 | 
			
		||||
           gearPitch * 1.55 * sin(helixAngleP) + gearPitch * cos(-helixAngleP)
 | 
			
		||||
           gearPitch * 1.55 * math::cos(helixAngleP) + gearPitch * math::sin(-helixAngleP),
 | 
			
		||||
           gearPitch * 1.55 * math::sin(helixAngleP) + gearPitch * math::cos(-helixAngleP)
 | 
			
		||||
         ])
 | 
			
		||||
      |> arc(angleStart = 90 + helixAngleP, angleEnd = -90 + helixAngleP, radius = gearPitch)
 | 
			
		||||
      |> tangentialArc(radius = gearPitch * 1.67, angle = 60)
 | 
			
		||||
 | 
			
		||||
@ -11,14 +11,18 @@ plateHeight = 0.125
 | 
			
		||||
bendRadius = 3
 | 
			
		||||
 | 
			
		||||
// Create a function to draw each primary tube with specified lengths and angles
 | 
			
		||||
fn primaryTube(n, angle001: number(deg), length001, length002, length003) {
 | 
			
		||||
fn primaryTube(n, angle001, length001, length002, length003) {
 | 
			
		||||
  // Create an index for the function
 | 
			
		||||
  pos001 = n * 2
 | 
			
		||||
 | 
			
		||||
  // Define a plane for each sweep path defined by an angle
 | 
			
		||||
  sweepPlane = {
 | 
			
		||||
    origin = [pos001, 0.0, 0],
 | 
			
		||||
    xAxis = [sin(-angle001), cos(-angle001), 0.0],
 | 
			
		||||
    xAxis = [
 | 
			
		||||
      math::sin(-angle001),
 | 
			
		||||
      math::cos(-angle001),
 | 
			
		||||
      0.0
 | 
			
		||||
    ],
 | 
			
		||||
    yAxis = [0.0, 0.0, 1.0],
 | 
			
		||||
    zAxis = [1.0, 0.0, 0.0]
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -32,8 +32,8 @@ fn slot(sketch1, start, end, width) {
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  dist = sqrt(pow(end[1] - start[1], exp = 2) + pow(end[0] - start[0], exp = 2))
 | 
			
		||||
  xstart = width / 2 * cos(units::toRadians(angle - 90)) + start[0]
 | 
			
		||||
  ystart = width / 2 * sin(units::toRadians(angle - 90)) + start[1]
 | 
			
		||||
  xstart = width / 2 * math::cos(angle - 90) + start[0]
 | 
			
		||||
  ystart = width / 2 * math::sin(angle - 90) + start[1]
 | 
			
		||||
  slotSketch = startProfile(sketch1, at = [xstart, ystart])
 | 
			
		||||
    |> angledLine(angle = angle, length = dist)
 | 
			
		||||
    |> tangentialArc(radius = width / 2, angle = 180)
 | 
			
		||||
 | 
			
		||||
@ -11,7 +11,7 @@ pitchDiameter = module * nTeeth
 | 
			
		||||
pressureAngle = 20
 | 
			
		||||
addendum = module
 | 
			
		||||
deddendum = 1.25 * module
 | 
			
		||||
baseDiameter = pitchDiameter * cos(units::toRadians(pressureAngle))
 | 
			
		||||
baseDiameter = pitchDiameter * math::cos(pressureAngle)
 | 
			
		||||
tipDiameter = pitchDiameter + 2 * module
 | 
			
		||||
gearHeight = 3
 | 
			
		||||
 | 
			
		||||
@ -36,7 +36,7 @@ angles = map(
 | 
			
		||||
invas = map(
 | 
			
		||||
  angles,
 | 
			
		||||
  f = fn(a) {
 | 
			
		||||
    return tan(units::toRadians(a)) - units::toRadians(a)
 | 
			
		||||
    return math::tan(a) - units::toRadians(a)
 | 
			
		||||
  },
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -44,14 +44,14 @@ invas = map(
 | 
			
		||||
xs = map(
 | 
			
		||||
  [0..cmo],
 | 
			
		||||
  f = fn(i) {
 | 
			
		||||
    return rs[i] * cos(invas[i]: number(rad))
 | 
			
		||||
    return rs[i] * math::cos(invas[i]: number(rad))
 | 
			
		||||
  },
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
ys = map(
 | 
			
		||||
  [0..cmo],
 | 
			
		||||
  f = fn(i) {
 | 
			
		||||
    return rs[i] * sin(invas[i]: number(rad))
 | 
			
		||||
    return rs[i] * math::sin(invas[i]: number(rad))
 | 
			
		||||
  },
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -69,8 +69,8 @@ fn leftInvolute(i, sg) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn rightInvolute(i, sg) {
 | 
			
		||||
  x = rs[i] * cos(units::toRadians(-toothAngle + units::toDegrees(atan(ys[i] / xs[i]))))
 | 
			
		||||
  y = -rs[i] * sin(units::toRadians(-toothAngle + units::toDegrees(atan(ys[i] / xs[i]))))
 | 
			
		||||
  x = rs[i] * math::cos(-toothAngle + units::toDegrees(atan(ys[i] / xs[i])))
 | 
			
		||||
  y = -rs[i] * math::sin(-toothAngle + units::toDegrees(atan(ys[i] / xs[i])))
 | 
			
		||||
  return line(sg, endAbsolute = [x, y])
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -100,8 +100,8 @@ startAngle = asin(keywayWidth / 2 / holeRadius)
 | 
			
		||||
// Sketch the keyway and center hole and extrude
 | 
			
		||||
keyWay = startSketchOn(body, face = END)
 | 
			
		||||
  |> startProfile(at = [
 | 
			
		||||
       holeRadius * cos(startAngle),
 | 
			
		||||
       holeRadius * sin(startAngle)
 | 
			
		||||
       holeRadius * math::cos(startAngle),
 | 
			
		||||
       holeRadius * math::sin(startAngle)
 | 
			
		||||
     ])
 | 
			
		||||
  |> xLine(length = keywayDepth)
 | 
			
		||||
  |> yLine(length = -keywayWidth)
 | 
			
		||||
 | 
			
		||||
@ -58,7 +58,7 @@ extrude(
 | 
			
		||||
plane001 = {
 | 
			
		||||
  origin = [0.0, 0.0, 0.7],
 | 
			
		||||
  xAxis = [1.0, 0.0, 0.0],
 | 
			
		||||
  yAxis = [0.0, 1.0, sin(7deg)],
 | 
			
		||||
  yAxis = [0.0, 1.0, math::sin(7deg)],
 | 
			
		||||
  zAxis = [0.0, 0.0, 1.0]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -124,7 +124,7 @@ keyFn([spacing * 3 + 12, row6], 1, keyHeight * .6, 0, highlightColor2)
 | 
			
		||||
plane002 = {
 | 
			
		||||
  origin = [0.0, 0.0, .81],
 | 
			
		||||
  xAxis = [1.0, 0.0, 0.0],
 | 
			
		||||
  yAxis = [0.0, 1.0, sin(7deg)],
 | 
			
		||||
  yAxis = [0.0, 1.0, math::sin(7deg)],
 | 
			
		||||
  zAxis = [0.0, 0.0, 1.0]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -36,8 +36,8 @@ export plane001 = {
 | 
			
		||||
export plane002 = {
 | 
			
		||||
  origin = [0.0, 0.0, 0.0],
 | 
			
		||||
  xAxis = [
 | 
			
		||||
    sin(axisJ1): number(in),
 | 
			
		||||
    cos(axisJ1): number(in),
 | 
			
		||||
    math::sin(axisJ1): number(in),
 | 
			
		||||
    math::cos(axisJ1): number(in),
 | 
			
		||||
    0.0
 | 
			
		||||
  ],
 | 
			
		||||
  yAxis = [0.0, 0.0, 1.0]
 | 
			
		||||
@ -47,8 +47,8 @@ export plane002 = {
 | 
			
		||||
export plane003 = {
 | 
			
		||||
  origin = [-0.1, 0.0, 0.0],
 | 
			
		||||
  xAxis = [
 | 
			
		||||
    sin(axisJ1): number(in),
 | 
			
		||||
    cos(axisJ1): number(in),
 | 
			
		||||
    math::sin(axisJ1): number(in),
 | 
			
		||||
    math::cos(axisJ1): number(in),
 | 
			
		||||
    0.0
 | 
			
		||||
  ],
 | 
			
		||||
  yAxis = [0.0, 0.0, 1.0]
 | 
			
		||||
 | 
			
		||||
@ -8,8 +8,8 @@ import axisJ1, axisJ2, axisJ2ArmWidth, axisJ2ArmLength, axisJ2ArmThickness, plan
 | 
			
		||||
// Create Body of J2 Robot Arm
 | 
			
		||||
sketch011 = startSketchOn(plane003)
 | 
			
		||||
  |> startProfile(at = [
 | 
			
		||||
       1.75 - (axisJ2ArmWidth / 2 * sin(units::toRadians(axisJ2))),
 | 
			
		||||
       8 + axisJ2ArmWidth / 2 * cos(units::toRadians(axisJ2))
 | 
			
		||||
       1.75 - (axisJ2ArmWidth / 2 * math::sin(axisJ2)),
 | 
			
		||||
       8 + axisJ2ArmWidth / 2 * math::cos(axisJ2)
 | 
			
		||||
     ])
 | 
			
		||||
  |> arc(angleStart = 90 + axisJ2, angleEnd = 270 + axisJ2, radius = axisJ2ArmWidth / 2)
 | 
			
		||||
  |> angledLine(angle = axisJ2, length = axisJ2ArmLength)
 | 
			
		||||
@ -26,8 +26,8 @@ extrude012 = extrude(sketch012, length = 0.15)
 | 
			
		||||
sketch013 = startSketchOn(extrude011, face = START)
 | 
			
		||||
  |> circle(
 | 
			
		||||
       center = [
 | 
			
		||||
         -1.75 - (axisJ2ArmLength * cos(units::toRadians(axisJ2))),
 | 
			
		||||
         8 + axisJ2ArmLength * sin(units::toRadians(axisJ2))
 | 
			
		||||
         -1.75 - (axisJ2ArmLength * math::cos(axisJ2)),
 | 
			
		||||
         8 + axisJ2ArmLength * math::sin(axisJ2)
 | 
			
		||||
       ],
 | 
			
		||||
       radius = 1.9,
 | 
			
		||||
       tag = $referenceEdge5,
 | 
			
		||||
@ -51,15 +51,15 @@ extrude014 = extrude(sketch014, length = 0.15)
 | 
			
		||||
sketch015 = startSketchOn(extrude013, face = END)
 | 
			
		||||
  |> circle(
 | 
			
		||||
       center = [
 | 
			
		||||
         -1.75 - ((axisJ2ArmLength - 1) * cos(units::toRadians(axisJ2))),
 | 
			
		||||
         8 + (axisJ2ArmLength - 1.5) * sin(units::toRadians(axisJ2))
 | 
			
		||||
         -1.75 - ((axisJ2ArmLength - 1) * math::cos(axisJ2)),
 | 
			
		||||
         8 + (axisJ2ArmLength - 1.5) * math::sin(axisJ2)
 | 
			
		||||
       ],
 | 
			
		||||
       radius = 0.2,
 | 
			
		||||
     )
 | 
			
		||||
  |> patternCircular2d(
 | 
			
		||||
       center = [
 | 
			
		||||
         -1.75 - (axisJ2ArmLength * cos(units::toRadians(axisJ2))),
 | 
			
		||||
         8 + axisJ2ArmLength * sin(units::toRadians(axisJ2))
 | 
			
		||||
         -1.75 - (axisJ2ArmLength * math::cos(axisJ2)),
 | 
			
		||||
         8 + axisJ2ArmLength * math::sin(axisJ2)
 | 
			
		||||
       ],
 | 
			
		||||
       instances = 4,
 | 
			
		||||
       arcDegrees = 360,
 | 
			
		||||
@ -71,8 +71,8 @@ extrude015 = extrude(sketch015, length = 0.15)
 | 
			
		||||
sketch016 = startSketchOn(extrude011, face = END)
 | 
			
		||||
  |> circle(
 | 
			
		||||
       center = [
 | 
			
		||||
         1.75 + axisJ2ArmLength * cos(units::toRadians(axisJ2)),
 | 
			
		||||
         8 + axisJ2ArmLength * sin(units::toRadians(axisJ2))
 | 
			
		||||
         1.75 + axisJ2ArmLength * math::cos(axisJ2),
 | 
			
		||||
         8 + axisJ2ArmLength * math::sin(axisJ2)
 | 
			
		||||
       ],
 | 
			
		||||
       radius = 0.3,
 | 
			
		||||
     )
 | 
			
		||||
 | 
			
		||||
@ -8,8 +8,8 @@ import plane002, axisJ2, axisJ3C, axisJ4, axisJ2ArmLength, axisJ3CArmLength, axi
 | 
			
		||||
// Create Body of J3 Robot Arm
 | 
			
		||||
sketch017 = startSketchOn(plane002)
 | 
			
		||||
  |> startProfile(at = [
 | 
			
		||||
       1.75 + axisJ2ArmLength * cos(units::toRadians(axisJ2)) - (axisJ3CArmWidth / 2 * sin(units::toRadians(axisJ3C))),
 | 
			
		||||
       8 + axisJ2ArmLength * sin(units::toRadians(axisJ2)) + axisJ3CArmWidth / 2 * cos(units::toRadians(axisJ3C))
 | 
			
		||||
       1.75 + axisJ2ArmLength * math::cos(axisJ2) - (axisJ3CArmWidth / 2 * math::sin(axisJ3C)),
 | 
			
		||||
       8 + axisJ2ArmLength * math::sin(axisJ2) + axisJ3CArmWidth / 2 * math::cos(axisJ3C)
 | 
			
		||||
     ])
 | 
			
		||||
  |> arc(angleStart = 90 + axisJ3C, angleEnd = 270 + axisJ3C, radius = axisJ3CArmWidth / 2)
 | 
			
		||||
  |> angledLine(angle = axisJ3C, length = axisJ3CArmLength)
 | 
			
		||||
@ -21,8 +21,8 @@ extrude017 = extrude(sketch017, length = axisJ3CArmThickness)
 | 
			
		||||
sketch018 = startSketchOn(extrude017, face = END)
 | 
			
		||||
  |> circle(
 | 
			
		||||
       center = [
 | 
			
		||||
         1.75 + axisJ2ArmLength * cos(units::toRadians(axisJ2)),
 | 
			
		||||
         8 + axisJ2ArmLength * sin(units::toRadians(axisJ2))
 | 
			
		||||
         1.75 + axisJ2ArmLength * math::cos(axisJ2),
 | 
			
		||||
         8 + axisJ2ArmLength * math::sin(axisJ2)
 | 
			
		||||
       ],
 | 
			
		||||
       radius = 3.7 / 2,
 | 
			
		||||
       tag = $referenceEdge6,
 | 
			
		||||
@ -35,15 +35,15 @@ extrude018 = extrude(sketch018, length = 0.15)
 | 
			
		||||
sketch019 = startSketchOn(extrude018, face = END)
 | 
			
		||||
  |> circle(
 | 
			
		||||
       center = [
 | 
			
		||||
         1.75 + (axisJ2ArmLength - 1) * cos(units::toRadians(axisJ2)),
 | 
			
		||||
         8 + (axisJ2ArmLength - 1.5) * sin(units::toRadians(axisJ2))
 | 
			
		||||
         1.75 + (axisJ2ArmLength - 1) * math::cos(axisJ2),
 | 
			
		||||
         8 + (axisJ2ArmLength - 1.5) * math::sin(axisJ2)
 | 
			
		||||
       ],
 | 
			
		||||
       radius = 0.2,
 | 
			
		||||
     )
 | 
			
		||||
  |> patternCircular2d(
 | 
			
		||||
       center = [
 | 
			
		||||
         1.75 + axisJ2ArmLength * cos(units::toRadians(axisJ2)),
 | 
			
		||||
         8 + axisJ2ArmLength * sin(units::toRadians(axisJ2))
 | 
			
		||||
         1.75 + axisJ2ArmLength * math::cos(axisJ2),
 | 
			
		||||
         8 + axisJ2ArmLength * math::sin(axisJ2)
 | 
			
		||||
       ],
 | 
			
		||||
       instances = 8,
 | 
			
		||||
       arcDegrees = 360,
 | 
			
		||||
@ -56,8 +56,8 @@ extrude019 = extrude(sketch019, length = 0.15)
 | 
			
		||||
sketch020 = startSketchOn(extrude017, face = START)
 | 
			
		||||
  |> circle(
 | 
			
		||||
       center = [
 | 
			
		||||
         -1.75 - (axisJ2ArmLength * cos(units::toRadians(axisJ2))) - (axisJ3CArmLength * cos(units::toRadians(axisJ3C))),
 | 
			
		||||
         8 + axisJ2ArmLength * sin(units::toRadians(axisJ2)) + axisJ3CArmLength * sin(units::toRadians(axisJ3C))
 | 
			
		||||
         -1.75 - (axisJ2ArmLength * math::cos(axisJ2)) - (axisJ3CArmLength * math::cos(axisJ3C)),
 | 
			
		||||
         8 + axisJ2ArmLength * math::sin(axisJ2) + axisJ3CArmLength * math::sin(axisJ3C)
 | 
			
		||||
       ],
 | 
			
		||||
       radius = axisJ3CArmWidth / 2,
 | 
			
		||||
     )
 | 
			
		||||
@ -66,8 +66,8 @@ extrude020 = extrude(sketch020, length = -0.5)
 | 
			
		||||
sketch021 = startSketchOn(extrude017, face = END)
 | 
			
		||||
  |> circle(
 | 
			
		||||
       center = [
 | 
			
		||||
         1.75 + axisJ2ArmLength * cos(units::toRadians(axisJ2)) + axisJ3CArmLength * cos(units::toRadians(axisJ3C)),
 | 
			
		||||
         8 + axisJ2ArmLength * sin(units::toRadians(axisJ2)) + axisJ3CArmLength * sin(units::toRadians(axisJ3C))
 | 
			
		||||
         1.75 + axisJ2ArmLength * math::cos(axisJ2) + axisJ3CArmLength * math::cos(axisJ3C),
 | 
			
		||||
         8 + axisJ2ArmLength * math::sin(axisJ2) + axisJ3CArmLength * math::sin(axisJ3C)
 | 
			
		||||
       ],
 | 
			
		||||
       radius = axisJ3CArmWidth / 2.01,
 | 
			
		||||
     )
 | 
			
		||||
@ -85,8 +85,8 @@ extrude022 = extrude(sketch022, length = -0.01)
 | 
			
		||||
// Build Upper Claw Finger
 | 
			
		||||
sketch023 = startSketchOn(extrude022, face = START)
 | 
			
		||||
  |> startProfile(at = [
 | 
			
		||||
       1.75 + axisJ2ArmLength * cos(units::toRadians(axisJ2)) + axisJ3CArmLength * cos(units::toRadians(axisJ3C)),
 | 
			
		||||
       8 + axisJ2ArmLength * sin(units::toRadians(axisJ2)) + axisJ3CArmLength * sin(units::toRadians(axisJ3C))
 | 
			
		||||
       1.75 + axisJ2ArmLength * math::cos(axisJ2) + axisJ3CArmLength * math::cos(axisJ3C),
 | 
			
		||||
       8 + axisJ2ArmLength * math::sin(axisJ2) + axisJ3CArmLength * math::sin(axisJ3C)
 | 
			
		||||
     ])
 | 
			
		||||
  |> angledLine(angle = axisJ3C + axisJ4 / 2, length = grabberLength / 4)
 | 
			
		||||
  |> arc(angleStart = 150 + axisJ3C + axisJ4 / 2, angleEnd = 30 + axisJ3C + axisJ4 / 2, radius = grabberLength / 3)
 | 
			
		||||
@ -102,8 +102,8 @@ extrude023 = extrude(sketch023, length = -1.5)
 | 
			
		||||
// Build Lower Claw Finger
 | 
			
		||||
sketch024 = startSketchOn(extrude022, face = START)
 | 
			
		||||
  |> startProfile(at = [
 | 
			
		||||
       1.75 + axisJ2ArmLength * cos(units::toRadians(axisJ2)) + axisJ3CArmLength * cos(units::toRadians(axisJ3C)),
 | 
			
		||||
       8 + axisJ2ArmLength * sin(units::toRadians(axisJ2)) + axisJ3CArmLength * sin(units::toRadians(axisJ3C))
 | 
			
		||||
       1.75 + axisJ2ArmLength * math::cos(axisJ2) + axisJ3CArmLength * math::cos(axisJ3C),
 | 
			
		||||
       8 + axisJ2ArmLength * math::sin(axisJ2) + axisJ3CArmLength * math::sin(axisJ3C)
 | 
			
		||||
     ])
 | 
			
		||||
  |> angledLine(angle = axisJ3C - (axisJ4 / 2), length = grabberLength / 4)
 | 
			
		||||
  |> arc(angleStart = 210 + axisJ3C - (axisJ4 / 2), angleEnd = 330 + axisJ3C - (axisJ4 / 2), radius = grabberLength / 3)
 | 
			
		||||
 | 
			
		||||
@ -25,7 +25,7 @@ extrude006 = extrude(sketch006, length = 1)
 | 
			
		||||
sketch007 = startSketchOn(extrude006, face = END)
 | 
			
		||||
  |> circle(
 | 
			
		||||
       center = [
 | 
			
		||||
         1.75 * cos(units::toRadians(axisJ1)) / abs(cos(units::toRadians(axisJ1))),
 | 
			
		||||
         1.75 * math::cos(axisJ1) / abs(math::cos(axisJ1)),
 | 
			
		||||
         8
 | 
			
		||||
       ],
 | 
			
		||||
       radius = 2.75,
 | 
			
		||||
@ -38,14 +38,14 @@ extrude007 = extrude(sketch007, length = 1.5)
 | 
			
		||||
sketch008 = startSketchOn(extrude007, face = END)
 | 
			
		||||
  |> circle(
 | 
			
		||||
       center = [
 | 
			
		||||
         1.75 * cos(units::toRadians(axisJ1)) / abs(cos(units::toRadians(axisJ1))),
 | 
			
		||||
         1.75 * math::cos(axisJ1) / abs(math::cos(axisJ1)),
 | 
			
		||||
         6.75
 | 
			
		||||
       ],
 | 
			
		||||
       radius = 0.2,
 | 
			
		||||
     )
 | 
			
		||||
  |> patternCircular2d(
 | 
			
		||||
       center = [
 | 
			
		||||
         1.75 * cos(units::toRadians(axisJ1)) / abs(cos(units::toRadians(axisJ1))),
 | 
			
		||||
         1.75 * math::cos(axisJ1) / abs(math::cos(axisJ1)),
 | 
			
		||||
         8
 | 
			
		||||
       ],
 | 
			
		||||
       instances = 4,
 | 
			
		||||
@ -57,7 +57,7 @@ extrude008 = extrude(sketch008, length = 0.2)
 | 
			
		||||
sketch009 = startSketchOn(extrude007, face = END)
 | 
			
		||||
  |> circle(
 | 
			
		||||
       center = [
 | 
			
		||||
         1.75 * cos(units::toRadians(axisJ1)) / abs(cos(units::toRadians(axisJ1))),
 | 
			
		||||
         1.75 * math::cos(axisJ1) / abs(math::cos(axisJ1)),
 | 
			
		||||
         8
 | 
			
		||||
       ],
 | 
			
		||||
       radius = 0.5,
 | 
			
		||||
 | 
			
		||||
@ -28,14 +28,14 @@ export boltLength = 2.500
 | 
			
		||||
export boltHeadLength = boltDiameter
 | 
			
		||||
export boltHeadDiameter = 0.938
 | 
			
		||||
export boltHexDrive = 1 / 2
 | 
			
		||||
export boltHexFlatLength = boltHexDrive / (2 * cos(30deg))
 | 
			
		||||
export boltHexFlatLength = boltHexDrive / (2 * math::cos(30deg))
 | 
			
		||||
export boltThreadLength = 1.750
 | 
			
		||||
 | 
			
		||||
// Hex nut (95479A127)
 | 
			
		||||
export hexNutDiameter = 5 / 8
 | 
			
		||||
export hexNutFlatToFlat = 15 / 16
 | 
			
		||||
export hexNutThickness = 35 / 64
 | 
			
		||||
export hexNutFlatLength = hexNutFlatToFlat / (2 * cos(30deg))
 | 
			
		||||
export hexNutFlatLength = hexNutFlatToFlat / (2 * math::cos(30deg))
 | 
			
		||||
 | 
			
		||||
// Gasket (9472K188)
 | 
			
		||||
export gasketOutsideDiameter = 4.125
 | 
			
		||||
 | 
			
		||||
@ -10,7 +10,7 @@ boltLength = 1.0
 | 
			
		||||
boltHeadLength = boltDiameter
 | 
			
		||||
boltHeadDiameter = 0.313
 | 
			
		||||
boltHexDrive = 5 / 32
 | 
			
		||||
boltHexFlatLength = boltHexDrive / (2 * cos(30deg))
 | 
			
		||||
boltHexFlatLength = boltHexDrive / (2 * math::cos(30deg))
 | 
			
		||||
 | 
			
		||||
// Create the head of the cap screw
 | 
			
		||||
boltHead = startSketchOn(XZ)
 | 
			
		||||
 | 
			
		||||
@ -29,21 +29,21 @@ body = startSketchOn(XZ)
 | 
			
		||||
caseIndentSketch = startSketchOn(body, face = END)
 | 
			
		||||
  |> startProfile(at = [
 | 
			
		||||
       -width / 2 + offset,
 | 
			
		||||
       height / 2 - (chamferLength + offset / 2 * cos(45deg))
 | 
			
		||||
       height / 2 - (chamferLength + offset / 2 * math::cos(45deg))
 | 
			
		||||
     ])
 | 
			
		||||
  |> angledLine(angle = 45, endAbsoluteY = height / 2 - offset)
 | 
			
		||||
  |> line(endAbsolute = [
 | 
			
		||||
       width / 2 - (chamferLength + offset / 2 * cos(45deg)),
 | 
			
		||||
       width / 2 - (chamferLength + offset / 2 * math::cos(45deg)),
 | 
			
		||||
       height / 2 - offset
 | 
			
		||||
     ])
 | 
			
		||||
  |> angledLine(angle = -45, endAbsoluteX = width / 2 - offset)
 | 
			
		||||
  |> line(endAbsolute = [
 | 
			
		||||
       width / 2 - offset,
 | 
			
		||||
       -(height / 2 - (chamferLength + offset / 2 * cos(45deg)))
 | 
			
		||||
       -(height / 2 - (chamferLength + offset / 2 * math::cos(45deg)))
 | 
			
		||||
     ])
 | 
			
		||||
  |> angledLine(angle = -135, endAbsoluteY = -height / 2 + offset)
 | 
			
		||||
  |> line(endAbsolute = [
 | 
			
		||||
       -(width / 2 - (chamferLength + offset / 2 * cos(45deg))),
 | 
			
		||||
       -(width / 2 - (chamferLength + offset / 2 * math::cos(45deg))),
 | 
			
		||||
       -height / 2 + offset
 | 
			
		||||
     ])
 | 
			
		||||
  |> angledLine(angle = -225, endAbsoluteX = -width / 2 + offset)
 | 
			
		||||
 | 
			
		||||
@ -39,21 +39,21 @@ squareHolePatternSketch = startSketchOn(XZ)
 | 
			
		||||
case = startSketchOn(XZ)
 | 
			
		||||
  |> startProfile(at = [
 | 
			
		||||
       -width / 2 + offset + caseTolerance,
 | 
			
		||||
       height / 2 - (chamferLength + (offset + caseTolerance) / 2 * cos(45deg))
 | 
			
		||||
       height / 2 - (chamferLength + (offset + caseTolerance) / 2 * math::cos(45deg))
 | 
			
		||||
     ])
 | 
			
		||||
  |> angledLine(angle = 45, endAbsoluteY = height / 2 - (offset + caseTolerance))
 | 
			
		||||
  |> line(endAbsolute = [
 | 
			
		||||
       width / 2 - (chamferLength + (offset + caseTolerance) / 2 * cos(45deg)),
 | 
			
		||||
       width / 2 - (chamferLength + (offset + caseTolerance) / 2 * math::cos(45deg)),
 | 
			
		||||
       height / 2 - (offset + caseTolerance)
 | 
			
		||||
     ])
 | 
			
		||||
  |> angledLine(angle = -45, endAbsoluteX = width / 2 - (offset + caseTolerance))
 | 
			
		||||
  |> line(endAbsolute = [
 | 
			
		||||
       width / 2 - (offset + caseTolerance),
 | 
			
		||||
       -(height / 2 - (chamferLength + (offset + caseTolerance) / 2 * cos(45deg)))
 | 
			
		||||
       -(height / 2 - (chamferLength + (offset + caseTolerance) / 2 * math::cos(45deg)))
 | 
			
		||||
     ])
 | 
			
		||||
  |> angledLine(angle = -135, endAbsoluteY = -height / 2 + offset + caseTolerance)
 | 
			
		||||
  |> line(endAbsolute = [
 | 
			
		||||
       -(width / 2 - (chamferLength + (offset + caseTolerance) / 2 * cos(45deg))),
 | 
			
		||||
       -(width / 2 - (chamferLength + (offset + caseTolerance) / 2 * math::cos(45deg))),
 | 
			
		||||
       -height / 2 + offset + caseTolerance
 | 
			
		||||
     ])
 | 
			
		||||
  |> angledLine(angle = -225, endAbsoluteX = -width / 2 + offset + caseTolerance)
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ const t = 0.005 // taper factor [0-1)
 | 
			
		||||
// Defines how to modify each layer of the vase.
 | 
			
		||||
// Each replica is shifted up the Z axis, and has a smoothly-varying radius
 | 
			
		||||
fn transform = (replicaId) => {
 | 
			
		||||
  let scale = r * abs(1 - (t * replicaId)) * (5 + cos((replicaId / 8): number(rad)))
 | 
			
		||||
  let scale = r * abs(1 - (t * replicaId)) * (5 + math::cos((replicaId / 8): number(rad)))
 | 
			
		||||
  return {
 | 
			
		||||
    translate: [0, 0, replicaId * 10],
 | 
			
		||||
    scale: [scale, scale, 0],
 | 
			
		||||
 | 
			
		||||
@ -47,8 +47,8 @@ impl CollectionVisitor {
 | 
			
		||||
                                ImportSelector::None { .. } => {
 | 
			
		||||
                                    self.visit_module(&path[1], &format!("{}::", import.module_name().unwrap()))?
 | 
			
		||||
                                }
 | 
			
		||||
                                // Only supports glob or whole-module imports for now.
 | 
			
		||||
                                _ => unimplemented!(),
 | 
			
		||||
                                // Only supports glob or whole-module imports for now (make sure the module is re-exported as well as some of the names in it).
 | 
			
		||||
                                _ => {}
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        p => return Err(format!("Unexpected import: `{p}`")),
 | 
			
		||||
 | 
			
		||||
@ -2133,19 +2133,19 @@ b = 180 / PI * a + 360
 | 
			
		||||
    #[tokio::test(flavor = "multi_thread")]
 | 
			
		||||
    async fn cos_coercions() {
 | 
			
		||||
        let program = r#"
 | 
			
		||||
a = cos(units::toRadians(30))
 | 
			
		||||
a = math::cos(units::toRadians(30))
 | 
			
		||||
b = 3 / a
 | 
			
		||||
c = cos(30deg)
 | 
			
		||||
d = cos(30)
 | 
			
		||||
c = math::cos(30deg)
 | 
			
		||||
d = math::cos(30)
 | 
			
		||||
"#;
 | 
			
		||||
 | 
			
		||||
        let result = parse_execute(program).await.unwrap();
 | 
			
		||||
        assert_eq!(result.exec_state.errors().len(), 1);
 | 
			
		||||
        assert!(result.exec_state.errors().is_empty());
 | 
			
		||||
 | 
			
		||||
        assert_value_and_type("a", &result, 1.0, NumericType::count());
 | 
			
		||||
        assert_value_and_type("b", &result, 3.0, NumericType::default());
 | 
			
		||||
        assert_value_and_type("c", &result, 1.0, NumericType::count());
 | 
			
		||||
        assert_value_and_type("d", &result, 0.0, NumericType::count());
 | 
			
		||||
        assert_value_and_type("d", &result, 1.0, NumericType::count());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[tokio::test(flavor = "multi_thread")]
 | 
			
		||||
 | 
			
		||||
@ -116,6 +116,17 @@ impl TyF64 {
 | 
			
		||||
        angle.adjust_to(self.n, UnitAngle::Degrees).0
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    pub fn to_radians(&self) -> f64 {
 | 
			
		||||
        let angle = match self.ty {
 | 
			
		||||
            NumericType::Default { angle, .. } => angle,
 | 
			
		||||
            NumericType::Known(UnitType::Angle(angle)) => angle,
 | 
			
		||||
            _ => unreachable!(),
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        assert_ne!(angle, UnitAngle::Unknown);
 | 
			
		||||
 | 
			
		||||
        angle.adjust_to(self.n, UnitAngle::Radians).0
 | 
			
		||||
    }
 | 
			
		||||
    pub fn count(n: f64) -> Self {
 | 
			
		||||
        Self {
 | 
			
		||||
            n,
 | 
			
		||||
 | 
			
		||||
@ -140,19 +140,19 @@ pub async fn reduce(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
 | 
			
		||||
/// // Declare a function that sketches a decagon.
 | 
			
		||||
/// fn decagon(radius) {
 | 
			
		||||
///   // Each side of the decagon is turned this many radians from the previous angle.
 | 
			
		||||
///   stepAngle = (1/10) * TAU
 | 
			
		||||
///   stepAngle = ((1/10) * TAU): number(rad)
 | 
			
		||||
///
 | 
			
		||||
///   // Start the decagon sketch at this point.
 | 
			
		||||
///   startOfDecagonSketch = startSketchOn('XY')
 | 
			
		||||
///     |> startProfile(at = [(cos(0)*radius), (sin(0) * radius)])
 | 
			
		||||
///   startOfDecagonSketch = startSketchOn(XY)
 | 
			
		||||
///     |> startProfile(at = [(math::cos(0)*radius), (math::sin(0) * radius)])
 | 
			
		||||
///
 | 
			
		||||
///   // Use a `reduce` to draw the remaining decagon sides.
 | 
			
		||||
///   // For each number in the array 1..10, run the given function,
 | 
			
		||||
///   // which takes a partially-sketched decagon and adds one more edge to it.
 | 
			
		||||
///   fullDecagon = reduce([1..10], initial = startOfDecagonSketch, f = fn(i, partialDecagon) {
 | 
			
		||||
///       // Draw one edge of the decagon.
 | 
			
		||||
///       x = cos(stepAngle * i) * radius
 | 
			
		||||
///       y = sin(stepAngle * i) * radius
 | 
			
		||||
///       x = math::cos(stepAngle * i) * radius
 | 
			
		||||
///       y = math::sin(stepAngle * i) * radius
 | 
			
		||||
///       return line(partialDecagon, end = [x, y])
 | 
			
		||||
///   })
 | 
			
		||||
///
 | 
			
		||||
@ -163,15 +163,15 @@ pub async fn reduce(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
 | 
			
		||||
/// /*
 | 
			
		||||
/// The `decagon` above is basically like this pseudo-code:
 | 
			
		||||
/// fn decagon(radius):
 | 
			
		||||
///     stepAngle = (1/10) * TAU
 | 
			
		||||
///     plane = startSketchOn('XY')
 | 
			
		||||
///     startOfDecagonSketch = startProfile(plane, at = [(cos(0)*radius), (sin(0) * radius)])
 | 
			
		||||
///     stepAngle = ((1/10) * TAU): number(rad)
 | 
			
		||||
///     plane = startSketchOn(XY)
 | 
			
		||||
///     startOfDecagonSketch = startProfile(plane, at = [(math::cos(0)*radius), (math::sin(0) * radius)])
 | 
			
		||||
///
 | 
			
		||||
///     // Here's the reduce part.
 | 
			
		||||
///     partialDecagon = startOfDecagonSketch
 | 
			
		||||
///     for i in [1..10]:
 | 
			
		||||
///         x = cos(stepAngle * i) * radius
 | 
			
		||||
///         y = sin(stepAngle * i) * radius
 | 
			
		||||
///         x = math::cos(stepAngle * i) * radius
 | 
			
		||||
///         y = math::sin(stepAngle * i) * radius
 | 
			
		||||
///         partialDecagon = line(partialDecagon, end = [x, y])
 | 
			
		||||
///     fullDecagon = partialDecagon // it's now full
 | 
			
		||||
///     return fullDecagon
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@ use kcl_derive_docs::stdlib;
 | 
			
		||||
use crate::{
 | 
			
		||||
    errors::KclError,
 | 
			
		||||
    execution::{
 | 
			
		||||
        types::{ArrayLen, NumericType, RuntimeType, UnitAngle, UnitType},
 | 
			
		||||
        types::{ArrayLen, NumericType, RuntimeType},
 | 
			
		||||
        ExecState, KclValue,
 | 
			
		||||
    },
 | 
			
		||||
    std::args::{Args, TyF64},
 | 
			
		||||
@ -21,7 +21,7 @@ pub async fn rem(exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kcl
 | 
			
		||||
 | 
			
		||||
    let (n, d, ty) = NumericType::combine_div(n, d);
 | 
			
		||||
    if ty == NumericType::Unknown {
 | 
			
		||||
        exec_state.warn(CompilationError::err(
 | 
			
		||||
        exec_state.err(CompilationError::err(
 | 
			
		||||
            args.source_range,
 | 
			
		||||
            "Calling `rem` on numbers which have unknown or incompatible units.\n\nYou may need to add information about the type of the argument, for example:\n  using a numeric suffix: `42{ty}`\n  or using type ascription: `foo(): number({ty})`"
 | 
			
		||||
        ));
 | 
			
		||||
@ -59,61 +59,21 @@ fn inner_rem(num: f64, divisor: f64) -> f64 {
 | 
			
		||||
/// Compute the cosine of a number (in radians).
 | 
			
		||||
pub async fn cos(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
 | 
			
		||||
    let num: TyF64 = args.get_unlabeled_kw_arg_typed("input", &RuntimeType::angle(), exec_state)?;
 | 
			
		||||
    let num = match num.ty {
 | 
			
		||||
        NumericType::Default {
 | 
			
		||||
            angle: UnitAngle::Degrees,
 | 
			
		||||
            ..
 | 
			
		||||
        } => {
 | 
			
		||||
            exec_state.warn(CompilationError::err(
 | 
			
		||||
                args.source_range,
 | 
			
		||||
                "`cos` requires its input in radians, but the input is assumed to be in degrees. You can use a numeric suffix (e.g., `0rad`) or type ascription (e.g., `(1/2): number(rad)`) to show the number is in radians, or `units::toRadians` to convert from degrees to radians",
 | 
			
		||||
            ));
 | 
			
		||||
            num.n
 | 
			
		||||
        }
 | 
			
		||||
        NumericType::Known(UnitType::Angle(UnitAngle::Degrees)) => num.n.to_radians(),
 | 
			
		||||
        _ => num.n,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    let num = num.to_radians();
 | 
			
		||||
    Ok(args.make_user_val_from_f64_with_type(TyF64::count(num.cos())))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Compute the sine of a number (in radians).
 | 
			
		||||
pub async fn sin(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
 | 
			
		||||
    let num: TyF64 = args.get_unlabeled_kw_arg_typed("input", &RuntimeType::angle(), exec_state)?;
 | 
			
		||||
    let num = match num.ty {
 | 
			
		||||
        NumericType::Default {
 | 
			
		||||
            angle: UnitAngle::Degrees,
 | 
			
		||||
            ..
 | 
			
		||||
        } => {
 | 
			
		||||
            exec_state.warn(CompilationError::err(
 | 
			
		||||
                args.source_range,
 | 
			
		||||
                "`sin` requires its input in radians, but the input is assumed to be in degrees. You can use a numeric suffix (e.g., `0rad`) or type ascription (e.g., `(1/2): number(rad)`) to show the number is in radians, or `units::toRadians` to convert from degrees to radians",
 | 
			
		||||
            ));
 | 
			
		||||
            num.n
 | 
			
		||||
        }
 | 
			
		||||
        NumericType::Known(UnitType::Angle(UnitAngle::Degrees)) => num.n.to_radians(),
 | 
			
		||||
        _ => num.n,
 | 
			
		||||
    };
 | 
			
		||||
    let num = num.to_radians();
 | 
			
		||||
    Ok(args.make_user_val_from_f64_with_type(TyF64::count(num.sin())))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Compute the tangent of a number (in radians).
 | 
			
		||||
pub async fn tan(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
 | 
			
		||||
    let num: TyF64 = args.get_unlabeled_kw_arg_typed("input", &RuntimeType::angle(), exec_state)?;
 | 
			
		||||
    let num = match num.ty {
 | 
			
		||||
        NumericType::Default {
 | 
			
		||||
            angle: UnitAngle::Degrees,
 | 
			
		||||
            ..
 | 
			
		||||
        } => {
 | 
			
		||||
            exec_state.warn(CompilationError::err(
 | 
			
		||||
                args.source_range,
 | 
			
		||||
                "`tan` requires its input in radians, but the input is assumed to be in degrees. You can use a numeric suffix (e.g., `0rad`) or type ascription (e.g., `(1/2): number(rad)`) to show the number is in radians, or `units::toRadians` to convert from degrees to radians",
 | 
			
		||||
            ));
 | 
			
		||||
            num.n
 | 
			
		||||
        }
 | 
			
		||||
        NumericType::Known(UnitType::Angle(UnitAngle::Degrees)) => num.n.to_radians(),
 | 
			
		||||
        _ => num.n,
 | 
			
		||||
    };
 | 
			
		||||
    let num = num.to_radians();
 | 
			
		||||
    Ok(args.make_user_val_from_f64_with_type(TyF64::count(num.tan())))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -202,7 +202,7 @@ pub async fn pattern_transform_2d(exec_state: &mut ExecState, args: Args) -> Res
 | 
			
		||||
/// // Defines how to modify each layer of the vase.
 | 
			
		||||
/// // Each replica is shifted up the Z axis, and has a smoothly-varying radius
 | 
			
		||||
/// fn transform(replicaId) {
 | 
			
		||||
///   scale = r * abs(1 - (t * replicaId)) * (5 + cos((replicaId / 8): number(rad)))
 | 
			
		||||
///   scale = r * abs(1 - (t * replicaId)) * (5 + math::cos((replicaId / 8): number(rad)))
 | 
			
		||||
///   return {
 | 
			
		||||
///     translate = [0, 0, replicaId * 10],
 | 
			
		||||
///     scale = [scale, scale, 0],
 | 
			
		||||
 | 
			
		||||
@ -47,14 +47,14 @@ export E = 2.71828182845904523536028747135266250_
 | 
			
		||||
/// ```
 | 
			
		||||
export TAU = 6.28318530717958647692528676655900577_
 | 
			
		||||
 | 
			
		||||
/// Compute the cosine of a number (in radians).
 | 
			
		||||
/// Compute the cosine of a number.
 | 
			
		||||
///
 | 
			
		||||
/// ```
 | 
			
		||||
/// exampleSketch = startSketchOn(XZ)
 | 
			
		||||
///   |> startProfile(at = [0, 0])
 | 
			
		||||
///   |> angledLine(
 | 
			
		||||
///     angle = 30,
 | 
			
		||||
///     length = 3 / cos(30deg),
 | 
			
		||||
///     length = 3 / math::cos(30deg),
 | 
			
		||||
///   )
 | 
			
		||||
///   |> yLine(endAbsolute = 0)
 | 
			
		||||
///   |> close()
 | 
			
		||||
@ -64,14 +64,14 @@ export TAU = 6.28318530717958647692528676655900577_
 | 
			
		||||
@(impl = std_rust)
 | 
			
		||||
export fn cos(@num: number(Angle)): number(_) {}
 | 
			
		||||
 | 
			
		||||
/// Compute the sine of a number (in radians).
 | 
			
		||||
/// Compute the sine of a number.
 | 
			
		||||
///
 | 
			
		||||
/// ```
 | 
			
		||||
/// exampleSketch = startSketchOn(XZ)
 | 
			
		||||
///   |> startProfile(at = [0, 0])
 | 
			
		||||
///   |> angledLine(
 | 
			
		||||
///     angle = 50,
 | 
			
		||||
///     length = 15 / sin(135deg),
 | 
			
		||||
///     length = 15 / math::sin(135deg),
 | 
			
		||||
///   )
 | 
			
		||||
///   |> yLine(endAbsolute = 0)
 | 
			
		||||
///   |> close()
 | 
			
		||||
@ -81,14 +81,14 @@ export fn cos(@num: number(Angle)): number(_) {}
 | 
			
		||||
@(impl = std_rust)
 | 
			
		||||
export fn sin(@num: number(Angle)): number(_) {}
 | 
			
		||||
 | 
			
		||||
/// Compute the tangent of a number (in radians).
 | 
			
		||||
/// Compute the tangent of a number.
 | 
			
		||||
///
 | 
			
		||||
/// ```
 | 
			
		||||
/// exampleSketch = startSketchOn(XZ)
 | 
			
		||||
///   |> startProfile(at = [0, 0])
 | 
			
		||||
///   |> angledLine(
 | 
			
		||||
///     angle = 50,
 | 
			
		||||
///     length = 50 * tan((1/2): number(rad)),
 | 
			
		||||
///     length = 50 * math::tan((1/2): number(rad)),
 | 
			
		||||
///   )
 | 
			
		||||
///   |> yLine(endAbsolute = 0)
 | 
			
		||||
///   |> close()
 | 
			
		||||
@ -104,7 +104,7 @@ export fn tan(@num: number(Angle)): number(_) {}
 | 
			
		||||
/// ```
 | 
			
		||||
/// exampleSketch = startSketchOn(XZ)
 | 
			
		||||
///   |> startProfile(at = [0, 0])
 | 
			
		||||
///   |> line(end = polar(angle = 30, length = 5), tag = $thing)
 | 
			
		||||
///   |> line(end = math::polar(angle = 30, length = 5), tag = $thing)
 | 
			
		||||
///   |> line(end = [0, 5])
 | 
			
		||||
///   |> line(end = [segEndX(thing), 0])
 | 
			
		||||
///   |> line(end = [-20, 10])
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,8 @@
 | 
			
		||||
 | 
			
		||||
export import * from "std::types"
 | 
			
		||||
export import "std::units"
 | 
			
		||||
export import * from "std::math"
 | 
			
		||||
export import PI, E, TAU from "std::math"
 | 
			
		||||
export import "std::math"
 | 
			
		||||
export import * from "std::sketch"
 | 
			
		||||
export import * from "std::solid"
 | 
			
		||||
export import "std::turns"
 | 
			
		||||
 | 
			
		||||
@ -38,7 +38,7 @@ export fn toYards(@num: number(yd)): number(yd) {
 | 
			
		||||
///   |> startProfile(at = [0, 0])
 | 
			
		||||
///   |> angledLine(
 | 
			
		||||
///     angle = 50,
 | 
			
		||||
///     length = 70 * cos(units::toRadians(45)),
 | 
			
		||||
///     length = 70 * math::cos(units::toRadians(45)),
 | 
			
		||||
///   )
 | 
			
		||||
///   |> yLine(endAbsolute = 0)
 | 
			
		||||
///   |> close()
 | 
			
		||||
@ -56,7 +56,7 @@ export fn toRadians(@num: number(rad)): number(rad) {
 | 
			
		||||
///   |> startProfile(at = [0, 0])
 | 
			
		||||
///   |> angledLine(
 | 
			
		||||
///     angle = 50,
 | 
			
		||||
///     length = 70 * cos(units::toDegrees((PI/4): number(rad))),
 | 
			
		||||
///     length = 70 * math::cos(units::toDegrees((PI/4): number(rad))),
 | 
			
		||||
///   )
 | 
			
		||||
///   |> yLine(endAbsolute = 0)
 | 
			
		||||
///   |> close()
 | 
			
		||||
 | 
			
		||||
@ -649,7 +649,15 @@ description: Result of parsing computed_var.kcl
 | 
			
		||||
                "start": 0,
 | 
			
		||||
                "type": "Identifier"
 | 
			
		||||
              },
 | 
			
		||||
              "path": [],
 | 
			
		||||
              "path": [
 | 
			
		||||
                {
 | 
			
		||||
                  "commentStart": 0,
 | 
			
		||||
                  "end": 0,
 | 
			
		||||
                  "name": "math",
 | 
			
		||||
                  "start": 0,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                }
 | 
			
		||||
              ],
 | 
			
		||||
              "start": 0,
 | 
			
		||||
              "type": "Name"
 | 
			
		||||
            },
 | 
			
		||||
 | 
			
		||||
@ -14,5 +14,5 @@ assert(one, isEqualTo = 1, error = "oops")
 | 
			
		||||
 | 
			
		||||
assert(PI, isEqualTo = 3, tolerance = 0.2, error = "oops pi")
 | 
			
		||||
 | 
			
		||||
x = cos((2 * PI): number(rad))
 | 
			
		||||
x = math::cos((2 * PI): number(rad))
 | 
			
		||||
assert(x, isEqualTo = 1, tolerance = 0.000001, error = "oops cos")
 | 
			
		||||
 | 
			
		||||
@ -7,7 +7,7 @@ description: Operations executed computed_var.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
 | 
			
		||||
@ -23,7 +23,7 @@ assert(
 | 
			
		||||
  error = "oops pi",
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
x = cos((2 * PI): number(rad))
 | 
			
		||||
x = math::cos((2 * PI): number(rad))
 | 
			
		||||
assert(
 | 
			
		||||
  x,
 | 
			
		||||
  isEqualTo = 1,
 | 
			
		||||
 | 
			
		||||
@ -1,235 +1,235 @@
 | 
			
		||||
```mermaid
 | 
			
		||||
flowchart LR
 | 
			
		||||
  subgraph path5 [Path]
 | 
			
		||||
    5["Path<br>[1109, 1159, 0]"]
 | 
			
		||||
    8["Segment<br>[1109, 1159, 0]"]
 | 
			
		||||
    5["Path<br>[1115, 1165, 0]"]
 | 
			
		||||
    8["Segment<br>[1115, 1165, 0]"]
 | 
			
		||||
    220[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path6 [Path]
 | 
			
		||||
    6["Path<br>[1664, 1701, 0]"]
 | 
			
		||||
    9["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    10["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    11["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    12["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    13["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    14["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    15["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    16["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    17["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    18["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    19["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    20["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    21["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    22["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    23["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    24["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    25["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    26["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    27["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    28["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    29["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    30["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    31["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    32["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    33["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    34["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    35["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    36["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    37["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    38["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    39["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    40["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    41["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    42["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    43["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    44["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    45["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    46["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    47["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    48["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    49["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    50["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    51["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    52["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    53["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    54["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    55["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    56["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    57["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    58["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    59["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    60["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    61["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    62["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    63["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    64["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    65["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    66["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    67["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    68["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    69["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    70["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    71["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    72["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    73["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    74["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    75["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    76["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    77["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    78["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    79["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    80["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    81["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    82["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    83["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    84["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    85["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    86["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    87["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    88["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    89["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    90["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    91["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    92["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    93["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    94["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    95["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    96["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    97["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    98["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    99["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    100["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    101["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    102["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    103["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    104["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    105["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    106["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    107["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    108["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    109["Segment<br>[1324, 1362, 0]"]
 | 
			
		||||
    110["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    111["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    112["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    113["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    114["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    115["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    116["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    117["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    118["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    119["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    120["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    121["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    122["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    123["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    124["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    125["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    126["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    127["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    128["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    129["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    130["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    131["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    132["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    133["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    134["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    135["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    136["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    137["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    138["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    139["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    140["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    141["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    142["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    143["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    144["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    145["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    146["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    147["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    148["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    149["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    150["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    151["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    152["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    153["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    154["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    155["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    156["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    157["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    158["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    159["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    160["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    161["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    162["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    163["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    164["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    165["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    166["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    167["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    168["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    169["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    170["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    171["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    172["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    173["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    174["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    175["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    176["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    177["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    178["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    179["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    180["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    181["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    182["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    183["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    184["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    185["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    186["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    187["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    188["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    189["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    190["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    191["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    192["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    193["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    194["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    195["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    196["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    197["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    198["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    199["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    200["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    201["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    202["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    203["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    204["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    205["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    206["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    207["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    208["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    209["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    210["Segment<br>[1580, 1610, 0]"]
 | 
			
		||||
    211["Segment<br>[1767, 1865, 0]"]
 | 
			
		||||
    212["Segment<br>[1925, 1932, 0]"]
 | 
			
		||||
    6["Path<br>[1646, 1683, 0]"]
 | 
			
		||||
    9["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    10["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    11["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    12["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    13["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    14["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    15["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    16["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    17["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    18["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    19["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    20["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    21["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    22["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    23["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    24["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    25["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    26["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    27["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    28["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    29["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    30["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    31["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    32["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    33["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    34["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    35["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    36["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    37["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    38["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    39["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    40["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    41["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    42["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    43["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    44["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    45["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    46["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    47["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    48["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    49["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    50["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    51["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    52["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    53["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    54["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    55["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    56["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    57["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    58["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    59["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    60["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    61["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    62["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    63["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    64["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    65["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    66["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    67["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    68["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    69["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    70["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    71["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    72["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    73["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    74["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    75["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    76["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    77["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    78["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    79["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    80["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    81["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    82["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    83["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    84["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    85["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    86["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    87["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    88["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    89["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    90["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    91["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    92["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    93["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    94["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    95["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    96["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    97["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    98["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    99["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    100["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    101["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    102["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    103["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    104["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    105["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    106["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    107["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    108["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    109["Segment<br>[1330, 1368, 0]"]
 | 
			
		||||
    110["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    111["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    112["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    113["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    114["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    115["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    116["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    117["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    118["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    119["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    120["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    121["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    122["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    123["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    124["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    125["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    126["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    127["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    128["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    129["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    130["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    131["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    132["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    133["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    134["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    135["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    136["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    137["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    138["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    139["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    140["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    141["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    142["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    143["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    144["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    145["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    146["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    147["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    148["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    149["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    150["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    151["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    152["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    153["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    154["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    155["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    156["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    157["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    158["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    159["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    160["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    161["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    162["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    163["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    164["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    165["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    166["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    167["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    168["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    169["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    170["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    171["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    172["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    173["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    174["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    175["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    176["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    177["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    178["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    179["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    180["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    181["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    182["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    183["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    184["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    185["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    186["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    187["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    188["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    189["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    190["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    191["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    192["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    193["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    194["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    195["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    196["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    197["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    198["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    199["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    200["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    201["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    202["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    203["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    204["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    205["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    206["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    207["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    208["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    209["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    210["Segment<br>[1562, 1592, 0]"]
 | 
			
		||||
    211["Segment<br>[1749, 1847, 0]"]
 | 
			
		||||
    212["Segment<br>[1907, 1914, 0]"]
 | 
			
		||||
    219[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path7 [Path]
 | 
			
		||||
    7["Path<br>[2413, 2492, 0]"]
 | 
			
		||||
    213["Segment<br>[2498, 2525, 0]"]
 | 
			
		||||
    214["Segment<br>[2531, 2559, 0]"]
 | 
			
		||||
    215["Segment<br>[2565, 2593, 0]"]
 | 
			
		||||
    216["Segment<br>[2599, 2722, 0]"]
 | 
			
		||||
    217["Segment<br>[2728, 2840, 0]"]
 | 
			
		||||
    218["Segment<br>[2846, 2853, 0]"]
 | 
			
		||||
    7["Path<br>[2395, 2486, 0]"]
 | 
			
		||||
    213["Segment<br>[2492, 2519, 0]"]
 | 
			
		||||
    214["Segment<br>[2525, 2553, 0]"]
 | 
			
		||||
    215["Segment<br>[2559, 2587, 0]"]
 | 
			
		||||
    216["Segment<br>[2593, 2716, 0]"]
 | 
			
		||||
    217["Segment<br>[2722, 2834, 0]"]
 | 
			
		||||
    218["Segment<br>[2840, 2847, 0]"]
 | 
			
		||||
    221[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  1["Plane<br>[168, 185, 0]"]
 | 
			
		||||
  2["Plane<br>[1086, 1103, 0]"]
 | 
			
		||||
  3["Plane<br>[1641, 1658, 0]"]
 | 
			
		||||
  4["StartSketchOnFace<br>[2376, 2407, 0]"]
 | 
			
		||||
  222["Sweep Extrusion<br>[1165, 1193, 0]"]
 | 
			
		||||
  223["Sweep Extrusion<br>[1938, 1966, 0]"]
 | 
			
		||||
  224["Sweep Extrusion<br>[2859, 2888, 0]"]
 | 
			
		||||
  2["Plane<br>[1092, 1109, 0]"]
 | 
			
		||||
  3["Plane<br>[1623, 1640, 0]"]
 | 
			
		||||
  4["StartSketchOnFace<br>[2358, 2389, 0]"]
 | 
			
		||||
  222["Sweep Extrusion<br>[1171, 1199, 0]"]
 | 
			
		||||
  223["Sweep Extrusion<br>[1920, 1948, 0]"]
 | 
			
		||||
  224["Sweep Extrusion<br>[2853, 2882, 0]"]
 | 
			
		||||
  225[Wall]
 | 
			
		||||
  226[Wall]
 | 
			
		||||
  227[Wall]
 | 
			
		||||
 | 
			
		||||
@ -458,52 +458,20 @@ description: Result of parsing import_async.kcl
 | 
			
		||||
            "right": {
 | 
			
		||||
              "arguments": [
 | 
			
		||||
                {
 | 
			
		||||
                  "arguments": [
 | 
			
		||||
                    {
 | 
			
		||||
                      "abs_path": false,
 | 
			
		||||
                      "commentStart": 0,
 | 
			
		||||
                      "end": 0,
 | 
			
		||||
                      "name": {
 | 
			
		||||
                        "commentStart": 0,
 | 
			
		||||
                        "end": 0,
 | 
			
		||||
                        "name": "pressureAngle",
 | 
			
		||||
                        "start": 0,
 | 
			
		||||
                        "type": "Identifier"
 | 
			
		||||
                      },
 | 
			
		||||
                      "path": [],
 | 
			
		||||
                      "start": 0,
 | 
			
		||||
                      "type": "Name",
 | 
			
		||||
                      "type": "Name"
 | 
			
		||||
                    }
 | 
			
		||||
                  ],
 | 
			
		||||
                  "callee": {
 | 
			
		||||
                    "abs_path": false,
 | 
			
		||||
                    "commentStart": 0,
 | 
			
		||||
                    "end": 0,
 | 
			
		||||
                    "name": {
 | 
			
		||||
                      "commentStart": 0,
 | 
			
		||||
                      "end": 0,
 | 
			
		||||
                      "name": "toRadians",
 | 
			
		||||
                      "start": 0,
 | 
			
		||||
                      "type": "Identifier"
 | 
			
		||||
                    },
 | 
			
		||||
                    "path": [
 | 
			
		||||
                      {
 | 
			
		||||
                        "commentStart": 0,
 | 
			
		||||
                        "end": 0,
 | 
			
		||||
                        "name": "units",
 | 
			
		||||
                        "start": 0,
 | 
			
		||||
                        "type": "Identifier"
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "start": 0,
 | 
			
		||||
                    "type": "Name"
 | 
			
		||||
                  },
 | 
			
		||||
                  "abs_path": false,
 | 
			
		||||
                  "commentStart": 0,
 | 
			
		||||
                  "end": 0,
 | 
			
		||||
                  "name": {
 | 
			
		||||
                    "commentStart": 0,
 | 
			
		||||
                    "end": 0,
 | 
			
		||||
                    "name": "pressureAngle",
 | 
			
		||||
                    "start": 0,
 | 
			
		||||
                    "type": "Identifier"
 | 
			
		||||
                  },
 | 
			
		||||
                  "path": [],
 | 
			
		||||
                  "start": 0,
 | 
			
		||||
                  "type": "CallExpression",
 | 
			
		||||
                  "type": "CallExpression"
 | 
			
		||||
                  "type": "Name",
 | 
			
		||||
                  "type": "Name"
 | 
			
		||||
                }
 | 
			
		||||
              ],
 | 
			
		||||
              "callee": {
 | 
			
		||||
@ -517,7 +485,15 @@ description: Result of parsing import_async.kcl
 | 
			
		||||
                  "start": 0,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "path": [],
 | 
			
		||||
                "path": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "commentStart": 0,
 | 
			
		||||
                    "end": 0,
 | 
			
		||||
                    "name": "math",
 | 
			
		||||
                    "start": 0,
 | 
			
		||||
                    "type": "Identifier"
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "start": 0,
 | 
			
		||||
                "type": "Name"
 | 
			
		||||
              },
 | 
			
		||||
@ -1285,7 +1261,15 @@ description: Result of parsing import_async.kcl
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "path": [],
 | 
			
		||||
                              "path": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "math",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Name"
 | 
			
		||||
                            },
 | 
			
		||||
@ -1538,7 +1522,15 @@ description: Result of parsing import_async.kcl
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "path": [],
 | 
			
		||||
                              "path": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "math",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Name"
 | 
			
		||||
                            },
 | 
			
		||||
@ -1762,7 +1754,15 @@ description: Result of parsing import_async.kcl
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "path": [],
 | 
			
		||||
                              "path": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "math",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Name"
 | 
			
		||||
                            },
 | 
			
		||||
@ -2499,116 +2499,92 @@ description: Result of parsing import_async.kcl
 | 
			
		||||
                      "right": {
 | 
			
		||||
                        "arguments": [
 | 
			
		||||
                          {
 | 
			
		||||
                            "arguments": [
 | 
			
		||||
                              {
 | 
			
		||||
                            "commentStart": 0,
 | 
			
		||||
                            "end": 0,
 | 
			
		||||
                            "left": {
 | 
			
		||||
                              "argument": {
 | 
			
		||||
                                "abs_path": false,
 | 
			
		||||
                                "commentStart": 0,
 | 
			
		||||
                                "end": 0,
 | 
			
		||||
                                "left": {
 | 
			
		||||
                                  "argument": {
 | 
			
		||||
                                    "abs_path": false,
 | 
			
		||||
                                    "commentStart": 0,
 | 
			
		||||
                                    "end": 0,
 | 
			
		||||
                                    "name": {
 | 
			
		||||
                                      "commentStart": 0,
 | 
			
		||||
                                      "end": 0,
 | 
			
		||||
                                      "name": "toothAngle",
 | 
			
		||||
                                      "start": 0,
 | 
			
		||||
                                      "type": "Identifier"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "path": [],
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Name",
 | 
			
		||||
                                    "type": "Name"
 | 
			
		||||
                                  },
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "operator": "-",
 | 
			
		||||
                                  "name": "toothAngle",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "UnaryExpression",
 | 
			
		||||
                                  "type": "UnaryExpression"
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                },
 | 
			
		||||
                                "operator": "+",
 | 
			
		||||
                                "right": {
 | 
			
		||||
                                "path": [],
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Name",
 | 
			
		||||
                                "type": "Name"
 | 
			
		||||
                              },
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "operator": "-",
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "UnaryExpression",
 | 
			
		||||
                              "type": "UnaryExpression"
 | 
			
		||||
                            },
 | 
			
		||||
                            "operator": "+",
 | 
			
		||||
                            "right": {
 | 
			
		||||
                              "arguments": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "arguments": [
 | 
			
		||||
                                    {
 | 
			
		||||
                                      "arguments": [
 | 
			
		||||
                                        {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "left": {
 | 
			
		||||
                                            "commentStart": 0,
 | 
			
		||||
                                            "computed": true,
 | 
			
		||||
                                            "end": 0,
 | 
			
		||||
                                            "object": {
 | 
			
		||||
                                              "commentStart": 0,
 | 
			
		||||
                                              "end": 0,
 | 
			
		||||
                                              "name": "ys",
 | 
			
		||||
                                              "start": 0,
 | 
			
		||||
                                              "type": "Identifier",
 | 
			
		||||
                                              "type": "Identifier"
 | 
			
		||||
                                            },
 | 
			
		||||
                                            "property": {
 | 
			
		||||
                                              "commentStart": 0,
 | 
			
		||||
                                              "end": 0,
 | 
			
		||||
                                              "name": "i",
 | 
			
		||||
                                              "start": 0,
 | 
			
		||||
                                              "type": "Identifier",
 | 
			
		||||
                                              "type": "Identifier"
 | 
			
		||||
                                            },
 | 
			
		||||
                                            "start": 0,
 | 
			
		||||
                                            "type": "MemberExpression",
 | 
			
		||||
                                            "type": "MemberExpression"
 | 
			
		||||
                                          },
 | 
			
		||||
                                          "operator": "/",
 | 
			
		||||
                                          "right": {
 | 
			
		||||
                                            "commentStart": 0,
 | 
			
		||||
                                            "computed": true,
 | 
			
		||||
                                            "end": 0,
 | 
			
		||||
                                            "object": {
 | 
			
		||||
                                              "commentStart": 0,
 | 
			
		||||
                                              "end": 0,
 | 
			
		||||
                                              "name": "xs",
 | 
			
		||||
                                              "start": 0,
 | 
			
		||||
                                              "type": "Identifier",
 | 
			
		||||
                                              "type": "Identifier"
 | 
			
		||||
                                            },
 | 
			
		||||
                                            "property": {
 | 
			
		||||
                                              "commentStart": 0,
 | 
			
		||||
                                              "end": 0,
 | 
			
		||||
                                              "name": "i",
 | 
			
		||||
                                              "start": 0,
 | 
			
		||||
                                              "type": "Identifier",
 | 
			
		||||
                                              "type": "Identifier"
 | 
			
		||||
                                            },
 | 
			
		||||
                                            "start": 0,
 | 
			
		||||
                                            "type": "MemberExpression",
 | 
			
		||||
                                            "type": "MemberExpression"
 | 
			
		||||
                                          },
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "BinaryExpression",
 | 
			
		||||
                                          "type": "BinaryExpression"
 | 
			
		||||
                                        }
 | 
			
		||||
                                      ],
 | 
			
		||||
                                      "callee": {
 | 
			
		||||
                                        "abs_path": false,
 | 
			
		||||
                                        "commentStart": 0,
 | 
			
		||||
                                        "end": 0,
 | 
			
		||||
                                        "name": {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "name": "atan",
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "Identifier"
 | 
			
		||||
                                        },
 | 
			
		||||
                                        "path": [],
 | 
			
		||||
                                        "start": 0,
 | 
			
		||||
                                        "type": "Name"
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "commentStart": 0,
 | 
			
		||||
                                      "end": 0,
 | 
			
		||||
                                      "left": {
 | 
			
		||||
                                        "commentStart": 0,
 | 
			
		||||
                                        "computed": true,
 | 
			
		||||
                                        "end": 0,
 | 
			
		||||
                                        "object": {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "name": "ys",
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "Identifier",
 | 
			
		||||
                                          "type": "Identifier"
 | 
			
		||||
                                        },
 | 
			
		||||
                                        "property": {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "name": "i",
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "Identifier",
 | 
			
		||||
                                          "type": "Identifier"
 | 
			
		||||
                                        },
 | 
			
		||||
                                        "start": 0,
 | 
			
		||||
                                        "type": "MemberExpression",
 | 
			
		||||
                                        "type": "MemberExpression"
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "operator": "/",
 | 
			
		||||
                                      "right": {
 | 
			
		||||
                                        "commentStart": 0,
 | 
			
		||||
                                        "computed": true,
 | 
			
		||||
                                        "end": 0,
 | 
			
		||||
                                        "object": {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "name": "xs",
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "Identifier",
 | 
			
		||||
                                          "type": "Identifier"
 | 
			
		||||
                                        },
 | 
			
		||||
                                        "property": {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "name": "i",
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "Identifier",
 | 
			
		||||
                                          "type": "Identifier"
 | 
			
		||||
                                        },
 | 
			
		||||
                                        "start": 0,
 | 
			
		||||
                                        "type": "MemberExpression",
 | 
			
		||||
                                        "type": "MemberExpression"
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "start": 0,
 | 
			
		||||
                                      "type": "CallExpression",
 | 
			
		||||
                                      "type": "CallExpression"
 | 
			
		||||
                                      "type": "BinaryExpression",
 | 
			
		||||
                                      "type": "BinaryExpression"
 | 
			
		||||
                                    }
 | 
			
		||||
                                  ],
 | 
			
		||||
                                  "callee": {
 | 
			
		||||
@ -2618,19 +2594,11 @@ description: Result of parsing import_async.kcl
 | 
			
		||||
                                    "name": {
 | 
			
		||||
                                      "commentStart": 0,
 | 
			
		||||
                                      "end": 0,
 | 
			
		||||
                                      "name": "toDegrees",
 | 
			
		||||
                                      "name": "atan",
 | 
			
		||||
                                      "start": 0,
 | 
			
		||||
                                      "type": "Identifier"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "path": [
 | 
			
		||||
                                      {
 | 
			
		||||
                                        "commentStart": 0,
 | 
			
		||||
                                        "end": 0,
 | 
			
		||||
                                        "name": "units",
 | 
			
		||||
                                        "start": 0,
 | 
			
		||||
                                        "type": "Identifier"
 | 
			
		||||
                                      }
 | 
			
		||||
                                    ],
 | 
			
		||||
                                    "path": [],
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Name"
 | 
			
		||||
                                  },
 | 
			
		||||
@ -2639,40 +2607,40 @@ description: Result of parsing import_async.kcl
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "CallExpression",
 | 
			
		||||
                                  "type": "CallExpression"
 | 
			
		||||
                                },
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "BinaryExpression",
 | 
			
		||||
                                "type": "BinaryExpression"
 | 
			
		||||
                              }
 | 
			
		||||
                            ],
 | 
			
		||||
                            "callee": {
 | 
			
		||||
                              "abs_path": false,
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "name": {
 | 
			
		||||
                                "commentStart": 0,
 | 
			
		||||
                                "end": 0,
 | 
			
		||||
                                "name": "toRadians",
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "path": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "units",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "callee": {
 | 
			
		||||
                                "abs_path": false,
 | 
			
		||||
                                "commentStart": 0,
 | 
			
		||||
                                "end": 0,
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "toDegrees",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                },
 | 
			
		||||
                                "path": [
 | 
			
		||||
                                  {
 | 
			
		||||
                                    "commentStart": 0,
 | 
			
		||||
                                    "end": 0,
 | 
			
		||||
                                    "name": "units",
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Identifier"
 | 
			
		||||
                                  }
 | 
			
		||||
                                ],
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Name"
 | 
			
		||||
                              },
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Name"
 | 
			
		||||
                              "type": "CallExpression",
 | 
			
		||||
                              "type": "CallExpression"
 | 
			
		||||
                            },
 | 
			
		||||
                            "commentStart": 0,
 | 
			
		||||
                            "end": 0,
 | 
			
		||||
                            "start": 0,
 | 
			
		||||
                            "type": "CallExpression",
 | 
			
		||||
                            "type": "CallExpression"
 | 
			
		||||
                            "type": "BinaryExpression",
 | 
			
		||||
                            "type": "BinaryExpression"
 | 
			
		||||
                          }
 | 
			
		||||
                        ],
 | 
			
		||||
                        "callee": {
 | 
			
		||||
@ -2686,7 +2654,15 @@ description: Result of parsing import_async.kcl
 | 
			
		||||
                            "start": 0,
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "path": [],
 | 
			
		||||
                          "path": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "name": "math",
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "start": 0,
 | 
			
		||||
                          "type": "Name"
 | 
			
		||||
                        },
 | 
			
		||||
@ -2760,116 +2736,92 @@ description: Result of parsing import_async.kcl
 | 
			
		||||
                      "right": {
 | 
			
		||||
                        "arguments": [
 | 
			
		||||
                          {
 | 
			
		||||
                            "arguments": [
 | 
			
		||||
                              {
 | 
			
		||||
                            "commentStart": 0,
 | 
			
		||||
                            "end": 0,
 | 
			
		||||
                            "left": {
 | 
			
		||||
                              "argument": {
 | 
			
		||||
                                "abs_path": false,
 | 
			
		||||
                                "commentStart": 0,
 | 
			
		||||
                                "end": 0,
 | 
			
		||||
                                "left": {
 | 
			
		||||
                                  "argument": {
 | 
			
		||||
                                    "abs_path": false,
 | 
			
		||||
                                    "commentStart": 0,
 | 
			
		||||
                                    "end": 0,
 | 
			
		||||
                                    "name": {
 | 
			
		||||
                                      "commentStart": 0,
 | 
			
		||||
                                      "end": 0,
 | 
			
		||||
                                      "name": "toothAngle",
 | 
			
		||||
                                      "start": 0,
 | 
			
		||||
                                      "type": "Identifier"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "path": [],
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Name",
 | 
			
		||||
                                    "type": "Name"
 | 
			
		||||
                                  },
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "operator": "-",
 | 
			
		||||
                                  "name": "toothAngle",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "UnaryExpression",
 | 
			
		||||
                                  "type": "UnaryExpression"
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                },
 | 
			
		||||
                                "operator": "+",
 | 
			
		||||
                                "right": {
 | 
			
		||||
                                "path": [],
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Name",
 | 
			
		||||
                                "type": "Name"
 | 
			
		||||
                              },
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "operator": "-",
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "UnaryExpression",
 | 
			
		||||
                              "type": "UnaryExpression"
 | 
			
		||||
                            },
 | 
			
		||||
                            "operator": "+",
 | 
			
		||||
                            "right": {
 | 
			
		||||
                              "arguments": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "arguments": [
 | 
			
		||||
                                    {
 | 
			
		||||
                                      "arguments": [
 | 
			
		||||
                                        {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "left": {
 | 
			
		||||
                                            "commentStart": 0,
 | 
			
		||||
                                            "computed": true,
 | 
			
		||||
                                            "end": 0,
 | 
			
		||||
                                            "object": {
 | 
			
		||||
                                              "commentStart": 0,
 | 
			
		||||
                                              "end": 0,
 | 
			
		||||
                                              "name": "ys",
 | 
			
		||||
                                              "start": 0,
 | 
			
		||||
                                              "type": "Identifier",
 | 
			
		||||
                                              "type": "Identifier"
 | 
			
		||||
                                            },
 | 
			
		||||
                                            "property": {
 | 
			
		||||
                                              "commentStart": 0,
 | 
			
		||||
                                              "end": 0,
 | 
			
		||||
                                              "name": "i",
 | 
			
		||||
                                              "start": 0,
 | 
			
		||||
                                              "type": "Identifier",
 | 
			
		||||
                                              "type": "Identifier"
 | 
			
		||||
                                            },
 | 
			
		||||
                                            "start": 0,
 | 
			
		||||
                                            "type": "MemberExpression",
 | 
			
		||||
                                            "type": "MemberExpression"
 | 
			
		||||
                                          },
 | 
			
		||||
                                          "operator": "/",
 | 
			
		||||
                                          "right": {
 | 
			
		||||
                                            "commentStart": 0,
 | 
			
		||||
                                            "computed": true,
 | 
			
		||||
                                            "end": 0,
 | 
			
		||||
                                            "object": {
 | 
			
		||||
                                              "commentStart": 0,
 | 
			
		||||
                                              "end": 0,
 | 
			
		||||
                                              "name": "xs",
 | 
			
		||||
                                              "start": 0,
 | 
			
		||||
                                              "type": "Identifier",
 | 
			
		||||
                                              "type": "Identifier"
 | 
			
		||||
                                            },
 | 
			
		||||
                                            "property": {
 | 
			
		||||
                                              "commentStart": 0,
 | 
			
		||||
                                              "end": 0,
 | 
			
		||||
                                              "name": "i",
 | 
			
		||||
                                              "start": 0,
 | 
			
		||||
                                              "type": "Identifier",
 | 
			
		||||
                                              "type": "Identifier"
 | 
			
		||||
                                            },
 | 
			
		||||
                                            "start": 0,
 | 
			
		||||
                                            "type": "MemberExpression",
 | 
			
		||||
                                            "type": "MemberExpression"
 | 
			
		||||
                                          },
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "BinaryExpression",
 | 
			
		||||
                                          "type": "BinaryExpression"
 | 
			
		||||
                                        }
 | 
			
		||||
                                      ],
 | 
			
		||||
                                      "callee": {
 | 
			
		||||
                                        "abs_path": false,
 | 
			
		||||
                                        "commentStart": 0,
 | 
			
		||||
                                        "end": 0,
 | 
			
		||||
                                        "name": {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "name": "atan",
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "Identifier"
 | 
			
		||||
                                        },
 | 
			
		||||
                                        "path": [],
 | 
			
		||||
                                        "start": 0,
 | 
			
		||||
                                        "type": "Name"
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "commentStart": 0,
 | 
			
		||||
                                      "end": 0,
 | 
			
		||||
                                      "left": {
 | 
			
		||||
                                        "commentStart": 0,
 | 
			
		||||
                                        "computed": true,
 | 
			
		||||
                                        "end": 0,
 | 
			
		||||
                                        "object": {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "name": "ys",
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "Identifier",
 | 
			
		||||
                                          "type": "Identifier"
 | 
			
		||||
                                        },
 | 
			
		||||
                                        "property": {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "name": "i",
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "Identifier",
 | 
			
		||||
                                          "type": "Identifier"
 | 
			
		||||
                                        },
 | 
			
		||||
                                        "start": 0,
 | 
			
		||||
                                        "type": "MemberExpression",
 | 
			
		||||
                                        "type": "MemberExpression"
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "operator": "/",
 | 
			
		||||
                                      "right": {
 | 
			
		||||
                                        "commentStart": 0,
 | 
			
		||||
                                        "computed": true,
 | 
			
		||||
                                        "end": 0,
 | 
			
		||||
                                        "object": {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "name": "xs",
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "Identifier",
 | 
			
		||||
                                          "type": "Identifier"
 | 
			
		||||
                                        },
 | 
			
		||||
                                        "property": {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "name": "i",
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "Identifier",
 | 
			
		||||
                                          "type": "Identifier"
 | 
			
		||||
                                        },
 | 
			
		||||
                                        "start": 0,
 | 
			
		||||
                                        "type": "MemberExpression",
 | 
			
		||||
                                        "type": "MemberExpression"
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "start": 0,
 | 
			
		||||
                                      "type": "CallExpression",
 | 
			
		||||
                                      "type": "CallExpression"
 | 
			
		||||
                                      "type": "BinaryExpression",
 | 
			
		||||
                                      "type": "BinaryExpression"
 | 
			
		||||
                                    }
 | 
			
		||||
                                  ],
 | 
			
		||||
                                  "callee": {
 | 
			
		||||
@ -2879,19 +2831,11 @@ description: Result of parsing import_async.kcl
 | 
			
		||||
                                    "name": {
 | 
			
		||||
                                      "commentStart": 0,
 | 
			
		||||
                                      "end": 0,
 | 
			
		||||
                                      "name": "toDegrees",
 | 
			
		||||
                                      "name": "atan",
 | 
			
		||||
                                      "start": 0,
 | 
			
		||||
                                      "type": "Identifier"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "path": [
 | 
			
		||||
                                      {
 | 
			
		||||
                                        "commentStart": 0,
 | 
			
		||||
                                        "end": 0,
 | 
			
		||||
                                        "name": "units",
 | 
			
		||||
                                        "start": 0,
 | 
			
		||||
                                        "type": "Identifier"
 | 
			
		||||
                                      }
 | 
			
		||||
                                    ],
 | 
			
		||||
                                    "path": [],
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Name"
 | 
			
		||||
                                  },
 | 
			
		||||
@ -2900,40 +2844,40 @@ description: Result of parsing import_async.kcl
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "CallExpression",
 | 
			
		||||
                                  "type": "CallExpression"
 | 
			
		||||
                                },
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "BinaryExpression",
 | 
			
		||||
                                "type": "BinaryExpression"
 | 
			
		||||
                              }
 | 
			
		||||
                            ],
 | 
			
		||||
                            "callee": {
 | 
			
		||||
                              "abs_path": false,
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "name": {
 | 
			
		||||
                                "commentStart": 0,
 | 
			
		||||
                                "end": 0,
 | 
			
		||||
                                "name": "toRadians",
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "path": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "units",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "callee": {
 | 
			
		||||
                                "abs_path": false,
 | 
			
		||||
                                "commentStart": 0,
 | 
			
		||||
                                "end": 0,
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "toDegrees",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                },
 | 
			
		||||
                                "path": [
 | 
			
		||||
                                  {
 | 
			
		||||
                                    "commentStart": 0,
 | 
			
		||||
                                    "end": 0,
 | 
			
		||||
                                    "name": "units",
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Identifier"
 | 
			
		||||
                                  }
 | 
			
		||||
                                ],
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Name"
 | 
			
		||||
                              },
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Name"
 | 
			
		||||
                              "type": "CallExpression",
 | 
			
		||||
                              "type": "CallExpression"
 | 
			
		||||
                            },
 | 
			
		||||
                            "commentStart": 0,
 | 
			
		||||
                            "end": 0,
 | 
			
		||||
                            "start": 0,
 | 
			
		||||
                            "type": "CallExpression",
 | 
			
		||||
                            "type": "CallExpression"
 | 
			
		||||
                            "type": "BinaryExpression",
 | 
			
		||||
                            "type": "BinaryExpression"
 | 
			
		||||
                          }
 | 
			
		||||
                        ],
 | 
			
		||||
                        "callee": {
 | 
			
		||||
@ -2947,7 +2891,15 @@ description: Result of parsing import_async.kcl
 | 
			
		||||
                            "start": 0,
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "path": [],
 | 
			
		||||
                          "path": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "name": "math",
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "start": 0,
 | 
			
		||||
                          "type": "Name"
 | 
			
		||||
                        },
 | 
			
		||||
@ -4340,7 +4292,15 @@ description: Result of parsing import_async.kcl
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "path": [],
 | 
			
		||||
                              "path": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "math",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Name"
 | 
			
		||||
                            },
 | 
			
		||||
@ -4404,7 +4364,15 @@ description: Result of parsing import_async.kcl
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "path": [],
 | 
			
		||||
                              "path": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "math",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Name"
 | 
			
		||||
                            },
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@ pitchDiameter = module * nTeeth
 | 
			
		||||
pressureAngle = 20
 | 
			
		||||
addendum = module
 | 
			
		||||
deddendum = 1.25 * module
 | 
			
		||||
baseDiameter = pitchDiameter * cos(units::toRadians(pressureAngle))
 | 
			
		||||
baseDiameter = pitchDiameter * math::cos(pressureAngle)
 | 
			
		||||
tipDiameter = pitchDiameter + 2 * module
 | 
			
		||||
gearHeight = 3
 | 
			
		||||
 | 
			
		||||
@ -33,16 +33,16 @@ angles = map(rs, f = fn(r) {
 | 
			
		||||
 | 
			
		||||
// Calculate the involute function
 | 
			
		||||
invas = map(angles, f = fn(a) {
 | 
			
		||||
  return tan(units::toRadians(a)) - units::toRadians(a)
 | 
			
		||||
  return math::tan(units::toRadians(a)) - units::toRadians(a)
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
// Map the involute curve
 | 
			
		||||
xs = map([0..cmo], f = fn(i) {
 | 
			
		||||
  return rs[i] * cos(invas[i]: number(rad))
 | 
			
		||||
  return rs[i] * math::cos(invas[i]: number(rad))
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
ys = map([0..cmo], f = fn(i) {
 | 
			
		||||
  return rs[i] * sin(invas[i]: number(rad))
 | 
			
		||||
  return rs[i] * math::sin(invas[i]: number(rad))
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
// Extrude the gear body
 | 
			
		||||
@ -59,8 +59,8 @@ fn leftInvolute(i, sg) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn rightInvolute(i, sg) {
 | 
			
		||||
  x = rs[i] * cos(units::toRadians(-toothAngle + units::toDegrees(atan(ys[i] / xs[i]))))
 | 
			
		||||
  y = -rs[i] * sin(units::toRadians(-toothAngle + units::toDegrees(atan(ys[i] / xs[i]))))
 | 
			
		||||
  x = rs[i] * math::cos(-toothAngle + units::toDegrees(atan(ys[i] / xs[i])))
 | 
			
		||||
  y = -rs[i] * math::sin(-toothAngle + units::toDegrees(atan(ys[i] / xs[i])))
 | 
			
		||||
  return line(sg, endAbsolute = [x, y])
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -93,7 +93,7 @@ startAngle = asin(keywayWidth / 2 / holeRadius)
 | 
			
		||||
 | 
			
		||||
// Sketch the keyway and center hole and extrude
 | 
			
		||||
keyWay = startSketchOn(body, face = END)
 | 
			
		||||
  |> startProfile(at = [holeRadius * cos(startAngle), holeRadius * sin(startAngle)])
 | 
			
		||||
  |> startProfile(at = [holeRadius * math::cos(startAngle), holeRadius * math::sin(startAngle)])
 | 
			
		||||
  |> xLine(length = keywayDepth)
 | 
			
		||||
  |> yLine(length = -keywayWidth)
 | 
			
		||||
  |> xLine(length = -keywayDepth)
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -19,7 +19,7 @@ pitchDiameter = module * nTeeth
 | 
			
		||||
pressureAngle = 20
 | 
			
		||||
addendum = module
 | 
			
		||||
deddendum = 1.25 * module
 | 
			
		||||
baseDiameter = pitchDiameter * cos(units::toRadians(pressureAngle))
 | 
			
		||||
baseDiameter = pitchDiameter * math::cos(pressureAngle)
 | 
			
		||||
tipDiameter = pitchDiameter + 2 * module
 | 
			
		||||
gearHeight = 3
 | 
			
		||||
 | 
			
		||||
@ -44,7 +44,7 @@ angles = map(
 | 
			
		||||
invas = map(
 | 
			
		||||
  angles,
 | 
			
		||||
  f = fn(a) {
 | 
			
		||||
    return tan(units::toRadians(a)) - units::toRadians(a)
 | 
			
		||||
    return math::tan(units::toRadians(a)) - units::toRadians(a)
 | 
			
		||||
  },
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -52,14 +52,14 @@ invas = map(
 | 
			
		||||
xs = map(
 | 
			
		||||
  [0..cmo],
 | 
			
		||||
  f = fn(i) {
 | 
			
		||||
    return rs[i] * cos(invas[i]: number(rad))
 | 
			
		||||
    return rs[i] * math::cos(invas[i]: number(rad))
 | 
			
		||||
  },
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
ys = map(
 | 
			
		||||
  [0..cmo],
 | 
			
		||||
  f = fn(i) {
 | 
			
		||||
    return rs[i] * sin(invas[i]: number(rad))
 | 
			
		||||
    return rs[i] * math::sin(invas[i]: number(rad))
 | 
			
		||||
  },
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -77,8 +77,8 @@ fn leftInvolute(i, sg) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn rightInvolute(i, sg) {
 | 
			
		||||
  x = rs[i] * cos(units::toRadians(-toothAngle + units::toDegrees(atan(ys[i] / xs[i]))))
 | 
			
		||||
  y = -rs[i] * sin(units::toRadians(-toothAngle + units::toDegrees(atan(ys[i] / xs[i]))))
 | 
			
		||||
  x = rs[i] * math::cos(-toothAngle + units::toDegrees(atan(ys[i] / xs[i])))
 | 
			
		||||
  y = -rs[i] * math::sin(-toothAngle + units::toDegrees(atan(ys[i] / xs[i])))
 | 
			
		||||
  return line(sg, endAbsolute = [x, y])
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -108,8 +108,8 @@ startAngle = asin(keywayWidth / 2 / holeRadius)
 | 
			
		||||
// Sketch the keyway and center hole and extrude
 | 
			
		||||
keyWay = startSketchOn(body, face = END)
 | 
			
		||||
  |> startProfile(at = [
 | 
			
		||||
       holeRadius * cos(startAngle),
 | 
			
		||||
       holeRadius * sin(startAngle)
 | 
			
		||||
       holeRadius * math::cos(startAngle),
 | 
			
		||||
       holeRadius * math::sin(startAngle)
 | 
			
		||||
     ])
 | 
			
		||||
  |> xLine(length = keywayDepth)
 | 
			
		||||
  |> yLine(length = -keywayWidth)
 | 
			
		||||
 | 
			
		||||
@ -135,26 +135,26 @@ flowchart LR
 | 
			
		||||
    97[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path28 [Path]
 | 
			
		||||
    28["Path<br>[1113, 1203, 11]"]
 | 
			
		||||
    86["Segment<br>[1211, 1280, 11]"]
 | 
			
		||||
    88["Segment<br>[1288, 1588, 11]"]
 | 
			
		||||
    90["Segment<br>[1596, 1898, 11]"]
 | 
			
		||||
    93["Segment<br>[1906, 2125, 11]"]
 | 
			
		||||
    96["Segment<br>[2133, 2140, 11]"]
 | 
			
		||||
    28["Path<br>[1113, 1215, 11]"]
 | 
			
		||||
    86["Segment<br>[1223, 1292, 11]"]
 | 
			
		||||
    88["Segment<br>[1300, 1624, 11]"]
 | 
			
		||||
    90["Segment<br>[1632, 1958, 11]"]
 | 
			
		||||
    93["Segment<br>[1966, 2197, 11]"]
 | 
			
		||||
    96["Segment<br>[2205, 2212, 11]"]
 | 
			
		||||
    102[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path29 [Path]
 | 
			
		||||
    29["Path<br>[1113, 1203, 11]"]
 | 
			
		||||
    87["Segment<br>[1211, 1280, 11]"]
 | 
			
		||||
    89["Segment<br>[1288, 1588, 11]"]
 | 
			
		||||
    91["Segment<br>[1596, 1898, 11]"]
 | 
			
		||||
    92["Segment<br>[1906, 2125, 11]"]
 | 
			
		||||
    95["Segment<br>[2133, 2140, 11]"]
 | 
			
		||||
    29["Path<br>[1113, 1215, 11]"]
 | 
			
		||||
    87["Segment<br>[1223, 1292, 11]"]
 | 
			
		||||
    89["Segment<br>[1300, 1624, 11]"]
 | 
			
		||||
    91["Segment<br>[1632, 1958, 11]"]
 | 
			
		||||
    92["Segment<br>[1966, 2197, 11]"]
 | 
			
		||||
    95["Segment<br>[2205, 2212, 11]"]
 | 
			
		||||
    103[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path30 [Path]
 | 
			
		||||
    30["Path<br>[1113, 1203, 11]"]
 | 
			
		||||
    94["Segment<br>[2133, 2140, 11]"]
 | 
			
		||||
    30["Path<br>[1113, 1215, 11]"]
 | 
			
		||||
    94["Segment<br>[2205, 2212, 11]"]
 | 
			
		||||
    118[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  1["Plane<br>[300, 317, 8]"]
 | 
			
		||||
@ -177,7 +177,7 @@ flowchart LR
 | 
			
		||||
  129["Sweep Extrusion<br>[333, 353, 10]"]
 | 
			
		||||
  130["Sweep Extrusion<br>[543, 564, 10]"]
 | 
			
		||||
  131["Sweep Revolve<br>[764, 846, 11]"]
 | 
			
		||||
  132["Sweep Loft<br>[2259, 2379, 11]"]
 | 
			
		||||
  132["Sweep Loft<br>[2331, 2451, 11]"]
 | 
			
		||||
  133[Wall]
 | 
			
		||||
  134[Wall]
 | 
			
		||||
  135[Wall]
 | 
			
		||||
@ -605,19 +605,19 @@ flowchart LR
 | 
			
		||||
  84 --- 147
 | 
			
		||||
  84 --- 233
 | 
			
		||||
  86 --- 159
 | 
			
		||||
  86 x--> 184
 | 
			
		||||
  86 x--> 185
 | 
			
		||||
  86 --- 203
 | 
			
		||||
  86 --- 249
 | 
			
		||||
  88 --- 158
 | 
			
		||||
  88 x--> 184
 | 
			
		||||
  88 x--> 185
 | 
			
		||||
  88 --- 204
 | 
			
		||||
  88 --- 248
 | 
			
		||||
  90 --- 156
 | 
			
		||||
  90 x--> 184
 | 
			
		||||
  90 x--> 185
 | 
			
		||||
  90 --- 201
 | 
			
		||||
  90 --- 246
 | 
			
		||||
  93 --- 157
 | 
			
		||||
  93 x--> 184
 | 
			
		||||
  93 x--> 185
 | 
			
		||||
  93 --- 202
 | 
			
		||||
  93 --- 247
 | 
			
		||||
  119 --- 165
 | 
			
		||||
@ -873,10 +873,10 @@ flowchart LR
 | 
			
		||||
  198 <--x 183
 | 
			
		||||
  199 <--x 183
 | 
			
		||||
  200 <--x 183
 | 
			
		||||
  201 <--x 185
 | 
			
		||||
  202 <--x 185
 | 
			
		||||
  203 <--x 185
 | 
			
		||||
  204 <--x 185
 | 
			
		||||
  201 <--x 184
 | 
			
		||||
  202 <--x 184
 | 
			
		||||
  203 <--x 184
 | 
			
		||||
  204 <--x 184
 | 
			
		||||
  205 <--x 186
 | 
			
		||||
  206 <--x 186
 | 
			
		||||
  207 <--x 186
 | 
			
		||||
 | 
			
		||||
@ -17,40 +17,40 @@ flowchart LR
 | 
			
		||||
    28[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path11 [Path]
 | 
			
		||||
    11["Path<br>[1484, 1609, 0]"]
 | 
			
		||||
    19["Segment<br>[1615, 1675, 0]"]
 | 
			
		||||
    20["Segment<br>[1681, 1712, 0]"]
 | 
			
		||||
    21["Segment<br>[1718, 1746, 0]"]
 | 
			
		||||
    22["Segment<br>[1752, 1759, 0]"]
 | 
			
		||||
    11["Path<br>[1484, 1612, 0]"]
 | 
			
		||||
    19["Segment<br>[1618, 1678, 0]"]
 | 
			
		||||
    20["Segment<br>[1684, 1715, 0]"]
 | 
			
		||||
    21["Segment<br>[1721, 1749, 0]"]
 | 
			
		||||
    22["Segment<br>[1755, 1762, 0]"]
 | 
			
		||||
    29[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path12 [Path]
 | 
			
		||||
    12["Path<br>[2093, 2235, 0]"]
 | 
			
		||||
    23["Segment<br>[2093, 2235, 0]"]
 | 
			
		||||
    12["Path<br>[2096, 2238, 0]"]
 | 
			
		||||
    23["Segment<br>[2096, 2238, 0]"]
 | 
			
		||||
    27[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path13 [Path]
 | 
			
		||||
    13["Path<br>[2629, 2682, 0]"]
 | 
			
		||||
    24["Segment<br>[2629, 2682, 0]"]
 | 
			
		||||
    13["Path<br>[2632, 2685, 0]"]
 | 
			
		||||
    24["Segment<br>[2632, 2685, 0]"]
 | 
			
		||||
    31[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path14 [Path]
 | 
			
		||||
    14["Path<br>[2706, 2780, 0]"]
 | 
			
		||||
    25["Segment<br>[2706, 2780, 0]"]
 | 
			
		||||
    14["Path<br>[2709, 2783, 0]"]
 | 
			
		||||
    25["Segment<br>[2709, 2783, 0]"]
 | 
			
		||||
    26[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  1["Plane<br>[610, 657, 0]"]
 | 
			
		||||
  2["Plane<br>[957, 974, 0]"]
 | 
			
		||||
  3["Plane<br>[1461, 1478, 0]"]
 | 
			
		||||
  4["Plane<br>[2070, 2087, 0]"]
 | 
			
		||||
  5["Plane<br>[2575, 2622, 0]"]
 | 
			
		||||
  4["Plane<br>[2073, 2090, 0]"]
 | 
			
		||||
  5["Plane<br>[2578, 2625, 0]"]
 | 
			
		||||
  6["StartSketchOnPlane<br>[596, 658, 0]"]
 | 
			
		||||
  7["StartSketchOnPlane<br>[2561, 2623, 0]"]
 | 
			
		||||
  7["StartSketchOnPlane<br>[2564, 2626, 0]"]
 | 
			
		||||
  33["Sweep Extrusion<br>[848, 900, 0]"]
 | 
			
		||||
  34["Sweep Revolve<br>[1196, 1226, 0]"]
 | 
			
		||||
  35["Sweep Revolve<br>[1801, 1831, 0]"]
 | 
			
		||||
  36["Sweep Revolve<br>[2278, 2329, 0]"]
 | 
			
		||||
  37["Sweep Extrusion<br>[2797, 2850, 0]"]
 | 
			
		||||
  35["Sweep Revolve<br>[1804, 1834, 0]"]
 | 
			
		||||
  36["Sweep Revolve<br>[2281, 2332, 0]"]
 | 
			
		||||
  37["Sweep Extrusion<br>[2800, 2853, 0]"]
 | 
			
		||||
  38[Wall]
 | 
			
		||||
  39[Wall]
 | 
			
		||||
  40[Wall]
 | 
			
		||||
 | 
			
		||||
@ -1855,13 +1855,13 @@ description: Result of parsing ball-bearing.kcl
 | 
			
		||||
                              {
 | 
			
		||||
                                "commentStart": 0,
 | 
			
		||||
                                "end": 0,
 | 
			
		||||
                                "raw": "60deg",
 | 
			
		||||
                                "raw": "60",
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Literal",
 | 
			
		||||
                                "type": "Literal",
 | 
			
		||||
                                "value": {
 | 
			
		||||
                                  "value": 60.0,
 | 
			
		||||
                                  "suffix": "Deg"
 | 
			
		||||
                                  "suffix": "None"
 | 
			
		||||
                                }
 | 
			
		||||
                              }
 | 
			
		||||
                            ],
 | 
			
		||||
@ -1876,7 +1876,15 @@ description: Result of parsing ball-bearing.kcl
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "path": [],
 | 
			
		||||
                              "path": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "math",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Name"
 | 
			
		||||
                            },
 | 
			
		||||
 | 
			
		||||
@ -379,7 +379,7 @@ description: Operations executed ball-bearing.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
 | 
			
		||||
@ -1,45 +1,45 @@
 | 
			
		||||
```mermaid
 | 
			
		||||
flowchart LR
 | 
			
		||||
  subgraph path7 [Path]
 | 
			
		||||
    7["Path<br>[644, 834, 0]"]
 | 
			
		||||
    13["Segment<br>[844, 928, 0]"]
 | 
			
		||||
    16["Segment<br>[938, 990, 0]"]
 | 
			
		||||
    17["Segment<br>[1000, 1047, 0]"]
 | 
			
		||||
    19["Segment<br>[1057, 1109, 0]"]
 | 
			
		||||
    21["Segment<br>[1119, 1166, 0]"]
 | 
			
		||||
    23["Segment<br>[1176, 1241, 0]"]
 | 
			
		||||
    27["Segment<br>[1251, 1259, 0]"]
 | 
			
		||||
    7["Path<br>[644, 858, 0]"]
 | 
			
		||||
    13["Segment<br>[868, 952, 0]"]
 | 
			
		||||
    16["Segment<br>[962, 1014, 0]"]
 | 
			
		||||
    17["Segment<br>[1024, 1071, 0]"]
 | 
			
		||||
    19["Segment<br>[1081, 1133, 0]"]
 | 
			
		||||
    21["Segment<br>[1143, 1190, 0]"]
 | 
			
		||||
    23["Segment<br>[1200, 1265, 0]"]
 | 
			
		||||
    27["Segment<br>[1275, 1283, 0]"]
 | 
			
		||||
    31[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path8 [Path]
 | 
			
		||||
    8["Path<br>[644, 834, 0]"]
 | 
			
		||||
    14["Segment<br>[844, 928, 0]"]
 | 
			
		||||
    15["Segment<br>[938, 990, 0]"]
 | 
			
		||||
    18["Segment<br>[1000, 1047, 0]"]
 | 
			
		||||
    20["Segment<br>[1057, 1109, 0]"]
 | 
			
		||||
    22["Segment<br>[1119, 1166, 0]"]
 | 
			
		||||
    24["Segment<br>[1176, 1241, 0]"]
 | 
			
		||||
    25["Segment<br>[1251, 1259, 0]"]
 | 
			
		||||
    8["Path<br>[644, 858, 0]"]
 | 
			
		||||
    14["Segment<br>[868, 952, 0]"]
 | 
			
		||||
    15["Segment<br>[962, 1014, 0]"]
 | 
			
		||||
    18["Segment<br>[1024, 1071, 0]"]
 | 
			
		||||
    20["Segment<br>[1081, 1133, 0]"]
 | 
			
		||||
    22["Segment<br>[1143, 1190, 0]"]
 | 
			
		||||
    24["Segment<br>[1200, 1265, 0]"]
 | 
			
		||||
    25["Segment<br>[1275, 1283, 0]"]
 | 
			
		||||
    34[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path9 [Path]
 | 
			
		||||
    9["Path<br>[644, 834, 0]"]
 | 
			
		||||
    26["Segment<br>[1251, 1259, 0]"]
 | 
			
		||||
    9["Path<br>[644, 858, 0]"]
 | 
			
		||||
    26["Segment<br>[1275, 1283, 0]"]
 | 
			
		||||
    35[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path10 [Path]
 | 
			
		||||
    10["Path<br>[1287, 1337, 0]"]
 | 
			
		||||
    30["Segment<br>[1287, 1337, 0]"]
 | 
			
		||||
    10["Path<br>[1311, 1361, 0]"]
 | 
			
		||||
    30["Segment<br>[1311, 1361, 0]"]
 | 
			
		||||
    32[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path11 [Path]
 | 
			
		||||
    11["Path<br>[1287, 1337, 0]"]
 | 
			
		||||
    28["Segment<br>[1287, 1337, 0]"]
 | 
			
		||||
    11["Path<br>[1311, 1361, 0]"]
 | 
			
		||||
    28["Segment<br>[1311, 1361, 0]"]
 | 
			
		||||
    33[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path12 [Path]
 | 
			
		||||
    12["Path<br>[1287, 1337, 0]"]
 | 
			
		||||
    29["Segment<br>[1287, 1337, 0]"]
 | 
			
		||||
    12["Path<br>[1311, 1361, 0]"]
 | 
			
		||||
    29["Segment<br>[1311, 1361, 0]"]
 | 
			
		||||
    36[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  1["Plane<br>[600, 633, 0]"]
 | 
			
		||||
@ -48,7 +48,7 @@ flowchart LR
 | 
			
		||||
  4["StartSketchOnPlane<br>[586, 634, 0]"]
 | 
			
		||||
  5["StartSketchOnPlane<br>[586, 634, 0]"]
 | 
			
		||||
  6["StartSketchOnPlane<br>[586, 634, 0]"]
 | 
			
		||||
  37["Sweep Loft<br>[1464, 1553, 0]"]
 | 
			
		||||
  37["Sweep Loft<br>[1488, 1577, 0]"]
 | 
			
		||||
  38[Wall]
 | 
			
		||||
  39[Wall]
 | 
			
		||||
  40[Wall]
 | 
			
		||||
 | 
			
		||||
@ -311,7 +311,15 @@ description: Result of parsing cycloidal-gear.kcl
 | 
			
		||||
                                                      "start": 0,
 | 
			
		||||
                                                      "type": "Identifier"
 | 
			
		||||
                                                    },
 | 
			
		||||
                                                    "path": [],
 | 
			
		||||
                                                    "path": [
 | 
			
		||||
                                                      {
 | 
			
		||||
                                                        "commentStart": 0,
 | 
			
		||||
                                                        "end": 0,
 | 
			
		||||
                                                        "name": "math",
 | 
			
		||||
                                                        "start": 0,
 | 
			
		||||
                                                        "type": "Identifier"
 | 
			
		||||
                                                      }
 | 
			
		||||
                                                    ],
 | 
			
		||||
                                                    "start": 0,
 | 
			
		||||
                                                    "type": "Name"
 | 
			
		||||
                                                  },
 | 
			
		||||
@ -384,7 +392,15 @@ description: Result of parsing cycloidal-gear.kcl
 | 
			
		||||
                                                      "start": 0,
 | 
			
		||||
                                                      "type": "Identifier"
 | 
			
		||||
                                                    },
 | 
			
		||||
                                                    "path": [],
 | 
			
		||||
                                                    "path": [
 | 
			
		||||
                                                      {
 | 
			
		||||
                                                        "commentStart": 0,
 | 
			
		||||
                                                        "end": 0,
 | 
			
		||||
                                                        "name": "math",
 | 
			
		||||
                                                        "start": 0,
 | 
			
		||||
                                                        "type": "Identifier"
 | 
			
		||||
                                                      }
 | 
			
		||||
                                                    ],
 | 
			
		||||
                                                    "start": 0,
 | 
			
		||||
                                                    "type": "Name"
 | 
			
		||||
                                                  },
 | 
			
		||||
@ -475,7 +491,15 @@ description: Result of parsing cycloidal-gear.kcl
 | 
			
		||||
                                                      "start": 0,
 | 
			
		||||
                                                      "type": "Identifier"
 | 
			
		||||
                                                    },
 | 
			
		||||
                                                    "path": [],
 | 
			
		||||
                                                    "path": [
 | 
			
		||||
                                                      {
 | 
			
		||||
                                                        "commentStart": 0,
 | 
			
		||||
                                                        "end": 0,
 | 
			
		||||
                                                        "name": "math",
 | 
			
		||||
                                                        "start": 0,
 | 
			
		||||
                                                        "type": "Identifier"
 | 
			
		||||
                                                      }
 | 
			
		||||
                                                    ],
 | 
			
		||||
                                                    "start": 0,
 | 
			
		||||
                                                    "type": "Name"
 | 
			
		||||
                                                  },
 | 
			
		||||
@ -548,7 +572,15 @@ description: Result of parsing cycloidal-gear.kcl
 | 
			
		||||
                                                      "start": 0,
 | 
			
		||||
                                                      "type": "Identifier"
 | 
			
		||||
                                                    },
 | 
			
		||||
                                                    "path": [],
 | 
			
		||||
                                                    "path": [
 | 
			
		||||
                                                      {
 | 
			
		||||
                                                        "commentStart": 0,
 | 
			
		||||
                                                        "end": 0,
 | 
			
		||||
                                                        "name": "math",
 | 
			
		||||
                                                        "start": 0,
 | 
			
		||||
                                                        "type": "Identifier"
 | 
			
		||||
                                                      }
 | 
			
		||||
                                                    ],
 | 
			
		||||
                                                    "start": 0,
 | 
			
		||||
                                                    "type": "Name"
 | 
			
		||||
                                                  },
 | 
			
		||||
 | 
			
		||||
@ -142,7 +142,7 @@ description: Operations executed cycloidal-gear.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -153,7 +153,7 @@ description: Operations executed cycloidal-gear.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -164,7 +164,7 @@ description: Operations executed cycloidal-gear.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -175,7 +175,7 @@ description: Operations executed cycloidal-gear.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -186,7 +186,7 @@ description: Operations executed cycloidal-gear.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -197,7 +197,7 @@ description: Operations executed cycloidal-gear.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -208,7 +208,7 @@ description: Operations executed cycloidal-gear.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -219,7 +219,7 @@ description: Operations executed cycloidal-gear.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -230,7 +230,7 @@ description: Operations executed cycloidal-gear.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -241,7 +241,7 @@ description: Operations executed cycloidal-gear.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -252,7 +252,7 @@ description: Operations executed cycloidal-gear.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -263,7 +263,7 @@ description: Operations executed cycloidal-gear.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
 | 
			
		||||
@ -608,7 +608,7 @@ flowchart LR
 | 
			
		||||
  83 --- 251
 | 
			
		||||
  83 --- 298
 | 
			
		||||
  90 --- 159
 | 
			
		||||
  90 x--> 192
 | 
			
		||||
  90 x--> 193
 | 
			
		||||
  90 --- 226
 | 
			
		||||
  90 --- 271
 | 
			
		||||
  104 --- 155
 | 
			
		||||
@ -906,7 +906,7 @@ flowchart LR
 | 
			
		||||
  219 <--x 190
 | 
			
		||||
  220 <--x 190
 | 
			
		||||
  221 <--x 190
 | 
			
		||||
  226 <--x 193
 | 
			
		||||
  226 <--x 192
 | 
			
		||||
  235 <--x 195
 | 
			
		||||
  236 <--x 195
 | 
			
		||||
  237 <--x 195
 | 
			
		||||
 | 
			
		||||
@ -115,7 +115,7 @@ description: Artifact commands exhaust-manifold.kcl
 | 
			
		||||
        "z": 0.0
 | 
			
		||||
      },
 | 
			
		||||
      "x_axis": {
 | 
			
		||||
        "x": -0.42577929156507266,
 | 
			
		||||
        "x": -0.4257792915650726,
 | 
			
		||||
        "y": 0.9048270524660196,
 | 
			
		||||
        "z": 0.0
 | 
			
		||||
      },
 | 
			
		||||
@ -188,7 +188,7 @@ description: Artifact commands exhaust-manifold.kcl
 | 
			
		||||
      "adjust_camera": false,
 | 
			
		||||
      "planar_normal": {
 | 
			
		||||
        "x": 0.9048270524660196,
 | 
			
		||||
        "y": 0.42577929156507266,
 | 
			
		||||
        "y": 0.4257792915650726,
 | 
			
		||||
        "z": -0.0
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -1,152 +1,152 @@
 | 
			
		||||
```mermaid
 | 
			
		||||
flowchart LR
 | 
			
		||||
  subgraph path10 [Path]
 | 
			
		||||
    10["Path<br>[748, 783, 0]"]
 | 
			
		||||
    33["Segment<br>[791, 817, 0]"]
 | 
			
		||||
    36["Segment<br>[825, 886, 0]"]
 | 
			
		||||
    41["Segment<br>[894, 953, 0]"]
 | 
			
		||||
    45["Segment<br>[961, 1021, 0]"]
 | 
			
		||||
    48["Segment<br>[1029, 1088, 0]"]
 | 
			
		||||
    10["Path<br>[771, 806, 0]"]
 | 
			
		||||
    33["Segment<br>[814, 840, 0]"]
 | 
			
		||||
    36["Segment<br>[848, 909, 0]"]
 | 
			
		||||
    41["Segment<br>[917, 976, 0]"]
 | 
			
		||||
    45["Segment<br>[984, 1044, 0]"]
 | 
			
		||||
    48["Segment<br>[1052, 1111, 0]"]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path11 [Path]
 | 
			
		||||
    11["Path<br>[748, 783, 0]"]
 | 
			
		||||
    31["Segment<br>[791, 817, 0]"]
 | 
			
		||||
    35["Segment<br>[825, 886, 0]"]
 | 
			
		||||
    39["Segment<br>[894, 953, 0]"]
 | 
			
		||||
    44["Segment<br>[961, 1021, 0]"]
 | 
			
		||||
    47["Segment<br>[1029, 1088, 0]"]
 | 
			
		||||
    11["Path<br>[771, 806, 0]"]
 | 
			
		||||
    31["Segment<br>[814, 840, 0]"]
 | 
			
		||||
    35["Segment<br>[848, 909, 0]"]
 | 
			
		||||
    39["Segment<br>[917, 976, 0]"]
 | 
			
		||||
    44["Segment<br>[984, 1044, 0]"]
 | 
			
		||||
    47["Segment<br>[1052, 1111, 0]"]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path12 [Path]
 | 
			
		||||
    12["Path<br>[748, 783, 0]"]
 | 
			
		||||
    32["Segment<br>[791, 817, 0]"]
 | 
			
		||||
    38["Segment<br>[825, 886, 0]"]
 | 
			
		||||
    42["Segment<br>[894, 953, 0]"]
 | 
			
		||||
    43["Segment<br>[961, 1021, 0]"]
 | 
			
		||||
    49["Segment<br>[1029, 1088, 0]"]
 | 
			
		||||
    12["Path<br>[771, 806, 0]"]
 | 
			
		||||
    32["Segment<br>[814, 840, 0]"]
 | 
			
		||||
    38["Segment<br>[848, 909, 0]"]
 | 
			
		||||
    42["Segment<br>[917, 976, 0]"]
 | 
			
		||||
    43["Segment<br>[984, 1044, 0]"]
 | 
			
		||||
    49["Segment<br>[1052, 1111, 0]"]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path13 [Path]
 | 
			
		||||
    13["Path<br>[748, 783, 0]"]
 | 
			
		||||
    34["Segment<br>[791, 817, 0]"]
 | 
			
		||||
    37["Segment<br>[825, 886, 0]"]
 | 
			
		||||
    40["Segment<br>[894, 953, 0]"]
 | 
			
		||||
    46["Segment<br>[961, 1021, 0]"]
 | 
			
		||||
    50["Segment<br>[1029, 1088, 0]"]
 | 
			
		||||
    13["Path<br>[771, 806, 0]"]
 | 
			
		||||
    34["Segment<br>[814, 840, 0]"]
 | 
			
		||||
    37["Segment<br>[848, 909, 0]"]
 | 
			
		||||
    40["Segment<br>[917, 976, 0]"]
 | 
			
		||||
    46["Segment<br>[984, 1044, 0]"]
 | 
			
		||||
    50["Segment<br>[1052, 1111, 0]"]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path14 [Path]
 | 
			
		||||
    14["Path<br>[1190, 1252, 0]"]
 | 
			
		||||
    53["Segment<br>[1190, 1252, 0]"]
 | 
			
		||||
    14["Path<br>[1213, 1275, 0]"]
 | 
			
		||||
    53["Segment<br>[1213, 1275, 0]"]
 | 
			
		||||
    85[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path15 [Path]
 | 
			
		||||
    15["Path<br>[1190, 1252, 0]"]
 | 
			
		||||
    52["Segment<br>[1190, 1252, 0]"]
 | 
			
		||||
    15["Path<br>[1213, 1275, 0]"]
 | 
			
		||||
    52["Segment<br>[1213, 1275, 0]"]
 | 
			
		||||
    89[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path16 [Path]
 | 
			
		||||
    16["Path<br>[1190, 1252, 0]"]
 | 
			
		||||
    54["Segment<br>[1190, 1252, 0]"]
 | 
			
		||||
    16["Path<br>[1213, 1275, 0]"]
 | 
			
		||||
    54["Segment<br>[1213, 1275, 0]"]
 | 
			
		||||
    95[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path17 [Path]
 | 
			
		||||
    17["Path<br>[1190, 1252, 0]"]
 | 
			
		||||
    51["Segment<br>[1190, 1252, 0]"]
 | 
			
		||||
    17["Path<br>[1213, 1275, 0]"]
 | 
			
		||||
    51["Segment<br>[1213, 1275, 0]"]
 | 
			
		||||
    98[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path18 [Path]
 | 
			
		||||
    18["Path<br>[1278, 1356, 0]"]
 | 
			
		||||
    58["Segment<br>[1278, 1356, 0]"]
 | 
			
		||||
    18["Path<br>[1301, 1379, 0]"]
 | 
			
		||||
    58["Segment<br>[1301, 1379, 0]"]
 | 
			
		||||
    87[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path19 [Path]
 | 
			
		||||
    19["Path<br>[1278, 1356, 0]"]
 | 
			
		||||
    56["Segment<br>[1278, 1356, 0]"]
 | 
			
		||||
    19["Path<br>[1301, 1379, 0]"]
 | 
			
		||||
    56["Segment<br>[1301, 1379, 0]"]
 | 
			
		||||
    88[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path20 [Path]
 | 
			
		||||
    20["Path<br>[1278, 1356, 0]"]
 | 
			
		||||
    57["Segment<br>[1278, 1356, 0]"]
 | 
			
		||||
    20["Path<br>[1301, 1379, 0]"]
 | 
			
		||||
    57["Segment<br>[1301, 1379, 0]"]
 | 
			
		||||
    92[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path21 [Path]
 | 
			
		||||
    21["Path<br>[1278, 1356, 0]"]
 | 
			
		||||
    55["Segment<br>[1278, 1356, 0]"]
 | 
			
		||||
    21["Path<br>[1301, 1379, 0]"]
 | 
			
		||||
    55["Segment<br>[1301, 1379, 0]"]
 | 
			
		||||
    96[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path22 [Path]
 | 
			
		||||
    22["Path<br>[1680, 1715, 0]"]
 | 
			
		||||
    59["Segment<br>[1721, 1755, 0]"]
 | 
			
		||||
    60["Segment<br>[1761, 1800, 0]"]
 | 
			
		||||
    61["Segment<br>[1806, 1844, 0]"]
 | 
			
		||||
    62["Segment<br>[1850, 1889, 0]"]
 | 
			
		||||
    63["Segment<br>[1895, 1929, 0]"]
 | 
			
		||||
    64["Segment<br>[1935, 1978, 0]"]
 | 
			
		||||
    65["Segment<br>[1984, 2017, 0]"]
 | 
			
		||||
    66["Segment<br>[2023, 2062, 0]"]
 | 
			
		||||
    67["Segment<br>[2068, 2107, 0]"]
 | 
			
		||||
    68["Segment<br>[2113, 2152, 0]"]
 | 
			
		||||
    69["Segment<br>[2158, 2201, 0]"]
 | 
			
		||||
    70["Segment<br>[2207, 2258, 0]"]
 | 
			
		||||
    71["Segment<br>[2264, 2308, 0]"]
 | 
			
		||||
    72["Segment<br>[2314, 2353, 0]"]
 | 
			
		||||
    73["Segment<br>[2359, 2397, 0]"]
 | 
			
		||||
    74["Segment<br>[2403, 2468, 0]"]
 | 
			
		||||
    75["Segment<br>[2474, 2481, 0]"]
 | 
			
		||||
    22["Path<br>[1703, 1738, 0]"]
 | 
			
		||||
    59["Segment<br>[1744, 1778, 0]"]
 | 
			
		||||
    60["Segment<br>[1784, 1823, 0]"]
 | 
			
		||||
    61["Segment<br>[1829, 1867, 0]"]
 | 
			
		||||
    62["Segment<br>[1873, 1912, 0]"]
 | 
			
		||||
    63["Segment<br>[1918, 1952, 0]"]
 | 
			
		||||
    64["Segment<br>[1958, 2001, 0]"]
 | 
			
		||||
    65["Segment<br>[2007, 2040, 0]"]
 | 
			
		||||
    66["Segment<br>[2046, 2085, 0]"]
 | 
			
		||||
    67["Segment<br>[2091, 2130, 0]"]
 | 
			
		||||
    68["Segment<br>[2136, 2175, 0]"]
 | 
			
		||||
    69["Segment<br>[2181, 2224, 0]"]
 | 
			
		||||
    70["Segment<br>[2230, 2281, 0]"]
 | 
			
		||||
    71["Segment<br>[2287, 2331, 0]"]
 | 
			
		||||
    72["Segment<br>[2337, 2376, 0]"]
 | 
			
		||||
    73["Segment<br>[2382, 2420, 0]"]
 | 
			
		||||
    74["Segment<br>[2426, 2491, 0]"]
 | 
			
		||||
    75["Segment<br>[2497, 2504, 0]"]
 | 
			
		||||
    84[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path23 [Path]
 | 
			
		||||
    23["Path<br>[2566, 2639, 0]"]
 | 
			
		||||
    76["Segment<br>[2566, 2639, 0]"]
 | 
			
		||||
    23["Path<br>[2589, 2662, 0]"]
 | 
			
		||||
    76["Segment<br>[2589, 2662, 0]"]
 | 
			
		||||
    91[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path24 [Path]
 | 
			
		||||
    24["Path<br>[2664, 2737, 0]"]
 | 
			
		||||
    77["Segment<br>[2664, 2737, 0]"]
 | 
			
		||||
    24["Path<br>[2687, 2760, 0]"]
 | 
			
		||||
    77["Segment<br>[2687, 2760, 0]"]
 | 
			
		||||
    86[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path25 [Path]
 | 
			
		||||
    25["Path<br>[2762, 2835, 0]"]
 | 
			
		||||
    78["Segment<br>[2762, 2835, 0]"]
 | 
			
		||||
    25["Path<br>[2785, 2858, 0]"]
 | 
			
		||||
    78["Segment<br>[2785, 2858, 0]"]
 | 
			
		||||
    94[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path26 [Path]
 | 
			
		||||
    26["Path<br>[2860, 2933, 0]"]
 | 
			
		||||
    79["Segment<br>[2860, 2933, 0]"]
 | 
			
		||||
    26["Path<br>[2883, 2956, 0]"]
 | 
			
		||||
    79["Segment<br>[2883, 2956, 0]"]
 | 
			
		||||
    99[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path27 [Path]
 | 
			
		||||
    27["Path<br>[2997, 3136, 0]"]
 | 
			
		||||
    80["Segment<br>[2997, 3136, 0]"]
 | 
			
		||||
    27["Path<br>[3020, 3159, 0]"]
 | 
			
		||||
    80["Segment<br>[3020, 3159, 0]"]
 | 
			
		||||
    100[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path28 [Path]
 | 
			
		||||
    28["Path<br>[3161, 3298, 0]"]
 | 
			
		||||
    81["Segment<br>[3161, 3298, 0]"]
 | 
			
		||||
    28["Path<br>[3184, 3321, 0]"]
 | 
			
		||||
    81["Segment<br>[3184, 3321, 0]"]
 | 
			
		||||
    97[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path29 [Path]
 | 
			
		||||
    29["Path<br>[3323, 3470, 0]"]
 | 
			
		||||
    82["Segment<br>[3323, 3470, 0]"]
 | 
			
		||||
    29["Path<br>[3346, 3493, 0]"]
 | 
			
		||||
    82["Segment<br>[3346, 3493, 0]"]
 | 
			
		||||
    93[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path30 [Path]
 | 
			
		||||
    30["Path<br>[3495, 3641, 0]"]
 | 
			
		||||
    83["Segment<br>[3495, 3641, 0]"]
 | 
			
		||||
    30["Path<br>[3518, 3664, 0]"]
 | 
			
		||||
    83["Segment<br>[3518, 3664, 0]"]
 | 
			
		||||
    90[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  1["Plane<br>[715, 740, 0]"]
 | 
			
		||||
  2["Plane<br>[715, 740, 0]"]
 | 
			
		||||
  3["Plane<br>[715, 740, 0]"]
 | 
			
		||||
  4["Plane<br>[715, 740, 0]"]
 | 
			
		||||
  5["Plane<br>[1165, 1182, 0]"]
 | 
			
		||||
  6["Plane<br>[1165, 1182, 0]"]
 | 
			
		||||
  7["Plane<br>[1165, 1182, 0]"]
 | 
			
		||||
  8["Plane<br>[1165, 1182, 0]"]
 | 
			
		||||
  9["Plane<br>[1657, 1674, 0]"]
 | 
			
		||||
  101["Sweep Sweep<br>[1365, 1388, 0]"]
 | 
			
		||||
  102["Sweep Sweep<br>[1365, 1388, 0]"]
 | 
			
		||||
  103["Sweep Sweep<br>[1365, 1388, 0]"]
 | 
			
		||||
  104["Sweep Sweep<br>[1365, 1388, 0]"]
 | 
			
		||||
  105["Sweep Extrusion<br>[3694, 3723, 0]"]
 | 
			
		||||
  1["Plane<br>[738, 763, 0]"]
 | 
			
		||||
  2["Plane<br>[738, 763, 0]"]
 | 
			
		||||
  3["Plane<br>[738, 763, 0]"]
 | 
			
		||||
  4["Plane<br>[738, 763, 0]"]
 | 
			
		||||
  5["Plane<br>[1188, 1205, 0]"]
 | 
			
		||||
  6["Plane<br>[1188, 1205, 0]"]
 | 
			
		||||
  7["Plane<br>[1188, 1205, 0]"]
 | 
			
		||||
  8["Plane<br>[1188, 1205, 0]"]
 | 
			
		||||
  9["Plane<br>[1680, 1697, 0]"]
 | 
			
		||||
  101["Sweep Sweep<br>[1388, 1411, 0]"]
 | 
			
		||||
  102["Sweep Sweep<br>[1388, 1411, 0]"]
 | 
			
		||||
  103["Sweep Sweep<br>[1388, 1411, 0]"]
 | 
			
		||||
  104["Sweep Sweep<br>[1388, 1411, 0]"]
 | 
			
		||||
  105["Sweep Extrusion<br>[3717, 3746, 0]"]
 | 
			
		||||
  106[Wall]
 | 
			
		||||
  107[Wall]
 | 
			
		||||
  108[Wall]
 | 
			
		||||
@ -217,10 +217,10 @@ flowchart LR
 | 
			
		||||
  173["SweepEdge Adjacent"]
 | 
			
		||||
  174["SweepEdge Adjacent"]
 | 
			
		||||
  175["SweepEdge Adjacent"]
 | 
			
		||||
  176["EdgeCut Fillet<br>[3729, 3863, 0]"]
 | 
			
		||||
  177["EdgeCut Fillet<br>[3729, 3863, 0]"]
 | 
			
		||||
  178["EdgeCut Fillet<br>[3869, 4003, 0]"]
 | 
			
		||||
  179["EdgeCut Fillet<br>[3869, 4003, 0]"]
 | 
			
		||||
  176["EdgeCut Fillet<br>[3752, 3886, 0]"]
 | 
			
		||||
  177["EdgeCut Fillet<br>[3752, 3886, 0]"]
 | 
			
		||||
  178["EdgeCut Fillet<br>[3892, 4026, 0]"]
 | 
			
		||||
  179["EdgeCut Fillet<br>[3892, 4026, 0]"]
 | 
			
		||||
  1 --- 11
 | 
			
		||||
  2 --- 10
 | 
			
		||||
  3 --- 13
 | 
			
		||||
 | 
			
		||||
@ -346,7 +346,15 @@ description: Result of parsing exhaust-manifold.kcl
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Identifier"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "path": [],
 | 
			
		||||
                                  "path": [
 | 
			
		||||
                                    {
 | 
			
		||||
                                      "commentStart": 0,
 | 
			
		||||
                                      "end": 0,
 | 
			
		||||
                                      "name": "math",
 | 
			
		||||
                                      "start": 0,
 | 
			
		||||
                                      "type": "Identifier"
 | 
			
		||||
                                    }
 | 
			
		||||
                                  ],
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Name"
 | 
			
		||||
                                },
 | 
			
		||||
@ -394,7 +402,15 @@ description: Result of parsing exhaust-manifold.kcl
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Identifier"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "path": [],
 | 
			
		||||
                                  "path": [
 | 
			
		||||
                                    {
 | 
			
		||||
                                      "commentStart": 0,
 | 
			
		||||
                                      "end": 0,
 | 
			
		||||
                                      "name": "math",
 | 
			
		||||
                                      "start": 0,
 | 
			
		||||
                                      "type": "Identifier"
 | 
			
		||||
                                    }
 | 
			
		||||
                                  ],
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Name"
 | 
			
		||||
                                },
 | 
			
		||||
 | 
			
		||||
@ -7,7 +7,7 @@ description: Operations executed exhaust-manifold.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -18,7 +18,7 @@ description: Operations executed exhaust-manifold.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -29,7 +29,7 @@ description: Operations executed exhaust-manifold.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -40,7 +40,7 @@ description: Operations executed exhaust-manifold.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -51,7 +51,7 @@ description: Operations executed exhaust-manifold.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -62,7 +62,7 @@ description: Operations executed exhaust-manifold.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -73,7 +73,7 @@ description: Operations executed exhaust-manifold.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -84,7 +84,7 @@ description: Operations executed exhaust-manifold.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -692,7 +692,7 @@ description: Operations executed exhaust-manifold.kcl
 | 
			
		||||
              "value": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Number",
 | 
			
		||||
                  "value": -0.42577929156507266,
 | 
			
		||||
                  "value": -0.4257792915650726,
 | 
			
		||||
                  "ty": {
 | 
			
		||||
                    "type": "Known",
 | 
			
		||||
                    "type": "Count"
 | 
			
		||||
 | 
			
		||||
@ -28,9 +28,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 1748,
 | 
			
		||||
            "end": 1754,
 | 
			
		||||
            "start": 1748,
 | 
			
		||||
            "commentStart": 1771,
 | 
			
		||||
            "end": 1777,
 | 
			
		||||
            "start": 1771,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "seg01"
 | 
			
		||||
          },
 | 
			
		||||
@ -62,9 +62,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 1922,
 | 
			
		||||
            "end": 1928,
 | 
			
		||||
            "start": 1922,
 | 
			
		||||
            "commentStart": 1945,
 | 
			
		||||
            "end": 1951,
 | 
			
		||||
            "start": 1945,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "seg03"
 | 
			
		||||
          },
 | 
			
		||||
@ -75,9 +75,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 1971,
 | 
			
		||||
            "end": 1977,
 | 
			
		||||
            "start": 1971,
 | 
			
		||||
            "commentStart": 1994,
 | 
			
		||||
            "end": 2000,
 | 
			
		||||
            "start": 1994,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "seg04"
 | 
			
		||||
          },
 | 
			
		||||
@ -88,9 +88,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 2010,
 | 
			
		||||
            "end": 2016,
 | 
			
		||||
            "start": 2010,
 | 
			
		||||
            "commentStart": 2033,
 | 
			
		||||
            "end": 2039,
 | 
			
		||||
            "start": 2033,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "seg05"
 | 
			
		||||
          },
 | 
			
		||||
@ -122,9 +122,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 2194,
 | 
			
		||||
            "end": 2200,
 | 
			
		||||
            "start": 2194,
 | 
			
		||||
            "commentStart": 2217,
 | 
			
		||||
            "end": 2223,
 | 
			
		||||
            "start": 2217,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "seg07"
 | 
			
		||||
          },
 | 
			
		||||
@ -135,9 +135,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 2251,
 | 
			
		||||
            "end": 2257,
 | 
			
		||||
            "start": 2251,
 | 
			
		||||
            "commentStart": 2274,
 | 
			
		||||
            "end": 2280,
 | 
			
		||||
            "start": 2274,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "seg08"
 | 
			
		||||
          },
 | 
			
		||||
@ -148,9 +148,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 2301,
 | 
			
		||||
            "end": 2307,
 | 
			
		||||
            "start": 2301,
 | 
			
		||||
            "commentStart": 2324,
 | 
			
		||||
            "end": 2330,
 | 
			
		||||
            "start": 2324,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "seg09"
 | 
			
		||||
          },
 | 
			
		||||
@ -192,9 +192,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
 | 
			
		||||
              -1.25
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 1748,
 | 
			
		||||
              "end": 1754,
 | 
			
		||||
              "start": 1748,
 | 
			
		||||
              "commentStart": 1771,
 | 
			
		||||
              "end": 1777,
 | 
			
		||||
              "start": 1771,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "seg01"
 | 
			
		||||
            },
 | 
			
		||||
@ -289,9 +289,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
 | 
			
		||||
              -1.25
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 1922,
 | 
			
		||||
              "end": 1928,
 | 
			
		||||
              "start": 1922,
 | 
			
		||||
              "commentStart": 1945,
 | 
			
		||||
              "end": 1951,
 | 
			
		||||
              "start": 1945,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "seg03"
 | 
			
		||||
            },
 | 
			
		||||
@ -314,9 +314,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
 | 
			
		||||
              -1.25
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 1971,
 | 
			
		||||
              "end": 1977,
 | 
			
		||||
              "start": 1971,
 | 
			
		||||
              "commentStart": 1994,
 | 
			
		||||
              "end": 2000,
 | 
			
		||||
              "start": 1994,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "seg04"
 | 
			
		||||
            },
 | 
			
		||||
@ -339,9 +339,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
 | 
			
		||||
              1.35
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 2010,
 | 
			
		||||
              "end": 2016,
 | 
			
		||||
              "start": 2010,
 | 
			
		||||
              "commentStart": 2033,
 | 
			
		||||
              "end": 2039,
 | 
			
		||||
              "start": 2033,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "seg05"
 | 
			
		||||
            },
 | 
			
		||||
@ -436,9 +436,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
 | 
			
		||||
              1.35
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 2194,
 | 
			
		||||
              "end": 2200,
 | 
			
		||||
              "start": 2194,
 | 
			
		||||
              "commentStart": 2217,
 | 
			
		||||
              "end": 2223,
 | 
			
		||||
              "start": 2217,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "seg07"
 | 
			
		||||
            },
 | 
			
		||||
@ -461,9 +461,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
 | 
			
		||||
              1.35
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 2251,
 | 
			
		||||
              "end": 2257,
 | 
			
		||||
              "start": 2251,
 | 
			
		||||
              "commentStart": 2274,
 | 
			
		||||
              "end": 2280,
 | 
			
		||||
              "start": 2274,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "seg08"
 | 
			
		||||
            },
 | 
			
		||||
@ -486,9 +486,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
 | 
			
		||||
              -1.25
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 2301,
 | 
			
		||||
              "end": 2307,
 | 
			
		||||
              "start": 2301,
 | 
			
		||||
              "commentStart": 2324,
 | 
			
		||||
              "end": 2330,
 | 
			
		||||
              "start": 2324,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "seg09"
 | 
			
		||||
            },
 | 
			
		||||
 | 
			
		||||
@ -1,83 +1,83 @@
 | 
			
		||||
```mermaid
 | 
			
		||||
flowchart LR
 | 
			
		||||
  subgraph path6 [Path]
 | 
			
		||||
    6["Path<br>[1041, 1085, 0]"]
 | 
			
		||||
    15["Segment<br>[1093, 1133, 0]"]
 | 
			
		||||
    17["Segment<br>[1141, 1187, 0]"]
 | 
			
		||||
    23["Segment<br>[1195, 1236, 0]"]
 | 
			
		||||
    25["Segment<br>[1244, 1309, 0]"]
 | 
			
		||||
    29["Segment<br>[1317, 1324, 0]"]
 | 
			
		||||
    6["Path<br>[1017, 1061, 0]"]
 | 
			
		||||
    15["Segment<br>[1069, 1109, 0]"]
 | 
			
		||||
    17["Segment<br>[1117, 1163, 0]"]
 | 
			
		||||
    23["Segment<br>[1171, 1212, 0]"]
 | 
			
		||||
    25["Segment<br>[1220, 1285, 0]"]
 | 
			
		||||
    29["Segment<br>[1293, 1300, 0]"]
 | 
			
		||||
    55[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path7 [Path]
 | 
			
		||||
    7["Path<br>[1041, 1085, 0]"]
 | 
			
		||||
    16["Segment<br>[1093, 1133, 0]"]
 | 
			
		||||
    19["Segment<br>[1141, 1187, 0]"]
 | 
			
		||||
    21["Segment<br>[1195, 1236, 0]"]
 | 
			
		||||
    28["Segment<br>[1244, 1309, 0]"]
 | 
			
		||||
    32["Segment<br>[1317, 1324, 0]"]
 | 
			
		||||
    7["Path<br>[1017, 1061, 0]"]
 | 
			
		||||
    16["Segment<br>[1069, 1109, 0]"]
 | 
			
		||||
    19["Segment<br>[1117, 1163, 0]"]
 | 
			
		||||
    21["Segment<br>[1171, 1212, 0]"]
 | 
			
		||||
    28["Segment<br>[1220, 1285, 0]"]
 | 
			
		||||
    32["Segment<br>[1293, 1300, 0]"]
 | 
			
		||||
    56[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path8 [Path]
 | 
			
		||||
    8["Path<br>[1041, 1085, 0]"]
 | 
			
		||||
    13["Segment<br>[1093, 1133, 0]"]
 | 
			
		||||
    20["Segment<br>[1141, 1187, 0]"]
 | 
			
		||||
    22["Segment<br>[1195, 1236, 0]"]
 | 
			
		||||
    26["Segment<br>[1244, 1309, 0]"]
 | 
			
		||||
    31["Segment<br>[1317, 1324, 0]"]
 | 
			
		||||
    8["Path<br>[1017, 1061, 0]"]
 | 
			
		||||
    13["Segment<br>[1069, 1109, 0]"]
 | 
			
		||||
    20["Segment<br>[1117, 1163, 0]"]
 | 
			
		||||
    22["Segment<br>[1171, 1212, 0]"]
 | 
			
		||||
    26["Segment<br>[1220, 1285, 0]"]
 | 
			
		||||
    31["Segment<br>[1293, 1300, 0]"]
 | 
			
		||||
    59[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path9 [Path]
 | 
			
		||||
    9["Path<br>[1041, 1085, 0]"]
 | 
			
		||||
    14["Segment<br>[1093, 1133, 0]"]
 | 
			
		||||
    18["Segment<br>[1141, 1187, 0]"]
 | 
			
		||||
    24["Segment<br>[1195, 1236, 0]"]
 | 
			
		||||
    27["Segment<br>[1244, 1309, 0]"]
 | 
			
		||||
    30["Segment<br>[1317, 1324, 0]"]
 | 
			
		||||
    9["Path<br>[1017, 1061, 0]"]
 | 
			
		||||
    14["Segment<br>[1069, 1109, 0]"]
 | 
			
		||||
    18["Segment<br>[1117, 1163, 0]"]
 | 
			
		||||
    24["Segment<br>[1171, 1212, 0]"]
 | 
			
		||||
    27["Segment<br>[1220, 1285, 0]"]
 | 
			
		||||
    30["Segment<br>[1293, 1300, 0]"]
 | 
			
		||||
    60[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path10 [Path]
 | 
			
		||||
    10["Path<br>[1488, 1545, 0]"]
 | 
			
		||||
    33["Segment<br>[1551, 1583, 0]"]
 | 
			
		||||
    34["Segment<br>[1589, 1626, 0]"]
 | 
			
		||||
    35["Segment<br>[1632, 1665, 0]"]
 | 
			
		||||
    36["Segment<br>[1671, 1738, 0]"]
 | 
			
		||||
    37["Segment<br>[1744, 1751, 0]"]
 | 
			
		||||
    10["Path<br>[1464, 1521, 0]"]
 | 
			
		||||
    33["Segment<br>[1527, 1559, 0]"]
 | 
			
		||||
    34["Segment<br>[1565, 1602, 0]"]
 | 
			
		||||
    35["Segment<br>[1608, 1641, 0]"]
 | 
			
		||||
    36["Segment<br>[1647, 1714, 0]"]
 | 
			
		||||
    37["Segment<br>[1720, 1727, 0]"]
 | 
			
		||||
    57[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path11 [Path]
 | 
			
		||||
    11["Path<br>[2784, 2840, 0]"]
 | 
			
		||||
    38["Segment<br>[2846, 2905, 0]"]
 | 
			
		||||
    39["Segment<br>[2911, 2946, 0]"]
 | 
			
		||||
    40["Segment<br>[2952, 2985, 0]"]
 | 
			
		||||
    41["Segment<br>[2991, 3050, 0]"]
 | 
			
		||||
    42["Segment<br>[3056, 3092, 0]"]
 | 
			
		||||
    43["Segment<br>[3098, 3122, 0]"]
 | 
			
		||||
    44["Segment<br>[3128, 3135, 0]"]
 | 
			
		||||
    11["Path<br>[2760, 2816, 0]"]
 | 
			
		||||
    38["Segment<br>[2822, 2881, 0]"]
 | 
			
		||||
    39["Segment<br>[2887, 2922, 0]"]
 | 
			
		||||
    40["Segment<br>[2928, 2961, 0]"]
 | 
			
		||||
    41["Segment<br>[2967, 3026, 0]"]
 | 
			
		||||
    42["Segment<br>[3032, 3068, 0]"]
 | 
			
		||||
    43["Segment<br>[3074, 3098, 0]"]
 | 
			
		||||
    44["Segment<br>[3104, 3111, 0]"]
 | 
			
		||||
    58[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path12 [Path]
 | 
			
		||||
    12["Path<br>[3730, 3780, 0]"]
 | 
			
		||||
    45["Segment<br>[3786, 3836, 0]"]
 | 
			
		||||
    46["Segment<br>[3842, 3908, 0]"]
 | 
			
		||||
    47["Segment<br>[3914, 3965, 0]"]
 | 
			
		||||
    48["Segment<br>[3971, 4036, 0]"]
 | 
			
		||||
    49["Segment<br>[4042, 4095, 0]"]
 | 
			
		||||
    50["Segment<br>[4101, 4168, 0]"]
 | 
			
		||||
    51["Segment<br>[4174, 4248, 0]"]
 | 
			
		||||
    52["Segment<br>[4254, 4322, 0]"]
 | 
			
		||||
    53["Segment<br>[4328, 4335, 0]"]
 | 
			
		||||
    12["Path<br>[3706, 3756, 0]"]
 | 
			
		||||
    45["Segment<br>[3762, 3812, 0]"]
 | 
			
		||||
    46["Segment<br>[3818, 3884, 0]"]
 | 
			
		||||
    47["Segment<br>[3890, 3941, 0]"]
 | 
			
		||||
    48["Segment<br>[3947, 4012, 0]"]
 | 
			
		||||
    49["Segment<br>[4018, 4071, 0]"]
 | 
			
		||||
    50["Segment<br>[4077, 4144, 0]"]
 | 
			
		||||
    51["Segment<br>[4150, 4224, 0]"]
 | 
			
		||||
    52["Segment<br>[4230, 4298, 0]"]
 | 
			
		||||
    53["Segment<br>[4304, 4311, 0]"]
 | 
			
		||||
    54[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  1["Plane<br>[1417, 1434, 0]"]
 | 
			
		||||
  2["Plane<br>[2681, 2723, 0]"]
 | 
			
		||||
  3["Plane<br>[3656, 3682, 0]"]
 | 
			
		||||
  4["StartSketchOnPlane<br>[2667, 2724, 0]"]
 | 
			
		||||
  5["StartSketchOnFace<br>[4492, 4531, 0]"]
 | 
			
		||||
  61["Sweep Extrusion<br>[2356, 2406, 0]"]
 | 
			
		||||
  62["Sweep Extrusion<br>[3169, 3213, 0]"]
 | 
			
		||||
  63["Sweep Extrusion<br>[4391, 4433, 0]"]
 | 
			
		||||
  64["Sweep Extrusion<br>[4668, 4718, 0]"]
 | 
			
		||||
  1["Plane<br>[1393, 1410, 0]"]
 | 
			
		||||
  2["Plane<br>[2657, 2699, 0]"]
 | 
			
		||||
  3["Plane<br>[3632, 3658, 0]"]
 | 
			
		||||
  4["StartSketchOnPlane<br>[2643, 2700, 0]"]
 | 
			
		||||
  5["StartSketchOnFace<br>[4468, 4507, 0]"]
 | 
			
		||||
  61["Sweep Extrusion<br>[2332, 2382, 0]"]
 | 
			
		||||
  62["Sweep Extrusion<br>[3145, 3189, 0]"]
 | 
			
		||||
  63["Sweep Extrusion<br>[4367, 4409, 0]"]
 | 
			
		||||
  64["Sweep Extrusion<br>[4644, 4694, 0]"]
 | 
			
		||||
  65[Wall]
 | 
			
		||||
  66[Wall]
 | 
			
		||||
  67[Wall]
 | 
			
		||||
@ -156,10 +156,10 @@ flowchart LR
 | 
			
		||||
  140["SweepEdge Adjacent"]
 | 
			
		||||
  141["SweepEdge Adjacent"]
 | 
			
		||||
  142["SweepEdge Adjacent"]
 | 
			
		||||
  143["EdgeCut Fillet<br>[2443, 2584, 0]"]
 | 
			
		||||
  144["EdgeCut Fillet<br>[2443, 2584, 0]"]
 | 
			
		||||
  145["EdgeCut Fillet<br>[3256, 3387, 0]"]
 | 
			
		||||
  146["EdgeCut Fillet<br>[3256, 3387, 0]"]
 | 
			
		||||
  143["EdgeCut Fillet<br>[2419, 2560, 0]"]
 | 
			
		||||
  144["EdgeCut Fillet<br>[2419, 2560, 0]"]
 | 
			
		||||
  145["EdgeCut Fillet<br>[3232, 3363, 0]"]
 | 
			
		||||
  146["EdgeCut Fillet<br>[3232, 3363, 0]"]
 | 
			
		||||
  1 --- 6
 | 
			
		||||
  1 --- 8
 | 
			
		||||
  1 --- 9
 | 
			
		||||
 | 
			
		||||
@ -1436,72 +1436,40 @@ description: Result of parsing food-service-spatula.kcl
 | 
			
		||||
                        "right": {
 | 
			
		||||
                          "arguments": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "arguments": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "left": {
 | 
			
		||||
                                    "abs_path": false,
 | 
			
		||||
                                    "commentStart": 0,
 | 
			
		||||
                                    "end": 0,
 | 
			
		||||
                                    "name": {
 | 
			
		||||
                                      "commentStart": 0,
 | 
			
		||||
                                      "end": 0,
 | 
			
		||||
                                      "name": "angle",
 | 
			
		||||
                                      "start": 0,
 | 
			
		||||
                                      "type": "Identifier"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "path": [],
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Name",
 | 
			
		||||
                                    "type": "Name"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "operator": "-",
 | 
			
		||||
                                  "right": {
 | 
			
		||||
                                    "commentStart": 0,
 | 
			
		||||
                                    "end": 0,
 | 
			
		||||
                                    "raw": "90",
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Literal",
 | 
			
		||||
                                    "type": "Literal",
 | 
			
		||||
                                    "value": {
 | 
			
		||||
                                      "value": 90.0,
 | 
			
		||||
                                      "suffix": "None"
 | 
			
		||||
                                    }
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "BinaryExpression",
 | 
			
		||||
                                  "type": "BinaryExpression"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "callee": {
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "left": {
 | 
			
		||||
                                "abs_path": false,
 | 
			
		||||
                                "commentStart": 0,
 | 
			
		||||
                                "end": 0,
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "toRadians",
 | 
			
		||||
                                  "name": "angle",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                },
 | 
			
		||||
                                "path": [
 | 
			
		||||
                                  {
 | 
			
		||||
                                    "commentStart": 0,
 | 
			
		||||
                                    "end": 0,
 | 
			
		||||
                                    "name": "units",
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Identifier"
 | 
			
		||||
                                  }
 | 
			
		||||
                                ],
 | 
			
		||||
                                "path": [],
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Name",
 | 
			
		||||
                                "type": "Name"
 | 
			
		||||
                              },
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "operator": "-",
 | 
			
		||||
                              "right": {
 | 
			
		||||
                                "commentStart": 0,
 | 
			
		||||
                                "end": 0,
 | 
			
		||||
                                "raw": "90",
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Literal",
 | 
			
		||||
                                "type": "Literal",
 | 
			
		||||
                                "value": {
 | 
			
		||||
                                  "value": 90.0,
 | 
			
		||||
                                  "suffix": "None"
 | 
			
		||||
                                }
 | 
			
		||||
                              },
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "CallExpression",
 | 
			
		||||
                              "type": "CallExpression"
 | 
			
		||||
                              "type": "BinaryExpression",
 | 
			
		||||
                              "type": "BinaryExpression"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "callee": {
 | 
			
		||||
@ -1515,7 +1483,15 @@ description: Result of parsing food-service-spatula.kcl
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            },
 | 
			
		||||
                            "path": [],
 | 
			
		||||
                            "path": [
 | 
			
		||||
                              {
 | 
			
		||||
                                "commentStart": 0,
 | 
			
		||||
                                "end": 0,
 | 
			
		||||
                                "name": "math",
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              }
 | 
			
		||||
                            ],
 | 
			
		||||
                            "start": 0,
 | 
			
		||||
                            "type": "Name"
 | 
			
		||||
                          },
 | 
			
		||||
@ -1629,72 +1605,40 @@ description: Result of parsing food-service-spatula.kcl
 | 
			
		||||
                        "right": {
 | 
			
		||||
                          "arguments": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "arguments": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "left": {
 | 
			
		||||
                                    "abs_path": false,
 | 
			
		||||
                                    "commentStart": 0,
 | 
			
		||||
                                    "end": 0,
 | 
			
		||||
                                    "name": {
 | 
			
		||||
                                      "commentStart": 0,
 | 
			
		||||
                                      "end": 0,
 | 
			
		||||
                                      "name": "angle",
 | 
			
		||||
                                      "start": 0,
 | 
			
		||||
                                      "type": "Identifier"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "path": [],
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Name",
 | 
			
		||||
                                    "type": "Name"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "operator": "-",
 | 
			
		||||
                                  "right": {
 | 
			
		||||
                                    "commentStart": 0,
 | 
			
		||||
                                    "end": 0,
 | 
			
		||||
                                    "raw": "90",
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Literal",
 | 
			
		||||
                                    "type": "Literal",
 | 
			
		||||
                                    "value": {
 | 
			
		||||
                                      "value": 90.0,
 | 
			
		||||
                                      "suffix": "None"
 | 
			
		||||
                                    }
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "BinaryExpression",
 | 
			
		||||
                                  "type": "BinaryExpression"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "callee": {
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "left": {
 | 
			
		||||
                                "abs_path": false,
 | 
			
		||||
                                "commentStart": 0,
 | 
			
		||||
                                "end": 0,
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "toRadians",
 | 
			
		||||
                                  "name": "angle",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                },
 | 
			
		||||
                                "path": [
 | 
			
		||||
                                  {
 | 
			
		||||
                                    "commentStart": 0,
 | 
			
		||||
                                    "end": 0,
 | 
			
		||||
                                    "name": "units",
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Identifier"
 | 
			
		||||
                                  }
 | 
			
		||||
                                ],
 | 
			
		||||
                                "path": [],
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Name",
 | 
			
		||||
                                "type": "Name"
 | 
			
		||||
                              },
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "operator": "-",
 | 
			
		||||
                              "right": {
 | 
			
		||||
                                "commentStart": 0,
 | 
			
		||||
                                "end": 0,
 | 
			
		||||
                                "raw": "90",
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Literal",
 | 
			
		||||
                                "type": "Literal",
 | 
			
		||||
                                "value": {
 | 
			
		||||
                                  "value": 90.0,
 | 
			
		||||
                                  "suffix": "None"
 | 
			
		||||
                                }
 | 
			
		||||
                              },
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "CallExpression",
 | 
			
		||||
                              "type": "CallExpression"
 | 
			
		||||
                              "type": "BinaryExpression",
 | 
			
		||||
                              "type": "BinaryExpression"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "callee": {
 | 
			
		||||
@ -1708,7 +1652,15 @@ description: Result of parsing food-service-spatula.kcl
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            },
 | 
			
		||||
                            "path": [],
 | 
			
		||||
                            "path": [
 | 
			
		||||
                              {
 | 
			
		||||
                                "commentStart": 0,
 | 
			
		||||
                                "end": 0,
 | 
			
		||||
                                "name": "math",
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              }
 | 
			
		||||
                            ],
 | 
			
		||||
                            "start": 0,
 | 
			
		||||
                            "type": "Name"
 | 
			
		||||
                          },
 | 
			
		||||
 | 
			
		||||
@ -40,7 +40,7 @@ description: Operations executed food-service-spatula.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -51,7 +51,7 @@ description: Operations executed food-service-spatula.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -62,7 +62,7 @@ description: Operations executed food-service-spatula.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -73,7 +73,7 @@ description: Operations executed food-service-spatula.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -84,7 +84,7 @@ description: Operations executed food-service-spatula.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "units::toRadians",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -95,7 +95,7 @@ description: Operations executed food-service-spatula.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "units::toRadians",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -106,7 +106,7 @@ description: Operations executed food-service-spatula.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "units::toRadians",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -117,95 +117,7 @@ description: Operations executed food-service-spatula.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "units::toRadians",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
    },
 | 
			
		||||
    "sourceRange": []
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
    },
 | 
			
		||||
    "sourceRange": []
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
    },
 | 
			
		||||
    "sourceRange": []
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
    },
 | 
			
		||||
    "sourceRange": []
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
    },
 | 
			
		||||
    "sourceRange": []
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "units::toRadians",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
    },
 | 
			
		||||
    "sourceRange": []
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "units::toRadians",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
    },
 | 
			
		||||
    "sourceRange": []
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "units::toRadians",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
    },
 | 
			
		||||
    "sourceRange": []
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "units::toRadians",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -873,30 +785,6 @@ description: Operations executed food-service-spatula.kcl
 | 
			
		||||
  {
 | 
			
		||||
    "type": "GroupEnd"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "type": "GroupEnd"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "type": "GroupEnd"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "type": "GroupEnd"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "type": "GroupEnd"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "type": "GroupEnd"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "type": "GroupEnd"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "type": "GroupEnd"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "type": "GroupEnd"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "type": "GroupEnd"
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -27,9 +27,9 @@ description: Variables in memory after executing food-service-spatula.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 1616,
 | 
			
		||||
            "end": 1625,
 | 
			
		||||
            "start": 1616,
 | 
			
		||||
            "commentStart": 1592,
 | 
			
		||||
            "end": 1601,
 | 
			
		||||
            "start": 1592,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "backEdge"
 | 
			
		||||
          },
 | 
			
		||||
@ -90,9 +90,9 @@ description: Variables in memory after executing food-service-spatula.kcl
 | 
			
		||||
              -30.0
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 1616,
 | 
			
		||||
              "end": 1625,
 | 
			
		||||
              "start": 1616,
 | 
			
		||||
              "commentStart": 1592,
 | 
			
		||||
              "end": 1601,
 | 
			
		||||
              "start": 1592,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "backEdge"
 | 
			
		||||
            },
 | 
			
		||||
@ -299,9 +299,9 @@ description: Variables in memory after executing food-service-spatula.kcl
 | 
			
		||||
            -30.0
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 1616,
 | 
			
		||||
            "end": 1625,
 | 
			
		||||
            "start": 1616,
 | 
			
		||||
            "commentStart": 1592,
 | 
			
		||||
            "end": 1601,
 | 
			
		||||
            "start": 1592,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "backEdge"
 | 
			
		||||
          },
 | 
			
		||||
@ -551,9 +551,9 @@ description: Variables in memory after executing food-service-spatula.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 4235,
 | 
			
		||||
            "end": 4247,
 | 
			
		||||
            "start": 4235,
 | 
			
		||||
            "commentStart": 4211,
 | 
			
		||||
            "end": 4223,
 | 
			
		||||
            "start": 4211,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "gripEdgeTop"
 | 
			
		||||
          },
 | 
			
		||||
@ -713,9 +713,9 @@ description: Variables in memory after executing food-service-spatula.kcl
 | 
			
		||||
              7.0
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 4235,
 | 
			
		||||
              "end": 4247,
 | 
			
		||||
              "start": 4235,
 | 
			
		||||
              "commentStart": 4211,
 | 
			
		||||
              "end": 4223,
 | 
			
		||||
              "start": 4211,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "gripEdgeTop"
 | 
			
		||||
            },
 | 
			
		||||
@ -1058,9 +1058,9 @@ description: Variables in memory after executing food-service-spatula.kcl
 | 
			
		||||
              "id": "[uuid]",
 | 
			
		||||
              "sourceRange": [],
 | 
			
		||||
              "tag": {
 | 
			
		||||
                "commentStart": 4235,
 | 
			
		||||
                "end": 4247,
 | 
			
		||||
                "start": 4235,
 | 
			
		||||
                "commentStart": 4211,
 | 
			
		||||
                "end": 4223,
 | 
			
		||||
                "start": 4211,
 | 
			
		||||
                "type": "TagDeclarator",
 | 
			
		||||
                "value": "gripEdgeTop"
 | 
			
		||||
              },
 | 
			
		||||
@ -1220,9 +1220,9 @@ description: Variables in memory after executing food-service-spatula.kcl
 | 
			
		||||
                  7.0
 | 
			
		||||
                ],
 | 
			
		||||
                "tag": {
 | 
			
		||||
                  "commentStart": 4235,
 | 
			
		||||
                  "end": 4247,
 | 
			
		||||
                  "start": 4235,
 | 
			
		||||
                  "commentStart": 4211,
 | 
			
		||||
                  "end": 4223,
 | 
			
		||||
                  "start": 4211,
 | 
			
		||||
                  "type": "TagDeclarator",
 | 
			
		||||
                  "value": "gripEdgeTop"
 | 
			
		||||
                },
 | 
			
		||||
@ -1538,9 +1538,9 @@ description: Variables in memory after executing food-service-spatula.kcl
 | 
			
		||||
            7.0
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 4235,
 | 
			
		||||
            "end": 4247,
 | 
			
		||||
            "start": 4235,
 | 
			
		||||
            "commentStart": 4211,
 | 
			
		||||
            "end": 4223,
 | 
			
		||||
            "start": 4211,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "gripEdgeTop"
 | 
			
		||||
          },
 | 
			
		||||
@ -1729,9 +1729,9 @@ description: Variables in memory after executing food-service-spatula.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 2887,
 | 
			
		||||
            "end": 2904,
 | 
			
		||||
            "start": 2887,
 | 
			
		||||
            "commentStart": 2863,
 | 
			
		||||
            "end": 2880,
 | 
			
		||||
            "start": 2863,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "handleBottomEdge"
 | 
			
		||||
          },
 | 
			
		||||
@ -1756,9 +1756,9 @@ description: Variables in memory after executing food-service-spatula.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 3035,
 | 
			
		||||
            "end": 3049,
 | 
			
		||||
            "start": 3035,
 | 
			
		||||
            "commentStart": 3011,
 | 
			
		||||
            "end": 3025,
 | 
			
		||||
            "start": 3011,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "handleTopEdge"
 | 
			
		||||
          },
 | 
			
		||||
@ -1800,9 +1800,9 @@ description: Variables in memory after executing food-service-spatula.kcl
 | 
			
		||||
              3.5
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 2887,
 | 
			
		||||
              "end": 2904,
 | 
			
		||||
              "start": 2887,
 | 
			
		||||
              "commentStart": 2863,
 | 
			
		||||
              "end": 2880,
 | 
			
		||||
              "start": 2863,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "handleBottomEdge"
 | 
			
		||||
            },
 | 
			
		||||
@ -1863,9 +1863,9 @@ description: Variables in memory after executing food-service-spatula.kcl
 | 
			
		||||
              91.3213
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 3035,
 | 
			
		||||
              "end": 3049,
 | 
			
		||||
              "start": 3035,
 | 
			
		||||
              "commentStart": 3011,
 | 
			
		||||
              "end": 3025,
 | 
			
		||||
              "start": 3011,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "handleTopEdge"
 | 
			
		||||
            },
 | 
			
		||||
@ -2211,9 +2211,9 @@ description: Variables in memory after executing food-service-spatula.kcl
 | 
			
		||||
            3.5
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 2887,
 | 
			
		||||
            "end": 2904,
 | 
			
		||||
            "start": 2887,
 | 
			
		||||
            "commentStart": 2863,
 | 
			
		||||
            "end": 2880,
 | 
			
		||||
            "start": 2863,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "handleBottomEdge"
 | 
			
		||||
          },
 | 
			
		||||
@ -2274,9 +2274,9 @@ description: Variables in memory after executing food-service-spatula.kcl
 | 
			
		||||
            91.3213
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 3035,
 | 
			
		||||
            "end": 3049,
 | 
			
		||||
            "start": 3035,
 | 
			
		||||
            "commentStart": 3011,
 | 
			
		||||
            "end": 3025,
 | 
			
		||||
            "start": 3011,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "handleTopEdge"
 | 
			
		||||
          },
 | 
			
		||||
@ -2536,9 +2536,9 @@ description: Variables in memory after executing food-service-spatula.kcl
 | 
			
		||||
            "id": "[uuid]",
 | 
			
		||||
            "sourceRange": [],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 4235,
 | 
			
		||||
              "end": 4247,
 | 
			
		||||
              "start": 4235,
 | 
			
		||||
              "commentStart": 4211,
 | 
			
		||||
              "end": 4223,
 | 
			
		||||
              "start": 4211,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "gripEdgeTop"
 | 
			
		||||
            },
 | 
			
		||||
@ -2698,9 +2698,9 @@ description: Variables in memory after executing food-service-spatula.kcl
 | 
			
		||||
                7.0
 | 
			
		||||
              ],
 | 
			
		||||
              "tag": {
 | 
			
		||||
                "commentStart": 4235,
 | 
			
		||||
                "end": 4247,
 | 
			
		||||
                "start": 4235,
 | 
			
		||||
                "commentStart": 4211,
 | 
			
		||||
                "end": 4223,
 | 
			
		||||
                "start": 4211,
 | 
			
		||||
                "type": "TagDeclarator",
 | 
			
		||||
                "value": "gripEdgeTop"
 | 
			
		||||
              },
 | 
			
		||||
@ -3370,9 +3370,9 @@ description: Variables in memory after executing food-service-spatula.kcl
 | 
			
		||||
            -30.0
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 1616,
 | 
			
		||||
            "end": 1625,
 | 
			
		||||
            "start": 1616,
 | 
			
		||||
            "commentStart": 1592,
 | 
			
		||||
            "end": 1601,
 | 
			
		||||
            "start": 1592,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "backEdge"
 | 
			
		||||
          },
 | 
			
		||||
 | 
			
		||||
@ -1,234 +1,234 @@
 | 
			
		||||
```mermaid
 | 
			
		||||
flowchart LR
 | 
			
		||||
  subgraph path4 [Path]
 | 
			
		||||
    4["Path<br>[1453, 1503, 0]"]
 | 
			
		||||
    7["Segment<br>[1453, 1503, 0]"]
 | 
			
		||||
    4["Path<br>[1441, 1491, 0]"]
 | 
			
		||||
    7["Segment<br>[1441, 1491, 0]"]
 | 
			
		||||
    219[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path5 [Path]
 | 
			
		||||
    5["Path<br>[2008, 2045, 0]"]
 | 
			
		||||
    8["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    9["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    10["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    11["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    12["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    13["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    14["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    15["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    16["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    17["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    18["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    19["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    20["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    21["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    22["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    23["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    24["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    25["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    26["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    27["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    28["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    29["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    30["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    31["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    32["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    33["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    34["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    35["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    36["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    37["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    38["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    39["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    40["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    41["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    42["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    43["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    44["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    45["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    46["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    47["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    48["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    49["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    50["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    51["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    52["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    53["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    54["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    55["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    56["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    57["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    58["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    59["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    60["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    61["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    62["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    63["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    64["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    65["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    66["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    67["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    68["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    69["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    70["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    71["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    72["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    73["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    74["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    75["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    76["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    77["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    78["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    79["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    80["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    81["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    82["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    83["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    84["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    85["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    86["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    87["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    88["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    89["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    90["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    91["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    92["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    93["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    94["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    95["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    96["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    97["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    98["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    99["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    100["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    101["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    102["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    103["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    104["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    105["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    106["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    107["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    108["Segment<br>[1668, 1706, 0]"]
 | 
			
		||||
    109["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    110["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    111["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    112["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    113["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    114["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    115["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    116["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    117["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    118["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    119["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    120["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    121["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    122["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    123["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    124["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    125["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    126["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    127["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    128["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    129["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    130["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    131["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    132["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    133["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    134["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    135["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    136["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    137["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    138["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    139["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    140["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    141["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    142["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    143["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    144["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    145["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    146["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    147["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    148["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    149["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    150["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    151["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    152["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    153["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    154["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    155["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    156["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    157["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    158["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    159["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    160["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    161["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    162["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    163["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    164["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    165["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    166["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    167["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    168["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    169["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    170["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    171["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    172["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    173["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    174["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    175["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    176["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    177["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    178["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    179["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    180["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    181["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    182["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    183["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    184["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    185["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    186["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    187["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    188["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    189["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    190["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    191["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    192["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    193["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    194["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    195["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    196["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    197["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    198["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    199["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    200["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    201["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    202["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    203["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    204["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    205["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    206["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    207["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    208["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    209["Segment<br>[1924, 1954, 0]"]
 | 
			
		||||
    210["Segment<br>[2111, 2180, 0]"]
 | 
			
		||||
    211["Segment<br>[2240, 2247, 0]"]
 | 
			
		||||
    5["Path<br>[1972, 2009, 0]"]
 | 
			
		||||
    8["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    9["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    10["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    11["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    12["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    13["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    14["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    15["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    16["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    17["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    18["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    19["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    20["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    21["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    22["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    23["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    24["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    25["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    26["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    27["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    28["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    29["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    30["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    31["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    32["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    33["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    34["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    35["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    36["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    37["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    38["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    39["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    40["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    41["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    42["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    43["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    44["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    45["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    46["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    47["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    48["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    49["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    50["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    51["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    52["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    53["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    54["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    55["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    56["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    57["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    58["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    59["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    60["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    61["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    62["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    63["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    64["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    65["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    66["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    67["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    68["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    69["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    70["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    71["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    72["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    73["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    74["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    75["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    76["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    77["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    78["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    79["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    80["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    81["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    82["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    83["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    84["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    85["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    86["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    87["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    88["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    89["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    90["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    91["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    92["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    93["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    94["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    95["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    96["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    97["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    98["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    99["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    100["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    101["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    102["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    103["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    104["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    105["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    106["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    107["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    108["Segment<br>[1656, 1694, 0]"]
 | 
			
		||||
    109["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    110["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    111["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    112["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    113["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    114["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    115["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    116["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    117["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    118["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    119["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    120["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    121["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    122["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    123["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    124["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    125["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    126["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    127["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    128["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    129["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    130["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    131["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    132["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    133["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    134["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    135["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    136["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    137["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    138["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    139["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    140["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    141["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    142["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    143["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    144["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    145["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    146["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    147["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    148["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    149["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    150["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    151["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    152["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    153["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    154["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    155["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    156["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    157["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    158["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    159["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    160["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    161["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    162["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    163["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    164["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    165["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    166["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    167["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    168["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    169["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    170["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    171["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    172["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    173["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    174["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    175["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    176["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    177["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    178["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    179["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    180["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    181["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    182["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    183["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    184["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    185["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    186["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    187["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    188["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    189["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    190["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    191["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    192["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    193["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    194["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    195["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    196["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    197["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    198["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    199["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    200["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    201["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    202["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    203["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    204["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    205["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    206["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    207["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    208["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    209["Segment<br>[1888, 1918, 0]"]
 | 
			
		||||
    210["Segment<br>[2075, 2144, 0]"]
 | 
			
		||||
    211["Segment<br>[2204, 2211, 0]"]
 | 
			
		||||
    218[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path6 [Path]
 | 
			
		||||
    6["Path<br>[2728, 2828, 0]"]
 | 
			
		||||
    212["Segment<br>[2834, 2861, 0]"]
 | 
			
		||||
    213["Segment<br>[2867, 2895, 0]"]
 | 
			
		||||
    214["Segment<br>[2901, 2929, 0]"]
 | 
			
		||||
    215["Segment<br>[2935, 3029, 0]"]
 | 
			
		||||
    216["Segment<br>[3035, 3118, 0]"]
 | 
			
		||||
    217["Segment<br>[3124, 3131, 0]"]
 | 
			
		||||
    6["Path<br>[2692, 2804, 0]"]
 | 
			
		||||
    212["Segment<br>[2810, 2837, 0]"]
 | 
			
		||||
    213["Segment<br>[2843, 2871, 0]"]
 | 
			
		||||
    214["Segment<br>[2877, 2905, 0]"]
 | 
			
		||||
    215["Segment<br>[2911, 3005, 0]"]
 | 
			
		||||
    216["Segment<br>[3011, 3094, 0]"]
 | 
			
		||||
    217["Segment<br>[3100, 3107, 0]"]
 | 
			
		||||
    220[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  1["Plane<br>[1430, 1447, 0]"]
 | 
			
		||||
  2["Plane<br>[1985, 2002, 0]"]
 | 
			
		||||
  3["StartSketchOnFace<br>[2691, 2722, 0]"]
 | 
			
		||||
  221["Sweep Extrusion<br>[1509, 1537, 0]"]
 | 
			
		||||
  222["Sweep Extrusion<br>[2253, 2281, 0]"]
 | 
			
		||||
  223["Sweep Extrusion<br>[3137, 3166, 0]"]
 | 
			
		||||
  1["Plane<br>[1418, 1435, 0]"]
 | 
			
		||||
  2["Plane<br>[1949, 1966, 0]"]
 | 
			
		||||
  3["StartSketchOnFace<br>[2655, 2686, 0]"]
 | 
			
		||||
  221["Sweep Extrusion<br>[1497, 1525, 0]"]
 | 
			
		||||
  222["Sweep Extrusion<br>[2217, 2245, 0]"]
 | 
			
		||||
  223["Sweep Extrusion<br>[3113, 3142, 0]"]
 | 
			
		||||
  224[Wall]
 | 
			
		||||
  225[Wall]
 | 
			
		||||
  226[Wall]
 | 
			
		||||
 | 
			
		||||
@ -297,52 +297,20 @@ description: Result of parsing gear.kcl
 | 
			
		||||
            "right": {
 | 
			
		||||
              "arguments": [
 | 
			
		||||
                {
 | 
			
		||||
                  "arguments": [
 | 
			
		||||
                    {
 | 
			
		||||
                      "abs_path": false,
 | 
			
		||||
                      "commentStart": 0,
 | 
			
		||||
                      "end": 0,
 | 
			
		||||
                      "name": {
 | 
			
		||||
                        "commentStart": 0,
 | 
			
		||||
                        "end": 0,
 | 
			
		||||
                        "name": "pressureAngle",
 | 
			
		||||
                        "start": 0,
 | 
			
		||||
                        "type": "Identifier"
 | 
			
		||||
                      },
 | 
			
		||||
                      "path": [],
 | 
			
		||||
                      "start": 0,
 | 
			
		||||
                      "type": "Name",
 | 
			
		||||
                      "type": "Name"
 | 
			
		||||
                    }
 | 
			
		||||
                  ],
 | 
			
		||||
                  "callee": {
 | 
			
		||||
                    "abs_path": false,
 | 
			
		||||
                    "commentStart": 0,
 | 
			
		||||
                    "end": 0,
 | 
			
		||||
                    "name": {
 | 
			
		||||
                      "commentStart": 0,
 | 
			
		||||
                      "end": 0,
 | 
			
		||||
                      "name": "toRadians",
 | 
			
		||||
                      "start": 0,
 | 
			
		||||
                      "type": "Identifier"
 | 
			
		||||
                    },
 | 
			
		||||
                    "path": [
 | 
			
		||||
                      {
 | 
			
		||||
                        "commentStart": 0,
 | 
			
		||||
                        "end": 0,
 | 
			
		||||
                        "name": "units",
 | 
			
		||||
                        "start": 0,
 | 
			
		||||
                        "type": "Identifier"
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "start": 0,
 | 
			
		||||
                    "type": "Name"
 | 
			
		||||
                  },
 | 
			
		||||
                  "abs_path": false,
 | 
			
		||||
                  "commentStart": 0,
 | 
			
		||||
                  "end": 0,
 | 
			
		||||
                  "name": {
 | 
			
		||||
                    "commentStart": 0,
 | 
			
		||||
                    "end": 0,
 | 
			
		||||
                    "name": "pressureAngle",
 | 
			
		||||
                    "start": 0,
 | 
			
		||||
                    "type": "Identifier"
 | 
			
		||||
                  },
 | 
			
		||||
                  "path": [],
 | 
			
		||||
                  "start": 0,
 | 
			
		||||
                  "type": "CallExpression",
 | 
			
		||||
                  "type": "CallExpression"
 | 
			
		||||
                  "type": "Name",
 | 
			
		||||
                  "type": "Name"
 | 
			
		||||
                }
 | 
			
		||||
              ],
 | 
			
		||||
              "callee": {
 | 
			
		||||
@ -356,7 +324,15 @@ description: Result of parsing gear.kcl
 | 
			
		||||
                  "start": 0,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "path": [],
 | 
			
		||||
                "path": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "commentStart": 0,
 | 
			
		||||
                    "end": 0,
 | 
			
		||||
                    "name": "math",
 | 
			
		||||
                    "start": 0,
 | 
			
		||||
                    "type": "Identifier"
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "start": 0,
 | 
			
		||||
                "type": "Name"
 | 
			
		||||
              },
 | 
			
		||||
@ -1065,52 +1041,20 @@ description: Result of parsing gear.kcl
 | 
			
		||||
                          "left": {
 | 
			
		||||
                            "arguments": [
 | 
			
		||||
                              {
 | 
			
		||||
                                "arguments": [
 | 
			
		||||
                                  {
 | 
			
		||||
                                    "abs_path": false,
 | 
			
		||||
                                    "commentStart": 0,
 | 
			
		||||
                                    "end": 0,
 | 
			
		||||
                                    "name": {
 | 
			
		||||
                                      "commentStart": 0,
 | 
			
		||||
                                      "end": 0,
 | 
			
		||||
                                      "name": "a",
 | 
			
		||||
                                      "start": 0,
 | 
			
		||||
                                      "type": "Identifier"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "path": [],
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Name",
 | 
			
		||||
                                    "type": "Name"
 | 
			
		||||
                                  }
 | 
			
		||||
                                ],
 | 
			
		||||
                                "callee": {
 | 
			
		||||
                                  "abs_path": false,
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": {
 | 
			
		||||
                                    "commentStart": 0,
 | 
			
		||||
                                    "end": 0,
 | 
			
		||||
                                    "name": "toRadians",
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Identifier"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "path": [
 | 
			
		||||
                                    {
 | 
			
		||||
                                      "commentStart": 0,
 | 
			
		||||
                                      "end": 0,
 | 
			
		||||
                                      "name": "units",
 | 
			
		||||
                                      "start": 0,
 | 
			
		||||
                                      "type": "Identifier"
 | 
			
		||||
                                    }
 | 
			
		||||
                                  ],
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Name"
 | 
			
		||||
                                },
 | 
			
		||||
                                "abs_path": false,
 | 
			
		||||
                                "commentStart": 0,
 | 
			
		||||
                                "end": 0,
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "a",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                },
 | 
			
		||||
                                "path": [],
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "CallExpression",
 | 
			
		||||
                                "type": "CallExpression"
 | 
			
		||||
                                "type": "Name",
 | 
			
		||||
                                "type": "Name"
 | 
			
		||||
                              }
 | 
			
		||||
                            ],
 | 
			
		||||
                            "callee": {
 | 
			
		||||
@ -1124,7 +1068,15 @@ description: Result of parsing gear.kcl
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "path": [],
 | 
			
		||||
                              "path": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "math",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Name"
 | 
			
		||||
                            },
 | 
			
		||||
@ -1377,7 +1329,15 @@ description: Result of parsing gear.kcl
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "path": [],
 | 
			
		||||
                              "path": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "math",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Name"
 | 
			
		||||
                            },
 | 
			
		||||
@ -1601,7 +1561,15 @@ description: Result of parsing gear.kcl
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "path": [],
 | 
			
		||||
                              "path": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "math",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Name"
 | 
			
		||||
                            },
 | 
			
		||||
@ -2338,116 +2306,92 @@ description: Result of parsing gear.kcl
 | 
			
		||||
                      "right": {
 | 
			
		||||
                        "arguments": [
 | 
			
		||||
                          {
 | 
			
		||||
                            "arguments": [
 | 
			
		||||
                              {
 | 
			
		||||
                            "commentStart": 0,
 | 
			
		||||
                            "end": 0,
 | 
			
		||||
                            "left": {
 | 
			
		||||
                              "argument": {
 | 
			
		||||
                                "abs_path": false,
 | 
			
		||||
                                "commentStart": 0,
 | 
			
		||||
                                "end": 0,
 | 
			
		||||
                                "left": {
 | 
			
		||||
                                  "argument": {
 | 
			
		||||
                                    "abs_path": false,
 | 
			
		||||
                                    "commentStart": 0,
 | 
			
		||||
                                    "end": 0,
 | 
			
		||||
                                    "name": {
 | 
			
		||||
                                      "commentStart": 0,
 | 
			
		||||
                                      "end": 0,
 | 
			
		||||
                                      "name": "toothAngle",
 | 
			
		||||
                                      "start": 0,
 | 
			
		||||
                                      "type": "Identifier"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "path": [],
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Name",
 | 
			
		||||
                                    "type": "Name"
 | 
			
		||||
                                  },
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "operator": "-",
 | 
			
		||||
                                  "name": "toothAngle",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "UnaryExpression",
 | 
			
		||||
                                  "type": "UnaryExpression"
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                },
 | 
			
		||||
                                "operator": "+",
 | 
			
		||||
                                "right": {
 | 
			
		||||
                                "path": [],
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Name",
 | 
			
		||||
                                "type": "Name"
 | 
			
		||||
                              },
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "operator": "-",
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "UnaryExpression",
 | 
			
		||||
                              "type": "UnaryExpression"
 | 
			
		||||
                            },
 | 
			
		||||
                            "operator": "+",
 | 
			
		||||
                            "right": {
 | 
			
		||||
                              "arguments": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "arguments": [
 | 
			
		||||
                                    {
 | 
			
		||||
                                      "arguments": [
 | 
			
		||||
                                        {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "left": {
 | 
			
		||||
                                            "commentStart": 0,
 | 
			
		||||
                                            "computed": true,
 | 
			
		||||
                                            "end": 0,
 | 
			
		||||
                                            "object": {
 | 
			
		||||
                                              "commentStart": 0,
 | 
			
		||||
                                              "end": 0,
 | 
			
		||||
                                              "name": "ys",
 | 
			
		||||
                                              "start": 0,
 | 
			
		||||
                                              "type": "Identifier",
 | 
			
		||||
                                              "type": "Identifier"
 | 
			
		||||
                                            },
 | 
			
		||||
                                            "property": {
 | 
			
		||||
                                              "commentStart": 0,
 | 
			
		||||
                                              "end": 0,
 | 
			
		||||
                                              "name": "i",
 | 
			
		||||
                                              "start": 0,
 | 
			
		||||
                                              "type": "Identifier",
 | 
			
		||||
                                              "type": "Identifier"
 | 
			
		||||
                                            },
 | 
			
		||||
                                            "start": 0,
 | 
			
		||||
                                            "type": "MemberExpression",
 | 
			
		||||
                                            "type": "MemberExpression"
 | 
			
		||||
                                          },
 | 
			
		||||
                                          "operator": "/",
 | 
			
		||||
                                          "right": {
 | 
			
		||||
                                            "commentStart": 0,
 | 
			
		||||
                                            "computed": true,
 | 
			
		||||
                                            "end": 0,
 | 
			
		||||
                                            "object": {
 | 
			
		||||
                                              "commentStart": 0,
 | 
			
		||||
                                              "end": 0,
 | 
			
		||||
                                              "name": "xs",
 | 
			
		||||
                                              "start": 0,
 | 
			
		||||
                                              "type": "Identifier",
 | 
			
		||||
                                              "type": "Identifier"
 | 
			
		||||
                                            },
 | 
			
		||||
                                            "property": {
 | 
			
		||||
                                              "commentStart": 0,
 | 
			
		||||
                                              "end": 0,
 | 
			
		||||
                                              "name": "i",
 | 
			
		||||
                                              "start": 0,
 | 
			
		||||
                                              "type": "Identifier",
 | 
			
		||||
                                              "type": "Identifier"
 | 
			
		||||
                                            },
 | 
			
		||||
                                            "start": 0,
 | 
			
		||||
                                            "type": "MemberExpression",
 | 
			
		||||
                                            "type": "MemberExpression"
 | 
			
		||||
                                          },
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "BinaryExpression",
 | 
			
		||||
                                          "type": "BinaryExpression"
 | 
			
		||||
                                        }
 | 
			
		||||
                                      ],
 | 
			
		||||
                                      "callee": {
 | 
			
		||||
                                        "abs_path": false,
 | 
			
		||||
                                        "commentStart": 0,
 | 
			
		||||
                                        "end": 0,
 | 
			
		||||
                                        "name": {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "name": "atan",
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "Identifier"
 | 
			
		||||
                                        },
 | 
			
		||||
                                        "path": [],
 | 
			
		||||
                                        "start": 0,
 | 
			
		||||
                                        "type": "Name"
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "commentStart": 0,
 | 
			
		||||
                                      "end": 0,
 | 
			
		||||
                                      "left": {
 | 
			
		||||
                                        "commentStart": 0,
 | 
			
		||||
                                        "computed": true,
 | 
			
		||||
                                        "end": 0,
 | 
			
		||||
                                        "object": {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "name": "ys",
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "Identifier",
 | 
			
		||||
                                          "type": "Identifier"
 | 
			
		||||
                                        },
 | 
			
		||||
                                        "property": {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "name": "i",
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "Identifier",
 | 
			
		||||
                                          "type": "Identifier"
 | 
			
		||||
                                        },
 | 
			
		||||
                                        "start": 0,
 | 
			
		||||
                                        "type": "MemberExpression",
 | 
			
		||||
                                        "type": "MemberExpression"
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "operator": "/",
 | 
			
		||||
                                      "right": {
 | 
			
		||||
                                        "commentStart": 0,
 | 
			
		||||
                                        "computed": true,
 | 
			
		||||
                                        "end": 0,
 | 
			
		||||
                                        "object": {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "name": "xs",
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "Identifier",
 | 
			
		||||
                                          "type": "Identifier"
 | 
			
		||||
                                        },
 | 
			
		||||
                                        "property": {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "name": "i",
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "Identifier",
 | 
			
		||||
                                          "type": "Identifier"
 | 
			
		||||
                                        },
 | 
			
		||||
                                        "start": 0,
 | 
			
		||||
                                        "type": "MemberExpression",
 | 
			
		||||
                                        "type": "MemberExpression"
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "start": 0,
 | 
			
		||||
                                      "type": "CallExpression",
 | 
			
		||||
                                      "type": "CallExpression"
 | 
			
		||||
                                      "type": "BinaryExpression",
 | 
			
		||||
                                      "type": "BinaryExpression"
 | 
			
		||||
                                    }
 | 
			
		||||
                                  ],
 | 
			
		||||
                                  "callee": {
 | 
			
		||||
@ -2457,19 +2401,11 @@ description: Result of parsing gear.kcl
 | 
			
		||||
                                    "name": {
 | 
			
		||||
                                      "commentStart": 0,
 | 
			
		||||
                                      "end": 0,
 | 
			
		||||
                                      "name": "toDegrees",
 | 
			
		||||
                                      "name": "atan",
 | 
			
		||||
                                      "start": 0,
 | 
			
		||||
                                      "type": "Identifier"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "path": [
 | 
			
		||||
                                      {
 | 
			
		||||
                                        "commentStart": 0,
 | 
			
		||||
                                        "end": 0,
 | 
			
		||||
                                        "name": "units",
 | 
			
		||||
                                        "start": 0,
 | 
			
		||||
                                        "type": "Identifier"
 | 
			
		||||
                                      }
 | 
			
		||||
                                    ],
 | 
			
		||||
                                    "path": [],
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Name"
 | 
			
		||||
                                  },
 | 
			
		||||
@ -2478,40 +2414,40 @@ description: Result of parsing gear.kcl
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "CallExpression",
 | 
			
		||||
                                  "type": "CallExpression"
 | 
			
		||||
                                },
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "BinaryExpression",
 | 
			
		||||
                                "type": "BinaryExpression"
 | 
			
		||||
                              }
 | 
			
		||||
                            ],
 | 
			
		||||
                            "callee": {
 | 
			
		||||
                              "abs_path": false,
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "name": {
 | 
			
		||||
                                "commentStart": 0,
 | 
			
		||||
                                "end": 0,
 | 
			
		||||
                                "name": "toRadians",
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "path": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "units",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "callee": {
 | 
			
		||||
                                "abs_path": false,
 | 
			
		||||
                                "commentStart": 0,
 | 
			
		||||
                                "end": 0,
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "toDegrees",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                },
 | 
			
		||||
                                "path": [
 | 
			
		||||
                                  {
 | 
			
		||||
                                    "commentStart": 0,
 | 
			
		||||
                                    "end": 0,
 | 
			
		||||
                                    "name": "units",
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Identifier"
 | 
			
		||||
                                  }
 | 
			
		||||
                                ],
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Name"
 | 
			
		||||
                              },
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Name"
 | 
			
		||||
                              "type": "CallExpression",
 | 
			
		||||
                              "type": "CallExpression"
 | 
			
		||||
                            },
 | 
			
		||||
                            "commentStart": 0,
 | 
			
		||||
                            "end": 0,
 | 
			
		||||
                            "start": 0,
 | 
			
		||||
                            "type": "CallExpression",
 | 
			
		||||
                            "type": "CallExpression"
 | 
			
		||||
                            "type": "BinaryExpression",
 | 
			
		||||
                            "type": "BinaryExpression"
 | 
			
		||||
                          }
 | 
			
		||||
                        ],
 | 
			
		||||
                        "callee": {
 | 
			
		||||
@ -2525,7 +2461,15 @@ description: Result of parsing gear.kcl
 | 
			
		||||
                            "start": 0,
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "path": [],
 | 
			
		||||
                          "path": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "name": "math",
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "start": 0,
 | 
			
		||||
                          "type": "Name"
 | 
			
		||||
                        },
 | 
			
		||||
@ -2599,116 +2543,92 @@ description: Result of parsing gear.kcl
 | 
			
		||||
                      "right": {
 | 
			
		||||
                        "arguments": [
 | 
			
		||||
                          {
 | 
			
		||||
                            "arguments": [
 | 
			
		||||
                              {
 | 
			
		||||
                            "commentStart": 0,
 | 
			
		||||
                            "end": 0,
 | 
			
		||||
                            "left": {
 | 
			
		||||
                              "argument": {
 | 
			
		||||
                                "abs_path": false,
 | 
			
		||||
                                "commentStart": 0,
 | 
			
		||||
                                "end": 0,
 | 
			
		||||
                                "left": {
 | 
			
		||||
                                  "argument": {
 | 
			
		||||
                                    "abs_path": false,
 | 
			
		||||
                                    "commentStart": 0,
 | 
			
		||||
                                    "end": 0,
 | 
			
		||||
                                    "name": {
 | 
			
		||||
                                      "commentStart": 0,
 | 
			
		||||
                                      "end": 0,
 | 
			
		||||
                                      "name": "toothAngle",
 | 
			
		||||
                                      "start": 0,
 | 
			
		||||
                                      "type": "Identifier"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "path": [],
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Name",
 | 
			
		||||
                                    "type": "Name"
 | 
			
		||||
                                  },
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "operator": "-",
 | 
			
		||||
                                  "name": "toothAngle",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "UnaryExpression",
 | 
			
		||||
                                  "type": "UnaryExpression"
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                },
 | 
			
		||||
                                "operator": "+",
 | 
			
		||||
                                "right": {
 | 
			
		||||
                                "path": [],
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Name",
 | 
			
		||||
                                "type": "Name"
 | 
			
		||||
                              },
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "operator": "-",
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "UnaryExpression",
 | 
			
		||||
                              "type": "UnaryExpression"
 | 
			
		||||
                            },
 | 
			
		||||
                            "operator": "+",
 | 
			
		||||
                            "right": {
 | 
			
		||||
                              "arguments": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "arguments": [
 | 
			
		||||
                                    {
 | 
			
		||||
                                      "arguments": [
 | 
			
		||||
                                        {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "left": {
 | 
			
		||||
                                            "commentStart": 0,
 | 
			
		||||
                                            "computed": true,
 | 
			
		||||
                                            "end": 0,
 | 
			
		||||
                                            "object": {
 | 
			
		||||
                                              "commentStart": 0,
 | 
			
		||||
                                              "end": 0,
 | 
			
		||||
                                              "name": "ys",
 | 
			
		||||
                                              "start": 0,
 | 
			
		||||
                                              "type": "Identifier",
 | 
			
		||||
                                              "type": "Identifier"
 | 
			
		||||
                                            },
 | 
			
		||||
                                            "property": {
 | 
			
		||||
                                              "commentStart": 0,
 | 
			
		||||
                                              "end": 0,
 | 
			
		||||
                                              "name": "i",
 | 
			
		||||
                                              "start": 0,
 | 
			
		||||
                                              "type": "Identifier",
 | 
			
		||||
                                              "type": "Identifier"
 | 
			
		||||
                                            },
 | 
			
		||||
                                            "start": 0,
 | 
			
		||||
                                            "type": "MemberExpression",
 | 
			
		||||
                                            "type": "MemberExpression"
 | 
			
		||||
                                          },
 | 
			
		||||
                                          "operator": "/",
 | 
			
		||||
                                          "right": {
 | 
			
		||||
                                            "commentStart": 0,
 | 
			
		||||
                                            "computed": true,
 | 
			
		||||
                                            "end": 0,
 | 
			
		||||
                                            "object": {
 | 
			
		||||
                                              "commentStart": 0,
 | 
			
		||||
                                              "end": 0,
 | 
			
		||||
                                              "name": "xs",
 | 
			
		||||
                                              "start": 0,
 | 
			
		||||
                                              "type": "Identifier",
 | 
			
		||||
                                              "type": "Identifier"
 | 
			
		||||
                                            },
 | 
			
		||||
                                            "property": {
 | 
			
		||||
                                              "commentStart": 0,
 | 
			
		||||
                                              "end": 0,
 | 
			
		||||
                                              "name": "i",
 | 
			
		||||
                                              "start": 0,
 | 
			
		||||
                                              "type": "Identifier",
 | 
			
		||||
                                              "type": "Identifier"
 | 
			
		||||
                                            },
 | 
			
		||||
                                            "start": 0,
 | 
			
		||||
                                            "type": "MemberExpression",
 | 
			
		||||
                                            "type": "MemberExpression"
 | 
			
		||||
                                          },
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "BinaryExpression",
 | 
			
		||||
                                          "type": "BinaryExpression"
 | 
			
		||||
                                        }
 | 
			
		||||
                                      ],
 | 
			
		||||
                                      "callee": {
 | 
			
		||||
                                        "abs_path": false,
 | 
			
		||||
                                        "commentStart": 0,
 | 
			
		||||
                                        "end": 0,
 | 
			
		||||
                                        "name": {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "name": "atan",
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "Identifier"
 | 
			
		||||
                                        },
 | 
			
		||||
                                        "path": [],
 | 
			
		||||
                                        "start": 0,
 | 
			
		||||
                                        "type": "Name"
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "commentStart": 0,
 | 
			
		||||
                                      "end": 0,
 | 
			
		||||
                                      "left": {
 | 
			
		||||
                                        "commentStart": 0,
 | 
			
		||||
                                        "computed": true,
 | 
			
		||||
                                        "end": 0,
 | 
			
		||||
                                        "object": {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "name": "ys",
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "Identifier",
 | 
			
		||||
                                          "type": "Identifier"
 | 
			
		||||
                                        },
 | 
			
		||||
                                        "property": {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "name": "i",
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "Identifier",
 | 
			
		||||
                                          "type": "Identifier"
 | 
			
		||||
                                        },
 | 
			
		||||
                                        "start": 0,
 | 
			
		||||
                                        "type": "MemberExpression",
 | 
			
		||||
                                        "type": "MemberExpression"
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "operator": "/",
 | 
			
		||||
                                      "right": {
 | 
			
		||||
                                        "commentStart": 0,
 | 
			
		||||
                                        "computed": true,
 | 
			
		||||
                                        "end": 0,
 | 
			
		||||
                                        "object": {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "name": "xs",
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "Identifier",
 | 
			
		||||
                                          "type": "Identifier"
 | 
			
		||||
                                        },
 | 
			
		||||
                                        "property": {
 | 
			
		||||
                                          "commentStart": 0,
 | 
			
		||||
                                          "end": 0,
 | 
			
		||||
                                          "name": "i",
 | 
			
		||||
                                          "start": 0,
 | 
			
		||||
                                          "type": "Identifier",
 | 
			
		||||
                                          "type": "Identifier"
 | 
			
		||||
                                        },
 | 
			
		||||
                                        "start": 0,
 | 
			
		||||
                                        "type": "MemberExpression",
 | 
			
		||||
                                        "type": "MemberExpression"
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "start": 0,
 | 
			
		||||
                                      "type": "CallExpression",
 | 
			
		||||
                                      "type": "CallExpression"
 | 
			
		||||
                                      "type": "BinaryExpression",
 | 
			
		||||
                                      "type": "BinaryExpression"
 | 
			
		||||
                                    }
 | 
			
		||||
                                  ],
 | 
			
		||||
                                  "callee": {
 | 
			
		||||
@ -2718,19 +2638,11 @@ description: Result of parsing gear.kcl
 | 
			
		||||
                                    "name": {
 | 
			
		||||
                                      "commentStart": 0,
 | 
			
		||||
                                      "end": 0,
 | 
			
		||||
                                      "name": "toDegrees",
 | 
			
		||||
                                      "name": "atan",
 | 
			
		||||
                                      "start": 0,
 | 
			
		||||
                                      "type": "Identifier"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "path": [
 | 
			
		||||
                                      {
 | 
			
		||||
                                        "commentStart": 0,
 | 
			
		||||
                                        "end": 0,
 | 
			
		||||
                                        "name": "units",
 | 
			
		||||
                                        "start": 0,
 | 
			
		||||
                                        "type": "Identifier"
 | 
			
		||||
                                      }
 | 
			
		||||
                                    ],
 | 
			
		||||
                                    "path": [],
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Name"
 | 
			
		||||
                                  },
 | 
			
		||||
@ -2739,40 +2651,40 @@ description: Result of parsing gear.kcl
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "CallExpression",
 | 
			
		||||
                                  "type": "CallExpression"
 | 
			
		||||
                                },
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "BinaryExpression",
 | 
			
		||||
                                "type": "BinaryExpression"
 | 
			
		||||
                              }
 | 
			
		||||
                            ],
 | 
			
		||||
                            "callee": {
 | 
			
		||||
                              "abs_path": false,
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "name": {
 | 
			
		||||
                                "commentStart": 0,
 | 
			
		||||
                                "end": 0,
 | 
			
		||||
                                "name": "toRadians",
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "path": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "units",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "callee": {
 | 
			
		||||
                                "abs_path": false,
 | 
			
		||||
                                "commentStart": 0,
 | 
			
		||||
                                "end": 0,
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "toDegrees",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                },
 | 
			
		||||
                                "path": [
 | 
			
		||||
                                  {
 | 
			
		||||
                                    "commentStart": 0,
 | 
			
		||||
                                    "end": 0,
 | 
			
		||||
                                    "name": "units",
 | 
			
		||||
                                    "start": 0,
 | 
			
		||||
                                    "type": "Identifier"
 | 
			
		||||
                                  }
 | 
			
		||||
                                ],
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Name"
 | 
			
		||||
                              },
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Name"
 | 
			
		||||
                              "type": "CallExpression",
 | 
			
		||||
                              "type": "CallExpression"
 | 
			
		||||
                            },
 | 
			
		||||
                            "commentStart": 0,
 | 
			
		||||
                            "end": 0,
 | 
			
		||||
                            "start": 0,
 | 
			
		||||
                            "type": "CallExpression",
 | 
			
		||||
                            "type": "CallExpression"
 | 
			
		||||
                            "type": "BinaryExpression",
 | 
			
		||||
                            "type": "BinaryExpression"
 | 
			
		||||
                          }
 | 
			
		||||
                        ],
 | 
			
		||||
                        "callee": {
 | 
			
		||||
@ -2786,7 +2698,15 @@ description: Result of parsing gear.kcl
 | 
			
		||||
                            "start": 0,
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "path": [],
 | 
			
		||||
                          "path": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "name": "math",
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "start": 0,
 | 
			
		||||
                          "type": "Name"
 | 
			
		||||
                        },
 | 
			
		||||
@ -4179,7 +4099,15 @@ description: Result of parsing gear.kcl
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "path": [],
 | 
			
		||||
                              "path": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "math",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Name"
 | 
			
		||||
                            },
 | 
			
		||||
@ -4243,7 +4171,15 @@ description: Result of parsing gear.kcl
 | 
			
		||||
                                "start": 0,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "path": [],
 | 
			
		||||
                              "path": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "commentStart": 0,
 | 
			
		||||
                                  "end": 0,
 | 
			
		||||
                                  "name": "math",
 | 
			
		||||
                                  "start": 0,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Name"
 | 
			
		||||
                            },
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -30,389 +30,389 @@ flowchart LR
 | 
			
		||||
    303[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path34 [Path]
 | 
			
		||||
    34["Path<br>[1985, 2047, 0]"]
 | 
			
		||||
    87["Segment<br>[2055, 2106, 0]"]
 | 
			
		||||
    107["Segment<br>[2114, 2188, 0]"]
 | 
			
		||||
    116["Segment<br>[2196, 2235, 0]"]
 | 
			
		||||
    134["Segment<br>[2243, 2350, 0]"]
 | 
			
		||||
    155["Segment<br>[2358, 2397, 0]"]
 | 
			
		||||
    189["Segment<br>[2405, 2522, 0]"]
 | 
			
		||||
    198["Segment<br>[2530, 2569, 0]"]
 | 
			
		||||
    216["Segment<br>[2577, 2662, 0]"]
 | 
			
		||||
    242["Segment<br>[2670, 2677, 0]"]
 | 
			
		||||
    34["Path<br>[1991, 2053, 0]"]
 | 
			
		||||
    87["Segment<br>[2061, 2112, 0]"]
 | 
			
		||||
    107["Segment<br>[2120, 2194, 0]"]
 | 
			
		||||
    116["Segment<br>[2202, 2241, 0]"]
 | 
			
		||||
    134["Segment<br>[2249, 2356, 0]"]
 | 
			
		||||
    155["Segment<br>[2364, 2403, 0]"]
 | 
			
		||||
    189["Segment<br>[2411, 2528, 0]"]
 | 
			
		||||
    198["Segment<br>[2536, 2575, 0]"]
 | 
			
		||||
    216["Segment<br>[2583, 2668, 0]"]
 | 
			
		||||
    242["Segment<br>[2676, 2683, 0]"]
 | 
			
		||||
    290[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path35 [Path]
 | 
			
		||||
    35["Path<br>[1985, 2047, 0]"]
 | 
			
		||||
    88["Segment<br>[2055, 2106, 0]"]
 | 
			
		||||
    101["Segment<br>[2114, 2188, 0]"]
 | 
			
		||||
    113["Segment<br>[2196, 2235, 0]"]
 | 
			
		||||
    152["Segment<br>[2243, 2350, 0]"]
 | 
			
		||||
    171["Segment<br>[2358, 2397, 0]"]
 | 
			
		||||
    191["Segment<br>[2405, 2522, 0]"]
 | 
			
		||||
    197["Segment<br>[2530, 2569, 0]"]
 | 
			
		||||
    217["Segment<br>[2577, 2662, 0]"]
 | 
			
		||||
    241["Segment<br>[2670, 2677, 0]"]
 | 
			
		||||
    35["Path<br>[1991, 2053, 0]"]
 | 
			
		||||
    88["Segment<br>[2061, 2112, 0]"]
 | 
			
		||||
    101["Segment<br>[2120, 2194, 0]"]
 | 
			
		||||
    113["Segment<br>[2202, 2241, 0]"]
 | 
			
		||||
    152["Segment<br>[2249, 2356, 0]"]
 | 
			
		||||
    171["Segment<br>[2364, 2403, 0]"]
 | 
			
		||||
    191["Segment<br>[2411, 2528, 0]"]
 | 
			
		||||
    197["Segment<br>[2536, 2575, 0]"]
 | 
			
		||||
    217["Segment<br>[2583, 2668, 0]"]
 | 
			
		||||
    241["Segment<br>[2676, 2683, 0]"]
 | 
			
		||||
    291[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path36 [Path]
 | 
			
		||||
    36["Path<br>[1985, 2047, 0]"]
 | 
			
		||||
    74["Segment<br>[2055, 2106, 0]"]
 | 
			
		||||
    98["Segment<br>[2114, 2188, 0]"]
 | 
			
		||||
    117["Segment<br>[2196, 2235, 0]"]
 | 
			
		||||
    141["Segment<br>[2243, 2350, 0]"]
 | 
			
		||||
    170["Segment<br>[2358, 2397, 0]"]
 | 
			
		||||
    177["Segment<br>[2405, 2522, 0]"]
 | 
			
		||||
    215["Segment<br>[2530, 2569, 0]"]
 | 
			
		||||
    219["Segment<br>[2577, 2662, 0]"]
 | 
			
		||||
    254["Segment<br>[2670, 2677, 0]"]
 | 
			
		||||
    36["Path<br>[1991, 2053, 0]"]
 | 
			
		||||
    74["Segment<br>[2061, 2112, 0]"]
 | 
			
		||||
    98["Segment<br>[2120, 2194, 0]"]
 | 
			
		||||
    117["Segment<br>[2202, 2241, 0]"]
 | 
			
		||||
    141["Segment<br>[2249, 2356, 0]"]
 | 
			
		||||
    170["Segment<br>[2364, 2403, 0]"]
 | 
			
		||||
    177["Segment<br>[2411, 2528, 0]"]
 | 
			
		||||
    215["Segment<br>[2536, 2575, 0]"]
 | 
			
		||||
    219["Segment<br>[2583, 2668, 0]"]
 | 
			
		||||
    254["Segment<br>[2676, 2683, 0]"]
 | 
			
		||||
    293[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path37 [Path]
 | 
			
		||||
    37["Path<br>[1985, 2047, 0]"]
 | 
			
		||||
    76["Segment<br>[2055, 2106, 0]"]
 | 
			
		||||
    108["Segment<br>[2114, 2188, 0]"]
 | 
			
		||||
    130["Segment<br>[2196, 2235, 0]"]
 | 
			
		||||
    147["Segment<br>[2243, 2350, 0]"]
 | 
			
		||||
    169["Segment<br>[2358, 2397, 0]"]
 | 
			
		||||
    190["Segment<br>[2405, 2522, 0]"]
 | 
			
		||||
    201["Segment<br>[2530, 2569, 0]"]
 | 
			
		||||
    228["Segment<br>[2577, 2662, 0]"]
 | 
			
		||||
    253["Segment<br>[2670, 2677, 0]"]
 | 
			
		||||
    37["Path<br>[1991, 2053, 0]"]
 | 
			
		||||
    76["Segment<br>[2061, 2112, 0]"]
 | 
			
		||||
    108["Segment<br>[2120, 2194, 0]"]
 | 
			
		||||
    130["Segment<br>[2202, 2241, 0]"]
 | 
			
		||||
    147["Segment<br>[2249, 2356, 0]"]
 | 
			
		||||
    169["Segment<br>[2364, 2403, 0]"]
 | 
			
		||||
    190["Segment<br>[2411, 2528, 0]"]
 | 
			
		||||
    201["Segment<br>[2536, 2575, 0]"]
 | 
			
		||||
    228["Segment<br>[2583, 2668, 0]"]
 | 
			
		||||
    253["Segment<br>[2676, 2683, 0]"]
 | 
			
		||||
    294[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path38 [Path]
 | 
			
		||||
    38["Path<br>[1985, 2047, 0]"]
 | 
			
		||||
    84["Segment<br>[2055, 2106, 0]"]
 | 
			
		||||
    96["Segment<br>[2114, 2188, 0]"]
 | 
			
		||||
    112["Segment<br>[2196, 2235, 0]"]
 | 
			
		||||
    133["Segment<br>[2243, 2350, 0]"]
 | 
			
		||||
    157["Segment<br>[2358, 2397, 0]"]
 | 
			
		||||
    186["Segment<br>[2405, 2522, 0]"]
 | 
			
		||||
    209["Segment<br>[2530, 2569, 0]"]
 | 
			
		||||
    224["Segment<br>[2577, 2662, 0]"]
 | 
			
		||||
    243["Segment<br>[2670, 2677, 0]"]
 | 
			
		||||
    38["Path<br>[1991, 2053, 0]"]
 | 
			
		||||
    84["Segment<br>[2061, 2112, 0]"]
 | 
			
		||||
    96["Segment<br>[2120, 2194, 0]"]
 | 
			
		||||
    112["Segment<br>[2202, 2241, 0]"]
 | 
			
		||||
    133["Segment<br>[2249, 2356, 0]"]
 | 
			
		||||
    157["Segment<br>[2364, 2403, 0]"]
 | 
			
		||||
    186["Segment<br>[2411, 2528, 0]"]
 | 
			
		||||
    209["Segment<br>[2536, 2575, 0]"]
 | 
			
		||||
    224["Segment<br>[2583, 2668, 0]"]
 | 
			
		||||
    243["Segment<br>[2676, 2683, 0]"]
 | 
			
		||||
    295[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path39 [Path]
 | 
			
		||||
    39["Path<br>[1985, 2047, 0]"]
 | 
			
		||||
    78["Segment<br>[2055, 2106, 0]"]
 | 
			
		||||
    110["Segment<br>[2114, 2188, 0]"]
 | 
			
		||||
    118["Segment<br>[2196, 2235, 0]"]
 | 
			
		||||
    145["Segment<br>[2243, 2350, 0]"]
 | 
			
		||||
    166["Segment<br>[2358, 2397, 0]"]
 | 
			
		||||
    188["Segment<br>[2405, 2522, 0]"]
 | 
			
		||||
    202["Segment<br>[2530, 2569, 0]"]
 | 
			
		||||
    218["Segment<br>[2577, 2662, 0]"]
 | 
			
		||||
    245["Segment<br>[2670, 2677, 0]"]
 | 
			
		||||
    39["Path<br>[1991, 2053, 0]"]
 | 
			
		||||
    78["Segment<br>[2061, 2112, 0]"]
 | 
			
		||||
    110["Segment<br>[2120, 2194, 0]"]
 | 
			
		||||
    118["Segment<br>[2202, 2241, 0]"]
 | 
			
		||||
    145["Segment<br>[2249, 2356, 0]"]
 | 
			
		||||
    166["Segment<br>[2364, 2403, 0]"]
 | 
			
		||||
    188["Segment<br>[2411, 2528, 0]"]
 | 
			
		||||
    202["Segment<br>[2536, 2575, 0]"]
 | 
			
		||||
    218["Segment<br>[2583, 2668, 0]"]
 | 
			
		||||
    245["Segment<br>[2676, 2683, 0]"]
 | 
			
		||||
    296[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path40 [Path]
 | 
			
		||||
    40["Path<br>[1985, 2047, 0]"]
 | 
			
		||||
    73["Segment<br>[2055, 2106, 0]"]
 | 
			
		||||
    95["Segment<br>[2114, 2188, 0]"]
 | 
			
		||||
    128["Segment<br>[2196, 2235, 0]"]
 | 
			
		||||
    148["Segment<br>[2243, 2350, 0]"]
 | 
			
		||||
    172["Segment<br>[2358, 2397, 0]"]
 | 
			
		||||
    178["Segment<br>[2405, 2522, 0]"]
 | 
			
		||||
    207["Segment<br>[2530, 2569, 0]"]
 | 
			
		||||
    234["Segment<br>[2577, 2662, 0]"]
 | 
			
		||||
    251["Segment<br>[2670, 2677, 0]"]
 | 
			
		||||
    40["Path<br>[1991, 2053, 0]"]
 | 
			
		||||
    73["Segment<br>[2061, 2112, 0]"]
 | 
			
		||||
    95["Segment<br>[2120, 2194, 0]"]
 | 
			
		||||
    128["Segment<br>[2202, 2241, 0]"]
 | 
			
		||||
    148["Segment<br>[2249, 2356, 0]"]
 | 
			
		||||
    172["Segment<br>[2364, 2403, 0]"]
 | 
			
		||||
    178["Segment<br>[2411, 2528, 0]"]
 | 
			
		||||
    207["Segment<br>[2536, 2575, 0]"]
 | 
			
		||||
    234["Segment<br>[2583, 2668, 0]"]
 | 
			
		||||
    251["Segment<br>[2676, 2683, 0]"]
 | 
			
		||||
    297[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path41 [Path]
 | 
			
		||||
    41["Path<br>[1985, 2047, 0]"]
 | 
			
		||||
    83["Segment<br>[2055, 2106, 0]"]
 | 
			
		||||
    106["Segment<br>[2114, 2188, 0]"]
 | 
			
		||||
    125["Segment<br>[2196, 2235, 0]"]
 | 
			
		||||
    151["Segment<br>[2243, 2350, 0]"]
 | 
			
		||||
    160["Segment<br>[2358, 2397, 0]"]
 | 
			
		||||
    176["Segment<br>[2405, 2522, 0]"]
 | 
			
		||||
    204["Segment<br>[2530, 2569, 0]"]
 | 
			
		||||
    235["Segment<br>[2577, 2662, 0]"]
 | 
			
		||||
    248["Segment<br>[2670, 2677, 0]"]
 | 
			
		||||
    41["Path<br>[1991, 2053, 0]"]
 | 
			
		||||
    83["Segment<br>[2061, 2112, 0]"]
 | 
			
		||||
    106["Segment<br>[2120, 2194, 0]"]
 | 
			
		||||
    125["Segment<br>[2202, 2241, 0]"]
 | 
			
		||||
    151["Segment<br>[2249, 2356, 0]"]
 | 
			
		||||
    160["Segment<br>[2364, 2403, 0]"]
 | 
			
		||||
    176["Segment<br>[2411, 2528, 0]"]
 | 
			
		||||
    204["Segment<br>[2536, 2575, 0]"]
 | 
			
		||||
    235["Segment<br>[2583, 2668, 0]"]
 | 
			
		||||
    248["Segment<br>[2676, 2683, 0]"]
 | 
			
		||||
    298[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path42 [Path]
 | 
			
		||||
    42["Path<br>[1985, 2047, 0]"]
 | 
			
		||||
    86["Segment<br>[2055, 2106, 0]"]
 | 
			
		||||
    102["Segment<br>[2114, 2188, 0]"]
 | 
			
		||||
    119["Segment<br>[2196, 2235, 0]"]
 | 
			
		||||
    150["Segment<br>[2243, 2350, 0]"]
 | 
			
		||||
    164["Segment<br>[2358, 2397, 0]"]
 | 
			
		||||
    174["Segment<br>[2405, 2522, 0]"]
 | 
			
		||||
    200["Segment<br>[2530, 2569, 0]"]
 | 
			
		||||
    226["Segment<br>[2577, 2662, 0]"]
 | 
			
		||||
    246["Segment<br>[2670, 2677, 0]"]
 | 
			
		||||
    42["Path<br>[1991, 2053, 0]"]
 | 
			
		||||
    86["Segment<br>[2061, 2112, 0]"]
 | 
			
		||||
    102["Segment<br>[2120, 2194, 0]"]
 | 
			
		||||
    119["Segment<br>[2202, 2241, 0]"]
 | 
			
		||||
    150["Segment<br>[2249, 2356, 0]"]
 | 
			
		||||
    164["Segment<br>[2364, 2403, 0]"]
 | 
			
		||||
    174["Segment<br>[2411, 2528, 0]"]
 | 
			
		||||
    200["Segment<br>[2536, 2575, 0]"]
 | 
			
		||||
    226["Segment<br>[2583, 2668, 0]"]
 | 
			
		||||
    246["Segment<br>[2676, 2683, 0]"]
 | 
			
		||||
    300[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path43 [Path]
 | 
			
		||||
    43["Path<br>[1985, 2047, 0]"]
 | 
			
		||||
    77["Segment<br>[2055, 2106, 0]"]
 | 
			
		||||
    109["Segment<br>[2114, 2188, 0]"]
 | 
			
		||||
    114["Segment<br>[2196, 2235, 0]"]
 | 
			
		||||
    142["Segment<br>[2243, 2350, 0]"]
 | 
			
		||||
    153["Segment<br>[2358, 2397, 0]"]
 | 
			
		||||
    182["Segment<br>[2405, 2522, 0]"]
 | 
			
		||||
    199["Segment<br>[2530, 2569, 0]"]
 | 
			
		||||
    230["Segment<br>[2577, 2662, 0]"]
 | 
			
		||||
    252["Segment<br>[2670, 2677, 0]"]
 | 
			
		||||
    43["Path<br>[1991, 2053, 0]"]
 | 
			
		||||
    77["Segment<br>[2061, 2112, 0]"]
 | 
			
		||||
    109["Segment<br>[2120, 2194, 0]"]
 | 
			
		||||
    114["Segment<br>[2202, 2241, 0]"]
 | 
			
		||||
    142["Segment<br>[2249, 2356, 0]"]
 | 
			
		||||
    153["Segment<br>[2364, 2403, 0]"]
 | 
			
		||||
    182["Segment<br>[2411, 2528, 0]"]
 | 
			
		||||
    199["Segment<br>[2536, 2575, 0]"]
 | 
			
		||||
    230["Segment<br>[2583, 2668, 0]"]
 | 
			
		||||
    252["Segment<br>[2676, 2683, 0]"]
 | 
			
		||||
    301[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path44 [Path]
 | 
			
		||||
    44["Path<br>[1985, 2047, 0]"]
 | 
			
		||||
    69["Segment<br>[2055, 2106, 0]"]
 | 
			
		||||
    91["Segment<br>[2114, 2188, 0]"]
 | 
			
		||||
    127["Segment<br>[2196, 2235, 0]"]
 | 
			
		||||
    144["Segment<br>[2243, 2350, 0]"]
 | 
			
		||||
    163["Segment<br>[2358, 2397, 0]"]
 | 
			
		||||
    185["Segment<br>[2405, 2522, 0]"]
 | 
			
		||||
    210["Segment<br>[2530, 2569, 0]"]
 | 
			
		||||
    233["Segment<br>[2577, 2662, 0]"]
 | 
			
		||||
    256["Segment<br>[2670, 2677, 0]"]
 | 
			
		||||
    44["Path<br>[1991, 2053, 0]"]
 | 
			
		||||
    69["Segment<br>[2061, 2112, 0]"]
 | 
			
		||||
    91["Segment<br>[2120, 2194, 0]"]
 | 
			
		||||
    127["Segment<br>[2202, 2241, 0]"]
 | 
			
		||||
    144["Segment<br>[2249, 2356, 0]"]
 | 
			
		||||
    163["Segment<br>[2364, 2403, 0]"]
 | 
			
		||||
    185["Segment<br>[2411, 2528, 0]"]
 | 
			
		||||
    210["Segment<br>[2536, 2575, 0]"]
 | 
			
		||||
    233["Segment<br>[2583, 2668, 0]"]
 | 
			
		||||
    256["Segment<br>[2676, 2683, 0]"]
 | 
			
		||||
    305[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path45 [Path]
 | 
			
		||||
    45["Path<br>[1985, 2047, 0]"]
 | 
			
		||||
    80["Segment<br>[2055, 2106, 0]"]
 | 
			
		||||
    93["Segment<br>[2114, 2188, 0]"]
 | 
			
		||||
    124["Segment<br>[2196, 2235, 0]"]
 | 
			
		||||
    139["Segment<br>[2243, 2350, 0]"]
 | 
			
		||||
    168["Segment<br>[2358, 2397, 0]"]
 | 
			
		||||
    184["Segment<br>[2405, 2522, 0]"]
 | 
			
		||||
    195["Segment<br>[2530, 2569, 0]"]
 | 
			
		||||
    222["Segment<br>[2577, 2662, 0]"]
 | 
			
		||||
    240["Segment<br>[2670, 2677, 0]"]
 | 
			
		||||
    45["Path<br>[1991, 2053, 0]"]
 | 
			
		||||
    80["Segment<br>[2061, 2112, 0]"]
 | 
			
		||||
    93["Segment<br>[2120, 2194, 0]"]
 | 
			
		||||
    124["Segment<br>[2202, 2241, 0]"]
 | 
			
		||||
    139["Segment<br>[2249, 2356, 0]"]
 | 
			
		||||
    168["Segment<br>[2364, 2403, 0]"]
 | 
			
		||||
    184["Segment<br>[2411, 2528, 0]"]
 | 
			
		||||
    195["Segment<br>[2536, 2575, 0]"]
 | 
			
		||||
    222["Segment<br>[2583, 2668, 0]"]
 | 
			
		||||
    240["Segment<br>[2676, 2683, 0]"]
 | 
			
		||||
    306[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path46 [Path]
 | 
			
		||||
    46["Path<br>[1985, 2047, 0]"]
 | 
			
		||||
    70["Segment<br>[2055, 2106, 0]"]
 | 
			
		||||
    103["Segment<br>[2114, 2188, 0]"]
 | 
			
		||||
    123["Segment<br>[2196, 2235, 0]"]
 | 
			
		||||
    143["Segment<br>[2243, 2350, 0]"]
 | 
			
		||||
    173["Segment<br>[2358, 2397, 0]"]
 | 
			
		||||
    179["Segment<br>[2405, 2522, 0]"]
 | 
			
		||||
    205["Segment<br>[2530, 2569, 0]"]
 | 
			
		||||
    220["Segment<br>[2577, 2662, 0]"]
 | 
			
		||||
    237["Segment<br>[2670, 2677, 0]"]
 | 
			
		||||
    46["Path<br>[1991, 2053, 0]"]
 | 
			
		||||
    70["Segment<br>[2061, 2112, 0]"]
 | 
			
		||||
    103["Segment<br>[2120, 2194, 0]"]
 | 
			
		||||
    123["Segment<br>[2202, 2241, 0]"]
 | 
			
		||||
    143["Segment<br>[2249, 2356, 0]"]
 | 
			
		||||
    173["Segment<br>[2364, 2403, 0]"]
 | 
			
		||||
    179["Segment<br>[2411, 2528, 0]"]
 | 
			
		||||
    205["Segment<br>[2536, 2575, 0]"]
 | 
			
		||||
    220["Segment<br>[2583, 2668, 0]"]
 | 
			
		||||
    237["Segment<br>[2676, 2683, 0]"]
 | 
			
		||||
    307[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path47 [Path]
 | 
			
		||||
    47["Path<br>[1985, 2047, 0]"]
 | 
			
		||||
    82["Segment<br>[2055, 2106, 0]"]
 | 
			
		||||
    97["Segment<br>[2114, 2188, 0]"]
 | 
			
		||||
    126["Segment<br>[2196, 2235, 0]"]
 | 
			
		||||
    137["Segment<br>[2243, 2350, 0]"]
 | 
			
		||||
    159["Segment<br>[2358, 2397, 0]"]
 | 
			
		||||
    180["Segment<br>[2405, 2522, 0]"]
 | 
			
		||||
    196["Segment<br>[2530, 2569, 0]"]
 | 
			
		||||
    225["Segment<br>[2577, 2662, 0]"]
 | 
			
		||||
    255["Segment<br>[2670, 2677, 0]"]
 | 
			
		||||
    47["Path<br>[1991, 2053, 0]"]
 | 
			
		||||
    82["Segment<br>[2061, 2112, 0]"]
 | 
			
		||||
    97["Segment<br>[2120, 2194, 0]"]
 | 
			
		||||
    126["Segment<br>[2202, 2241, 0]"]
 | 
			
		||||
    137["Segment<br>[2249, 2356, 0]"]
 | 
			
		||||
    159["Segment<br>[2364, 2403, 0]"]
 | 
			
		||||
    180["Segment<br>[2411, 2528, 0]"]
 | 
			
		||||
    196["Segment<br>[2536, 2575, 0]"]
 | 
			
		||||
    225["Segment<br>[2583, 2668, 0]"]
 | 
			
		||||
    255["Segment<br>[2676, 2683, 0]"]
 | 
			
		||||
    308[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path48 [Path]
 | 
			
		||||
    48["Path<br>[1985, 2047, 0]"]
 | 
			
		||||
    89["Segment<br>[2055, 2106, 0]"]
 | 
			
		||||
    100["Segment<br>[2114, 2188, 0]"]
 | 
			
		||||
    129["Segment<br>[2196, 2235, 0]"]
 | 
			
		||||
    135["Segment<br>[2243, 2350, 0]"]
 | 
			
		||||
    158["Segment<br>[2358, 2397, 0]"]
 | 
			
		||||
    183["Segment<br>[2405, 2522, 0]"]
 | 
			
		||||
    211["Segment<br>[2530, 2569, 0]"]
 | 
			
		||||
    221["Segment<br>[2577, 2662, 0]"]
 | 
			
		||||
    250["Segment<br>[2670, 2677, 0]"]
 | 
			
		||||
    48["Path<br>[1991, 2053, 0]"]
 | 
			
		||||
    89["Segment<br>[2061, 2112, 0]"]
 | 
			
		||||
    100["Segment<br>[2120, 2194, 0]"]
 | 
			
		||||
    129["Segment<br>[2202, 2241, 0]"]
 | 
			
		||||
    135["Segment<br>[2249, 2356, 0]"]
 | 
			
		||||
    158["Segment<br>[2364, 2403, 0]"]
 | 
			
		||||
    183["Segment<br>[2411, 2528, 0]"]
 | 
			
		||||
    211["Segment<br>[2536, 2575, 0]"]
 | 
			
		||||
    221["Segment<br>[2583, 2668, 0]"]
 | 
			
		||||
    250["Segment<br>[2676, 2683, 0]"]
 | 
			
		||||
    309[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path49 [Path]
 | 
			
		||||
    49["Path<br>[1985, 2047, 0]"]
 | 
			
		||||
    72["Segment<br>[2055, 2106, 0]"]
 | 
			
		||||
    92["Segment<br>[2114, 2188, 0]"]
 | 
			
		||||
    115["Segment<br>[2196, 2235, 0]"]
 | 
			
		||||
    138["Segment<br>[2243, 2350, 0]"]
 | 
			
		||||
    162["Segment<br>[2358, 2397, 0]"]
 | 
			
		||||
    193["Segment<br>[2405, 2522, 0]"]
 | 
			
		||||
    203["Segment<br>[2530, 2569, 0]"]
 | 
			
		||||
    229["Segment<br>[2577, 2662, 0]"]
 | 
			
		||||
    239["Segment<br>[2670, 2677, 0]"]
 | 
			
		||||
    49["Path<br>[1991, 2053, 0]"]
 | 
			
		||||
    72["Segment<br>[2061, 2112, 0]"]
 | 
			
		||||
    92["Segment<br>[2120, 2194, 0]"]
 | 
			
		||||
    115["Segment<br>[2202, 2241, 0]"]
 | 
			
		||||
    138["Segment<br>[2249, 2356, 0]"]
 | 
			
		||||
    162["Segment<br>[2364, 2403, 0]"]
 | 
			
		||||
    193["Segment<br>[2411, 2528, 0]"]
 | 
			
		||||
    203["Segment<br>[2536, 2575, 0]"]
 | 
			
		||||
    229["Segment<br>[2583, 2668, 0]"]
 | 
			
		||||
    239["Segment<br>[2676, 2683, 0]"]
 | 
			
		||||
    310[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path50 [Path]
 | 
			
		||||
    50["Path<br>[1985, 2047, 0]"]
 | 
			
		||||
    75["Segment<br>[2055, 2106, 0]"]
 | 
			
		||||
    99["Segment<br>[2114, 2188, 0]"]
 | 
			
		||||
    121["Segment<br>[2196, 2235, 0]"]
 | 
			
		||||
    140["Segment<br>[2243, 2350, 0]"]
 | 
			
		||||
    167["Segment<br>[2358, 2397, 0]"]
 | 
			
		||||
    181["Segment<br>[2405, 2522, 0]"]
 | 
			
		||||
    206["Segment<br>[2530, 2569, 0]"]
 | 
			
		||||
    223["Segment<br>[2577, 2662, 0]"]
 | 
			
		||||
    238["Segment<br>[2670, 2677, 0]"]
 | 
			
		||||
    50["Path<br>[1991, 2053, 0]"]
 | 
			
		||||
    75["Segment<br>[2061, 2112, 0]"]
 | 
			
		||||
    99["Segment<br>[2120, 2194, 0]"]
 | 
			
		||||
    121["Segment<br>[2202, 2241, 0]"]
 | 
			
		||||
    140["Segment<br>[2249, 2356, 0]"]
 | 
			
		||||
    167["Segment<br>[2364, 2403, 0]"]
 | 
			
		||||
    181["Segment<br>[2411, 2528, 0]"]
 | 
			
		||||
    206["Segment<br>[2536, 2575, 0]"]
 | 
			
		||||
    223["Segment<br>[2583, 2668, 0]"]
 | 
			
		||||
    238["Segment<br>[2676, 2683, 0]"]
 | 
			
		||||
    313[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path51 [Path]
 | 
			
		||||
    51["Path<br>[1985, 2047, 0]"]
 | 
			
		||||
    79["Segment<br>[2055, 2106, 0]"]
 | 
			
		||||
    104["Segment<br>[2114, 2188, 0]"]
 | 
			
		||||
    131["Segment<br>[2196, 2235, 0]"]
 | 
			
		||||
    149["Segment<br>[2243, 2350, 0]"]
 | 
			
		||||
    156["Segment<br>[2358, 2397, 0]"]
 | 
			
		||||
    175["Segment<br>[2405, 2522, 0]"]
 | 
			
		||||
    214["Segment<br>[2530, 2569, 0]"]
 | 
			
		||||
    227["Segment<br>[2577, 2662, 0]"]
 | 
			
		||||
    244["Segment<br>[2670, 2677, 0]"]
 | 
			
		||||
    51["Path<br>[1991, 2053, 0]"]
 | 
			
		||||
    79["Segment<br>[2061, 2112, 0]"]
 | 
			
		||||
    104["Segment<br>[2120, 2194, 0]"]
 | 
			
		||||
    131["Segment<br>[2202, 2241, 0]"]
 | 
			
		||||
    149["Segment<br>[2249, 2356, 0]"]
 | 
			
		||||
    156["Segment<br>[2364, 2403, 0]"]
 | 
			
		||||
    175["Segment<br>[2411, 2528, 0]"]
 | 
			
		||||
    214["Segment<br>[2536, 2575, 0]"]
 | 
			
		||||
    227["Segment<br>[2583, 2668, 0]"]
 | 
			
		||||
    244["Segment<br>[2676, 2683, 0]"]
 | 
			
		||||
    315[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path52 [Path]
 | 
			
		||||
    52["Path<br>[1985, 2047, 0]"]
 | 
			
		||||
    85["Segment<br>[2055, 2106, 0]"]
 | 
			
		||||
    105["Segment<br>[2114, 2188, 0]"]
 | 
			
		||||
    120["Segment<br>[2196, 2235, 0]"]
 | 
			
		||||
    132["Segment<br>[2243, 2350, 0]"]
 | 
			
		||||
    165["Segment<br>[2358, 2397, 0]"]
 | 
			
		||||
    187["Segment<br>[2405, 2522, 0]"]
 | 
			
		||||
    208["Segment<br>[2530, 2569, 0]"]
 | 
			
		||||
    231["Segment<br>[2577, 2662, 0]"]
 | 
			
		||||
    249["Segment<br>[2670, 2677, 0]"]
 | 
			
		||||
    52["Path<br>[1991, 2053, 0]"]
 | 
			
		||||
    85["Segment<br>[2061, 2112, 0]"]
 | 
			
		||||
    105["Segment<br>[2120, 2194, 0]"]
 | 
			
		||||
    120["Segment<br>[2202, 2241, 0]"]
 | 
			
		||||
    132["Segment<br>[2249, 2356, 0]"]
 | 
			
		||||
    165["Segment<br>[2364, 2403, 0]"]
 | 
			
		||||
    187["Segment<br>[2411, 2528, 0]"]
 | 
			
		||||
    208["Segment<br>[2536, 2575, 0]"]
 | 
			
		||||
    231["Segment<br>[2583, 2668, 0]"]
 | 
			
		||||
    249["Segment<br>[2676, 2683, 0]"]
 | 
			
		||||
    318[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path53 [Path]
 | 
			
		||||
    53["Path<br>[1985, 2047, 0]"]
 | 
			
		||||
    71["Segment<br>[2055, 2106, 0]"]
 | 
			
		||||
    94["Segment<br>[2114, 2188, 0]"]
 | 
			
		||||
    122["Segment<br>[2196, 2235, 0]"]
 | 
			
		||||
    146["Segment<br>[2243, 2350, 0]"]
 | 
			
		||||
    154["Segment<br>[2358, 2397, 0]"]
 | 
			
		||||
    192["Segment<br>[2405, 2522, 0]"]
 | 
			
		||||
    212["Segment<br>[2530, 2569, 0]"]
 | 
			
		||||
    232["Segment<br>[2577, 2662, 0]"]
 | 
			
		||||
    247["Segment<br>[2670, 2677, 0]"]
 | 
			
		||||
    53["Path<br>[1991, 2053, 0]"]
 | 
			
		||||
    71["Segment<br>[2061, 2112, 0]"]
 | 
			
		||||
    94["Segment<br>[2120, 2194, 0]"]
 | 
			
		||||
    122["Segment<br>[2202, 2241, 0]"]
 | 
			
		||||
    146["Segment<br>[2249, 2356, 0]"]
 | 
			
		||||
    154["Segment<br>[2364, 2403, 0]"]
 | 
			
		||||
    192["Segment<br>[2411, 2528, 0]"]
 | 
			
		||||
    212["Segment<br>[2536, 2575, 0]"]
 | 
			
		||||
    232["Segment<br>[2583, 2668, 0]"]
 | 
			
		||||
    247["Segment<br>[2676, 2683, 0]"]
 | 
			
		||||
    319[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path54 [Path]
 | 
			
		||||
    54["Path<br>[1985, 2047, 0]"]
 | 
			
		||||
    81["Segment<br>[2055, 2106, 0]"]
 | 
			
		||||
    90["Segment<br>[2114, 2188, 0]"]
 | 
			
		||||
    111["Segment<br>[2196, 2235, 0]"]
 | 
			
		||||
    136["Segment<br>[2243, 2350, 0]"]
 | 
			
		||||
    161["Segment<br>[2358, 2397, 0]"]
 | 
			
		||||
    194["Segment<br>[2405, 2522, 0]"]
 | 
			
		||||
    213["Segment<br>[2530, 2569, 0]"]
 | 
			
		||||
    236["Segment<br>[2577, 2662, 0]"]
 | 
			
		||||
    257["Segment<br>[2670, 2677, 0]"]
 | 
			
		||||
    54["Path<br>[1991, 2053, 0]"]
 | 
			
		||||
    81["Segment<br>[2061, 2112, 0]"]
 | 
			
		||||
    90["Segment<br>[2120, 2194, 0]"]
 | 
			
		||||
    111["Segment<br>[2202, 2241, 0]"]
 | 
			
		||||
    136["Segment<br>[2249, 2356, 0]"]
 | 
			
		||||
    161["Segment<br>[2364, 2403, 0]"]
 | 
			
		||||
    194["Segment<br>[2411, 2528, 0]"]
 | 
			
		||||
    213["Segment<br>[2536, 2575, 0]"]
 | 
			
		||||
    236["Segment<br>[2583, 2668, 0]"]
 | 
			
		||||
    257["Segment<br>[2676, 2683, 0]"]
 | 
			
		||||
    320[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path55 [Path]
 | 
			
		||||
    55["Path<br>[4901, 4988, 0]"]
 | 
			
		||||
    258["Segment<br>[4996, 5025, 0]"]
 | 
			
		||||
    259["Segment<br>[5033, 5061, 0]"]
 | 
			
		||||
    260["Segment<br>[5069, 5147, 0]"]
 | 
			
		||||
    261["Segment<br>[5155, 5202, 0]"]
 | 
			
		||||
    262["Segment<br>[5210, 5238, 0]"]
 | 
			
		||||
    263["Segment<br>[5246, 5275, 0]"]
 | 
			
		||||
    264["Segment<br>[5283, 5312, 0]"]
 | 
			
		||||
    265["Segment<br>[5320, 5386, 0]"]
 | 
			
		||||
    266["Segment<br>[5394, 5422, 0]"]
 | 
			
		||||
    267["Segment<br>[5430, 5459, 0]"]
 | 
			
		||||
    268["Segment<br>[5467, 5529, 0]"]
 | 
			
		||||
    269["Segment<br>[5537, 5565, 0]"]
 | 
			
		||||
    270["Segment<br>[5573, 5607, 0]"]
 | 
			
		||||
    271["Segment<br>[5615, 5645, 0]"]
 | 
			
		||||
    272["Segment<br>[5653, 5721, 0]"]
 | 
			
		||||
    273["Segment<br>[5729, 5736, 0]"]
 | 
			
		||||
    55["Path<br>[4913, 5000, 0]"]
 | 
			
		||||
    258["Segment<br>[5008, 5037, 0]"]
 | 
			
		||||
    259["Segment<br>[5045, 5073, 0]"]
 | 
			
		||||
    260["Segment<br>[5081, 5159, 0]"]
 | 
			
		||||
    261["Segment<br>[5167, 5214, 0]"]
 | 
			
		||||
    262["Segment<br>[5222, 5250, 0]"]
 | 
			
		||||
    263["Segment<br>[5258, 5287, 0]"]
 | 
			
		||||
    264["Segment<br>[5295, 5324, 0]"]
 | 
			
		||||
    265["Segment<br>[5332, 5398, 0]"]
 | 
			
		||||
    266["Segment<br>[5406, 5434, 0]"]
 | 
			
		||||
    267["Segment<br>[5442, 5471, 0]"]
 | 
			
		||||
    268["Segment<br>[5479, 5541, 0]"]
 | 
			
		||||
    269["Segment<br>[5549, 5577, 0]"]
 | 
			
		||||
    270["Segment<br>[5585, 5619, 0]"]
 | 
			
		||||
    271["Segment<br>[5627, 5657, 0]"]
 | 
			
		||||
    272["Segment<br>[5665, 5733, 0]"]
 | 
			
		||||
    273["Segment<br>[5741, 5748, 0]"]
 | 
			
		||||
    314[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path56 [Path]
 | 
			
		||||
    56["Path<br>[5936, 6034, 0]"]
 | 
			
		||||
    274["Segment<br>[6042, 6120, 0]"]
 | 
			
		||||
    277["Segment<br>[6128, 6175, 0]"]
 | 
			
		||||
    279["Segment<br>[6183, 6263, 0]"]
 | 
			
		||||
    281["Segment<br>[6271, 6278, 0]"]
 | 
			
		||||
    56["Path<br>[5948, 6046, 0]"]
 | 
			
		||||
    274["Segment<br>[6054, 6132, 0]"]
 | 
			
		||||
    277["Segment<br>[6140, 6187, 0]"]
 | 
			
		||||
    279["Segment<br>[6195, 6275, 0]"]
 | 
			
		||||
    281["Segment<br>[6283, 6290, 0]"]
 | 
			
		||||
    299[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path57 [Path]
 | 
			
		||||
    57["Path<br>[5936, 6034, 0]"]
 | 
			
		||||
    275["Segment<br>[6042, 6120, 0]"]
 | 
			
		||||
    276["Segment<br>[6128, 6175, 0]"]
 | 
			
		||||
    278["Segment<br>[6183, 6263, 0]"]
 | 
			
		||||
    280["Segment<br>[6271, 6278, 0]"]
 | 
			
		||||
    57["Path<br>[5948, 6046, 0]"]
 | 
			
		||||
    275["Segment<br>[6054, 6132, 0]"]
 | 
			
		||||
    276["Segment<br>[6140, 6187, 0]"]
 | 
			
		||||
    278["Segment<br>[6195, 6275, 0]"]
 | 
			
		||||
    280["Segment<br>[6283, 6290, 0]"]
 | 
			
		||||
    316[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path58 [Path]
 | 
			
		||||
    58["Path<br>[6386, 6483, 0]"]
 | 
			
		||||
    282["Segment<br>[6491, 6569, 0]"]
 | 
			
		||||
    284["Segment<br>[6577, 6625, 0]"]
 | 
			
		||||
    286["Segment<br>[6633, 6713, 0]"]
 | 
			
		||||
    289["Segment<br>[6721, 6728, 0]"]
 | 
			
		||||
    58["Path<br>[6398, 6495, 0]"]
 | 
			
		||||
    282["Segment<br>[6503, 6581, 0]"]
 | 
			
		||||
    284["Segment<br>[6589, 6637, 0]"]
 | 
			
		||||
    286["Segment<br>[6645, 6725, 0]"]
 | 
			
		||||
    289["Segment<br>[6733, 6740, 0]"]
 | 
			
		||||
    292[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path59 [Path]
 | 
			
		||||
    59["Path<br>[6386, 6483, 0]"]
 | 
			
		||||
    283["Segment<br>[6491, 6569, 0]"]
 | 
			
		||||
    285["Segment<br>[6577, 6625, 0]"]
 | 
			
		||||
    287["Segment<br>[6633, 6713, 0]"]
 | 
			
		||||
    288["Segment<br>[6721, 6728, 0]"]
 | 
			
		||||
    59["Path<br>[6398, 6495, 0]"]
 | 
			
		||||
    283["Segment<br>[6503, 6581, 0]"]
 | 
			
		||||
    285["Segment<br>[6589, 6637, 0]"]
 | 
			
		||||
    287["Segment<br>[6645, 6725, 0]"]
 | 
			
		||||
    288["Segment<br>[6733, 6740, 0]"]
 | 
			
		||||
    311[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  1["Plane<br>[532, 549, 0]"]
 | 
			
		||||
  2["Plane<br>[1946, 1969, 0]"]
 | 
			
		||||
  3["Plane<br>[1946, 1969, 0]"]
 | 
			
		||||
  4["Plane<br>[1946, 1969, 0]"]
 | 
			
		||||
  5["Plane<br>[1946, 1969, 0]"]
 | 
			
		||||
  6["Plane<br>[1946, 1969, 0]"]
 | 
			
		||||
  7["Plane<br>[1946, 1969, 0]"]
 | 
			
		||||
  8["Plane<br>[1946, 1969, 0]"]
 | 
			
		||||
  9["Plane<br>[1946, 1969, 0]"]
 | 
			
		||||
  10["Plane<br>[1946, 1969, 0]"]
 | 
			
		||||
  11["Plane<br>[1946, 1969, 0]"]
 | 
			
		||||
  12["Plane<br>[1946, 1969, 0]"]
 | 
			
		||||
  13["Plane<br>[1946, 1969, 0]"]
 | 
			
		||||
  14["Plane<br>[1946, 1969, 0]"]
 | 
			
		||||
  15["Plane<br>[1946, 1969, 0]"]
 | 
			
		||||
  16["Plane<br>[1946, 1969, 0]"]
 | 
			
		||||
  17["Plane<br>[1946, 1969, 0]"]
 | 
			
		||||
  18["Plane<br>[1946, 1969, 0]"]
 | 
			
		||||
  19["Plane<br>[1946, 1969, 0]"]
 | 
			
		||||
  20["Plane<br>[1946, 1969, 0]"]
 | 
			
		||||
  21["Plane<br>[1946, 1969, 0]"]
 | 
			
		||||
  22["Plane<br>[1946, 1969, 0]"]
 | 
			
		||||
  23["Plane<br>[4870, 4893, 0]"]
 | 
			
		||||
  24["Plane<br>[5905, 5928, 0]"]
 | 
			
		||||
  25["Plane<br>[5905, 5928, 0]"]
 | 
			
		||||
  26["Plane<br>[6355, 6378, 0]"]
 | 
			
		||||
  27["Plane<br>[6355, 6378, 0]"]
 | 
			
		||||
  2["Plane<br>[1952, 1975, 0]"]
 | 
			
		||||
  3["Plane<br>[1952, 1975, 0]"]
 | 
			
		||||
  4["Plane<br>[1952, 1975, 0]"]
 | 
			
		||||
  5["Plane<br>[1952, 1975, 0]"]
 | 
			
		||||
  6["Plane<br>[1952, 1975, 0]"]
 | 
			
		||||
  7["Plane<br>[1952, 1975, 0]"]
 | 
			
		||||
  8["Plane<br>[1952, 1975, 0]"]
 | 
			
		||||
  9["Plane<br>[1952, 1975, 0]"]
 | 
			
		||||
  10["Plane<br>[1952, 1975, 0]"]
 | 
			
		||||
  11["Plane<br>[1952, 1975, 0]"]
 | 
			
		||||
  12["Plane<br>[1952, 1975, 0]"]
 | 
			
		||||
  13["Plane<br>[1952, 1975, 0]"]
 | 
			
		||||
  14["Plane<br>[1952, 1975, 0]"]
 | 
			
		||||
  15["Plane<br>[1952, 1975, 0]"]
 | 
			
		||||
  16["Plane<br>[1952, 1975, 0]"]
 | 
			
		||||
  17["Plane<br>[1952, 1975, 0]"]
 | 
			
		||||
  18["Plane<br>[1952, 1975, 0]"]
 | 
			
		||||
  19["Plane<br>[1952, 1975, 0]"]
 | 
			
		||||
  20["Plane<br>[1952, 1975, 0]"]
 | 
			
		||||
  21["Plane<br>[1952, 1975, 0]"]
 | 
			
		||||
  22["Plane<br>[1952, 1975, 0]"]
 | 
			
		||||
  23["Plane<br>[4882, 4905, 0]"]
 | 
			
		||||
  24["Plane<br>[5917, 5940, 0]"]
 | 
			
		||||
  25["Plane<br>[5917, 5940, 0]"]
 | 
			
		||||
  26["Plane<br>[6367, 6390, 0]"]
 | 
			
		||||
  27["Plane<br>[6367, 6390, 0]"]
 | 
			
		||||
  28["StartSketchOnFace<br>[1151, 1189, 0]"]
 | 
			
		||||
  321["Sweep Extrusion<br>[851, 873, 0]"]
 | 
			
		||||
  322["Sweep Extrusion<br>[1472, 1570, 0]"]
 | 
			
		||||
  323["Sweep Extrusion<br>[1472, 1570, 0]"]
 | 
			
		||||
  324["Sweep Extrusion<br>[1472, 1570, 0]"]
 | 
			
		||||
  325["Sweep Extrusion<br>[1472, 1570, 0]"]
 | 
			
		||||
  326["Sweep Extrusion<br>[2685, 2711, 0]"]
 | 
			
		||||
  327["Sweep Extrusion<br>[2685, 2711, 0]"]
 | 
			
		||||
  328["Sweep Extrusion<br>[2685, 2711, 0]"]
 | 
			
		||||
  329["Sweep Extrusion<br>[2685, 2711, 0]"]
 | 
			
		||||
  330["Sweep Extrusion<br>[2685, 2711, 0]"]
 | 
			
		||||
  331["Sweep Extrusion<br>[2685, 2711, 0]"]
 | 
			
		||||
  332["Sweep Extrusion<br>[2685, 2711, 0]"]
 | 
			
		||||
  333["Sweep Extrusion<br>[2685, 2711, 0]"]
 | 
			
		||||
  334["Sweep Extrusion<br>[2685, 2711, 0]"]
 | 
			
		||||
  335["Sweep Extrusion<br>[2685, 2711, 0]"]
 | 
			
		||||
  336["Sweep Extrusion<br>[2685, 2711, 0]"]
 | 
			
		||||
  337["Sweep Extrusion<br>[2685, 2711, 0]"]
 | 
			
		||||
  338["Sweep Extrusion<br>[2685, 2711, 0]"]
 | 
			
		||||
  339["Sweep Extrusion<br>[2685, 2711, 0]"]
 | 
			
		||||
  340["Sweep Extrusion<br>[2685, 2711, 0]"]
 | 
			
		||||
  341["Sweep Extrusion<br>[2685, 2711, 0]"]
 | 
			
		||||
  342["Sweep Extrusion<br>[2685, 2711, 0]"]
 | 
			
		||||
  343["Sweep Extrusion<br>[2685, 2711, 0]"]
 | 
			
		||||
  344["Sweep Extrusion<br>[2685, 2711, 0]"]
 | 
			
		||||
  345["Sweep Extrusion<br>[2685, 2711, 0]"]
 | 
			
		||||
  346["Sweep Extrusion<br>[2685, 2711, 0]"]
 | 
			
		||||
  347["Sweep Extrusion<br>[5744, 5768, 0]"]
 | 
			
		||||
  348["Sweep Extrusion<br>[6286, 6310, 0]"]
 | 
			
		||||
  349["Sweep Extrusion<br>[6286, 6310, 0]"]
 | 
			
		||||
  350["Sweep Extrusion<br>[6736, 6760, 0]"]
 | 
			
		||||
  351["Sweep Extrusion<br>[6736, 6760, 0]"]
 | 
			
		||||
  326["Sweep Extrusion<br>[2691, 2717, 0]"]
 | 
			
		||||
  327["Sweep Extrusion<br>[2691, 2717, 0]"]
 | 
			
		||||
  328["Sweep Extrusion<br>[2691, 2717, 0]"]
 | 
			
		||||
  329["Sweep Extrusion<br>[2691, 2717, 0]"]
 | 
			
		||||
  330["Sweep Extrusion<br>[2691, 2717, 0]"]
 | 
			
		||||
  331["Sweep Extrusion<br>[2691, 2717, 0]"]
 | 
			
		||||
  332["Sweep Extrusion<br>[2691, 2717, 0]"]
 | 
			
		||||
  333["Sweep Extrusion<br>[2691, 2717, 0]"]
 | 
			
		||||
  334["Sweep Extrusion<br>[2691, 2717, 0]"]
 | 
			
		||||
  335["Sweep Extrusion<br>[2691, 2717, 0]"]
 | 
			
		||||
  336["Sweep Extrusion<br>[2691, 2717, 0]"]
 | 
			
		||||
  337["Sweep Extrusion<br>[2691, 2717, 0]"]
 | 
			
		||||
  338["Sweep Extrusion<br>[2691, 2717, 0]"]
 | 
			
		||||
  339["Sweep Extrusion<br>[2691, 2717, 0]"]
 | 
			
		||||
  340["Sweep Extrusion<br>[2691, 2717, 0]"]
 | 
			
		||||
  341["Sweep Extrusion<br>[2691, 2717, 0]"]
 | 
			
		||||
  342["Sweep Extrusion<br>[2691, 2717, 0]"]
 | 
			
		||||
  343["Sweep Extrusion<br>[2691, 2717, 0]"]
 | 
			
		||||
  344["Sweep Extrusion<br>[2691, 2717, 0]"]
 | 
			
		||||
  345["Sweep Extrusion<br>[2691, 2717, 0]"]
 | 
			
		||||
  346["Sweep Extrusion<br>[2691, 2717, 0]"]
 | 
			
		||||
  347["Sweep Extrusion<br>[5756, 5780, 0]"]
 | 
			
		||||
  348["Sweep Extrusion<br>[6298, 6322, 0]"]
 | 
			
		||||
  349["Sweep Extrusion<br>[6298, 6322, 0]"]
 | 
			
		||||
  350["Sweep Extrusion<br>[6748, 6772, 0]"]
 | 
			
		||||
  351["Sweep Extrusion<br>[6748, 6772, 0]"]
 | 
			
		||||
  352[Wall]
 | 
			
		||||
  353[Wall]
 | 
			
		||||
  354[Wall]
 | 
			
		||||
 | 
			
		||||
@ -2556,7 +2556,15 @@ description: Result of parsing keyboard.kcl
 | 
			
		||||
                          "start": 0,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        "path": [],
 | 
			
		||||
                        "path": [
 | 
			
		||||
                          {
 | 
			
		||||
                            "commentStart": 0,
 | 
			
		||||
                            "end": 0,
 | 
			
		||||
                            "name": "math",
 | 
			
		||||
                            "start": 0,
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          }
 | 
			
		||||
                        ],
 | 
			
		||||
                        "start": 0,
 | 
			
		||||
                        "type": "Name"
 | 
			
		||||
                      },
 | 
			
		||||
@ -7906,7 +7914,15 @@ description: Result of parsing keyboard.kcl
 | 
			
		||||
                          "start": 0,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        "path": [],
 | 
			
		||||
                        "path": [
 | 
			
		||||
                          {
 | 
			
		||||
                            "commentStart": 0,
 | 
			
		||||
                            "end": 0,
 | 
			
		||||
                            "name": "math",
 | 
			
		||||
                            "start": 0,
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          }
 | 
			
		||||
                        ],
 | 
			
		||||
                        "start": 0,
 | 
			
		||||
                        "type": "Name"
 | 
			
		||||
                      },
 | 
			
		||||
 | 
			
		||||
@ -191,7 +191,7 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -7027,7 +7027,7 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
 | 
			
		||||
@ -44,121 +44,121 @@ flowchart LR
 | 
			
		||||
    107[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path14 [Path]
 | 
			
		||||
    14["Path<br>[865, 1054, 10]"]
 | 
			
		||||
    47["Segment<br>[865, 1054, 10]"]
 | 
			
		||||
    14["Path<br>[865, 1030, 10]"]
 | 
			
		||||
    47["Segment<br>[865, 1030, 10]"]
 | 
			
		||||
    88[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path15 [Path]
 | 
			
		||||
    15["Path<br>[1263, 1424, 10]"]
 | 
			
		||||
    48["Segment<br>[1263, 1424, 10]"]
 | 
			
		||||
    15["Path<br>[1239, 1376, 10]"]
 | 
			
		||||
    48["Segment<br>[1239, 1376, 10]"]
 | 
			
		||||
    111[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path16 [Path]
 | 
			
		||||
    16["Path<br>[1760, 1948, 10]"]
 | 
			
		||||
    49["Segment<br>[1760, 1948, 10]"]
 | 
			
		||||
    16["Path<br>[1688, 1852, 10]"]
 | 
			
		||||
    49["Segment<br>[1688, 1852, 10]"]
 | 
			
		||||
    94[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path17 [Path]
 | 
			
		||||
    17["Path<br>[2173, 2213, 10]"]
 | 
			
		||||
    50["Segment<br>[2173, 2213, 10]"]
 | 
			
		||||
    17["Path<br>[2077, 2117, 10]"]
 | 
			
		||||
    50["Segment<br>[2077, 2117, 10]"]
 | 
			
		||||
    105[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path18 [Path]
 | 
			
		||||
    18["Path<br>[251, 408, 11]"]
 | 
			
		||||
    51["Segment<br>[414, 497, 11]"]
 | 
			
		||||
    52["Segment<br>[503, 555, 11]"]
 | 
			
		||||
    53["Segment<br>[561, 644, 11]"]
 | 
			
		||||
    54["Segment<br>[650, 706, 11]"]
 | 
			
		||||
    55["Segment<br>[712, 719, 11]"]
 | 
			
		||||
    18["Path<br>[251, 384, 11]"]
 | 
			
		||||
    51["Segment<br>[390, 473, 11]"]
 | 
			
		||||
    52["Segment<br>[479, 531, 11]"]
 | 
			
		||||
    53["Segment<br>[537, 620, 11]"]
 | 
			
		||||
    54["Segment<br>[626, 682, 11]"]
 | 
			
		||||
    55["Segment<br>[688, 695, 11]"]
 | 
			
		||||
    95[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path19 [Path]
 | 
			
		||||
    19["Path<br>[840, 904, 11]"]
 | 
			
		||||
    56["Segment<br>[840, 904, 11]"]
 | 
			
		||||
    19["Path<br>[816, 880, 11]"]
 | 
			
		||||
    56["Segment<br>[816, 880, 11]"]
 | 
			
		||||
    89[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path20 [Path]
 | 
			
		||||
    20["Path<br>[1078, 1300, 11]"]
 | 
			
		||||
    57["Segment<br>[1078, 1300, 11]"]
 | 
			
		||||
    20["Path<br>[1054, 1252, 11]"]
 | 
			
		||||
    57["Segment<br>[1054, 1252, 11]"]
 | 
			
		||||
    100[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path21 [Path]
 | 
			
		||||
    21["Path<br>[1508, 1552, 11]"]
 | 
			
		||||
    58["Segment<br>[1508, 1552, 11]"]
 | 
			
		||||
    21["Path<br>[1460, 1504, 11]"]
 | 
			
		||||
    58["Segment<br>[1460, 1504, 11]"]
 | 
			
		||||
    106[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path22 [Path]
 | 
			
		||||
    22["Path<br>[1795, 2001, 11]"]
 | 
			
		||||
    59["Segment<br>[1795, 2001, 11]"]
 | 
			
		||||
    22["Path<br>[1747, 1929, 11]"]
 | 
			
		||||
    59["Segment<br>[1747, 1929, 11]"]
 | 
			
		||||
    110[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path23 [Path]
 | 
			
		||||
    23["Path<br>[2373, 2562, 11]"]
 | 
			
		||||
    60["Segment<br>[2373, 2562, 11]"]
 | 
			
		||||
    23["Path<br>[2277, 2442, 11]"]
 | 
			
		||||
    60["Segment<br>[2277, 2442, 11]"]
 | 
			
		||||
    102[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path24 [Path]
 | 
			
		||||
    24["Path<br>[271, 532, 12]"]
 | 
			
		||||
    61["Segment<br>[538, 624, 12]"]
 | 
			
		||||
    62["Segment<br>[630, 684, 12]"]
 | 
			
		||||
    63["Segment<br>[690, 776, 12]"]
 | 
			
		||||
    64["Segment<br>[782, 852, 12]"]
 | 
			
		||||
    65["Segment<br>[858, 865, 12]"]
 | 
			
		||||
    24["Path<br>[271, 484, 12]"]
 | 
			
		||||
    61["Segment<br>[490, 576, 12]"]
 | 
			
		||||
    62["Segment<br>[582, 636, 12]"]
 | 
			
		||||
    63["Segment<br>[642, 728, 12]"]
 | 
			
		||||
    64["Segment<br>[734, 804, 12]"]
 | 
			
		||||
    65["Segment<br>[810, 817, 12]"]
 | 
			
		||||
    91[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path25 [Path]
 | 
			
		||||
    25["Path<br>[984, 1207, 12]"]
 | 
			
		||||
    66["Segment<br>[984, 1207, 12]"]
 | 
			
		||||
    25["Path<br>[936, 1135, 12]"]
 | 
			
		||||
    66["Segment<br>[936, 1135, 12]"]
 | 
			
		||||
    93[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path26 [Path]
 | 
			
		||||
    26["Path<br>[1417, 1620, 12]"]
 | 
			
		||||
    67["Segment<br>[1417, 1620, 12]"]
 | 
			
		||||
    26["Path<br>[1345, 1524, 12]"]
 | 
			
		||||
    67["Segment<br>[1345, 1524, 12]"]
 | 
			
		||||
    98[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path27 [Path]
 | 
			
		||||
    27["Path<br>[2060, 2374, 12]"]
 | 
			
		||||
    68["Segment<br>[2060, 2374, 12]"]
 | 
			
		||||
    27["Path<br>[1940, 2206, 12]"]
 | 
			
		||||
    68["Segment<br>[1940, 2206, 12]"]
 | 
			
		||||
    108[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path28 [Path]
 | 
			
		||||
    28["Path<br>[2478, 2790, 12]"]
 | 
			
		||||
    69["Segment<br>[2478, 2790, 12]"]
 | 
			
		||||
    28["Path<br>[2310, 2574, 12]"]
 | 
			
		||||
    69["Segment<br>[2310, 2574, 12]"]
 | 
			
		||||
    97[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path29 [Path]
 | 
			
		||||
    29["Path<br>[2949, 2987, 12]"]
 | 
			
		||||
    70["Segment<br>[2949, 2987, 12]"]
 | 
			
		||||
    29["Path<br>[2733, 2771, 12]"]
 | 
			
		||||
    70["Segment<br>[2733, 2771, 12]"]
 | 
			
		||||
    109[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path30 [Path]
 | 
			
		||||
    30["Path<br>[3122, 3375, 12]"]
 | 
			
		||||
    71["Segment<br>[3381, 3449, 12]"]
 | 
			
		||||
    72["Segment<br>[3455, 3565, 12]"]
 | 
			
		||||
    73["Segment<br>[3571, 3639, 12]"]
 | 
			
		||||
    74["Segment<br>[3645, 3721, 12]"]
 | 
			
		||||
    75["Segment<br>[3727, 3803, 12]"]
 | 
			
		||||
    76["Segment<br>[3809, 3883, 12]"]
 | 
			
		||||
    77["Segment<br>[3889, 3945, 12]"]
 | 
			
		||||
    78["Segment<br>[3951, 3958, 12]"]
 | 
			
		||||
    30["Path<br>[2906, 3111, 12]"]
 | 
			
		||||
    71["Segment<br>[3117, 3185, 12]"]
 | 
			
		||||
    72["Segment<br>[3191, 3301, 12]"]
 | 
			
		||||
    73["Segment<br>[3307, 3375, 12]"]
 | 
			
		||||
    74["Segment<br>[3381, 3457, 12]"]
 | 
			
		||||
    75["Segment<br>[3463, 3539, 12]"]
 | 
			
		||||
    76["Segment<br>[3545, 3619, 12]"]
 | 
			
		||||
    77["Segment<br>[3625, 3681, 12]"]
 | 
			
		||||
    78["Segment<br>[3687, 3694, 12]"]
 | 
			
		||||
    99[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path31 [Path]
 | 
			
		||||
    31["Path<br>[4092, 4345, 12]"]
 | 
			
		||||
    79["Segment<br>[4351, 4421, 12]"]
 | 
			
		||||
    80["Segment<br>[4427, 4542, 12]"]
 | 
			
		||||
    81["Segment<br>[4548, 4618, 12]"]
 | 
			
		||||
    82["Segment<br>[4624, 4702, 12]"]
 | 
			
		||||
    83["Segment<br>[4708, 4786, 12]"]
 | 
			
		||||
    84["Segment<br>[4792, 4868, 12]"]
 | 
			
		||||
    85["Segment<br>[4874, 4930, 12]"]
 | 
			
		||||
    86["Segment<br>[4936, 4943, 12]"]
 | 
			
		||||
    31["Path<br>[3828, 4033, 12]"]
 | 
			
		||||
    79["Segment<br>[4039, 4109, 12]"]
 | 
			
		||||
    80["Segment<br>[4115, 4230, 12]"]
 | 
			
		||||
    81["Segment<br>[4236, 4306, 12]"]
 | 
			
		||||
    82["Segment<br>[4312, 4390, 12]"]
 | 
			
		||||
    83["Segment<br>[4396, 4474, 12]"]
 | 
			
		||||
    84["Segment<br>[4480, 4556, 12]"]
 | 
			
		||||
    85["Segment<br>[4562, 4618, 12]"]
 | 
			
		||||
    86["Segment<br>[4624, 4631, 12]"]
 | 
			
		||||
    92[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  1["Plane<br>[201, 218, 8]"]
 | 
			
		||||
  2["Plane<br>[174, 197, 10]"]
 | 
			
		||||
  3["Plane<br>[464, 487, 10]"]
 | 
			
		||||
  4["Plane<br>[2144, 2167, 10]"]
 | 
			
		||||
  4["Plane<br>[2048, 2071, 10]"]
 | 
			
		||||
  5["Plane<br>[222, 245, 11]"]
 | 
			
		||||
  6["Plane<br>[242, 265, 12]"]
 | 
			
		||||
  112["Sweep Extrusion<br>[724, 771, 8]"]
 | 
			
		||||
@ -174,44 +174,44 @@ flowchart LR
 | 
			
		||||
  122["Sweep Extrusion<br>[2252, 2299, 8]"]
 | 
			
		||||
  123["Sweep Extrusion<br>[277, 315, 10]"]
 | 
			
		||||
  124["Sweep Extrusion<br>[778, 808, 10]"]
 | 
			
		||||
  125["Sweep Extrusion<br>[1068, 1100, 10]"]
 | 
			
		||||
  126["Sweep Extrusion<br>[1671, 1703, 10]"]
 | 
			
		||||
  127["Sweep Extrusion<br>[1671, 1703, 10]"]
 | 
			
		||||
  128["Sweep Extrusion<br>[1671, 1703, 10]"]
 | 
			
		||||
  129["Sweep Extrusion<br>[1671, 1703, 10]"]
 | 
			
		||||
  130["Sweep Extrusion<br>[1962, 1995, 10]"]
 | 
			
		||||
  131["Sweep Extrusion<br>[2215, 2246, 10]"]
 | 
			
		||||
  132["Sweep Extrusion<br>[733, 781, 11]"]
 | 
			
		||||
  133["Sweep Extrusion<br>[919, 952, 11]"]
 | 
			
		||||
  134["Sweep Extrusion<br>[1315, 1345, 11]"]
 | 
			
		||||
  135["Sweep Extrusion<br>[1705, 1738, 11]"]
 | 
			
		||||
  136["Sweep Extrusion<br>[1705, 1738, 11]"]
 | 
			
		||||
  137["Sweep Extrusion<br>[1705, 1738, 11]"]
 | 
			
		||||
  138["Sweep Extrusion<br>[1705, 1738, 11]"]
 | 
			
		||||
  139["Sweep Extrusion<br>[1705, 1738, 11]"]
 | 
			
		||||
  140["Sweep Extrusion<br>[1705, 1738, 11]"]
 | 
			
		||||
  141["Sweep Extrusion<br>[1705, 1738, 11]"]
 | 
			
		||||
  142["Sweep Extrusion<br>[1705, 1738, 11]"]
 | 
			
		||||
  143["Sweep Extrusion<br>[2283, 2316, 11]"]
 | 
			
		||||
  144["Sweep Extrusion<br>[2283, 2316, 11]"]
 | 
			
		||||
  145["Sweep Extrusion<br>[2283, 2316, 11]"]
 | 
			
		||||
  146["Sweep Extrusion<br>[2283, 2316, 11]"]
 | 
			
		||||
  147["Sweep Extrusion<br>[2564, 2594, 11]"]
 | 
			
		||||
  148["Sweep Extrusion<br>[879, 927, 12]"]
 | 
			
		||||
  149["Sweep Extrusion<br>[1222, 1255, 12]"]
 | 
			
		||||
  150["Sweep Extrusion<br>[1899, 1932, 12]"]
 | 
			
		||||
  151["Sweep Extrusion<br>[1899, 1932, 12]"]
 | 
			
		||||
  152["Sweep Extrusion<br>[1899, 1932, 12]"]
 | 
			
		||||
  153["Sweep Extrusion<br>[1899, 1932, 12]"]
 | 
			
		||||
  154["Sweep Extrusion<br>[1899, 1932, 12]"]
 | 
			
		||||
  155["Sweep Extrusion<br>[1899, 1932, 12]"]
 | 
			
		||||
  156["Sweep Extrusion<br>[1899, 1932, 12]"]
 | 
			
		||||
  157["Sweep Extrusion<br>[1899, 1932, 12]"]
 | 
			
		||||
  158["Sweep Extrusion<br>[2388, 2421, 12]"]
 | 
			
		||||
  159["Sweep Extrusion<br>[2805, 2838, 12]"]
 | 
			
		||||
  160["Sweep Extrusion<br>[3002, 3036, 12]"]
 | 
			
		||||
  161["Sweep Extrusion<br>[3973, 4006, 12]"]
 | 
			
		||||
  162["Sweep Extrusion<br>[4945, 4978, 12]"]
 | 
			
		||||
  125["Sweep Extrusion<br>[1044, 1076, 10]"]
 | 
			
		||||
  126["Sweep Extrusion<br>[1599, 1631, 10]"]
 | 
			
		||||
  127["Sweep Extrusion<br>[1599, 1631, 10]"]
 | 
			
		||||
  128["Sweep Extrusion<br>[1599, 1631, 10]"]
 | 
			
		||||
  129["Sweep Extrusion<br>[1599, 1631, 10]"]
 | 
			
		||||
  130["Sweep Extrusion<br>[1866, 1899, 10]"]
 | 
			
		||||
  131["Sweep Extrusion<br>[2119, 2150, 10]"]
 | 
			
		||||
  132["Sweep Extrusion<br>[709, 757, 11]"]
 | 
			
		||||
  133["Sweep Extrusion<br>[895, 928, 11]"]
 | 
			
		||||
  134["Sweep Extrusion<br>[1267, 1297, 11]"]
 | 
			
		||||
  135["Sweep Extrusion<br>[1657, 1690, 11]"]
 | 
			
		||||
  136["Sweep Extrusion<br>[1657, 1690, 11]"]
 | 
			
		||||
  137["Sweep Extrusion<br>[1657, 1690, 11]"]
 | 
			
		||||
  138["Sweep Extrusion<br>[1657, 1690, 11]"]
 | 
			
		||||
  139["Sweep Extrusion<br>[1657, 1690, 11]"]
 | 
			
		||||
  140["Sweep Extrusion<br>[1657, 1690, 11]"]
 | 
			
		||||
  141["Sweep Extrusion<br>[1657, 1690, 11]"]
 | 
			
		||||
  142["Sweep Extrusion<br>[1657, 1690, 11]"]
 | 
			
		||||
  143["Sweep Extrusion<br>[2187, 2220, 11]"]
 | 
			
		||||
  144["Sweep Extrusion<br>[2187, 2220, 11]"]
 | 
			
		||||
  145["Sweep Extrusion<br>[2187, 2220, 11]"]
 | 
			
		||||
  146["Sweep Extrusion<br>[2187, 2220, 11]"]
 | 
			
		||||
  147["Sweep Extrusion<br>[2444, 2474, 11]"]
 | 
			
		||||
  148["Sweep Extrusion<br>[831, 879, 12]"]
 | 
			
		||||
  149["Sweep Extrusion<br>[1150, 1183, 12]"]
 | 
			
		||||
  150["Sweep Extrusion<br>[1779, 1812, 12]"]
 | 
			
		||||
  151["Sweep Extrusion<br>[1779, 1812, 12]"]
 | 
			
		||||
  152["Sweep Extrusion<br>[1779, 1812, 12]"]
 | 
			
		||||
  153["Sweep Extrusion<br>[1779, 1812, 12]"]
 | 
			
		||||
  154["Sweep Extrusion<br>[1779, 1812, 12]"]
 | 
			
		||||
  155["Sweep Extrusion<br>[1779, 1812, 12]"]
 | 
			
		||||
  156["Sweep Extrusion<br>[1779, 1812, 12]"]
 | 
			
		||||
  157["Sweep Extrusion<br>[1779, 1812, 12]"]
 | 
			
		||||
  158["Sweep Extrusion<br>[2220, 2253, 12]"]
 | 
			
		||||
  159["Sweep Extrusion<br>[2589, 2622, 12]"]
 | 
			
		||||
  160["Sweep Extrusion<br>[2786, 2820, 12]"]
 | 
			
		||||
  161["Sweep Extrusion<br>[3709, 3742, 12]"]
 | 
			
		||||
  162["Sweep Extrusion<br>[4633, 4666, 12]"]
 | 
			
		||||
  163[Wall]
 | 
			
		||||
  164[Wall]
 | 
			
		||||
  165[Wall]
 | 
			
		||||
@ -399,11 +399,11 @@ flowchart LR
 | 
			
		||||
  347["EdgeCut Chamfer<br>[777, 1054, 8]"]
 | 
			
		||||
  348["EdgeCut Fillet<br>[1294, 1355, 8]"]
 | 
			
		||||
  349["EdgeCut Fillet<br>[321, 383, 10]"]
 | 
			
		||||
  350["EdgeCut Fillet<br>[1106, 1168, 10]"]
 | 
			
		||||
  351["EdgeCut Fillet<br>[2001, 2063, 10]"]
 | 
			
		||||
  352["EdgeCut Fillet<br>[958, 1020, 11]"]
 | 
			
		||||
  353["EdgeCut Fillet<br>[1351, 1413, 11]"]
 | 
			
		||||
  354["EdgeCut Fillet<br>[1261, 1323, 12]"]
 | 
			
		||||
  350["EdgeCut Fillet<br>[1082, 1144, 10]"]
 | 
			
		||||
  351["EdgeCut Fillet<br>[1905, 1967, 10]"]
 | 
			
		||||
  352["EdgeCut Fillet<br>[934, 996, 11]"]
 | 
			
		||||
  353["EdgeCut Fillet<br>[1303, 1365, 11]"]
 | 
			
		||||
  354["EdgeCut Fillet<br>[1189, 1251, 12]"]
 | 
			
		||||
  1 --- 7
 | 
			
		||||
  2 --- 12
 | 
			
		||||
  3 --- 13
 | 
			
		||||
 | 
			
		||||
@ -1,31 +1,31 @@
 | 
			
		||||
```mermaid
 | 
			
		||||
flowchart LR
 | 
			
		||||
  subgraph path4 [Path]
 | 
			
		||||
    4["Path<br>[665, 735, 0]"]
 | 
			
		||||
    7["Segment<br>[665, 735, 0]"]
 | 
			
		||||
    4["Path<br>[671, 741, 0]"]
 | 
			
		||||
    7["Segment<br>[671, 741, 0]"]
 | 
			
		||||
    16[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path5 [Path]
 | 
			
		||||
    5["Path<br>[968, 1049, 0]"]
 | 
			
		||||
    8["Segment<br>[1055, 1106, 0]"]
 | 
			
		||||
    9["Segment<br>[1112, 1163, 0]"]
 | 
			
		||||
    10["Segment<br>[1169, 1220, 0]"]
 | 
			
		||||
    11["Segment<br>[1226, 1276, 0]"]
 | 
			
		||||
    12["Segment<br>[1282, 1332, 0]"]
 | 
			
		||||
    13["Segment<br>[1338, 1345, 0]"]
 | 
			
		||||
    5["Path<br>[974, 1055, 0]"]
 | 
			
		||||
    8["Segment<br>[1061, 1112, 0]"]
 | 
			
		||||
    9["Segment<br>[1118, 1169, 0]"]
 | 
			
		||||
    10["Segment<br>[1175, 1226, 0]"]
 | 
			
		||||
    11["Segment<br>[1232, 1282, 0]"]
 | 
			
		||||
    12["Segment<br>[1288, 1338, 0]"]
 | 
			
		||||
    13["Segment<br>[1344, 1351, 0]"]
 | 
			
		||||
    15[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path6 [Path]
 | 
			
		||||
    6["Path<br>[1444, 1513, 0]"]
 | 
			
		||||
    14["Segment<br>[1444, 1513, 0]"]
 | 
			
		||||
    6["Path<br>[1450, 1519, 0]"]
 | 
			
		||||
    14["Segment<br>[1450, 1519, 0]"]
 | 
			
		||||
    17[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  1["Plane<br>[642, 659, 0]"]
 | 
			
		||||
  2["StartSketchOnFace<br>[925, 962, 0]"]
 | 
			
		||||
  3["StartSketchOnFace<br>[1403, 1438, 0]"]
 | 
			
		||||
  18["Sweep Extrusion<br>[741, 774, 0]"]
 | 
			
		||||
  19["Sweep Extrusion<br>[1351, 1391, 0]"]
 | 
			
		||||
  20["Sweep Extrusion<br>[1519, 1547, 0]"]
 | 
			
		||||
  1["Plane<br>[648, 665, 0]"]
 | 
			
		||||
  2["StartSketchOnFace<br>[931, 968, 0]"]
 | 
			
		||||
  3["StartSketchOnFace<br>[1409, 1444, 0]"]
 | 
			
		||||
  18["Sweep Extrusion<br>[747, 780, 0]"]
 | 
			
		||||
  19["Sweep Extrusion<br>[1357, 1397, 0]"]
 | 
			
		||||
  20["Sweep Extrusion<br>[1525, 1553, 0]"]
 | 
			
		||||
  21[Wall]
 | 
			
		||||
  22[Wall]
 | 
			
		||||
  23[Wall]
 | 
			
		||||
@ -54,9 +54,9 @@ flowchart LR
 | 
			
		||||
  46["SweepEdge Adjacent"]
 | 
			
		||||
  47["SweepEdge Adjacent"]
 | 
			
		||||
  48["SweepEdge Adjacent"]
 | 
			
		||||
  49["EdgeCut Fillet<br>[780, 846, 0]"]
 | 
			
		||||
  50["EdgeCut Fillet<br>[780, 846, 0]"]
 | 
			
		||||
  51["EdgeCut Fillet<br>[1553, 1612, 0]"]
 | 
			
		||||
  49["EdgeCut Fillet<br>[786, 852, 0]"]
 | 
			
		||||
  50["EdgeCut Fillet<br>[786, 852, 0]"]
 | 
			
		||||
  51["EdgeCut Fillet<br>[1559, 1618, 0]"]
 | 
			
		||||
  1 --- 4
 | 
			
		||||
  30 x--> 2
 | 
			
		||||
  32 x--> 3
 | 
			
		||||
 | 
			
		||||
@ -271,7 +271,15 @@ description: Result of parsing socket-head-cap-screw.kcl
 | 
			
		||||
                    "start": 0,
 | 
			
		||||
                    "type": "Identifier"
 | 
			
		||||
                  },
 | 
			
		||||
                  "path": [],
 | 
			
		||||
                  "path": [
 | 
			
		||||
                    {
 | 
			
		||||
                      "commentStart": 0,
 | 
			
		||||
                      "end": 0,
 | 
			
		||||
                      "name": "math",
 | 
			
		||||
                      "start": 0,
 | 
			
		||||
                      "type": "Identifier"
 | 
			
		||||
                    }
 | 
			
		||||
                  ],
 | 
			
		||||
                  "start": 0,
 | 
			
		||||
                  "type": "Name"
 | 
			
		||||
                },
 | 
			
		||||
 | 
			
		||||
@ -7,7 +7,7 @@ description: Operations executed socket-head-cap-screw.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
 | 
			
		||||
@ -15,9 +15,9 @@ description: Variables in memory after executing socket-head-cap-screw.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 1501,
 | 
			
		||||
            "end": 1512,
 | 
			
		||||
            "start": 1501,
 | 
			
		||||
            "commentStart": 1507,
 | 
			
		||||
            "end": 1518,
 | 
			
		||||
            "start": 1507,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "filletEdge"
 | 
			
		||||
          },
 | 
			
		||||
@ -44,9 +44,9 @@ description: Variables in memory after executing socket-head-cap-screw.kcl
 | 
			
		||||
            ],
 | 
			
		||||
            "radius": 0.095,
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 1501,
 | 
			
		||||
              "end": 1512,
 | 
			
		||||
              "start": 1501,
 | 
			
		||||
              "commentStart": 1507,
 | 
			
		||||
              "end": 1518,
 | 
			
		||||
              "start": 1507,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "filletEdge"
 | 
			
		||||
            },
 | 
			
		||||
@ -91,9 +91,9 @@ description: Variables in memory after executing socket-head-cap-screw.kcl
 | 
			
		||||
                "id": "[uuid]",
 | 
			
		||||
                "sourceRange": [],
 | 
			
		||||
                "tag": {
 | 
			
		||||
                  "commentStart": 726,
 | 
			
		||||
                  "end": 734,
 | 
			
		||||
                  "start": 726,
 | 
			
		||||
                  "commentStart": 732,
 | 
			
		||||
                  "end": 740,
 | 
			
		||||
                  "start": 732,
 | 
			
		||||
                  "type": "TagDeclarator",
 | 
			
		||||
                  "value": "topEdge"
 | 
			
		||||
                },
 | 
			
		||||
@ -120,9 +120,9 @@ description: Variables in memory after executing socket-head-cap-screw.kcl
 | 
			
		||||
                  ],
 | 
			
		||||
                  "radius": 0.1565,
 | 
			
		||||
                  "tag": {
 | 
			
		||||
                    "commentStart": 726,
 | 
			
		||||
                    "end": 734,
 | 
			
		||||
                    "start": 726,
 | 
			
		||||
                    "commentStart": 732,
 | 
			
		||||
                    "end": 740,
 | 
			
		||||
                    "start": 732,
 | 
			
		||||
                    "type": "TagDeclarator",
 | 
			
		||||
                    "value": "topEdge"
 | 
			
		||||
                  },
 | 
			
		||||
@ -330,9 +330,9 @@ description: Variables in memory after executing socket-head-cap-screw.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 726,
 | 
			
		||||
            "end": 734,
 | 
			
		||||
            "start": 726,
 | 
			
		||||
            "commentStart": 732,
 | 
			
		||||
            "end": 740,
 | 
			
		||||
            "start": 732,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "topEdge"
 | 
			
		||||
          },
 | 
			
		||||
@ -359,9 +359,9 @@ description: Variables in memory after executing socket-head-cap-screw.kcl
 | 
			
		||||
            ],
 | 
			
		||||
            "radius": 0.1565,
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 726,
 | 
			
		||||
              "end": 734,
 | 
			
		||||
              "start": 726,
 | 
			
		||||
              "commentStart": 732,
 | 
			
		||||
              "end": 740,
 | 
			
		||||
              "start": 732,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "topEdge"
 | 
			
		||||
            },
 | 
			
		||||
@ -752,9 +752,9 @@ description: Variables in memory after executing socket-head-cap-screw.kcl
 | 
			
		||||
                "id": "[uuid]",
 | 
			
		||||
                "sourceRange": [],
 | 
			
		||||
                "tag": {
 | 
			
		||||
                  "commentStart": 726,
 | 
			
		||||
                  "end": 734,
 | 
			
		||||
                  "start": 726,
 | 
			
		||||
                  "commentStart": 732,
 | 
			
		||||
                  "end": 740,
 | 
			
		||||
                  "start": 732,
 | 
			
		||||
                  "type": "TagDeclarator",
 | 
			
		||||
                  "value": "topEdge"
 | 
			
		||||
                },
 | 
			
		||||
@ -781,9 +781,9 @@ description: Variables in memory after executing socket-head-cap-screw.kcl
 | 
			
		||||
                  ],
 | 
			
		||||
                  "radius": 0.1565,
 | 
			
		||||
                  "tag": {
 | 
			
		||||
                    "commentStart": 726,
 | 
			
		||||
                    "end": 734,
 | 
			
		||||
                    "start": 726,
 | 
			
		||||
                    "commentStart": 732,
 | 
			
		||||
                    "end": 740,
 | 
			
		||||
                    "start": 732,
 | 
			
		||||
                    "type": "TagDeclarator",
 | 
			
		||||
                    "value": "topEdge"
 | 
			
		||||
                  },
 | 
			
		||||
 | 
			
		||||
@ -9,32 +9,32 @@ flowchart LR
 | 
			
		||||
    151[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path19 [Path]
 | 
			
		||||
    19["Path<br>[968, 1085, 9]"]
 | 
			
		||||
    42["Segment<br>[1091, 1149, 9]"]
 | 
			
		||||
    43["Segment<br>[1155, 1272, 9]"]
 | 
			
		||||
    44["Segment<br>[1278, 1336, 9]"]
 | 
			
		||||
    45["Segment<br>[1342, 1462, 9]"]
 | 
			
		||||
    46["Segment<br>[1468, 1529, 9]"]
 | 
			
		||||
    47["Segment<br>[1535, 1656, 9]"]
 | 
			
		||||
    48["Segment<br>[1662, 1722, 9]"]
 | 
			
		||||
    49["Segment<br>[1728, 1735, 9]"]
 | 
			
		||||
    19["Path<br>[968, 1091, 9]"]
 | 
			
		||||
    42["Segment<br>[1097, 1155, 9]"]
 | 
			
		||||
    43["Segment<br>[1161, 1284, 9]"]
 | 
			
		||||
    44["Segment<br>[1290, 1348, 9]"]
 | 
			
		||||
    45["Segment<br>[1354, 1480, 9]"]
 | 
			
		||||
    46["Segment<br>[1486, 1547, 9]"]
 | 
			
		||||
    47["Segment<br>[1553, 1680, 9]"]
 | 
			
		||||
    48["Segment<br>[1686, 1746, 9]"]
 | 
			
		||||
    49["Segment<br>[1752, 1759, 9]"]
 | 
			
		||||
    137[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path20 [Path]
 | 
			
		||||
    20["Path<br>[1890, 1944, 9]"]
 | 
			
		||||
    50["Segment<br>[1950, 1991, 9]"]
 | 
			
		||||
    51["Segment<br>[1997, 2026, 9]"]
 | 
			
		||||
    52["Segment<br>[2032, 2062, 9]"]
 | 
			
		||||
    53["Segment<br>[2068, 2124, 9]"]
 | 
			
		||||
    54["Segment<br>[2130, 2137, 9]"]
 | 
			
		||||
    20["Path<br>[1914, 1968, 9]"]
 | 
			
		||||
    50["Segment<br>[1974, 2015, 9]"]
 | 
			
		||||
    51["Segment<br>[2021, 2050, 9]"]
 | 
			
		||||
    52["Segment<br>[2056, 2086, 9]"]
 | 
			
		||||
    53["Segment<br>[2092, 2148, 9]"]
 | 
			
		||||
    54["Segment<br>[2154, 2161, 9]"]
 | 
			
		||||
    156[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path21 [Path]
 | 
			
		||||
    21["Path<br>[2280, 2317, 9]"]
 | 
			
		||||
    55["Segment<br>[2323, 2354, 9]"]
 | 
			
		||||
    56["Segment<br>[2360, 2393, 9]"]
 | 
			
		||||
    57["Segment<br>[2399, 2431, 9]"]
 | 
			
		||||
    58["Segment<br>[2437, 2444, 9]"]
 | 
			
		||||
    21["Path<br>[2304, 2341, 9]"]
 | 
			
		||||
    55["Segment<br>[2347, 2378, 9]"]
 | 
			
		||||
    56["Segment<br>[2384, 2417, 9]"]
 | 
			
		||||
    57["Segment<br>[2423, 2455, 9]"]
 | 
			
		||||
    58["Segment<br>[2461, 2468, 9]"]
 | 
			
		||||
    146[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path22 [Path]
 | 
			
		||||
@ -55,15 +55,15 @@ flowchart LR
 | 
			
		||||
    148[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path24 [Path]
 | 
			
		||||
    24["Path<br>[1441, 1592, 10]"]
 | 
			
		||||
    68["Segment<br>[1598, 1674, 10]"]
 | 
			
		||||
    69["Segment<br>[1680, 1833, 10]"]
 | 
			
		||||
    70["Segment<br>[1839, 1915, 10]"]
 | 
			
		||||
    71["Segment<br>[1921, 2077, 10]"]
 | 
			
		||||
    72["Segment<br>[2083, 2160, 10]"]
 | 
			
		||||
    73["Segment<br>[2166, 2321, 10]"]
 | 
			
		||||
    74["Segment<br>[2327, 2403, 10]"]
 | 
			
		||||
    75["Segment<br>[2409, 2416, 10]"]
 | 
			
		||||
    24["Path<br>[1441, 1598, 10]"]
 | 
			
		||||
    68["Segment<br>[1604, 1680, 10]"]
 | 
			
		||||
    69["Segment<br>[1686, 1845, 10]"]
 | 
			
		||||
    70["Segment<br>[1851, 1927, 10]"]
 | 
			
		||||
    71["Segment<br>[1933, 2095, 10]"]
 | 
			
		||||
    72["Segment<br>[2101, 2178, 10]"]
 | 
			
		||||
    73["Segment<br>[2184, 2345, 10]"]
 | 
			
		||||
    74["Segment<br>[2351, 2427, 10]"]
 | 
			
		||||
    75["Segment<br>[2433, 2440, 10]"]
 | 
			
		||||
    143[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path25 [Path]
 | 
			
		||||
@ -183,11 +183,11 @@ flowchart LR
 | 
			
		||||
  2["Plane<br>[455, 472, 10]"]
 | 
			
		||||
  3["Plane<br>[957, 974, 10]"]
 | 
			
		||||
  4["Plane<br>[1418, 1435, 10]"]
 | 
			
		||||
  5["Plane<br>[2557, 2574, 10]"]
 | 
			
		||||
  6["Plane<br>[2627, 2644, 10]"]
 | 
			
		||||
  7["Plane<br>[2699, 2716, 10]"]
 | 
			
		||||
  8["Plane<br>[2770, 2787, 10]"]
 | 
			
		||||
  9["Plane<br>[2841, 2858, 10]"]
 | 
			
		||||
  5["Plane<br>[2581, 2598, 10]"]
 | 
			
		||||
  6["Plane<br>[2651, 2668, 10]"]
 | 
			
		||||
  7["Plane<br>[2723, 2740, 10]"]
 | 
			
		||||
  8["Plane<br>[2794, 2811, 10]"]
 | 
			
		||||
  9["Plane<br>[2865, 2882, 10]"]
 | 
			
		||||
  10["Plane<br>[307, 324, 12]"]
 | 
			
		||||
  11["Plane<br>[535, 574, 12]"]
 | 
			
		||||
  12["Plane<br>[238, 255, 13]"]
 | 
			
		||||
@ -197,10 +197,10 @@ flowchart LR
 | 
			
		||||
  16["Plane<br>[373, 390, 15]"]
 | 
			
		||||
  17["Plane<br>[373, 390, 15]"]
 | 
			
		||||
  157["Sweep Extrusion<br>[603, 633, 9]"]
 | 
			
		||||
  158["Sweep Extrusion<br>[1749, 1792, 9]"]
 | 
			
		||||
  159["Sweep Extrusion<br>[2151, 2194, 9]"]
 | 
			
		||||
  160["Sweep Extrusion<br>[2446, 2479, 9]"]
 | 
			
		||||
  161["Sweep Extrusion<br>[2882, 2913, 10]"]
 | 
			
		||||
  158["Sweep Extrusion<br>[1773, 1816, 9]"]
 | 
			
		||||
  159["Sweep Extrusion<br>[2175, 2218, 9]"]
 | 
			
		||||
  160["Sweep Extrusion<br>[2470, 2503, 9]"]
 | 
			
		||||
  161["Sweep Extrusion<br>[2906, 2937, 10]"]
 | 
			
		||||
  162["Sweep Loft<br>[914, 957, 12]"]
 | 
			
		||||
  163["Sweep Extrusion<br>[591, 643, 13]"]
 | 
			
		||||
  164["Sweep Revolve<br>[522, 539, 14]"]
 | 
			
		||||
 | 
			
		||||
@ -1,61 +1,61 @@
 | 
			
		||||
```mermaid
 | 
			
		||||
flowchart LR
 | 
			
		||||
  subgraph path2 [Path]
 | 
			
		||||
    2["Path<br>[747, 783, 0]"]
 | 
			
		||||
    3["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    4["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    5["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    6["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    7["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    8["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    9["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    10["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    11["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    12["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    13["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    14["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    15["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    16["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    17["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    18["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    19["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    20["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    21["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    22["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    23["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    24["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    25["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    26["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    27["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    28["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    29["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    30["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    31["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    32["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    33["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    34["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    35["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    36["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    37["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    38["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    39["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    40["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    41["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    42["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    43["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    44["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    45["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    46["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    47["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    48["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    49["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    50["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    51["Segment<br>[937, 1001, 0]"]
 | 
			
		||||
    52["Segment<br>[1065, 1083, 0]"]
 | 
			
		||||
    2["Path<br>[744, 780, 0]"]
 | 
			
		||||
    3["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    4["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    5["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    6["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    7["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    8["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    9["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    10["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    11["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    12["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    13["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    14["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    15["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    16["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    17["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    18["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    19["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    20["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    21["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    22["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    23["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    24["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    25["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    26["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    27["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    28["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    29["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    30["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    31["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    32["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    33["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    34["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    35["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    36["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    37["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    38["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    39["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    40["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    41["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    42["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    43["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    44["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    45["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    46["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    47["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    48["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    49["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    50["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    51["Segment<br>[934, 998, 0]"]
 | 
			
		||||
    52["Segment<br>[1062, 1080, 0]"]
 | 
			
		||||
    53[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  1["Plane<br>[724, 741, 0]"]
 | 
			
		||||
  54["Sweep Extrusion<br>[1137, 1175, 0]"]
 | 
			
		||||
  1["Plane<br>[721, 738, 0]"]
 | 
			
		||||
  54["Sweep Extrusion<br>[1134, 1172, 0]"]
 | 
			
		||||
  55[Wall]
 | 
			
		||||
  56[Wall]
 | 
			
		||||
  57[Wall]
 | 
			
		||||
 | 
			
		||||
@ -122,53 +122,38 @@ description: Result of parsing loop_tag.kcl
 | 
			
		||||
          "init": {
 | 
			
		||||
            "commentStart": 0,
 | 
			
		||||
            "end": 0,
 | 
			
		||||
            "expr": {
 | 
			
		||||
            "left": {
 | 
			
		||||
              "commentStart": 0,
 | 
			
		||||
              "end": 0,
 | 
			
		||||
              "left": {
 | 
			
		||||
                "commentStart": 0,
 | 
			
		||||
                "end": 0,
 | 
			
		||||
                "raw": "360",
 | 
			
		||||
                "start": 0,
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "value": 360.0,
 | 
			
		||||
                  "suffix": "None"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              "operator": "/",
 | 
			
		||||
              "right": {
 | 
			
		||||
                "abs_path": false,
 | 
			
		||||
                "commentStart": 0,
 | 
			
		||||
                "end": 0,
 | 
			
		||||
                "name": {
 | 
			
		||||
                  "commentStart": 0,
 | 
			
		||||
                  "end": 0,
 | 
			
		||||
                  "name": "numSides",
 | 
			
		||||
                  "start": 0,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "path": [],
 | 
			
		||||
                "start": 0,
 | 
			
		||||
                "type": "Name",
 | 
			
		||||
                "type": "Name"
 | 
			
		||||
              },
 | 
			
		||||
              "raw": "360",
 | 
			
		||||
              "start": 0,
 | 
			
		||||
              "type": "BinaryExpression",
 | 
			
		||||
              "type": "BinaryExpression"
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "value": 360.0,
 | 
			
		||||
                "suffix": "None"
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            "operator": "/",
 | 
			
		||||
            "right": {
 | 
			
		||||
              "abs_path": false,
 | 
			
		||||
              "commentStart": 0,
 | 
			
		||||
              "end": 0,
 | 
			
		||||
              "name": {
 | 
			
		||||
                "commentStart": 0,
 | 
			
		||||
                "end": 0,
 | 
			
		||||
                "name": "numSides",
 | 
			
		||||
                "start": 0,
 | 
			
		||||
                "type": "Identifier"
 | 
			
		||||
              },
 | 
			
		||||
              "path": [],
 | 
			
		||||
              "start": 0,
 | 
			
		||||
              "type": "Name",
 | 
			
		||||
              "type": "Name"
 | 
			
		||||
            },
 | 
			
		||||
            "start": 0,
 | 
			
		||||
            "ty": {
 | 
			
		||||
              "Deg": null,
 | 
			
		||||
              "commentStart": 0,
 | 
			
		||||
              "end": 0,
 | 
			
		||||
              "p_type": "Number",
 | 
			
		||||
              "start": 0,
 | 
			
		||||
              "type": "Primitive"
 | 
			
		||||
            },
 | 
			
		||||
            "type": "AscribedExpression",
 | 
			
		||||
            "type": "AscribedExpression"
 | 
			
		||||
            "type": "BinaryExpression",
 | 
			
		||||
            "type": "BinaryExpression"
 | 
			
		||||
          },
 | 
			
		||||
          "start": 0,
 | 
			
		||||
          "type": "VariableDeclarator"
 | 
			
		||||
@ -317,7 +302,15 @@ description: Result of parsing loop_tag.kcl
 | 
			
		||||
                            "start": 0,
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "path": [],
 | 
			
		||||
                          "path": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "name": "math",
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "start": 0,
 | 
			
		||||
                          "type": "Name"
 | 
			
		||||
                        },
 | 
			
		||||
@ -402,7 +395,15 @@ description: Result of parsing loop_tag.kcl
 | 
			
		||||
                            "start": 0,
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "path": [],
 | 
			
		||||
                          "path": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "commentStart": 0,
 | 
			
		||||
                              "end": 0,
 | 
			
		||||
                              "name": "math",
 | 
			
		||||
                              "start": 0,
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "start": 0,
 | 
			
		||||
                          "type": "Name"
 | 
			
		||||
                        },
 | 
			
		||||
 | 
			
		||||
@ -9,13 +9,13 @@
 | 
			
		||||
radius = 10
 | 
			
		||||
height = 50
 | 
			
		||||
numSides = 50
 | 
			
		||||
angleIncrement = (360 / numSides): number(deg)
 | 
			
		||||
angleIncrement = 360 / numSides
 | 
			
		||||
 | 
			
		||||
// Function to calculate the coordinates of a point on the circle
 | 
			
		||||
fn calculatePoint(index) {
 | 
			
		||||
  angle = index * angleIncrement
 | 
			
		||||
  x = radius * cos(angle)
 | 
			
		||||
  y = radius * sin(angle)
 | 
			
		||||
  x = radius * math::cos(angle)
 | 
			
		||||
  y = radius * math::sin(angle)
 | 
			
		||||
  return [x, y]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -7,7 +7,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -18,7 +18,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -29,7 +29,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -40,7 +40,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -51,7 +51,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -62,7 +62,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -73,7 +73,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -84,7 +84,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -95,7 +95,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -106,7 +106,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -117,7 +117,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -128,7 +128,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -139,7 +139,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -150,7 +150,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -161,7 +161,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -172,7 +172,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -183,7 +183,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -194,7 +194,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -205,7 +205,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -216,7 +216,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -227,7 +227,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -238,7 +238,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -249,7 +249,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -260,7 +260,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -271,7 +271,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -282,7 +282,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -293,7 +293,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -304,7 +304,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -315,7 +315,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -326,7 +326,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -337,7 +337,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -348,7 +348,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -359,7 +359,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -370,7 +370,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -381,7 +381,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -392,7 +392,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -403,7 +403,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -414,7 +414,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -425,7 +425,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -436,7 +436,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -447,7 +447,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -458,7 +458,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -469,7 +469,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -480,7 +480,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -491,7 +491,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -502,7 +502,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -513,7 +513,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -524,7 +524,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -535,7 +535,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -546,7 +546,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -557,7 +557,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -568,7 +568,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -579,7 +579,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -590,7 +590,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -601,7 +601,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -612,7 +612,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -623,7 +623,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -634,7 +634,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -645,7 +645,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -656,7 +656,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -667,7 +667,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -678,7 +678,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -689,7 +689,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -700,7 +700,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -711,7 +711,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -722,7 +722,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -733,7 +733,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -744,7 +744,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -755,7 +755,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -766,7 +766,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -777,7 +777,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -788,7 +788,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -799,7 +799,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -810,7 +810,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -821,7 +821,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -832,7 +832,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -843,7 +843,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -854,7 +854,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -865,7 +865,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -876,7 +876,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -887,7 +887,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -898,7 +898,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -909,7 +909,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -920,7 +920,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -931,7 +931,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -942,7 +942,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -953,7 +953,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -964,7 +964,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -975,7 +975,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -986,7 +986,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -997,7 +997,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -1008,7 +1008,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -1019,7 +1019,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -1030,7 +1030,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -1041,7 +1041,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -1052,7 +1052,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -1063,7 +1063,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -1074,7 +1074,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -1085,7 +1085,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
@ -1096,7 +1096,7 @@ description: Operations executed loop_tag.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "sin",
 | 
			
		||||
      "name": "math::sin",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -16,13 +16,13 @@ description: Result of unparsing loop_tag.kcl
 | 
			
		||||
radius = 10
 | 
			
		||||
height = 50
 | 
			
		||||
numSides = 50
 | 
			
		||||
angleIncrement = (360 / numSides): number(deg)
 | 
			
		||||
angleIncrement = 360 / numSides
 | 
			
		||||
 | 
			
		||||
// Function to calculate the coordinates of a point on the circle
 | 
			
		||||
fn calculatePoint(index) {
 | 
			
		||||
  angle = index * angleIncrement
 | 
			
		||||
  x = radius * cos(angle)
 | 
			
		||||
  y = radius * sin(angle)
 | 
			
		||||
  x = radius * math::cos(angle)
 | 
			
		||||
  y = radius * math::sin(angle)
 | 
			
		||||
  return [x, y]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,31 +1,31 @@
 | 
			
		||||
```mermaid
 | 
			
		||||
flowchart LR
 | 
			
		||||
  subgraph path4 [Path]
 | 
			
		||||
    4["Path<br>[337, 407, 0]"]
 | 
			
		||||
    7["Segment<br>[337, 407, 0]"]
 | 
			
		||||
    4["Path<br>[343, 413, 0]"]
 | 
			
		||||
    7["Segment<br>[343, 413, 0]"]
 | 
			
		||||
    16[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path5 [Path]
 | 
			
		||||
    5["Path<br>[652, 712, 0]"]
 | 
			
		||||
    8["Segment<br>[720, 799, 0]"]
 | 
			
		||||
    9["Segment<br>[807, 886, 0]"]
 | 
			
		||||
    10["Segment<br>[894, 973, 0]"]
 | 
			
		||||
    11["Segment<br>[981, 1059, 0]"]
 | 
			
		||||
    12["Segment<br>[1067, 1145, 0]"]
 | 
			
		||||
    13["Segment<br>[1153, 1160, 0]"]
 | 
			
		||||
    5["Path<br>[658, 718, 0]"]
 | 
			
		||||
    8["Segment<br>[726, 805, 0]"]
 | 
			
		||||
    9["Segment<br>[813, 892, 0]"]
 | 
			
		||||
    10["Segment<br>[900, 979, 0]"]
 | 
			
		||||
    11["Segment<br>[987, 1065, 0]"]
 | 
			
		||||
    12["Segment<br>[1073, 1151, 0]"]
 | 
			
		||||
    13["Segment<br>[1159, 1166, 0]"]
 | 
			
		||||
    15[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path6 [Path]
 | 
			
		||||
    6["Path<br>[1268, 1337, 0]"]
 | 
			
		||||
    14["Segment<br>[1268, 1337, 0]"]
 | 
			
		||||
    6["Path<br>[1274, 1343, 0]"]
 | 
			
		||||
    14["Segment<br>[1274, 1343, 0]"]
 | 
			
		||||
    17[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  1["Plane<br>[312, 329, 0]"]
 | 
			
		||||
  2["StartSketchOnFace<br>[605, 644, 0]"]
 | 
			
		||||
  3["StartSketchOnFace<br>[1223, 1260, 0]"]
 | 
			
		||||
  18["Sweep Extrusion<br>[415, 448, 0]"]
 | 
			
		||||
  19["Sweep Extrusion<br>[1168, 1208, 0]"]
 | 
			
		||||
  20["Sweep Extrusion<br>[1345, 1373, 0]"]
 | 
			
		||||
  1["Plane<br>[318, 335, 0]"]
 | 
			
		||||
  2["StartSketchOnFace<br>[611, 650, 0]"]
 | 
			
		||||
  3["StartSketchOnFace<br>[1229, 1266, 0]"]
 | 
			
		||||
  18["Sweep Extrusion<br>[421, 454, 0]"]
 | 
			
		||||
  19["Sweep Extrusion<br>[1174, 1214, 0]"]
 | 
			
		||||
  20["Sweep Extrusion<br>[1351, 1379, 0]"]
 | 
			
		||||
  21[Wall]
 | 
			
		||||
  22[Wall]
 | 
			
		||||
  23[Wall]
 | 
			
		||||
@ -54,9 +54,9 @@ flowchart LR
 | 
			
		||||
  46["SweepEdge Adjacent"]
 | 
			
		||||
  47["SweepEdge Adjacent"]
 | 
			
		||||
  48["SweepEdge Adjacent"]
 | 
			
		||||
  49["EdgeCut Fillet<br>[456, 522, 0]"]
 | 
			
		||||
  50["EdgeCut Fillet<br>[456, 522, 0]"]
 | 
			
		||||
  51["EdgeCut Fillet<br>[1381, 1440, 0]"]
 | 
			
		||||
  49["EdgeCut Fillet<br>[462, 528, 0]"]
 | 
			
		||||
  50["EdgeCut Fillet<br>[462, 528, 0]"]
 | 
			
		||||
  51["EdgeCut Fillet<br>[1387, 1446, 0]"]
 | 
			
		||||
  1 --- 4
 | 
			
		||||
  30 x--> 2
 | 
			
		||||
  32 x--> 3
 | 
			
		||||
 | 
			
		||||
@ -273,7 +273,15 @@ description: Result of parsing rotate_after_fillet.kcl
 | 
			
		||||
                    "start": 0,
 | 
			
		||||
                    "type": "Identifier"
 | 
			
		||||
                  },
 | 
			
		||||
                  "path": [],
 | 
			
		||||
                  "path": [
 | 
			
		||||
                    {
 | 
			
		||||
                      "commentStart": 0,
 | 
			
		||||
                      "end": 0,
 | 
			
		||||
                      "name": "math",
 | 
			
		||||
                      "start": 0,
 | 
			
		||||
                      "type": "Identifier"
 | 
			
		||||
                    }
 | 
			
		||||
                  ],
 | 
			
		||||
                  "start": 0,
 | 
			
		||||
                  "type": "Name"
 | 
			
		||||
                },
 | 
			
		||||
 | 
			
		||||
@ -3,7 +3,7 @@ export boltLength = 2.500
 | 
			
		||||
export boltHeadLength = boltDiameter
 | 
			
		||||
export boltHeadDiameter = 0.938
 | 
			
		||||
export boltHexDrive = 1 / 2
 | 
			
		||||
export boltHexFlatLength = boltHexDrive / (2 * cos(30deg))
 | 
			
		||||
export boltHexFlatLength = boltHexDrive / (2 * math::cos(30deg))
 | 
			
		||||
export boltThreadLength = 1.75
 | 
			
		||||
 | 
			
		||||
export fn bolt() {
 | 
			
		||||
 | 
			
		||||
@ -7,7 +7,7 @@ description: Operations executed rotate_after_fillet.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
 | 
			
		||||
@ -7,7 +7,7 @@ export boltLength = 2.500
 | 
			
		||||
export boltHeadLength = boltDiameter
 | 
			
		||||
export boltHeadDiameter = 0.938
 | 
			
		||||
export boltHexDrive = 1 / 2
 | 
			
		||||
export boltHexFlatLength = boltHexDrive / (2 * cos(30deg))
 | 
			
		||||
export boltHexFlatLength = boltHexDrive / (2 * math::cos(30deg))
 | 
			
		||||
export boltThreadLength = 1.75
 | 
			
		||||
 | 
			
		||||
export fn bolt() {
 | 
			
		||||
 | 
			
		||||
@ -1,31 +1,31 @@
 | 
			
		||||
```mermaid
 | 
			
		||||
flowchart LR
 | 
			
		||||
  subgraph path4 [Path]
 | 
			
		||||
    4["Path<br>[337, 407, 0]"]
 | 
			
		||||
    7["Segment<br>[337, 407, 0]"]
 | 
			
		||||
    4["Path<br>[343, 413, 0]"]
 | 
			
		||||
    7["Segment<br>[343, 413, 0]"]
 | 
			
		||||
    16[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path5 [Path]
 | 
			
		||||
    5["Path<br>[652, 712, 0]"]
 | 
			
		||||
    8["Segment<br>[720, 799, 0]"]
 | 
			
		||||
    9["Segment<br>[807, 886, 0]"]
 | 
			
		||||
    10["Segment<br>[894, 973, 0]"]
 | 
			
		||||
    11["Segment<br>[981, 1059, 0]"]
 | 
			
		||||
    12["Segment<br>[1067, 1145, 0]"]
 | 
			
		||||
    13["Segment<br>[1153, 1160, 0]"]
 | 
			
		||||
    5["Path<br>[658, 718, 0]"]
 | 
			
		||||
    8["Segment<br>[726, 805, 0]"]
 | 
			
		||||
    9["Segment<br>[813, 892, 0]"]
 | 
			
		||||
    10["Segment<br>[900, 979, 0]"]
 | 
			
		||||
    11["Segment<br>[987, 1065, 0]"]
 | 
			
		||||
    12["Segment<br>[1073, 1151, 0]"]
 | 
			
		||||
    13["Segment<br>[1159, 1166, 0]"]
 | 
			
		||||
    15[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path6 [Path]
 | 
			
		||||
    6["Path<br>[1268, 1337, 0]"]
 | 
			
		||||
    14["Segment<br>[1268, 1337, 0]"]
 | 
			
		||||
    6["Path<br>[1274, 1343, 0]"]
 | 
			
		||||
    14["Segment<br>[1274, 1343, 0]"]
 | 
			
		||||
    17[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  1["Plane<br>[312, 329, 0]"]
 | 
			
		||||
  2["StartSketchOnFace<br>[605, 644, 0]"]
 | 
			
		||||
  3["StartSketchOnFace<br>[1223, 1260, 0]"]
 | 
			
		||||
  18["Sweep Extrusion<br>[415, 448, 0]"]
 | 
			
		||||
  19["Sweep Extrusion<br>[1168, 1208, 0]"]
 | 
			
		||||
  20["Sweep Extrusion<br>[1345, 1373, 0]"]
 | 
			
		||||
  1["Plane<br>[318, 335, 0]"]
 | 
			
		||||
  2["StartSketchOnFace<br>[611, 650, 0]"]
 | 
			
		||||
  3["StartSketchOnFace<br>[1229, 1266, 0]"]
 | 
			
		||||
  18["Sweep Extrusion<br>[421, 454, 0]"]
 | 
			
		||||
  19["Sweep Extrusion<br>[1174, 1214, 0]"]
 | 
			
		||||
  20["Sweep Extrusion<br>[1351, 1379, 0]"]
 | 
			
		||||
  21[Wall]
 | 
			
		||||
  22[Wall]
 | 
			
		||||
  23[Wall]
 | 
			
		||||
@ -54,9 +54,9 @@ flowchart LR
 | 
			
		||||
  46["SweepEdge Adjacent"]
 | 
			
		||||
  47["SweepEdge Adjacent"]
 | 
			
		||||
  48["SweepEdge Adjacent"]
 | 
			
		||||
  49["EdgeCut Fillet<br>[456, 522, 0]"]
 | 
			
		||||
  50["EdgeCut Fillet<br>[456, 522, 0]"]
 | 
			
		||||
  51["EdgeCut Fillet<br>[1381, 1440, 0]"]
 | 
			
		||||
  49["EdgeCut Fillet<br>[462, 528, 0]"]
 | 
			
		||||
  50["EdgeCut Fillet<br>[462, 528, 0]"]
 | 
			
		||||
  51["EdgeCut Fillet<br>[1387, 1446, 0]"]
 | 
			
		||||
  1 --- 4
 | 
			
		||||
  30 x--> 2
 | 
			
		||||
  32 x--> 3
 | 
			
		||||
 | 
			
		||||
@ -273,7 +273,15 @@ description: Result of parsing scale_after_fillet.kcl
 | 
			
		||||
                    "start": 0,
 | 
			
		||||
                    "type": "Identifier"
 | 
			
		||||
                  },
 | 
			
		||||
                  "path": [],
 | 
			
		||||
                  "path": [
 | 
			
		||||
                    {
 | 
			
		||||
                      "commentStart": 0,
 | 
			
		||||
                      "end": 0,
 | 
			
		||||
                      "name": "math",
 | 
			
		||||
                      "start": 0,
 | 
			
		||||
                      "type": "Identifier"
 | 
			
		||||
                    }
 | 
			
		||||
                  ],
 | 
			
		||||
                  "start": 0,
 | 
			
		||||
                  "type": "Name"
 | 
			
		||||
                },
 | 
			
		||||
 | 
			
		||||
@ -3,7 +3,7 @@ export boltLength = 2.500
 | 
			
		||||
export boltHeadLength = boltDiameter
 | 
			
		||||
export boltHeadDiameter = 0.938
 | 
			
		||||
export boltHexDrive = 1 / 2
 | 
			
		||||
export boltHexFlatLength = boltHexDrive / (2 * cos(30deg))
 | 
			
		||||
export boltHexFlatLength = boltHexDrive / (2 * math::cos(30deg))
 | 
			
		||||
export boltThreadLength = 1.75
 | 
			
		||||
 | 
			
		||||
export fn bolt() {
 | 
			
		||||
 | 
			
		||||
@ -7,7 +7,7 @@ description: Operations executed scale_after_fillet.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
 | 
			
		||||
@ -7,7 +7,7 @@ export boltLength = 2.500
 | 
			
		||||
export boltHeadLength = boltDiameter
 | 
			
		||||
export boltHeadDiameter = 0.938
 | 
			
		||||
export boltHexDrive = 1 / 2
 | 
			
		||||
export boltHexFlatLength = boltHexDrive / (2 * cos(30deg))
 | 
			
		||||
export boltHexFlatLength = boltHexDrive / (2 * math::cos(30deg))
 | 
			
		||||
export boltThreadLength = 1.75
 | 
			
		||||
 | 
			
		||||
export fn bolt() {
 | 
			
		||||
 | 
			
		||||
@ -1,31 +1,31 @@
 | 
			
		||||
```mermaid
 | 
			
		||||
flowchart LR
 | 
			
		||||
  subgraph path4 [Path]
 | 
			
		||||
    4["Path<br>[337, 407, 0]"]
 | 
			
		||||
    7["Segment<br>[337, 407, 0]"]
 | 
			
		||||
    4["Path<br>[343, 413, 0]"]
 | 
			
		||||
    7["Segment<br>[343, 413, 0]"]
 | 
			
		||||
    16[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path5 [Path]
 | 
			
		||||
    5["Path<br>[652, 712, 0]"]
 | 
			
		||||
    8["Segment<br>[720, 799, 0]"]
 | 
			
		||||
    9["Segment<br>[807, 886, 0]"]
 | 
			
		||||
    10["Segment<br>[894, 973, 0]"]
 | 
			
		||||
    11["Segment<br>[981, 1059, 0]"]
 | 
			
		||||
    12["Segment<br>[1067, 1145, 0]"]
 | 
			
		||||
    13["Segment<br>[1153, 1160, 0]"]
 | 
			
		||||
    5["Path<br>[658, 718, 0]"]
 | 
			
		||||
    8["Segment<br>[726, 805, 0]"]
 | 
			
		||||
    9["Segment<br>[813, 892, 0]"]
 | 
			
		||||
    10["Segment<br>[900, 979, 0]"]
 | 
			
		||||
    11["Segment<br>[987, 1065, 0]"]
 | 
			
		||||
    12["Segment<br>[1073, 1151, 0]"]
 | 
			
		||||
    13["Segment<br>[1159, 1166, 0]"]
 | 
			
		||||
    15[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path6 [Path]
 | 
			
		||||
    6["Path<br>[1268, 1337, 0]"]
 | 
			
		||||
    14["Segment<br>[1268, 1337, 0]"]
 | 
			
		||||
    6["Path<br>[1274, 1343, 0]"]
 | 
			
		||||
    14["Segment<br>[1274, 1343, 0]"]
 | 
			
		||||
    17[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  1["Plane<br>[312, 329, 0]"]
 | 
			
		||||
  2["StartSketchOnFace<br>[605, 644, 0]"]
 | 
			
		||||
  3["StartSketchOnFace<br>[1223, 1260, 0]"]
 | 
			
		||||
  18["Sweep Extrusion<br>[415, 448, 0]"]
 | 
			
		||||
  19["Sweep Extrusion<br>[1168, 1208, 0]"]
 | 
			
		||||
  20["Sweep Extrusion<br>[1345, 1373, 0]"]
 | 
			
		||||
  1["Plane<br>[318, 335, 0]"]
 | 
			
		||||
  2["StartSketchOnFace<br>[611, 650, 0]"]
 | 
			
		||||
  3["StartSketchOnFace<br>[1229, 1266, 0]"]
 | 
			
		||||
  18["Sweep Extrusion<br>[421, 454, 0]"]
 | 
			
		||||
  19["Sweep Extrusion<br>[1174, 1214, 0]"]
 | 
			
		||||
  20["Sweep Extrusion<br>[1351, 1379, 0]"]
 | 
			
		||||
  21[Wall]
 | 
			
		||||
  22[Wall]
 | 
			
		||||
  23[Wall]
 | 
			
		||||
@ -54,9 +54,9 @@ flowchart LR
 | 
			
		||||
  46["SweepEdge Adjacent"]
 | 
			
		||||
  47["SweepEdge Adjacent"]
 | 
			
		||||
  48["SweepEdge Adjacent"]
 | 
			
		||||
  49["EdgeCut Fillet<br>[456, 522, 0]"]
 | 
			
		||||
  50["EdgeCut Fillet<br>[456, 522, 0]"]
 | 
			
		||||
  51["EdgeCut Fillet<br>[1381, 1440, 0]"]
 | 
			
		||||
  49["EdgeCut Fillet<br>[462, 528, 0]"]
 | 
			
		||||
  50["EdgeCut Fillet<br>[462, 528, 0]"]
 | 
			
		||||
  51["EdgeCut Fillet<br>[1387, 1446, 0]"]
 | 
			
		||||
  1 --- 4
 | 
			
		||||
  30 x--> 2
 | 
			
		||||
  32 x--> 3
 | 
			
		||||
 | 
			
		||||
@ -273,7 +273,15 @@ description: Result of parsing translate_after_fillet.kcl
 | 
			
		||||
                    "start": 0,
 | 
			
		||||
                    "type": "Identifier"
 | 
			
		||||
                  },
 | 
			
		||||
                  "path": [],
 | 
			
		||||
                  "path": [
 | 
			
		||||
                    {
 | 
			
		||||
                      "commentStart": 0,
 | 
			
		||||
                      "end": 0,
 | 
			
		||||
                      "name": "math",
 | 
			
		||||
                      "start": 0,
 | 
			
		||||
                      "type": "Identifier"
 | 
			
		||||
                    }
 | 
			
		||||
                  ],
 | 
			
		||||
                  "start": 0,
 | 
			
		||||
                  "type": "Name"
 | 
			
		||||
                },
 | 
			
		||||
 | 
			
		||||
@ -3,7 +3,7 @@ export boltLength = 2.500
 | 
			
		||||
export boltHeadLength = boltDiameter
 | 
			
		||||
export boltHeadDiameter = 0.938
 | 
			
		||||
export boltHexDrive = 1 / 2
 | 
			
		||||
export boltHexFlatLength = boltHexDrive / (2 * cos(30deg))
 | 
			
		||||
export boltHexFlatLength = boltHexDrive / (2 * math::cos(30deg))
 | 
			
		||||
export boltThreadLength = 1.75
 | 
			
		||||
 | 
			
		||||
export fn bolt() {
 | 
			
		||||
 | 
			
		||||
@ -7,7 +7,7 @@ description: Operations executed translate_after_fillet.kcl
 | 
			
		||||
    "type": "GroupBegin",
 | 
			
		||||
    "group": {
 | 
			
		||||
      "type": "FunctionCall",
 | 
			
		||||
      "name": "cos",
 | 
			
		||||
      "name": "math::cos",
 | 
			
		||||
      "functionSourceRange": [],
 | 
			
		||||
      "unlabeledArg": null,
 | 
			
		||||
      "labeledArgs": {}
 | 
			
		||||
 | 
			
		||||
@ -7,7 +7,7 @@ export boltLength = 2.500
 | 
			
		||||
export boltHeadLength = boltDiameter
 | 
			
		||||
export boltHeadDiameter = 0.938
 | 
			
		||||
export boltHexDrive = 1 / 2
 | 
			
		||||
export boltHexFlatLength = boltHexDrive / (2 * cos(30deg))
 | 
			
		||||
export boltHexFlatLength = boltHexDrive / (2 * math::cos(30deg))
 | 
			
		||||
export boltThreadLength = 1.75
 | 
			
		||||
 | 
			
		||||
export fn bolt() {
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user