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:
Nick Cameron
2025-04-30 12:40:11 +12:00
committed by GitHub
parent fa51b4bbbc
commit 844f229b5a
94 changed files with 5880 additions and 13152 deletions

View File

@ -110,13 +110,13 @@ layout: manual
* [`xLine`](kcl/xLine) * [`xLine`](kcl/xLine)
* [`yLine`](kcl/yLine) * [`yLine`](kcl/yLine)
* **std::math** * **std::math**
* [`E`](kcl/consts/std-math-E) * [`math::E`](kcl/consts/std-math-E)
* [`PI`](kcl/consts/std-math-PI) * [`math::PI`](kcl/consts/std-math-PI)
* [`TAU`](kcl/consts/std-math-TAU) * [`math::TAU`](kcl/consts/std-math-TAU)
* [`cos`](kcl/std-math-cos) * [`math::cos`](kcl/std-math-cos)
* [`polar`](kcl/std-math-polar) * [`math::polar`](kcl/std-math-polar)
* [`sin`](kcl/std-math-sin) * [`math::sin`](kcl/std-math-sin)
* [`tan`](kcl/std-math-tan) * [`math::tan`](kcl/std-math-tan)
* **std::sketch** * **std::sketch**
* [`circle`](kcl/std-sketch-circle) * [`circle`](kcl/std-sketch-circle)
* [`mirror2d`](kcl/std-sketch-mirror2d) * [`mirror2d`](kcl/std-sketch-mirror2d)

View File

@ -178,7 +178,7 @@ t = 0.005 // taper factor [0-1)
// Defines how to modify each layer of the vase. // Defines how to modify each layer of the vase.
// Each replica is shifted up the Z axis, and has a smoothly-varying radius // Each replica is shifted up the Z axis, and has a smoothly-varying radius
fn transform(replicaId) { fn transform(replicaId) {
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 { return {
translate = [0, 0, replicaId * 10], translate = [0, 0, replicaId * 10],
scale = [scale, scale, 0] scale = [scale, scale, 0]

View File

@ -93,11 +93,14 @@ assert(
// Declare a function that sketches a decagon. // Declare a function that sketches a decagon.
fn decagon(radius) { fn decagon(radius) {
// Each side of the decagon is turned this many radians from the previous angle. // 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. // Start the decagon sketch at this point.
startOfDecagonSketch = startSketchOn(XY) 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. // Use a `reduce` to draw the remaining decagon sides.
// For each number in the array 1..10, run the given function, // For each number in the array 1..10, run the given function,
@ -107,8 +110,8 @@ fn decagon(radius) {
initial = startOfDecagonSketch, initial = startOfDecagonSketch,
f = fn(i, partialDecagon) { f = fn(i, partialDecagon) {
// Draw one edge of the decagon. // Draw one edge of the decagon.
x = cos(stepAngle * i) * radius x = math::cos(stepAngle * i) * radius
y = sin(stepAngle * i) * radius y = math::sin(stepAngle * i) * radius
return line(partialDecagon, end = [x, y]) return line(partialDecagon, end = [x, y])
}, },
) )
@ -118,15 +121,15 @@ fn decagon(radius) {
/* The `decagon` above is basically like this pseudo-code: /* The `decagon` above is basically like this pseudo-code:
fn decagon(radius): fn decagon(radius):
stepAngle = (1/10) * TAU stepAngle = ((1/10) * TAU): number(rad)
plane = startSketchOn('XY') plane = startSketchOn(XY)
startOfDecagonSketch = startProfile(plane, at = [(cos(0)*radius), (sin(0) * radius)]) startOfDecagonSketch = startProfile(plane, at = [(math::cos(0)*radius), (math::sin(0) * radius)])
// Here's the reduce part. // Here's the reduce part.
partialDecagon = startOfDecagonSketch partialDecagon = startOfDecagonSketch
for i in [1..10]: for i in [1..10]:
x = cos(stepAngle * i) * radius x = math::cos(stepAngle * i) * radius
y = sin(stepAngle * i) * radius y = math::sin(stepAngle * i) * radius
partialDecagon = line(partialDecagon, end = [x, y]) partialDecagon = line(partialDecagon, end = [x, y])
fullDecagon = partialDecagon // it's now full fullDecagon = partialDecagon // it's now full
return fullDecagon */ return fullDecagon */

View File

@ -1,10 +1,10 @@
--- ---
title: "std::math::cos" title: "std::math::cos"
excerpt: "Compute the cosine of a number (in radians)." excerpt: "Compute the cosine of a number."
layout: manual 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]) |> startProfile(at = [0, 0])
|> angledLine( |> angledLine(
angle = 30, angle = 30,
length = 3 / cos(30deg), length = 3 / math::cos(30deg),
) )
|> yLine(endAbsolute = 0) |> yLine(endAbsolute = 0)
|> close() |> close()

View File

@ -34,7 +34,7 @@ polar(
```js ```js
exampleSketch = startSketchOn(XZ) exampleSketch = startSketchOn(XZ)
|> startProfile(at = [0, 0]) |> 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 = [0, 5])
|> line(end = [segEndX(thing), 0]) |> line(end = [segEndX(thing), 0])
|> line(end = [-20, 10]) |> line(end = [-20, 10])

View File

@ -1,10 +1,10 @@
--- ---
title: "std::math::sin" title: "std::math::sin"
excerpt: "Compute the sine of a number (in radians)." excerpt: "Compute the sine of a number."
layout: manual 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]) |> startProfile(at = [0, 0])
|> angledLine( |> angledLine(
angle = 50, angle = 50,
length = 15 / sin(135deg), length = 15 / math::sin(135deg),
) )
|> yLine(endAbsolute = 0) |> yLine(endAbsolute = 0)
|> close() |> close()

View File

@ -1,10 +1,10 @@
--- ---
title: "std::math::tan" title: "std::math::tan"
excerpt: "Compute the tangent of a number (in radians)." excerpt: "Compute the tangent of a number."
layout: manual 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]) |> startProfile(at = [0, 0])
|> angledLine( |> angledLine(
angle = 50, angle = 50,
length = 50 * tan((1/2): number(rad)), length = 50 * math::tan((1/2): number(rad)),
) )
|> yLine(endAbsolute = 0) |> yLine(endAbsolute = 0)
|> close() |> close()

View File

@ -31,7 +31,7 @@ exampleSketch = startSketchOn(XZ)
|> startProfile(at = [0, 0]) |> startProfile(at = [0, 0])
|> angledLine( |> angledLine(
angle = 50, angle = 50,
length = 70 * cos(units::toDegrees((PI/4): number(rad))), length = 70 * math::cos(units::toDegrees((PI/4): number(rad))),
) )
|> yLine(endAbsolute = 0) |> yLine(endAbsolute = 0)
|> close() |> close()

View File

@ -31,7 +31,7 @@ exampleSketch = startSketchOn(XZ)
|> startProfile(at = [0, 0]) |> startProfile(at = [0, 0])
|> angledLine( |> angledLine(
angle = 50, angle = 50,
length = 70 * cos(units::toRadians(45)), length = 70 * math::cos(units::toRadians(45)),
) )
|> yLine(endAbsolute = 0) |> yLine(endAbsolute = 0)
|> close() |> close()

View File

@ -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)", "// 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 // 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)", "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)" "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": [ "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 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)", "// 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()"
] ]
}, },
{ {

View File

@ -36,35 +36,35 @@ fanCenter = startSketchOn(XZ)
fn fanBlade(offsetHeight, startAngle: number(deg)) { fn fanBlade(offsetHeight, startAngle: number(deg)) {
fanBlade = startSketchOn(offsetPlane(XY, offset = offsetHeight)) fanBlade = startSketchOn(offsetPlane(XY, offset = offsetHeight))
|> startProfile(at = [ |> startProfile(at = [
15 * cos(startAngle), 15 * math::cos(startAngle),
15 * sin(startAngle) 15 * math::sin(startAngle)
]) ])
|> arc(angleStart = startAngle, angleEnd = startAngle + 14, radius = 15) |> arc(angleStart = startAngle, angleEnd = startAngle + 14, radius = 15)
|> arc( |> arc(
endAbsolute = [ endAbsolute = [
fanSize * 22 / 50 * cos(startAngle - 20), fanSize * 22 / 50 * math::cos(startAngle - 20),
fanSize * 22 / 50 * sin(startAngle - 20) fanSize * 22 / 50 * math::sin(startAngle - 20)
], ],
interiorAbsolute = [ interiorAbsolute = [
fanSize * 11 / 50 * cos(startAngle + 3), fanSize * 11 / 50 * math::cos(startAngle + 3),
fanSize * 11 / 50 * sin(startAngle + 3) fanSize * 11 / 50 * math::sin(startAngle + 3)
], ],
) )
|> arc( |> arc(
endAbsolute = [ endAbsolute = [
fanSize * 22 / 50 * cos(startAngle - 24), fanSize * 22 / 50 * math::cos(startAngle - 24),
fanSize * 22 / 50 * sin(startAngle - 24) fanSize * 22 / 50 * math::sin(startAngle - 24)
], ],
interiorAbsolute = [ interiorAbsolute = [
fanSize * 22 / 50 * cos(startAngle - 22), fanSize * 22 / 50 * math::cos(startAngle - 22),
fanSize * 22 / 50 * sin(startAngle - 22) fanSize * 22 / 50 * math::sin(startAngle - 22)
], ],
) )
|> arc( |> arc(
endAbsolute = [profileStartX(%), profileStartY(%)], endAbsolute = [profileStartX(%), profileStartY(%)],
interiorAbsolute = [ interiorAbsolute = [
fanSize * 11 / 50 * cos(startAngle - 5), fanSize * 11 / 50 * math::cos(startAngle - 5),
fanSize * 11 / 50 * sin(startAngle - 5) fanSize * 11 / 50 * math::sin(startAngle - 5)
], ],
) )
|> close() |> close()

View File

@ -44,7 +44,7 @@ balls = revolve(ballsSketch, axis = X)
chainSketch = startSketchOn(XY) chainSketch = startSketchOn(XY)
|> startProfile(at = [ |> startProfile(at = [
shaftDia / 2 + wallThickness + sphereDia / 2 - (chainWidth / 2), shaftDia / 2 + wallThickness + sphereDia / 2 - (chainWidth / 2),
0.125 * sin(60deg) 0.125 * math::sin(60)
]) ])
|> arc(angleStart = 120, angleEnd = 60, radius = sphereDia / 2) |> arc(angleStart = 120, angleEnd = 60, radius = sphereDia / 2)
|> line(end = [0, chainThickness]) |> line(end = [0, chainThickness])

View File

@ -11,8 +11,8 @@ fn cycloidalGear(gearPitch, gearHeight, holeDiameter, helixAngle: number(deg)) {
helixAngleP = helixAngle * gHeight / gearHeight helixAngleP = helixAngle * gHeight / gearHeight
gearProfile = startSketchOn(offsetPlane(XY, offset = gHeight)) gearProfile = startSketchOn(offsetPlane(XY, offset = gHeight))
|> startProfile(at = [ |> startProfile(at = [
gearPitch * 1.55 * cos(helixAngleP) + gearPitch * sin(-helixAngleP), gearPitch * 1.55 * math::cos(helixAngleP) + gearPitch * math::sin(-helixAngleP),
gearPitch * 1.55 * sin(helixAngleP) + gearPitch * cos(-helixAngleP) gearPitch * 1.55 * math::sin(helixAngleP) + gearPitch * math::cos(-helixAngleP)
]) ])
|> arc(angleStart = 90 + helixAngleP, angleEnd = -90 + helixAngleP, radius = gearPitch) |> arc(angleStart = 90 + helixAngleP, angleEnd = -90 + helixAngleP, radius = gearPitch)
|> tangentialArc(radius = gearPitch * 1.67, angle = 60) |> tangentialArc(radius = gearPitch * 1.67, angle = 60)

View File

@ -11,14 +11,18 @@ plateHeight = 0.125
bendRadius = 3 bendRadius = 3
// Create a function to draw each primary tube with specified lengths and angles // 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 // Create an index for the function
pos001 = n * 2 pos001 = n * 2
// Define a plane for each sweep path defined by an angle // Define a plane for each sweep path defined by an angle
sweepPlane = { sweepPlane = {
origin = [pos001, 0.0, 0], 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], yAxis = [0.0, 0.0, 1.0],
zAxis = [1.0, 0.0, 0.0] zAxis = [1.0, 0.0, 0.0]
} }

View File

@ -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)) 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] xstart = width / 2 * math::cos(angle - 90) + start[0]
ystart = width / 2 * sin(units::toRadians(angle - 90)) + start[1] ystart = width / 2 * math::sin(angle - 90) + start[1]
slotSketch = startProfile(sketch1, at = [xstart, ystart]) slotSketch = startProfile(sketch1, at = [xstart, ystart])
|> angledLine(angle = angle, length = dist) |> angledLine(angle = angle, length = dist)
|> tangentialArc(radius = width / 2, angle = 180) |> tangentialArc(radius = width / 2, angle = 180)

View File

@ -11,7 +11,7 @@ pitchDiameter = module * nTeeth
pressureAngle = 20 pressureAngle = 20
addendum = module addendum = module
deddendum = 1.25 * module deddendum = 1.25 * module
baseDiameter = pitchDiameter * cos(units::toRadians(pressureAngle)) baseDiameter = pitchDiameter * math::cos(pressureAngle)
tipDiameter = pitchDiameter + 2 * module tipDiameter = pitchDiameter + 2 * module
gearHeight = 3 gearHeight = 3
@ -36,7 +36,7 @@ angles = map(
invas = map( invas = map(
angles, angles,
f = fn(a) { 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( xs = map(
[0..cmo], [0..cmo],
f = fn(i) { f = fn(i) {
return rs[i] * cos(invas[i]: number(rad)) return rs[i] * math::cos(invas[i]: number(rad))
}, },
) )
ys = map( ys = map(
[0..cmo], [0..cmo],
f = fn(i) { 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) { fn rightInvolute(i, sg) {
x = rs[i] * cos(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] * sin(units::toRadians(-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]) return line(sg, endAbsolute = [x, y])
} }
@ -100,8 +100,8 @@ startAngle = asin(keywayWidth / 2 / holeRadius)
// Sketch the keyway and center hole and extrude // Sketch the keyway and center hole and extrude
keyWay = startSketchOn(body, face = END) keyWay = startSketchOn(body, face = END)
|> startProfile(at = [ |> startProfile(at = [
holeRadius * cos(startAngle), holeRadius * math::cos(startAngle),
holeRadius * sin(startAngle) holeRadius * math::sin(startAngle)
]) ])
|> xLine(length = keywayDepth) |> xLine(length = keywayDepth)
|> yLine(length = -keywayWidth) |> yLine(length = -keywayWidth)

View File

@ -58,7 +58,7 @@ extrude(
plane001 = { plane001 = {
origin = [0.0, 0.0, 0.7], origin = [0.0, 0.0, 0.7],
xAxis = [1.0, 0.0, 0.0], 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] zAxis = [0.0, 0.0, 1.0]
} }
@ -124,7 +124,7 @@ keyFn([spacing * 3 + 12, row6], 1, keyHeight * .6, 0, highlightColor2)
plane002 = { plane002 = {
origin = [0.0, 0.0, .81], origin = [0.0, 0.0, .81],
xAxis = [1.0, 0.0, 0.0], 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] zAxis = [0.0, 0.0, 1.0]
} }

View File

@ -36,8 +36,8 @@ export plane001 = {
export plane002 = { export plane002 = {
origin = [0.0, 0.0, 0.0], origin = [0.0, 0.0, 0.0],
xAxis = [ xAxis = [
sin(axisJ1): number(in), math::sin(axisJ1): number(in),
cos(axisJ1): number(in), math::cos(axisJ1): number(in),
0.0 0.0
], ],
yAxis = [0.0, 0.0, 1.0] yAxis = [0.0, 0.0, 1.0]
@ -47,8 +47,8 @@ export plane002 = {
export plane003 = { export plane003 = {
origin = [-0.1, 0.0, 0.0], origin = [-0.1, 0.0, 0.0],
xAxis = [ xAxis = [
sin(axisJ1): number(in), math::sin(axisJ1): number(in),
cos(axisJ1): number(in), math::cos(axisJ1): number(in),
0.0 0.0
], ],
yAxis = [0.0, 0.0, 1.0] yAxis = [0.0, 0.0, 1.0]

View File

@ -8,8 +8,8 @@ import axisJ1, axisJ2, axisJ2ArmWidth, axisJ2ArmLength, axisJ2ArmThickness, plan
// Create Body of J2 Robot Arm // Create Body of J2 Robot Arm
sketch011 = startSketchOn(plane003) sketch011 = startSketchOn(plane003)
|> startProfile(at = [ |> startProfile(at = [
1.75 - (axisJ2ArmWidth / 2 * sin(units::toRadians(axisJ2))), 1.75 - (axisJ2ArmWidth / 2 * math::sin(axisJ2)),
8 + axisJ2ArmWidth / 2 * cos(units::toRadians(axisJ2)) 8 + axisJ2ArmWidth / 2 * math::cos(axisJ2)
]) ])
|> arc(angleStart = 90 + axisJ2, angleEnd = 270 + axisJ2, radius = axisJ2ArmWidth / 2) |> arc(angleStart = 90 + axisJ2, angleEnd = 270 + axisJ2, radius = axisJ2ArmWidth / 2)
|> angledLine(angle = axisJ2, length = axisJ2ArmLength) |> angledLine(angle = axisJ2, length = axisJ2ArmLength)
@ -26,8 +26,8 @@ extrude012 = extrude(sketch012, length = 0.15)
sketch013 = startSketchOn(extrude011, face = START) sketch013 = startSketchOn(extrude011, face = START)
|> circle( |> circle(
center = [ center = [
-1.75 - (axisJ2ArmLength * cos(units::toRadians(axisJ2))), -1.75 - (axisJ2ArmLength * math::cos(axisJ2)),
8 + axisJ2ArmLength * sin(units::toRadians(axisJ2)) 8 + axisJ2ArmLength * math::sin(axisJ2)
], ],
radius = 1.9, radius = 1.9,
tag = $referenceEdge5, tag = $referenceEdge5,
@ -51,15 +51,15 @@ extrude014 = extrude(sketch014, length = 0.15)
sketch015 = startSketchOn(extrude013, face = END) sketch015 = startSketchOn(extrude013, face = END)
|> circle( |> circle(
center = [ center = [
-1.75 - ((axisJ2ArmLength - 1) * cos(units::toRadians(axisJ2))), -1.75 - ((axisJ2ArmLength - 1) * math::cos(axisJ2)),
8 + (axisJ2ArmLength - 1.5) * sin(units::toRadians(axisJ2)) 8 + (axisJ2ArmLength - 1.5) * math::sin(axisJ2)
], ],
radius = 0.2, radius = 0.2,
) )
|> patternCircular2d( |> patternCircular2d(
center = [ center = [
-1.75 - (axisJ2ArmLength * cos(units::toRadians(axisJ2))), -1.75 - (axisJ2ArmLength * math::cos(axisJ2)),
8 + axisJ2ArmLength * sin(units::toRadians(axisJ2)) 8 + axisJ2ArmLength * math::sin(axisJ2)
], ],
instances = 4, instances = 4,
arcDegrees = 360, arcDegrees = 360,
@ -71,8 +71,8 @@ extrude015 = extrude(sketch015, length = 0.15)
sketch016 = startSketchOn(extrude011, face = END) sketch016 = startSketchOn(extrude011, face = END)
|> circle( |> circle(
center = [ center = [
1.75 + axisJ2ArmLength * cos(units::toRadians(axisJ2)), 1.75 + axisJ2ArmLength * math::cos(axisJ2),
8 + axisJ2ArmLength * sin(units::toRadians(axisJ2)) 8 + axisJ2ArmLength * math::sin(axisJ2)
], ],
radius = 0.3, radius = 0.3,
) )

View File

@ -8,8 +8,8 @@ import plane002, axisJ2, axisJ3C, axisJ4, axisJ2ArmLength, axisJ3CArmLength, axi
// Create Body of J3 Robot Arm // Create Body of J3 Robot Arm
sketch017 = startSketchOn(plane002) sketch017 = startSketchOn(plane002)
|> startProfile(at = [ |> startProfile(at = [
1.75 + axisJ2ArmLength * cos(units::toRadians(axisJ2)) - (axisJ3CArmWidth / 2 * sin(units::toRadians(axisJ3C))), 1.75 + axisJ2ArmLength * math::cos(axisJ2) - (axisJ3CArmWidth / 2 * math::sin(axisJ3C)),
8 + axisJ2ArmLength * sin(units::toRadians(axisJ2)) + axisJ3CArmWidth / 2 * cos(units::toRadians(axisJ3C)) 8 + axisJ2ArmLength * math::sin(axisJ2) + axisJ3CArmWidth / 2 * math::cos(axisJ3C)
]) ])
|> arc(angleStart = 90 + axisJ3C, angleEnd = 270 + axisJ3C, radius = axisJ3CArmWidth / 2) |> arc(angleStart = 90 + axisJ3C, angleEnd = 270 + axisJ3C, radius = axisJ3CArmWidth / 2)
|> angledLine(angle = axisJ3C, length = axisJ3CArmLength) |> angledLine(angle = axisJ3C, length = axisJ3CArmLength)
@ -21,8 +21,8 @@ extrude017 = extrude(sketch017, length = axisJ3CArmThickness)
sketch018 = startSketchOn(extrude017, face = END) sketch018 = startSketchOn(extrude017, face = END)
|> circle( |> circle(
center = [ center = [
1.75 + axisJ2ArmLength * cos(units::toRadians(axisJ2)), 1.75 + axisJ2ArmLength * math::cos(axisJ2),
8 + axisJ2ArmLength * sin(units::toRadians(axisJ2)) 8 + axisJ2ArmLength * math::sin(axisJ2)
], ],
radius = 3.7 / 2, radius = 3.7 / 2,
tag = $referenceEdge6, tag = $referenceEdge6,
@ -35,15 +35,15 @@ extrude018 = extrude(sketch018, length = 0.15)
sketch019 = startSketchOn(extrude018, face = END) sketch019 = startSketchOn(extrude018, face = END)
|> circle( |> circle(
center = [ center = [
1.75 + (axisJ2ArmLength - 1) * cos(units::toRadians(axisJ2)), 1.75 + (axisJ2ArmLength - 1) * math::cos(axisJ2),
8 + (axisJ2ArmLength - 1.5) * sin(units::toRadians(axisJ2)) 8 + (axisJ2ArmLength - 1.5) * math::sin(axisJ2)
], ],
radius = 0.2, radius = 0.2,
) )
|> patternCircular2d( |> patternCircular2d(
center = [ center = [
1.75 + axisJ2ArmLength * cos(units::toRadians(axisJ2)), 1.75 + axisJ2ArmLength * math::cos(axisJ2),
8 + axisJ2ArmLength * sin(units::toRadians(axisJ2)) 8 + axisJ2ArmLength * math::sin(axisJ2)
], ],
instances = 8, instances = 8,
arcDegrees = 360, arcDegrees = 360,
@ -56,8 +56,8 @@ extrude019 = extrude(sketch019, length = 0.15)
sketch020 = startSketchOn(extrude017, face = START) sketch020 = startSketchOn(extrude017, face = START)
|> circle( |> circle(
center = [ center = [
-1.75 - (axisJ2ArmLength * cos(units::toRadians(axisJ2))) - (axisJ3CArmLength * cos(units::toRadians(axisJ3C))), -1.75 - (axisJ2ArmLength * math::cos(axisJ2)) - (axisJ3CArmLength * math::cos(axisJ3C)),
8 + axisJ2ArmLength * sin(units::toRadians(axisJ2)) + axisJ3CArmLength * sin(units::toRadians(axisJ3C)) 8 + axisJ2ArmLength * math::sin(axisJ2) + axisJ3CArmLength * math::sin(axisJ3C)
], ],
radius = axisJ3CArmWidth / 2, radius = axisJ3CArmWidth / 2,
) )
@ -66,8 +66,8 @@ extrude020 = extrude(sketch020, length = -0.5)
sketch021 = startSketchOn(extrude017, face = END) sketch021 = startSketchOn(extrude017, face = END)
|> circle( |> circle(
center = [ center = [
1.75 + axisJ2ArmLength * cos(units::toRadians(axisJ2)) + axisJ3CArmLength * cos(units::toRadians(axisJ3C)), 1.75 + axisJ2ArmLength * math::cos(axisJ2) + axisJ3CArmLength * math::cos(axisJ3C),
8 + axisJ2ArmLength * sin(units::toRadians(axisJ2)) + axisJ3CArmLength * sin(units::toRadians(axisJ3C)) 8 + axisJ2ArmLength * math::sin(axisJ2) + axisJ3CArmLength * math::sin(axisJ3C)
], ],
radius = axisJ3CArmWidth / 2.01, radius = axisJ3CArmWidth / 2.01,
) )
@ -85,8 +85,8 @@ extrude022 = extrude(sketch022, length = -0.01)
// Build Upper Claw Finger // Build Upper Claw Finger
sketch023 = startSketchOn(extrude022, face = START) sketch023 = startSketchOn(extrude022, face = START)
|> startProfile(at = [ |> startProfile(at = [
1.75 + axisJ2ArmLength * cos(units::toRadians(axisJ2)) + axisJ3CArmLength * cos(units::toRadians(axisJ3C)), 1.75 + axisJ2ArmLength * math::cos(axisJ2) + axisJ3CArmLength * math::cos(axisJ3C),
8 + axisJ2ArmLength * sin(units::toRadians(axisJ2)) + axisJ3CArmLength * sin(units::toRadians(axisJ3C)) 8 + axisJ2ArmLength * math::sin(axisJ2) + axisJ3CArmLength * math::sin(axisJ3C)
]) ])
|> angledLine(angle = axisJ3C + axisJ4 / 2, length = grabberLength / 4) |> angledLine(angle = axisJ3C + axisJ4 / 2, length = grabberLength / 4)
|> arc(angleStart = 150 + axisJ3C + axisJ4 / 2, angleEnd = 30 + axisJ3C + axisJ4 / 2, radius = grabberLength / 3) |> 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 // Build Lower Claw Finger
sketch024 = startSketchOn(extrude022, face = START) sketch024 = startSketchOn(extrude022, face = START)
|> startProfile(at = [ |> startProfile(at = [
1.75 + axisJ2ArmLength * cos(units::toRadians(axisJ2)) + axisJ3CArmLength * cos(units::toRadians(axisJ3C)), 1.75 + axisJ2ArmLength * math::cos(axisJ2) + axisJ3CArmLength * math::cos(axisJ3C),
8 + axisJ2ArmLength * sin(units::toRadians(axisJ2)) + axisJ3CArmLength * sin(units::toRadians(axisJ3C)) 8 + axisJ2ArmLength * math::sin(axisJ2) + axisJ3CArmLength * math::sin(axisJ3C)
]) ])
|> angledLine(angle = axisJ3C - (axisJ4 / 2), length = grabberLength / 4) |> angledLine(angle = axisJ3C - (axisJ4 / 2), length = grabberLength / 4)
|> arc(angleStart = 210 + axisJ3C - (axisJ4 / 2), angleEnd = 330 + axisJ3C - (axisJ4 / 2), radius = grabberLength / 3) |> arc(angleStart = 210 + axisJ3C - (axisJ4 / 2), angleEnd = 330 + axisJ3C - (axisJ4 / 2), radius = grabberLength / 3)

View File

@ -25,7 +25,7 @@ extrude006 = extrude(sketch006, length = 1)
sketch007 = startSketchOn(extrude006, face = END) sketch007 = startSketchOn(extrude006, face = END)
|> circle( |> circle(
center = [ center = [
1.75 * cos(units::toRadians(axisJ1)) / abs(cos(units::toRadians(axisJ1))), 1.75 * math::cos(axisJ1) / abs(math::cos(axisJ1)),
8 8
], ],
radius = 2.75, radius = 2.75,
@ -38,14 +38,14 @@ extrude007 = extrude(sketch007, length = 1.5)
sketch008 = startSketchOn(extrude007, face = END) sketch008 = startSketchOn(extrude007, face = END)
|> circle( |> circle(
center = [ center = [
1.75 * cos(units::toRadians(axisJ1)) / abs(cos(units::toRadians(axisJ1))), 1.75 * math::cos(axisJ1) / abs(math::cos(axisJ1)),
6.75 6.75
], ],
radius = 0.2, radius = 0.2,
) )
|> patternCircular2d( |> patternCircular2d(
center = [ center = [
1.75 * cos(units::toRadians(axisJ1)) / abs(cos(units::toRadians(axisJ1))), 1.75 * math::cos(axisJ1) / abs(math::cos(axisJ1)),
8 8
], ],
instances = 4, instances = 4,
@ -57,7 +57,7 @@ extrude008 = extrude(sketch008, length = 0.2)
sketch009 = startSketchOn(extrude007, face = END) sketch009 = startSketchOn(extrude007, face = END)
|> circle( |> circle(
center = [ center = [
1.75 * cos(units::toRadians(axisJ1)) / abs(cos(units::toRadians(axisJ1))), 1.75 * math::cos(axisJ1) / abs(math::cos(axisJ1)),
8 8
], ],
radius = 0.5, radius = 0.5,

View File

@ -28,14 +28,14 @@ export boltLength = 2.500
export boltHeadLength = boltDiameter export boltHeadLength = boltDiameter
export boltHeadDiameter = 0.938 export boltHeadDiameter = 0.938
export boltHexDrive = 1 / 2 export boltHexDrive = 1 / 2
export boltHexFlatLength = boltHexDrive / (2 * cos(30deg)) export boltHexFlatLength = boltHexDrive / (2 * math::cos(30deg))
export boltThreadLength = 1.750 export boltThreadLength = 1.750
// Hex nut (95479A127) // Hex nut (95479A127)
export hexNutDiameter = 5 / 8 export hexNutDiameter = 5 / 8
export hexNutFlatToFlat = 15 / 16 export hexNutFlatToFlat = 15 / 16
export hexNutThickness = 35 / 64 export hexNutThickness = 35 / 64
export hexNutFlatLength = hexNutFlatToFlat / (2 * cos(30deg)) export hexNutFlatLength = hexNutFlatToFlat / (2 * math::cos(30deg))
// Gasket (9472K188) // Gasket (9472K188)
export gasketOutsideDiameter = 4.125 export gasketOutsideDiameter = 4.125

View File

@ -10,7 +10,7 @@ boltLength = 1.0
boltHeadLength = boltDiameter boltHeadLength = boltDiameter
boltHeadDiameter = 0.313 boltHeadDiameter = 0.313
boltHexDrive = 5 / 32 boltHexDrive = 5 / 32
boltHexFlatLength = boltHexDrive / (2 * cos(30deg)) boltHexFlatLength = boltHexDrive / (2 * math::cos(30deg))
// Create the head of the cap screw // Create the head of the cap screw
boltHead = startSketchOn(XZ) boltHead = startSketchOn(XZ)

View File

@ -29,21 +29,21 @@ body = startSketchOn(XZ)
caseIndentSketch = startSketchOn(body, face = END) caseIndentSketch = startSketchOn(body, face = END)
|> startProfile(at = [ |> startProfile(at = [
-width / 2 + offset, -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) |> angledLine(angle = 45, endAbsoluteY = height / 2 - offset)
|> line(endAbsolute = [ |> line(endAbsolute = [
width / 2 - (chamferLength + offset / 2 * cos(45deg)), width / 2 - (chamferLength + offset / 2 * math::cos(45deg)),
height / 2 - offset height / 2 - offset
]) ])
|> angledLine(angle = -45, endAbsoluteX = width / 2 - offset) |> angledLine(angle = -45, endAbsoluteX = width / 2 - offset)
|> line(endAbsolute = [ |> line(endAbsolute = [
width / 2 - offset, 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) |> angledLine(angle = -135, endAbsoluteY = -height / 2 + offset)
|> line(endAbsolute = [ |> line(endAbsolute = [
-(width / 2 - (chamferLength + offset / 2 * cos(45deg))), -(width / 2 - (chamferLength + offset / 2 * math::cos(45deg))),
-height / 2 + offset -height / 2 + offset
]) ])
|> angledLine(angle = -225, endAbsoluteX = -width / 2 + offset) |> angledLine(angle = -225, endAbsoluteX = -width / 2 + offset)

View File

@ -39,21 +39,21 @@ squareHolePatternSketch = startSketchOn(XZ)
case = startSketchOn(XZ) case = startSketchOn(XZ)
|> startProfile(at = [ |> startProfile(at = [
-width / 2 + offset + caseTolerance, -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)) |> angledLine(angle = 45, endAbsoluteY = height / 2 - (offset + caseTolerance))
|> line(endAbsolute = [ |> line(endAbsolute = [
width / 2 - (chamferLength + (offset + caseTolerance) / 2 * cos(45deg)), width / 2 - (chamferLength + (offset + caseTolerance) / 2 * math::cos(45deg)),
height / 2 - (offset + caseTolerance) height / 2 - (offset + caseTolerance)
]) ])
|> angledLine(angle = -45, endAbsoluteX = width / 2 - (offset + caseTolerance)) |> angledLine(angle = -45, endAbsoluteX = width / 2 - (offset + caseTolerance))
|> line(endAbsolute = [ |> line(endAbsolute = [
width / 2 - (offset + caseTolerance), 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) |> angledLine(angle = -135, endAbsoluteY = -height / 2 + offset + caseTolerance)
|> line(endAbsolute = [ |> line(endAbsolute = [
-(width / 2 - (chamferLength + (offset + caseTolerance) / 2 * cos(45deg))), -(width / 2 - (chamferLength + (offset + caseTolerance) / 2 * math::cos(45deg))),
-height / 2 + offset + caseTolerance -height / 2 + offset + caseTolerance
]) ])
|> angledLine(angle = -225, endAbsoluteX = -width / 2 + offset + caseTolerance) |> angledLine(angle = -225, endAbsoluteX = -width / 2 + offset + caseTolerance)

View File

@ -5,7 +5,7 @@ const t = 0.005 // taper factor [0-1)
// Defines how to modify each layer of the vase. // Defines how to modify each layer of the vase.
// Each replica is shifted up the Z axis, and has a smoothly-varying radius // Each replica is shifted up the Z axis, and has a smoothly-varying radius
fn transform = (replicaId) => { fn transform = (replicaId) => {
let scale = r * abs(1 - (t * replicaId)) * (5 + cos((replicaId / 8): number(rad))) let scale = r * abs(1 - (t * replicaId)) * (5 + math::cos((replicaId / 8): number(rad)))
return { return {
translate: [0, 0, replicaId * 10], translate: [0, 0, replicaId * 10],
scale: [scale, scale, 0], scale: [scale, scale, 0],

View File

@ -47,8 +47,8 @@ impl CollectionVisitor {
ImportSelector::None { .. } => { ImportSelector::None { .. } => {
self.visit_module(&path[1], &format!("{}::", import.module_name().unwrap()))? self.visit_module(&path[1], &format!("{}::", import.module_name().unwrap()))?
} }
// Only supports glob or whole-module imports for now. // 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).
_ => unimplemented!(), _ => {}
} }
} }
p => return Err(format!("Unexpected import: `{p}`")), p => return Err(format!("Unexpected import: `{p}`")),

View File

@ -2133,19 +2133,19 @@ b = 180 / PI * a + 360
#[tokio::test(flavor = "multi_thread")] #[tokio::test(flavor = "multi_thread")]
async fn cos_coercions() { async fn cos_coercions() {
let program = r#" let program = r#"
a = cos(units::toRadians(30)) a = math::cos(units::toRadians(30))
b = 3 / a b = 3 / a
c = cos(30deg) c = math::cos(30deg)
d = cos(30) d = math::cos(30)
"#; "#;
let result = parse_execute(program).await.unwrap(); 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("a", &result, 1.0, NumericType::count());
assert_value_and_type("b", &result, 3.0, NumericType::default()); assert_value_and_type("b", &result, 3.0, NumericType::default());
assert_value_and_type("c", &result, 1.0, NumericType::count()); 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")] #[tokio::test(flavor = "multi_thread")]

View File

@ -116,6 +116,17 @@ impl TyF64 {
angle.adjust_to(self.n, UnitAngle::Degrees).0 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 { pub fn count(n: f64) -> Self {
Self { Self {
n, n,

View File

@ -140,19 +140,19 @@ pub async fn reduce(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// // Declare a function that sketches a decagon. /// // Declare a function that sketches a decagon.
/// fn decagon(radius) { /// fn decagon(radius) {
/// // Each side of the decagon is turned this many radians from the previous angle. /// // 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. /// // Start the decagon sketch at this point.
/// startOfDecagonSketch = startSketchOn('XY') /// 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. /// // Use a `reduce` to draw the remaining decagon sides.
/// // For each number in the array 1..10, run the given function, /// // 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. /// // which takes a partially-sketched decagon and adds one more edge to it.
/// fullDecagon = reduce([1..10], initial = startOfDecagonSketch, f = fn(i, partialDecagon) { /// fullDecagon = reduce([1..10], initial = startOfDecagonSketch, f = fn(i, partialDecagon) {
/// // Draw one edge of the decagon. /// // Draw one edge of the decagon.
/// x = cos(stepAngle * i) * radius /// x = math::cos(stepAngle * i) * radius
/// y = sin(stepAngle * i) * radius /// y = math::sin(stepAngle * i) * radius
/// return line(partialDecagon, end = [x, y]) /// 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: /// The `decagon` above is basically like this pseudo-code:
/// fn decagon(radius): /// fn decagon(radius):
/// stepAngle = (1/10) * TAU /// stepAngle = ((1/10) * TAU): number(rad)
/// plane = startSketchOn('XY') /// plane = startSketchOn(XY)
/// startOfDecagonSketch = startProfile(plane, at = [(cos(0)*radius), (sin(0) * radius)]) /// startOfDecagonSketch = startProfile(plane, at = [(math::cos(0)*radius), (math::sin(0) * radius)])
/// ///
/// // Here's the reduce part. /// // Here's the reduce part.
/// partialDecagon = startOfDecagonSketch /// partialDecagon = startOfDecagonSketch
/// for i in [1..10]: /// for i in [1..10]:
/// x = cos(stepAngle * i) * radius /// x = math::cos(stepAngle * i) * radius
/// y = sin(stepAngle * i) * radius /// y = math::sin(stepAngle * i) * radius
/// partialDecagon = line(partialDecagon, end = [x, y]) /// partialDecagon = line(partialDecagon, end = [x, y])
/// fullDecagon = partialDecagon // it's now full /// fullDecagon = partialDecagon // it's now full
/// return fullDecagon /// return fullDecagon

View File

@ -6,7 +6,7 @@ use kcl_derive_docs::stdlib;
use crate::{ use crate::{
errors::KclError, errors::KclError,
execution::{ execution::{
types::{ArrayLen, NumericType, RuntimeType, UnitAngle, UnitType}, types::{ArrayLen, NumericType, RuntimeType},
ExecState, KclValue, ExecState, KclValue,
}, },
std::args::{Args, TyF64}, 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); let (n, d, ty) = NumericType::combine_div(n, d);
if ty == NumericType::Unknown { if ty == NumericType::Unknown {
exec_state.warn(CompilationError::err( exec_state.err(CompilationError::err(
args.source_range, 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})`" "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). /// Compute the cosine of a number (in radians).
pub async fn cos(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> { 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: TyF64 = args.get_unlabeled_kw_arg_typed("input", &RuntimeType::angle(), exec_state)?;
let num = match num.ty { let num = num.to_radians();
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,
};
Ok(args.make_user_val_from_f64_with_type(TyF64::count(num.cos()))) Ok(args.make_user_val_from_f64_with_type(TyF64::count(num.cos())))
} }
/// Compute the sine of a number (in radians). /// Compute the sine of a number (in radians).
pub async fn sin(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> { 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: TyF64 = args.get_unlabeled_kw_arg_typed("input", &RuntimeType::angle(), exec_state)?;
let num = match num.ty { let num = num.to_radians();
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,
};
Ok(args.make_user_val_from_f64_with_type(TyF64::count(num.sin()))) Ok(args.make_user_val_from_f64_with_type(TyF64::count(num.sin())))
} }
/// Compute the tangent of a number (in radians). /// Compute the tangent of a number (in radians).
pub async fn tan(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> { 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: TyF64 = args.get_unlabeled_kw_arg_typed("input", &RuntimeType::angle(), exec_state)?;
let num = match num.ty { let num = num.to_radians();
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,
};
Ok(args.make_user_val_from_f64_with_type(TyF64::count(num.tan()))) Ok(args.make_user_val_from_f64_with_type(TyF64::count(num.tan())))
} }

View File

@ -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. /// // Defines how to modify each layer of the vase.
/// // Each replica is shifted up the Z axis, and has a smoothly-varying radius /// // Each replica is shifted up the Z axis, and has a smoothly-varying radius
/// fn transform(replicaId) { /// fn transform(replicaId) {
/// 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 { /// return {
/// translate = [0, 0, replicaId * 10], /// translate = [0, 0, replicaId * 10],
/// scale = [scale, scale, 0], /// scale = [scale, scale, 0],

View File

@ -47,14 +47,14 @@ export E = 2.71828182845904523536028747135266250_
/// ``` /// ```
export TAU = 6.28318530717958647692528676655900577_ export TAU = 6.28318530717958647692528676655900577_
/// Compute the cosine of a number (in radians). /// Compute the cosine of a number.
/// ///
/// ``` /// ```
/// exampleSketch = startSketchOn(XZ) /// exampleSketch = startSketchOn(XZ)
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> angledLine( /// |> angledLine(
/// angle = 30, /// angle = 30,
/// length = 3 / cos(30deg), /// length = 3 / math::cos(30deg),
/// ) /// )
/// |> yLine(endAbsolute = 0) /// |> yLine(endAbsolute = 0)
/// |> close() /// |> close()
@ -64,14 +64,14 @@ export TAU = 6.28318530717958647692528676655900577_
@(impl = std_rust) @(impl = std_rust)
export fn cos(@num: number(Angle)): number(_) {} export fn cos(@num: number(Angle)): number(_) {}
/// Compute the sine of a number (in radians). /// Compute the sine of a number.
/// ///
/// ``` /// ```
/// exampleSketch = startSketchOn(XZ) /// exampleSketch = startSketchOn(XZ)
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> angledLine( /// |> angledLine(
/// angle = 50, /// angle = 50,
/// length = 15 / sin(135deg), /// length = 15 / math::sin(135deg),
/// ) /// )
/// |> yLine(endAbsolute = 0) /// |> yLine(endAbsolute = 0)
/// |> close() /// |> close()
@ -81,14 +81,14 @@ export fn cos(@num: number(Angle)): number(_) {}
@(impl = std_rust) @(impl = std_rust)
export fn sin(@num: number(Angle)): number(_) {} export fn sin(@num: number(Angle)): number(_) {}
/// Compute the tangent of a number (in radians). /// Compute the tangent of a number.
/// ///
/// ``` /// ```
/// exampleSketch = startSketchOn(XZ) /// exampleSketch = startSketchOn(XZ)
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> angledLine( /// |> angledLine(
/// angle = 50, /// angle = 50,
/// length = 50 * tan((1/2): number(rad)), /// length = 50 * math::tan((1/2): number(rad)),
/// ) /// )
/// |> yLine(endAbsolute = 0) /// |> yLine(endAbsolute = 0)
/// |> close() /// |> close()
@ -104,7 +104,7 @@ export fn tan(@num: number(Angle)): number(_) {}
/// ``` /// ```
/// exampleSketch = startSketchOn(XZ) /// exampleSketch = startSketchOn(XZ)
/// |> startProfile(at = [0, 0]) /// |> 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 = [0, 5])
/// |> line(end = [segEndX(thing), 0]) /// |> line(end = [segEndX(thing), 0])
/// |> line(end = [-20, 10]) /// |> line(end = [-20, 10])

View File

@ -5,7 +5,8 @@
export import * from "std::types" export import * from "std::types"
export import "std::units" 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::sketch"
export import * from "std::solid" export import * from "std::solid"
export import "std::turns" export import "std::turns"

View File

@ -38,7 +38,7 @@ export fn toYards(@num: number(yd)): number(yd) {
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> angledLine( /// |> angledLine(
/// angle = 50, /// angle = 50,
/// length = 70 * cos(units::toRadians(45)), /// length = 70 * math::cos(units::toRadians(45)),
/// ) /// )
/// |> yLine(endAbsolute = 0) /// |> yLine(endAbsolute = 0)
/// |> close() /// |> close()
@ -56,7 +56,7 @@ export fn toRadians(@num: number(rad)): number(rad) {
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> angledLine( /// |> angledLine(
/// angle = 50, /// angle = 50,
/// length = 70 * cos(units::toDegrees((PI/4): number(rad))), /// length = 70 * math::cos(units::toDegrees((PI/4): number(rad))),
/// ) /// )
/// |> yLine(endAbsolute = 0) /// |> yLine(endAbsolute = 0)
/// |> close() /// |> close()

View File

@ -649,7 +649,15 @@ description: Result of parsing computed_var.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },

View File

@ -14,5 +14,5 @@ assert(one, isEqualTo = 1, error = "oops")
assert(PI, isEqualTo = 3, tolerance = 0.2, error = "oops pi") 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") assert(x, isEqualTo = 1, tolerance = 0.000001, error = "oops cos")

View File

@ -7,7 +7,7 @@ description: Operations executed computed_var.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}

View File

@ -23,7 +23,7 @@ assert(
error = "oops pi", error = "oops pi",
) )
x = cos((2 * PI): number(rad)) x = math::cos((2 * PI): number(rad))
assert( assert(
x, x,
isEqualTo = 1, isEqualTo = 1,

View File

@ -1,235 +1,235 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path5 [Path] subgraph path5 [Path]
5["Path<br>[1109, 1159, 0]"] 5["Path<br>[1115, 1165, 0]"]
8["Segment<br>[1109, 1159, 0]"] 8["Segment<br>[1115, 1165, 0]"]
220[Solid2d] 220[Solid2d]
end end
subgraph path6 [Path] subgraph path6 [Path]
6["Path<br>[1664, 1701, 0]"] 6["Path<br>[1646, 1683, 0]"]
9["Segment<br>[1324, 1362, 0]"] 9["Segment<br>[1330, 1368, 0]"]
10["Segment<br>[1324, 1362, 0]"] 10["Segment<br>[1330, 1368, 0]"]
11["Segment<br>[1324, 1362, 0]"] 11["Segment<br>[1330, 1368, 0]"]
12["Segment<br>[1324, 1362, 0]"] 12["Segment<br>[1330, 1368, 0]"]
13["Segment<br>[1324, 1362, 0]"] 13["Segment<br>[1330, 1368, 0]"]
14["Segment<br>[1324, 1362, 0]"] 14["Segment<br>[1330, 1368, 0]"]
15["Segment<br>[1324, 1362, 0]"] 15["Segment<br>[1330, 1368, 0]"]
16["Segment<br>[1324, 1362, 0]"] 16["Segment<br>[1330, 1368, 0]"]
17["Segment<br>[1324, 1362, 0]"] 17["Segment<br>[1330, 1368, 0]"]
18["Segment<br>[1324, 1362, 0]"] 18["Segment<br>[1330, 1368, 0]"]
19["Segment<br>[1324, 1362, 0]"] 19["Segment<br>[1330, 1368, 0]"]
20["Segment<br>[1324, 1362, 0]"] 20["Segment<br>[1330, 1368, 0]"]
21["Segment<br>[1324, 1362, 0]"] 21["Segment<br>[1330, 1368, 0]"]
22["Segment<br>[1324, 1362, 0]"] 22["Segment<br>[1330, 1368, 0]"]
23["Segment<br>[1324, 1362, 0]"] 23["Segment<br>[1330, 1368, 0]"]
24["Segment<br>[1324, 1362, 0]"] 24["Segment<br>[1330, 1368, 0]"]
25["Segment<br>[1324, 1362, 0]"] 25["Segment<br>[1330, 1368, 0]"]
26["Segment<br>[1324, 1362, 0]"] 26["Segment<br>[1330, 1368, 0]"]
27["Segment<br>[1324, 1362, 0]"] 27["Segment<br>[1330, 1368, 0]"]
28["Segment<br>[1324, 1362, 0]"] 28["Segment<br>[1330, 1368, 0]"]
29["Segment<br>[1324, 1362, 0]"] 29["Segment<br>[1330, 1368, 0]"]
30["Segment<br>[1324, 1362, 0]"] 30["Segment<br>[1330, 1368, 0]"]
31["Segment<br>[1324, 1362, 0]"] 31["Segment<br>[1330, 1368, 0]"]
32["Segment<br>[1324, 1362, 0]"] 32["Segment<br>[1330, 1368, 0]"]
33["Segment<br>[1324, 1362, 0]"] 33["Segment<br>[1330, 1368, 0]"]
34["Segment<br>[1324, 1362, 0]"] 34["Segment<br>[1330, 1368, 0]"]
35["Segment<br>[1324, 1362, 0]"] 35["Segment<br>[1330, 1368, 0]"]
36["Segment<br>[1324, 1362, 0]"] 36["Segment<br>[1330, 1368, 0]"]
37["Segment<br>[1324, 1362, 0]"] 37["Segment<br>[1330, 1368, 0]"]
38["Segment<br>[1324, 1362, 0]"] 38["Segment<br>[1330, 1368, 0]"]
39["Segment<br>[1324, 1362, 0]"] 39["Segment<br>[1330, 1368, 0]"]
40["Segment<br>[1324, 1362, 0]"] 40["Segment<br>[1330, 1368, 0]"]
41["Segment<br>[1324, 1362, 0]"] 41["Segment<br>[1330, 1368, 0]"]
42["Segment<br>[1324, 1362, 0]"] 42["Segment<br>[1330, 1368, 0]"]
43["Segment<br>[1324, 1362, 0]"] 43["Segment<br>[1330, 1368, 0]"]
44["Segment<br>[1324, 1362, 0]"] 44["Segment<br>[1330, 1368, 0]"]
45["Segment<br>[1324, 1362, 0]"] 45["Segment<br>[1330, 1368, 0]"]
46["Segment<br>[1324, 1362, 0]"] 46["Segment<br>[1330, 1368, 0]"]
47["Segment<br>[1324, 1362, 0]"] 47["Segment<br>[1330, 1368, 0]"]
48["Segment<br>[1324, 1362, 0]"] 48["Segment<br>[1330, 1368, 0]"]
49["Segment<br>[1324, 1362, 0]"] 49["Segment<br>[1330, 1368, 0]"]
50["Segment<br>[1324, 1362, 0]"] 50["Segment<br>[1330, 1368, 0]"]
51["Segment<br>[1324, 1362, 0]"] 51["Segment<br>[1330, 1368, 0]"]
52["Segment<br>[1324, 1362, 0]"] 52["Segment<br>[1330, 1368, 0]"]
53["Segment<br>[1324, 1362, 0]"] 53["Segment<br>[1330, 1368, 0]"]
54["Segment<br>[1324, 1362, 0]"] 54["Segment<br>[1330, 1368, 0]"]
55["Segment<br>[1324, 1362, 0]"] 55["Segment<br>[1330, 1368, 0]"]
56["Segment<br>[1324, 1362, 0]"] 56["Segment<br>[1330, 1368, 0]"]
57["Segment<br>[1324, 1362, 0]"] 57["Segment<br>[1330, 1368, 0]"]
58["Segment<br>[1324, 1362, 0]"] 58["Segment<br>[1330, 1368, 0]"]
59["Segment<br>[1324, 1362, 0]"] 59["Segment<br>[1330, 1368, 0]"]
60["Segment<br>[1324, 1362, 0]"] 60["Segment<br>[1330, 1368, 0]"]
61["Segment<br>[1324, 1362, 0]"] 61["Segment<br>[1330, 1368, 0]"]
62["Segment<br>[1324, 1362, 0]"] 62["Segment<br>[1330, 1368, 0]"]
63["Segment<br>[1324, 1362, 0]"] 63["Segment<br>[1330, 1368, 0]"]
64["Segment<br>[1324, 1362, 0]"] 64["Segment<br>[1330, 1368, 0]"]
65["Segment<br>[1324, 1362, 0]"] 65["Segment<br>[1330, 1368, 0]"]
66["Segment<br>[1324, 1362, 0]"] 66["Segment<br>[1330, 1368, 0]"]
67["Segment<br>[1324, 1362, 0]"] 67["Segment<br>[1330, 1368, 0]"]
68["Segment<br>[1324, 1362, 0]"] 68["Segment<br>[1330, 1368, 0]"]
69["Segment<br>[1324, 1362, 0]"] 69["Segment<br>[1330, 1368, 0]"]
70["Segment<br>[1324, 1362, 0]"] 70["Segment<br>[1330, 1368, 0]"]
71["Segment<br>[1324, 1362, 0]"] 71["Segment<br>[1330, 1368, 0]"]
72["Segment<br>[1324, 1362, 0]"] 72["Segment<br>[1330, 1368, 0]"]
73["Segment<br>[1324, 1362, 0]"] 73["Segment<br>[1330, 1368, 0]"]
74["Segment<br>[1324, 1362, 0]"] 74["Segment<br>[1330, 1368, 0]"]
75["Segment<br>[1324, 1362, 0]"] 75["Segment<br>[1330, 1368, 0]"]
76["Segment<br>[1324, 1362, 0]"] 76["Segment<br>[1330, 1368, 0]"]
77["Segment<br>[1324, 1362, 0]"] 77["Segment<br>[1330, 1368, 0]"]
78["Segment<br>[1324, 1362, 0]"] 78["Segment<br>[1330, 1368, 0]"]
79["Segment<br>[1324, 1362, 0]"] 79["Segment<br>[1330, 1368, 0]"]
80["Segment<br>[1324, 1362, 0]"] 80["Segment<br>[1330, 1368, 0]"]
81["Segment<br>[1324, 1362, 0]"] 81["Segment<br>[1330, 1368, 0]"]
82["Segment<br>[1324, 1362, 0]"] 82["Segment<br>[1330, 1368, 0]"]
83["Segment<br>[1324, 1362, 0]"] 83["Segment<br>[1330, 1368, 0]"]
84["Segment<br>[1324, 1362, 0]"] 84["Segment<br>[1330, 1368, 0]"]
85["Segment<br>[1324, 1362, 0]"] 85["Segment<br>[1330, 1368, 0]"]
86["Segment<br>[1324, 1362, 0]"] 86["Segment<br>[1330, 1368, 0]"]
87["Segment<br>[1324, 1362, 0]"] 87["Segment<br>[1330, 1368, 0]"]
88["Segment<br>[1324, 1362, 0]"] 88["Segment<br>[1330, 1368, 0]"]
89["Segment<br>[1324, 1362, 0]"] 89["Segment<br>[1330, 1368, 0]"]
90["Segment<br>[1324, 1362, 0]"] 90["Segment<br>[1330, 1368, 0]"]
91["Segment<br>[1324, 1362, 0]"] 91["Segment<br>[1330, 1368, 0]"]
92["Segment<br>[1324, 1362, 0]"] 92["Segment<br>[1330, 1368, 0]"]
93["Segment<br>[1324, 1362, 0]"] 93["Segment<br>[1330, 1368, 0]"]
94["Segment<br>[1324, 1362, 0]"] 94["Segment<br>[1330, 1368, 0]"]
95["Segment<br>[1324, 1362, 0]"] 95["Segment<br>[1330, 1368, 0]"]
96["Segment<br>[1324, 1362, 0]"] 96["Segment<br>[1330, 1368, 0]"]
97["Segment<br>[1324, 1362, 0]"] 97["Segment<br>[1330, 1368, 0]"]
98["Segment<br>[1324, 1362, 0]"] 98["Segment<br>[1330, 1368, 0]"]
99["Segment<br>[1324, 1362, 0]"] 99["Segment<br>[1330, 1368, 0]"]
100["Segment<br>[1324, 1362, 0]"] 100["Segment<br>[1330, 1368, 0]"]
101["Segment<br>[1324, 1362, 0]"] 101["Segment<br>[1330, 1368, 0]"]
102["Segment<br>[1324, 1362, 0]"] 102["Segment<br>[1330, 1368, 0]"]
103["Segment<br>[1324, 1362, 0]"] 103["Segment<br>[1330, 1368, 0]"]
104["Segment<br>[1324, 1362, 0]"] 104["Segment<br>[1330, 1368, 0]"]
105["Segment<br>[1324, 1362, 0]"] 105["Segment<br>[1330, 1368, 0]"]
106["Segment<br>[1324, 1362, 0]"] 106["Segment<br>[1330, 1368, 0]"]
107["Segment<br>[1324, 1362, 0]"] 107["Segment<br>[1330, 1368, 0]"]
108["Segment<br>[1324, 1362, 0]"] 108["Segment<br>[1330, 1368, 0]"]
109["Segment<br>[1324, 1362, 0]"] 109["Segment<br>[1330, 1368, 0]"]
110["Segment<br>[1580, 1610, 0]"] 110["Segment<br>[1562, 1592, 0]"]
111["Segment<br>[1580, 1610, 0]"] 111["Segment<br>[1562, 1592, 0]"]
112["Segment<br>[1580, 1610, 0]"] 112["Segment<br>[1562, 1592, 0]"]
113["Segment<br>[1580, 1610, 0]"] 113["Segment<br>[1562, 1592, 0]"]
114["Segment<br>[1580, 1610, 0]"] 114["Segment<br>[1562, 1592, 0]"]
115["Segment<br>[1580, 1610, 0]"] 115["Segment<br>[1562, 1592, 0]"]
116["Segment<br>[1580, 1610, 0]"] 116["Segment<br>[1562, 1592, 0]"]
117["Segment<br>[1580, 1610, 0]"] 117["Segment<br>[1562, 1592, 0]"]
118["Segment<br>[1580, 1610, 0]"] 118["Segment<br>[1562, 1592, 0]"]
119["Segment<br>[1580, 1610, 0]"] 119["Segment<br>[1562, 1592, 0]"]
120["Segment<br>[1580, 1610, 0]"] 120["Segment<br>[1562, 1592, 0]"]
121["Segment<br>[1580, 1610, 0]"] 121["Segment<br>[1562, 1592, 0]"]
122["Segment<br>[1580, 1610, 0]"] 122["Segment<br>[1562, 1592, 0]"]
123["Segment<br>[1580, 1610, 0]"] 123["Segment<br>[1562, 1592, 0]"]
124["Segment<br>[1580, 1610, 0]"] 124["Segment<br>[1562, 1592, 0]"]
125["Segment<br>[1580, 1610, 0]"] 125["Segment<br>[1562, 1592, 0]"]
126["Segment<br>[1580, 1610, 0]"] 126["Segment<br>[1562, 1592, 0]"]
127["Segment<br>[1580, 1610, 0]"] 127["Segment<br>[1562, 1592, 0]"]
128["Segment<br>[1580, 1610, 0]"] 128["Segment<br>[1562, 1592, 0]"]
129["Segment<br>[1580, 1610, 0]"] 129["Segment<br>[1562, 1592, 0]"]
130["Segment<br>[1580, 1610, 0]"] 130["Segment<br>[1562, 1592, 0]"]
131["Segment<br>[1580, 1610, 0]"] 131["Segment<br>[1562, 1592, 0]"]
132["Segment<br>[1580, 1610, 0]"] 132["Segment<br>[1562, 1592, 0]"]
133["Segment<br>[1580, 1610, 0]"] 133["Segment<br>[1562, 1592, 0]"]
134["Segment<br>[1580, 1610, 0]"] 134["Segment<br>[1562, 1592, 0]"]
135["Segment<br>[1580, 1610, 0]"] 135["Segment<br>[1562, 1592, 0]"]
136["Segment<br>[1580, 1610, 0]"] 136["Segment<br>[1562, 1592, 0]"]
137["Segment<br>[1580, 1610, 0]"] 137["Segment<br>[1562, 1592, 0]"]
138["Segment<br>[1580, 1610, 0]"] 138["Segment<br>[1562, 1592, 0]"]
139["Segment<br>[1580, 1610, 0]"] 139["Segment<br>[1562, 1592, 0]"]
140["Segment<br>[1580, 1610, 0]"] 140["Segment<br>[1562, 1592, 0]"]
141["Segment<br>[1580, 1610, 0]"] 141["Segment<br>[1562, 1592, 0]"]
142["Segment<br>[1580, 1610, 0]"] 142["Segment<br>[1562, 1592, 0]"]
143["Segment<br>[1580, 1610, 0]"] 143["Segment<br>[1562, 1592, 0]"]
144["Segment<br>[1580, 1610, 0]"] 144["Segment<br>[1562, 1592, 0]"]
145["Segment<br>[1580, 1610, 0]"] 145["Segment<br>[1562, 1592, 0]"]
146["Segment<br>[1580, 1610, 0]"] 146["Segment<br>[1562, 1592, 0]"]
147["Segment<br>[1580, 1610, 0]"] 147["Segment<br>[1562, 1592, 0]"]
148["Segment<br>[1580, 1610, 0]"] 148["Segment<br>[1562, 1592, 0]"]
149["Segment<br>[1580, 1610, 0]"] 149["Segment<br>[1562, 1592, 0]"]
150["Segment<br>[1580, 1610, 0]"] 150["Segment<br>[1562, 1592, 0]"]
151["Segment<br>[1580, 1610, 0]"] 151["Segment<br>[1562, 1592, 0]"]
152["Segment<br>[1580, 1610, 0]"] 152["Segment<br>[1562, 1592, 0]"]
153["Segment<br>[1580, 1610, 0]"] 153["Segment<br>[1562, 1592, 0]"]
154["Segment<br>[1580, 1610, 0]"] 154["Segment<br>[1562, 1592, 0]"]
155["Segment<br>[1580, 1610, 0]"] 155["Segment<br>[1562, 1592, 0]"]
156["Segment<br>[1580, 1610, 0]"] 156["Segment<br>[1562, 1592, 0]"]
157["Segment<br>[1580, 1610, 0]"] 157["Segment<br>[1562, 1592, 0]"]
158["Segment<br>[1580, 1610, 0]"] 158["Segment<br>[1562, 1592, 0]"]
159["Segment<br>[1580, 1610, 0]"] 159["Segment<br>[1562, 1592, 0]"]
160["Segment<br>[1580, 1610, 0]"] 160["Segment<br>[1562, 1592, 0]"]
161["Segment<br>[1580, 1610, 0]"] 161["Segment<br>[1562, 1592, 0]"]
162["Segment<br>[1580, 1610, 0]"] 162["Segment<br>[1562, 1592, 0]"]
163["Segment<br>[1580, 1610, 0]"] 163["Segment<br>[1562, 1592, 0]"]
164["Segment<br>[1580, 1610, 0]"] 164["Segment<br>[1562, 1592, 0]"]
165["Segment<br>[1580, 1610, 0]"] 165["Segment<br>[1562, 1592, 0]"]
166["Segment<br>[1580, 1610, 0]"] 166["Segment<br>[1562, 1592, 0]"]
167["Segment<br>[1580, 1610, 0]"] 167["Segment<br>[1562, 1592, 0]"]
168["Segment<br>[1580, 1610, 0]"] 168["Segment<br>[1562, 1592, 0]"]
169["Segment<br>[1580, 1610, 0]"] 169["Segment<br>[1562, 1592, 0]"]
170["Segment<br>[1580, 1610, 0]"] 170["Segment<br>[1562, 1592, 0]"]
171["Segment<br>[1580, 1610, 0]"] 171["Segment<br>[1562, 1592, 0]"]
172["Segment<br>[1580, 1610, 0]"] 172["Segment<br>[1562, 1592, 0]"]
173["Segment<br>[1580, 1610, 0]"] 173["Segment<br>[1562, 1592, 0]"]
174["Segment<br>[1580, 1610, 0]"] 174["Segment<br>[1562, 1592, 0]"]
175["Segment<br>[1580, 1610, 0]"] 175["Segment<br>[1562, 1592, 0]"]
176["Segment<br>[1580, 1610, 0]"] 176["Segment<br>[1562, 1592, 0]"]
177["Segment<br>[1580, 1610, 0]"] 177["Segment<br>[1562, 1592, 0]"]
178["Segment<br>[1580, 1610, 0]"] 178["Segment<br>[1562, 1592, 0]"]
179["Segment<br>[1580, 1610, 0]"] 179["Segment<br>[1562, 1592, 0]"]
180["Segment<br>[1580, 1610, 0]"] 180["Segment<br>[1562, 1592, 0]"]
181["Segment<br>[1580, 1610, 0]"] 181["Segment<br>[1562, 1592, 0]"]
182["Segment<br>[1580, 1610, 0]"] 182["Segment<br>[1562, 1592, 0]"]
183["Segment<br>[1580, 1610, 0]"] 183["Segment<br>[1562, 1592, 0]"]
184["Segment<br>[1580, 1610, 0]"] 184["Segment<br>[1562, 1592, 0]"]
185["Segment<br>[1580, 1610, 0]"] 185["Segment<br>[1562, 1592, 0]"]
186["Segment<br>[1580, 1610, 0]"] 186["Segment<br>[1562, 1592, 0]"]
187["Segment<br>[1580, 1610, 0]"] 187["Segment<br>[1562, 1592, 0]"]
188["Segment<br>[1580, 1610, 0]"] 188["Segment<br>[1562, 1592, 0]"]
189["Segment<br>[1580, 1610, 0]"] 189["Segment<br>[1562, 1592, 0]"]
190["Segment<br>[1580, 1610, 0]"] 190["Segment<br>[1562, 1592, 0]"]
191["Segment<br>[1580, 1610, 0]"] 191["Segment<br>[1562, 1592, 0]"]
192["Segment<br>[1580, 1610, 0]"] 192["Segment<br>[1562, 1592, 0]"]
193["Segment<br>[1580, 1610, 0]"] 193["Segment<br>[1562, 1592, 0]"]
194["Segment<br>[1580, 1610, 0]"] 194["Segment<br>[1562, 1592, 0]"]
195["Segment<br>[1580, 1610, 0]"] 195["Segment<br>[1562, 1592, 0]"]
196["Segment<br>[1580, 1610, 0]"] 196["Segment<br>[1562, 1592, 0]"]
197["Segment<br>[1580, 1610, 0]"] 197["Segment<br>[1562, 1592, 0]"]
198["Segment<br>[1580, 1610, 0]"] 198["Segment<br>[1562, 1592, 0]"]
199["Segment<br>[1580, 1610, 0]"] 199["Segment<br>[1562, 1592, 0]"]
200["Segment<br>[1580, 1610, 0]"] 200["Segment<br>[1562, 1592, 0]"]
201["Segment<br>[1580, 1610, 0]"] 201["Segment<br>[1562, 1592, 0]"]
202["Segment<br>[1580, 1610, 0]"] 202["Segment<br>[1562, 1592, 0]"]
203["Segment<br>[1580, 1610, 0]"] 203["Segment<br>[1562, 1592, 0]"]
204["Segment<br>[1580, 1610, 0]"] 204["Segment<br>[1562, 1592, 0]"]
205["Segment<br>[1580, 1610, 0]"] 205["Segment<br>[1562, 1592, 0]"]
206["Segment<br>[1580, 1610, 0]"] 206["Segment<br>[1562, 1592, 0]"]
207["Segment<br>[1580, 1610, 0]"] 207["Segment<br>[1562, 1592, 0]"]
208["Segment<br>[1580, 1610, 0]"] 208["Segment<br>[1562, 1592, 0]"]
209["Segment<br>[1580, 1610, 0]"] 209["Segment<br>[1562, 1592, 0]"]
210["Segment<br>[1580, 1610, 0]"] 210["Segment<br>[1562, 1592, 0]"]
211["Segment<br>[1767, 1865, 0]"] 211["Segment<br>[1749, 1847, 0]"]
212["Segment<br>[1925, 1932, 0]"] 212["Segment<br>[1907, 1914, 0]"]
219[Solid2d] 219[Solid2d]
end end
subgraph path7 [Path] subgraph path7 [Path]
7["Path<br>[2413, 2492, 0]"] 7["Path<br>[2395, 2486, 0]"]
213["Segment<br>[2498, 2525, 0]"] 213["Segment<br>[2492, 2519, 0]"]
214["Segment<br>[2531, 2559, 0]"] 214["Segment<br>[2525, 2553, 0]"]
215["Segment<br>[2565, 2593, 0]"] 215["Segment<br>[2559, 2587, 0]"]
216["Segment<br>[2599, 2722, 0]"] 216["Segment<br>[2593, 2716, 0]"]
217["Segment<br>[2728, 2840, 0]"] 217["Segment<br>[2722, 2834, 0]"]
218["Segment<br>[2846, 2853, 0]"] 218["Segment<br>[2840, 2847, 0]"]
221[Solid2d] 221[Solid2d]
end end
1["Plane<br>[168, 185, 0]"] 1["Plane<br>[168, 185, 0]"]
2["Plane<br>[1086, 1103, 0]"] 2["Plane<br>[1092, 1109, 0]"]
3["Plane<br>[1641, 1658, 0]"] 3["Plane<br>[1623, 1640, 0]"]
4["StartSketchOnFace<br>[2376, 2407, 0]"] 4["StartSketchOnFace<br>[2358, 2389, 0]"]
222["Sweep Extrusion<br>[1165, 1193, 0]"] 222["Sweep Extrusion<br>[1171, 1199, 0]"]
223["Sweep Extrusion<br>[1938, 1966, 0]"] 223["Sweep Extrusion<br>[1920, 1948, 0]"]
224["Sweep Extrusion<br>[2859, 2888, 0]"] 224["Sweep Extrusion<br>[2853, 2882, 0]"]
225[Wall] 225[Wall]
226[Wall] 226[Wall]
227[Wall] 227[Wall]

View File

@ -456,8 +456,6 @@ description: Result of parsing import_async.kcl
}, },
"operator": "*", "operator": "*",
"right": { "right": {
"arguments": [
{
"arguments": [ "arguments": [
{ {
"abs_path": false, "abs_path": false,
@ -483,7 +481,7 @@ description: Result of parsing import_async.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "toRadians", "name": "cos",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -491,7 +489,7 @@ description: Result of parsing import_async.kcl
{ {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "units", "name": "math",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
} }
@ -504,28 +502,6 @@ description: Result of parsing import_async.kcl
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpression",
"type": "CallExpression" "type": "CallExpression"
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "cos",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
}, },
"start": 0, "start": 0,
"type": "BinaryExpression", "type": "BinaryExpression",
@ -1285,7 +1261,15 @@ description: Result of parsing import_async.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },
@ -1538,7 +1522,15 @@ description: Result of parsing import_async.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },
@ -1762,7 +1754,15 @@ description: Result of parsing import_async.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },
@ -2497,8 +2497,6 @@ description: Result of parsing import_async.kcl
}, },
"operator": "*", "operator": "*",
"right": { "right": {
"arguments": [
{
"arguments": [ "arguments": [
{ {
"commentStart": 0, "commentStart": 0,
@ -2652,7 +2650,7 @@ description: Result of parsing import_async.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "toRadians", "name": "cos",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -2660,7 +2658,7 @@ description: Result of parsing import_async.kcl
{ {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "units", "name": "math",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
} }
@ -2673,28 +2671,6 @@ description: Result of parsing import_async.kcl
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpression",
"type": "CallExpression" "type": "CallExpression"
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "cos",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
}, },
"start": 0, "start": 0,
"type": "BinaryExpression", "type": "BinaryExpression",
@ -2758,8 +2734,6 @@ description: Result of parsing import_async.kcl
}, },
"operator": "*", "operator": "*",
"right": { "right": {
"arguments": [
{
"arguments": [ "arguments": [
{ {
"commentStart": 0, "commentStart": 0,
@ -2913,7 +2887,7 @@ description: Result of parsing import_async.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "toRadians", "name": "sin",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -2921,7 +2895,7 @@ description: Result of parsing import_async.kcl
{ {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "units", "name": "math",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
} }
@ -2934,28 +2908,6 @@ description: Result of parsing import_async.kcl
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpression",
"type": "CallExpression" "type": "CallExpression"
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "sin",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
}, },
"start": 0, "start": 0,
"type": "BinaryExpression", "type": "BinaryExpression",
@ -4340,7 +4292,15 @@ description: Result of parsing import_async.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },
@ -4404,7 +4364,15 @@ description: Result of parsing import_async.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },

View File

@ -16,7 +16,7 @@ pitchDiameter = module * nTeeth
pressureAngle = 20 pressureAngle = 20
addendum = module addendum = module
deddendum = 1.25 * module deddendum = 1.25 * module
baseDiameter = pitchDiameter * cos(units::toRadians(pressureAngle)) baseDiameter = pitchDiameter * math::cos(pressureAngle)
tipDiameter = pitchDiameter + 2 * module tipDiameter = pitchDiameter + 2 * module
gearHeight = 3 gearHeight = 3
@ -33,16 +33,16 @@ angles = map(rs, f = fn(r) {
// Calculate the involute function // Calculate the involute function
invas = map(angles, f = fn(a) { 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 // Map the involute curve
xs = map([0..cmo], f = fn(i) { 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) { 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 // Extrude the gear body
@ -59,8 +59,8 @@ fn leftInvolute(i, sg) {
} }
fn rightInvolute(i, sg) { fn rightInvolute(i, sg) {
x = rs[i] * cos(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] * sin(units::toRadians(-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]) return line(sg, endAbsolute = [x, y])
} }
@ -93,7 +93,7 @@ startAngle = asin(keywayWidth / 2 / holeRadius)
// Sketch the keyway and center hole and extrude // Sketch the keyway and center hole and extrude
keyWay = startSketchOn(body, face = END) 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) |> xLine(length = keywayDepth)
|> yLine(length = -keywayWidth) |> yLine(length = -keywayWidth)
|> xLine(length = -keywayDepth) |> xLine(length = -keywayDepth)

File diff suppressed because it is too large Load Diff

View File

@ -19,7 +19,7 @@ pitchDiameter = module * nTeeth
pressureAngle = 20 pressureAngle = 20
addendum = module addendum = module
deddendum = 1.25 * module deddendum = 1.25 * module
baseDiameter = pitchDiameter * cos(units::toRadians(pressureAngle)) baseDiameter = pitchDiameter * math::cos(pressureAngle)
tipDiameter = pitchDiameter + 2 * module tipDiameter = pitchDiameter + 2 * module
gearHeight = 3 gearHeight = 3
@ -44,7 +44,7 @@ angles = map(
invas = map( invas = map(
angles, angles,
f = fn(a) { 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( xs = map(
[0..cmo], [0..cmo],
f = fn(i) { f = fn(i) {
return rs[i] * cos(invas[i]: number(rad)) return rs[i] * math::cos(invas[i]: number(rad))
}, },
) )
ys = map( ys = map(
[0..cmo], [0..cmo],
f = fn(i) { 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) { fn rightInvolute(i, sg) {
x = rs[i] * cos(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] * sin(units::toRadians(-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]) return line(sg, endAbsolute = [x, y])
} }
@ -108,8 +108,8 @@ startAngle = asin(keywayWidth / 2 / holeRadius)
// Sketch the keyway and center hole and extrude // Sketch the keyway and center hole and extrude
keyWay = startSketchOn(body, face = END) keyWay = startSketchOn(body, face = END)
|> startProfile(at = [ |> startProfile(at = [
holeRadius * cos(startAngle), holeRadius * math::cos(startAngle),
holeRadius * sin(startAngle) holeRadius * math::sin(startAngle)
]) ])
|> xLine(length = keywayDepth) |> xLine(length = keywayDepth)
|> yLine(length = -keywayWidth) |> yLine(length = -keywayWidth)

View File

@ -135,26 +135,26 @@ flowchart LR
97[Solid2d] 97[Solid2d]
end end
subgraph path28 [Path] subgraph path28 [Path]
28["Path<br>[1113, 1203, 11]"] 28["Path<br>[1113, 1215, 11]"]
86["Segment<br>[1211, 1280, 11]"] 86["Segment<br>[1223, 1292, 11]"]
88["Segment<br>[1288, 1588, 11]"] 88["Segment<br>[1300, 1624, 11]"]
90["Segment<br>[1596, 1898, 11]"] 90["Segment<br>[1632, 1958, 11]"]
93["Segment<br>[1906, 2125, 11]"] 93["Segment<br>[1966, 2197, 11]"]
96["Segment<br>[2133, 2140, 11]"] 96["Segment<br>[2205, 2212, 11]"]
102[Solid2d] 102[Solid2d]
end end
subgraph path29 [Path] subgraph path29 [Path]
29["Path<br>[1113, 1203, 11]"] 29["Path<br>[1113, 1215, 11]"]
87["Segment<br>[1211, 1280, 11]"] 87["Segment<br>[1223, 1292, 11]"]
89["Segment<br>[1288, 1588, 11]"] 89["Segment<br>[1300, 1624, 11]"]
91["Segment<br>[1596, 1898, 11]"] 91["Segment<br>[1632, 1958, 11]"]
92["Segment<br>[1906, 2125, 11]"] 92["Segment<br>[1966, 2197, 11]"]
95["Segment<br>[2133, 2140, 11]"] 95["Segment<br>[2205, 2212, 11]"]
103[Solid2d] 103[Solid2d]
end end
subgraph path30 [Path] subgraph path30 [Path]
30["Path<br>[1113, 1203, 11]"] 30["Path<br>[1113, 1215, 11]"]
94["Segment<br>[2133, 2140, 11]"] 94["Segment<br>[2205, 2212, 11]"]
118[Solid2d] 118[Solid2d]
end end
1["Plane<br>[300, 317, 8]"] 1["Plane<br>[300, 317, 8]"]
@ -177,7 +177,7 @@ flowchart LR
129["Sweep Extrusion<br>[333, 353, 10]"] 129["Sweep Extrusion<br>[333, 353, 10]"]
130["Sweep Extrusion<br>[543, 564, 10]"] 130["Sweep Extrusion<br>[543, 564, 10]"]
131["Sweep Revolve<br>[764, 846, 11]"] 131["Sweep Revolve<br>[764, 846, 11]"]
132["Sweep Loft<br>[2259, 2379, 11]"] 132["Sweep Loft<br>[2331, 2451, 11]"]
133[Wall] 133[Wall]
134[Wall] 134[Wall]
135[Wall] 135[Wall]
@ -605,19 +605,19 @@ flowchart LR
84 --- 147 84 --- 147
84 --- 233 84 --- 233
86 --- 159 86 --- 159
86 x--> 184 86 x--> 185
86 --- 203 86 --- 203
86 --- 249 86 --- 249
88 --- 158 88 --- 158
88 x--> 184 88 x--> 185
88 --- 204 88 --- 204
88 --- 248 88 --- 248
90 --- 156 90 --- 156
90 x--> 184 90 x--> 185
90 --- 201 90 --- 201
90 --- 246 90 --- 246
93 --- 157 93 --- 157
93 x--> 184 93 x--> 185
93 --- 202 93 --- 202
93 --- 247 93 --- 247
119 --- 165 119 --- 165
@ -873,10 +873,10 @@ flowchart LR
198 <--x 183 198 <--x 183
199 <--x 183 199 <--x 183
200 <--x 183 200 <--x 183
201 <--x 185 201 <--x 184
202 <--x 185 202 <--x 184
203 <--x 185 203 <--x 184
204 <--x 185 204 <--x 184
205 <--x 186 205 <--x 186
206 <--x 186 206 <--x 186
207 <--x 186 207 <--x 186

View File

@ -17,40 +17,40 @@ flowchart LR
28[Solid2d] 28[Solid2d]
end end
subgraph path11 [Path] subgraph path11 [Path]
11["Path<br>[1484, 1609, 0]"] 11["Path<br>[1484, 1612, 0]"]
19["Segment<br>[1615, 1675, 0]"] 19["Segment<br>[1618, 1678, 0]"]
20["Segment<br>[1681, 1712, 0]"] 20["Segment<br>[1684, 1715, 0]"]
21["Segment<br>[1718, 1746, 0]"] 21["Segment<br>[1721, 1749, 0]"]
22["Segment<br>[1752, 1759, 0]"] 22["Segment<br>[1755, 1762, 0]"]
29[Solid2d] 29[Solid2d]
end end
subgraph path12 [Path] subgraph path12 [Path]
12["Path<br>[2093, 2235, 0]"] 12["Path<br>[2096, 2238, 0]"]
23["Segment<br>[2093, 2235, 0]"] 23["Segment<br>[2096, 2238, 0]"]
27[Solid2d] 27[Solid2d]
end end
subgraph path13 [Path] subgraph path13 [Path]
13["Path<br>[2629, 2682, 0]"] 13["Path<br>[2632, 2685, 0]"]
24["Segment<br>[2629, 2682, 0]"] 24["Segment<br>[2632, 2685, 0]"]
31[Solid2d] 31[Solid2d]
end end
subgraph path14 [Path] subgraph path14 [Path]
14["Path<br>[2706, 2780, 0]"] 14["Path<br>[2709, 2783, 0]"]
25["Segment<br>[2706, 2780, 0]"] 25["Segment<br>[2709, 2783, 0]"]
26[Solid2d] 26[Solid2d]
end end
1["Plane<br>[610, 657, 0]"] 1["Plane<br>[610, 657, 0]"]
2["Plane<br>[957, 974, 0]"] 2["Plane<br>[957, 974, 0]"]
3["Plane<br>[1461, 1478, 0]"] 3["Plane<br>[1461, 1478, 0]"]
4["Plane<br>[2070, 2087, 0]"] 4["Plane<br>[2073, 2090, 0]"]
5["Plane<br>[2575, 2622, 0]"] 5["Plane<br>[2578, 2625, 0]"]
6["StartSketchOnPlane<br>[596, 658, 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]"] 33["Sweep Extrusion<br>[848, 900, 0]"]
34["Sweep Revolve<br>[1196, 1226, 0]"] 34["Sweep Revolve<br>[1196, 1226, 0]"]
35["Sweep Revolve<br>[1801, 1831, 0]"] 35["Sweep Revolve<br>[1804, 1834, 0]"]
36["Sweep Revolve<br>[2278, 2329, 0]"] 36["Sweep Revolve<br>[2281, 2332, 0]"]
37["Sweep Extrusion<br>[2797, 2850, 0]"] 37["Sweep Extrusion<br>[2800, 2853, 0]"]
38[Wall] 38[Wall]
39[Wall] 39[Wall]
40[Wall] 40[Wall]

View File

@ -1855,13 +1855,13 @@ description: Result of parsing ball-bearing.kcl
{ {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "60deg", "raw": "60",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 60.0, "value": 60.0,
"suffix": "Deg" "suffix": "None"
} }
} }
], ],
@ -1876,7 +1876,15 @@ description: Result of parsing ball-bearing.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },

View File

@ -379,7 +379,7 @@ description: Operations executed ball-bearing.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}

View File

@ -1,45 +1,45 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path7 [Path] subgraph path7 [Path]
7["Path<br>[644, 834, 0]"] 7["Path<br>[644, 858, 0]"]
13["Segment<br>[844, 928, 0]"] 13["Segment<br>[868, 952, 0]"]
16["Segment<br>[938, 990, 0]"] 16["Segment<br>[962, 1014, 0]"]
17["Segment<br>[1000, 1047, 0]"] 17["Segment<br>[1024, 1071, 0]"]
19["Segment<br>[1057, 1109, 0]"] 19["Segment<br>[1081, 1133, 0]"]
21["Segment<br>[1119, 1166, 0]"] 21["Segment<br>[1143, 1190, 0]"]
23["Segment<br>[1176, 1241, 0]"] 23["Segment<br>[1200, 1265, 0]"]
27["Segment<br>[1251, 1259, 0]"] 27["Segment<br>[1275, 1283, 0]"]
31[Solid2d] 31[Solid2d]
end end
subgraph path8 [Path] subgraph path8 [Path]
8["Path<br>[644, 834, 0]"] 8["Path<br>[644, 858, 0]"]
14["Segment<br>[844, 928, 0]"] 14["Segment<br>[868, 952, 0]"]
15["Segment<br>[938, 990, 0]"] 15["Segment<br>[962, 1014, 0]"]
18["Segment<br>[1000, 1047, 0]"] 18["Segment<br>[1024, 1071, 0]"]
20["Segment<br>[1057, 1109, 0]"] 20["Segment<br>[1081, 1133, 0]"]
22["Segment<br>[1119, 1166, 0]"] 22["Segment<br>[1143, 1190, 0]"]
24["Segment<br>[1176, 1241, 0]"] 24["Segment<br>[1200, 1265, 0]"]
25["Segment<br>[1251, 1259, 0]"] 25["Segment<br>[1275, 1283, 0]"]
34[Solid2d] 34[Solid2d]
end end
subgraph path9 [Path] subgraph path9 [Path]
9["Path<br>[644, 834, 0]"] 9["Path<br>[644, 858, 0]"]
26["Segment<br>[1251, 1259, 0]"] 26["Segment<br>[1275, 1283, 0]"]
35[Solid2d] 35[Solid2d]
end end
subgraph path10 [Path] subgraph path10 [Path]
10["Path<br>[1287, 1337, 0]"] 10["Path<br>[1311, 1361, 0]"]
30["Segment<br>[1287, 1337, 0]"] 30["Segment<br>[1311, 1361, 0]"]
32[Solid2d] 32[Solid2d]
end end
subgraph path11 [Path] subgraph path11 [Path]
11["Path<br>[1287, 1337, 0]"] 11["Path<br>[1311, 1361, 0]"]
28["Segment<br>[1287, 1337, 0]"] 28["Segment<br>[1311, 1361, 0]"]
33[Solid2d] 33[Solid2d]
end end
subgraph path12 [Path] subgraph path12 [Path]
12["Path<br>[1287, 1337, 0]"] 12["Path<br>[1311, 1361, 0]"]
29["Segment<br>[1287, 1337, 0]"] 29["Segment<br>[1311, 1361, 0]"]
36[Solid2d] 36[Solid2d]
end end
1["Plane<br>[600, 633, 0]"] 1["Plane<br>[600, 633, 0]"]
@ -48,7 +48,7 @@ flowchart LR
4["StartSketchOnPlane<br>[586, 634, 0]"] 4["StartSketchOnPlane<br>[586, 634, 0]"]
5["StartSketchOnPlane<br>[586, 634, 0]"] 5["StartSketchOnPlane<br>[586, 634, 0]"]
6["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] 38[Wall]
39[Wall] 39[Wall]
40[Wall] 40[Wall]

View File

@ -311,7 +311,15 @@ description: Result of parsing cycloidal-gear.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },
@ -384,7 +392,15 @@ description: Result of parsing cycloidal-gear.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },
@ -475,7 +491,15 @@ description: Result of parsing cycloidal-gear.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },
@ -548,7 +572,15 @@ description: Result of parsing cycloidal-gear.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },

View File

@ -142,7 +142,7 @@ description: Operations executed cycloidal-gear.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -153,7 +153,7 @@ description: Operations executed cycloidal-gear.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -164,7 +164,7 @@ description: Operations executed cycloidal-gear.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -175,7 +175,7 @@ description: Operations executed cycloidal-gear.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -186,7 +186,7 @@ description: Operations executed cycloidal-gear.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -197,7 +197,7 @@ description: Operations executed cycloidal-gear.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -208,7 +208,7 @@ description: Operations executed cycloidal-gear.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -219,7 +219,7 @@ description: Operations executed cycloidal-gear.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -230,7 +230,7 @@ description: Operations executed cycloidal-gear.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -241,7 +241,7 @@ description: Operations executed cycloidal-gear.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -252,7 +252,7 @@ description: Operations executed cycloidal-gear.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -263,7 +263,7 @@ description: Operations executed cycloidal-gear.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}

View File

@ -608,7 +608,7 @@ flowchart LR
83 --- 251 83 --- 251
83 --- 298 83 --- 298
90 --- 159 90 --- 159
90 x--> 192 90 x--> 193
90 --- 226 90 --- 226
90 --- 271 90 --- 271
104 --- 155 104 --- 155
@ -906,7 +906,7 @@ flowchart LR
219 <--x 190 219 <--x 190
220 <--x 190 220 <--x 190
221 <--x 190 221 <--x 190
226 <--x 193 226 <--x 192
235 <--x 195 235 <--x 195
236 <--x 195 236 <--x 195
237 <--x 195 237 <--x 195

View File

@ -115,7 +115,7 @@ description: Artifact commands exhaust-manifold.kcl
"z": 0.0 "z": 0.0
}, },
"x_axis": { "x_axis": {
"x": -0.42577929156507266, "x": -0.4257792915650726,
"y": 0.9048270524660196, "y": 0.9048270524660196,
"z": 0.0 "z": 0.0
}, },
@ -188,7 +188,7 @@ description: Artifact commands exhaust-manifold.kcl
"adjust_camera": false, "adjust_camera": false,
"planar_normal": { "planar_normal": {
"x": 0.9048270524660196, "x": 0.9048270524660196,
"y": 0.42577929156507266, "y": 0.4257792915650726,
"z": -0.0 "z": -0.0
} }
} }

View File

@ -1,152 +1,152 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path10 [Path] subgraph path10 [Path]
10["Path<br>[748, 783, 0]"] 10["Path<br>[771, 806, 0]"]
33["Segment<br>[791, 817, 0]"] 33["Segment<br>[814, 840, 0]"]
36["Segment<br>[825, 886, 0]"] 36["Segment<br>[848, 909, 0]"]
41["Segment<br>[894, 953, 0]"] 41["Segment<br>[917, 976, 0]"]
45["Segment<br>[961, 1021, 0]"] 45["Segment<br>[984, 1044, 0]"]
48["Segment<br>[1029, 1088, 0]"] 48["Segment<br>[1052, 1111, 0]"]
end end
subgraph path11 [Path] subgraph path11 [Path]
11["Path<br>[748, 783, 0]"] 11["Path<br>[771, 806, 0]"]
31["Segment<br>[791, 817, 0]"] 31["Segment<br>[814, 840, 0]"]
35["Segment<br>[825, 886, 0]"] 35["Segment<br>[848, 909, 0]"]
39["Segment<br>[894, 953, 0]"] 39["Segment<br>[917, 976, 0]"]
44["Segment<br>[961, 1021, 0]"] 44["Segment<br>[984, 1044, 0]"]
47["Segment<br>[1029, 1088, 0]"] 47["Segment<br>[1052, 1111, 0]"]
end end
subgraph path12 [Path] subgraph path12 [Path]
12["Path<br>[748, 783, 0]"] 12["Path<br>[771, 806, 0]"]
32["Segment<br>[791, 817, 0]"] 32["Segment<br>[814, 840, 0]"]
38["Segment<br>[825, 886, 0]"] 38["Segment<br>[848, 909, 0]"]
42["Segment<br>[894, 953, 0]"] 42["Segment<br>[917, 976, 0]"]
43["Segment<br>[961, 1021, 0]"] 43["Segment<br>[984, 1044, 0]"]
49["Segment<br>[1029, 1088, 0]"] 49["Segment<br>[1052, 1111, 0]"]
end end
subgraph path13 [Path] subgraph path13 [Path]
13["Path<br>[748, 783, 0]"] 13["Path<br>[771, 806, 0]"]
34["Segment<br>[791, 817, 0]"] 34["Segment<br>[814, 840, 0]"]
37["Segment<br>[825, 886, 0]"] 37["Segment<br>[848, 909, 0]"]
40["Segment<br>[894, 953, 0]"] 40["Segment<br>[917, 976, 0]"]
46["Segment<br>[961, 1021, 0]"] 46["Segment<br>[984, 1044, 0]"]
50["Segment<br>[1029, 1088, 0]"] 50["Segment<br>[1052, 1111, 0]"]
end end
subgraph path14 [Path] subgraph path14 [Path]
14["Path<br>[1190, 1252, 0]"] 14["Path<br>[1213, 1275, 0]"]
53["Segment<br>[1190, 1252, 0]"] 53["Segment<br>[1213, 1275, 0]"]
85[Solid2d] 85[Solid2d]
end end
subgraph path15 [Path] subgraph path15 [Path]
15["Path<br>[1190, 1252, 0]"] 15["Path<br>[1213, 1275, 0]"]
52["Segment<br>[1190, 1252, 0]"] 52["Segment<br>[1213, 1275, 0]"]
89[Solid2d] 89[Solid2d]
end end
subgraph path16 [Path] subgraph path16 [Path]
16["Path<br>[1190, 1252, 0]"] 16["Path<br>[1213, 1275, 0]"]
54["Segment<br>[1190, 1252, 0]"] 54["Segment<br>[1213, 1275, 0]"]
95[Solid2d] 95[Solid2d]
end end
subgraph path17 [Path] subgraph path17 [Path]
17["Path<br>[1190, 1252, 0]"] 17["Path<br>[1213, 1275, 0]"]
51["Segment<br>[1190, 1252, 0]"] 51["Segment<br>[1213, 1275, 0]"]
98[Solid2d] 98[Solid2d]
end end
subgraph path18 [Path] subgraph path18 [Path]
18["Path<br>[1278, 1356, 0]"] 18["Path<br>[1301, 1379, 0]"]
58["Segment<br>[1278, 1356, 0]"] 58["Segment<br>[1301, 1379, 0]"]
87[Solid2d] 87[Solid2d]
end end
subgraph path19 [Path] subgraph path19 [Path]
19["Path<br>[1278, 1356, 0]"] 19["Path<br>[1301, 1379, 0]"]
56["Segment<br>[1278, 1356, 0]"] 56["Segment<br>[1301, 1379, 0]"]
88[Solid2d] 88[Solid2d]
end end
subgraph path20 [Path] subgraph path20 [Path]
20["Path<br>[1278, 1356, 0]"] 20["Path<br>[1301, 1379, 0]"]
57["Segment<br>[1278, 1356, 0]"] 57["Segment<br>[1301, 1379, 0]"]
92[Solid2d] 92[Solid2d]
end end
subgraph path21 [Path] subgraph path21 [Path]
21["Path<br>[1278, 1356, 0]"] 21["Path<br>[1301, 1379, 0]"]
55["Segment<br>[1278, 1356, 0]"] 55["Segment<br>[1301, 1379, 0]"]
96[Solid2d] 96[Solid2d]
end end
subgraph path22 [Path] subgraph path22 [Path]
22["Path<br>[1680, 1715, 0]"] 22["Path<br>[1703, 1738, 0]"]
59["Segment<br>[1721, 1755, 0]"] 59["Segment<br>[1744, 1778, 0]"]
60["Segment<br>[1761, 1800, 0]"] 60["Segment<br>[1784, 1823, 0]"]
61["Segment<br>[1806, 1844, 0]"] 61["Segment<br>[1829, 1867, 0]"]
62["Segment<br>[1850, 1889, 0]"] 62["Segment<br>[1873, 1912, 0]"]
63["Segment<br>[1895, 1929, 0]"] 63["Segment<br>[1918, 1952, 0]"]
64["Segment<br>[1935, 1978, 0]"] 64["Segment<br>[1958, 2001, 0]"]
65["Segment<br>[1984, 2017, 0]"] 65["Segment<br>[2007, 2040, 0]"]
66["Segment<br>[2023, 2062, 0]"] 66["Segment<br>[2046, 2085, 0]"]
67["Segment<br>[2068, 2107, 0]"] 67["Segment<br>[2091, 2130, 0]"]
68["Segment<br>[2113, 2152, 0]"] 68["Segment<br>[2136, 2175, 0]"]
69["Segment<br>[2158, 2201, 0]"] 69["Segment<br>[2181, 2224, 0]"]
70["Segment<br>[2207, 2258, 0]"] 70["Segment<br>[2230, 2281, 0]"]
71["Segment<br>[2264, 2308, 0]"] 71["Segment<br>[2287, 2331, 0]"]
72["Segment<br>[2314, 2353, 0]"] 72["Segment<br>[2337, 2376, 0]"]
73["Segment<br>[2359, 2397, 0]"] 73["Segment<br>[2382, 2420, 0]"]
74["Segment<br>[2403, 2468, 0]"] 74["Segment<br>[2426, 2491, 0]"]
75["Segment<br>[2474, 2481, 0]"] 75["Segment<br>[2497, 2504, 0]"]
84[Solid2d] 84[Solid2d]
end end
subgraph path23 [Path] subgraph path23 [Path]
23["Path<br>[2566, 2639, 0]"] 23["Path<br>[2589, 2662, 0]"]
76["Segment<br>[2566, 2639, 0]"] 76["Segment<br>[2589, 2662, 0]"]
91[Solid2d] 91[Solid2d]
end end
subgraph path24 [Path] subgraph path24 [Path]
24["Path<br>[2664, 2737, 0]"] 24["Path<br>[2687, 2760, 0]"]
77["Segment<br>[2664, 2737, 0]"] 77["Segment<br>[2687, 2760, 0]"]
86[Solid2d] 86[Solid2d]
end end
subgraph path25 [Path] subgraph path25 [Path]
25["Path<br>[2762, 2835, 0]"] 25["Path<br>[2785, 2858, 0]"]
78["Segment<br>[2762, 2835, 0]"] 78["Segment<br>[2785, 2858, 0]"]
94[Solid2d] 94[Solid2d]
end end
subgraph path26 [Path] subgraph path26 [Path]
26["Path<br>[2860, 2933, 0]"] 26["Path<br>[2883, 2956, 0]"]
79["Segment<br>[2860, 2933, 0]"] 79["Segment<br>[2883, 2956, 0]"]
99[Solid2d] 99[Solid2d]
end end
subgraph path27 [Path] subgraph path27 [Path]
27["Path<br>[2997, 3136, 0]"] 27["Path<br>[3020, 3159, 0]"]
80["Segment<br>[2997, 3136, 0]"] 80["Segment<br>[3020, 3159, 0]"]
100[Solid2d] 100[Solid2d]
end end
subgraph path28 [Path] subgraph path28 [Path]
28["Path<br>[3161, 3298, 0]"] 28["Path<br>[3184, 3321, 0]"]
81["Segment<br>[3161, 3298, 0]"] 81["Segment<br>[3184, 3321, 0]"]
97[Solid2d] 97[Solid2d]
end end
subgraph path29 [Path] subgraph path29 [Path]
29["Path<br>[3323, 3470, 0]"] 29["Path<br>[3346, 3493, 0]"]
82["Segment<br>[3323, 3470, 0]"] 82["Segment<br>[3346, 3493, 0]"]
93[Solid2d] 93[Solid2d]
end end
subgraph path30 [Path] subgraph path30 [Path]
30["Path<br>[3495, 3641, 0]"] 30["Path<br>[3518, 3664, 0]"]
83["Segment<br>[3495, 3641, 0]"] 83["Segment<br>[3518, 3664, 0]"]
90[Solid2d] 90[Solid2d]
end end
1["Plane<br>[715, 740, 0]"] 1["Plane<br>[738, 763, 0]"]
2["Plane<br>[715, 740, 0]"] 2["Plane<br>[738, 763, 0]"]
3["Plane<br>[715, 740, 0]"] 3["Plane<br>[738, 763, 0]"]
4["Plane<br>[715, 740, 0]"] 4["Plane<br>[738, 763, 0]"]
5["Plane<br>[1165, 1182, 0]"] 5["Plane<br>[1188, 1205, 0]"]
6["Plane<br>[1165, 1182, 0]"] 6["Plane<br>[1188, 1205, 0]"]
7["Plane<br>[1165, 1182, 0]"] 7["Plane<br>[1188, 1205, 0]"]
8["Plane<br>[1165, 1182, 0]"] 8["Plane<br>[1188, 1205, 0]"]
9["Plane<br>[1657, 1674, 0]"] 9["Plane<br>[1680, 1697, 0]"]
101["Sweep Sweep<br>[1365, 1388, 0]"] 101["Sweep Sweep<br>[1388, 1411, 0]"]
102["Sweep Sweep<br>[1365, 1388, 0]"] 102["Sweep Sweep<br>[1388, 1411, 0]"]
103["Sweep Sweep<br>[1365, 1388, 0]"] 103["Sweep Sweep<br>[1388, 1411, 0]"]
104["Sweep Sweep<br>[1365, 1388, 0]"] 104["Sweep Sweep<br>[1388, 1411, 0]"]
105["Sweep Extrusion<br>[3694, 3723, 0]"] 105["Sweep Extrusion<br>[3717, 3746, 0]"]
106[Wall] 106[Wall]
107[Wall] 107[Wall]
108[Wall] 108[Wall]
@ -217,10 +217,10 @@ flowchart LR
173["SweepEdge Adjacent"] 173["SweepEdge Adjacent"]
174["SweepEdge Adjacent"] 174["SweepEdge Adjacent"]
175["SweepEdge Adjacent"] 175["SweepEdge Adjacent"]
176["EdgeCut Fillet<br>[3729, 3863, 0]"] 176["EdgeCut Fillet<br>[3752, 3886, 0]"]
177["EdgeCut Fillet<br>[3729, 3863, 0]"] 177["EdgeCut Fillet<br>[3752, 3886, 0]"]
178["EdgeCut Fillet<br>[3869, 4003, 0]"] 178["EdgeCut Fillet<br>[3892, 4026, 0]"]
179["EdgeCut Fillet<br>[3869, 4003, 0]"] 179["EdgeCut Fillet<br>[3892, 4026, 0]"]
1 --- 11 1 --- 11
2 --- 10 2 --- 10
3 --- 13 3 --- 13

View File

@ -346,7 +346,15 @@ description: Result of parsing exhaust-manifold.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },
@ -394,7 +402,15 @@ description: Result of parsing exhaust-manifold.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },

View File

@ -7,7 +7,7 @@ description: Operations executed exhaust-manifold.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -18,7 +18,7 @@ description: Operations executed exhaust-manifold.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -29,7 +29,7 @@ description: Operations executed exhaust-manifold.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -40,7 +40,7 @@ description: Operations executed exhaust-manifold.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -51,7 +51,7 @@ description: Operations executed exhaust-manifold.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -62,7 +62,7 @@ description: Operations executed exhaust-manifold.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -73,7 +73,7 @@ description: Operations executed exhaust-manifold.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -84,7 +84,7 @@ description: Operations executed exhaust-manifold.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -692,7 +692,7 @@ description: Operations executed exhaust-manifold.kcl
"value": [ "value": [
{ {
"type": "Number", "type": "Number",
"value": -0.42577929156507266, "value": -0.4257792915650726,
"ty": { "ty": {
"type": "Known", "type": "Known",
"type": "Count" "type": "Count"

View File

@ -28,9 +28,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 1748, "commentStart": 1771,
"end": 1754, "end": 1777,
"start": 1748, "start": 1771,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg01" "value": "seg01"
}, },
@ -62,9 +62,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 1922, "commentStart": 1945,
"end": 1928, "end": 1951,
"start": 1922, "start": 1945,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg03" "value": "seg03"
}, },
@ -75,9 +75,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 1971, "commentStart": 1994,
"end": 1977, "end": 2000,
"start": 1971, "start": 1994,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg04" "value": "seg04"
}, },
@ -88,9 +88,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 2010, "commentStart": 2033,
"end": 2016, "end": 2039,
"start": 2010, "start": 2033,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg05" "value": "seg05"
}, },
@ -122,9 +122,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 2194, "commentStart": 2217,
"end": 2200, "end": 2223,
"start": 2194, "start": 2217,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg07" "value": "seg07"
}, },
@ -135,9 +135,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 2251, "commentStart": 2274,
"end": 2257, "end": 2280,
"start": 2251, "start": 2274,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg08" "value": "seg08"
}, },
@ -148,9 +148,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 2301, "commentStart": 2324,
"end": 2307, "end": 2330,
"start": 2301, "start": 2324,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg09" "value": "seg09"
}, },
@ -192,9 +192,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
-1.25 -1.25
], ],
"tag": { "tag": {
"commentStart": 1748, "commentStart": 1771,
"end": 1754, "end": 1777,
"start": 1748, "start": 1771,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg01" "value": "seg01"
}, },
@ -289,9 +289,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
-1.25 -1.25
], ],
"tag": { "tag": {
"commentStart": 1922, "commentStart": 1945,
"end": 1928, "end": 1951,
"start": 1922, "start": 1945,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg03" "value": "seg03"
}, },
@ -314,9 +314,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
-1.25 -1.25
], ],
"tag": { "tag": {
"commentStart": 1971, "commentStart": 1994,
"end": 1977, "end": 2000,
"start": 1971, "start": 1994,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg04" "value": "seg04"
}, },
@ -339,9 +339,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
1.35 1.35
], ],
"tag": { "tag": {
"commentStart": 2010, "commentStart": 2033,
"end": 2016, "end": 2039,
"start": 2010, "start": 2033,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg05" "value": "seg05"
}, },
@ -436,9 +436,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
1.35 1.35
], ],
"tag": { "tag": {
"commentStart": 2194, "commentStart": 2217,
"end": 2200, "end": 2223,
"start": 2194, "start": 2217,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg07" "value": "seg07"
}, },
@ -461,9 +461,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
1.35 1.35
], ],
"tag": { "tag": {
"commentStart": 2251, "commentStart": 2274,
"end": 2257, "end": 2280,
"start": 2251, "start": 2274,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg08" "value": "seg08"
}, },
@ -486,9 +486,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
-1.25 -1.25
], ],
"tag": { "tag": {
"commentStart": 2301, "commentStart": 2324,
"end": 2307, "end": 2330,
"start": 2301, "start": 2324,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg09" "value": "seg09"
}, },

View File

@ -1,83 +1,83 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path6 [Path] subgraph path6 [Path]
6["Path<br>[1041, 1085, 0]"] 6["Path<br>[1017, 1061, 0]"]
15["Segment<br>[1093, 1133, 0]"] 15["Segment<br>[1069, 1109, 0]"]
17["Segment<br>[1141, 1187, 0]"] 17["Segment<br>[1117, 1163, 0]"]
23["Segment<br>[1195, 1236, 0]"] 23["Segment<br>[1171, 1212, 0]"]
25["Segment<br>[1244, 1309, 0]"] 25["Segment<br>[1220, 1285, 0]"]
29["Segment<br>[1317, 1324, 0]"] 29["Segment<br>[1293, 1300, 0]"]
55[Solid2d] 55[Solid2d]
end end
subgraph path7 [Path] subgraph path7 [Path]
7["Path<br>[1041, 1085, 0]"] 7["Path<br>[1017, 1061, 0]"]
16["Segment<br>[1093, 1133, 0]"] 16["Segment<br>[1069, 1109, 0]"]
19["Segment<br>[1141, 1187, 0]"] 19["Segment<br>[1117, 1163, 0]"]
21["Segment<br>[1195, 1236, 0]"] 21["Segment<br>[1171, 1212, 0]"]
28["Segment<br>[1244, 1309, 0]"] 28["Segment<br>[1220, 1285, 0]"]
32["Segment<br>[1317, 1324, 0]"] 32["Segment<br>[1293, 1300, 0]"]
56[Solid2d] 56[Solid2d]
end end
subgraph path8 [Path] subgraph path8 [Path]
8["Path<br>[1041, 1085, 0]"] 8["Path<br>[1017, 1061, 0]"]
13["Segment<br>[1093, 1133, 0]"] 13["Segment<br>[1069, 1109, 0]"]
20["Segment<br>[1141, 1187, 0]"] 20["Segment<br>[1117, 1163, 0]"]
22["Segment<br>[1195, 1236, 0]"] 22["Segment<br>[1171, 1212, 0]"]
26["Segment<br>[1244, 1309, 0]"] 26["Segment<br>[1220, 1285, 0]"]
31["Segment<br>[1317, 1324, 0]"] 31["Segment<br>[1293, 1300, 0]"]
59[Solid2d] 59[Solid2d]
end end
subgraph path9 [Path] subgraph path9 [Path]
9["Path<br>[1041, 1085, 0]"] 9["Path<br>[1017, 1061, 0]"]
14["Segment<br>[1093, 1133, 0]"] 14["Segment<br>[1069, 1109, 0]"]
18["Segment<br>[1141, 1187, 0]"] 18["Segment<br>[1117, 1163, 0]"]
24["Segment<br>[1195, 1236, 0]"] 24["Segment<br>[1171, 1212, 0]"]
27["Segment<br>[1244, 1309, 0]"] 27["Segment<br>[1220, 1285, 0]"]
30["Segment<br>[1317, 1324, 0]"] 30["Segment<br>[1293, 1300, 0]"]
60[Solid2d] 60[Solid2d]
end end
subgraph path10 [Path] subgraph path10 [Path]
10["Path<br>[1488, 1545, 0]"] 10["Path<br>[1464, 1521, 0]"]
33["Segment<br>[1551, 1583, 0]"] 33["Segment<br>[1527, 1559, 0]"]
34["Segment<br>[1589, 1626, 0]"] 34["Segment<br>[1565, 1602, 0]"]
35["Segment<br>[1632, 1665, 0]"] 35["Segment<br>[1608, 1641, 0]"]
36["Segment<br>[1671, 1738, 0]"] 36["Segment<br>[1647, 1714, 0]"]
37["Segment<br>[1744, 1751, 0]"] 37["Segment<br>[1720, 1727, 0]"]
57[Solid2d] 57[Solid2d]
end end
subgraph path11 [Path] subgraph path11 [Path]
11["Path<br>[2784, 2840, 0]"] 11["Path<br>[2760, 2816, 0]"]
38["Segment<br>[2846, 2905, 0]"] 38["Segment<br>[2822, 2881, 0]"]
39["Segment<br>[2911, 2946, 0]"] 39["Segment<br>[2887, 2922, 0]"]
40["Segment<br>[2952, 2985, 0]"] 40["Segment<br>[2928, 2961, 0]"]
41["Segment<br>[2991, 3050, 0]"] 41["Segment<br>[2967, 3026, 0]"]
42["Segment<br>[3056, 3092, 0]"] 42["Segment<br>[3032, 3068, 0]"]
43["Segment<br>[3098, 3122, 0]"] 43["Segment<br>[3074, 3098, 0]"]
44["Segment<br>[3128, 3135, 0]"] 44["Segment<br>[3104, 3111, 0]"]
58[Solid2d] 58[Solid2d]
end end
subgraph path12 [Path] subgraph path12 [Path]
12["Path<br>[3730, 3780, 0]"] 12["Path<br>[3706, 3756, 0]"]
45["Segment<br>[3786, 3836, 0]"] 45["Segment<br>[3762, 3812, 0]"]
46["Segment<br>[3842, 3908, 0]"] 46["Segment<br>[3818, 3884, 0]"]
47["Segment<br>[3914, 3965, 0]"] 47["Segment<br>[3890, 3941, 0]"]
48["Segment<br>[3971, 4036, 0]"] 48["Segment<br>[3947, 4012, 0]"]
49["Segment<br>[4042, 4095, 0]"] 49["Segment<br>[4018, 4071, 0]"]
50["Segment<br>[4101, 4168, 0]"] 50["Segment<br>[4077, 4144, 0]"]
51["Segment<br>[4174, 4248, 0]"] 51["Segment<br>[4150, 4224, 0]"]
52["Segment<br>[4254, 4322, 0]"] 52["Segment<br>[4230, 4298, 0]"]
53["Segment<br>[4328, 4335, 0]"] 53["Segment<br>[4304, 4311, 0]"]
54[Solid2d] 54[Solid2d]
end end
1["Plane<br>[1417, 1434, 0]"] 1["Plane<br>[1393, 1410, 0]"]
2["Plane<br>[2681, 2723, 0]"] 2["Plane<br>[2657, 2699, 0]"]
3["Plane<br>[3656, 3682, 0]"] 3["Plane<br>[3632, 3658, 0]"]
4["StartSketchOnPlane<br>[2667, 2724, 0]"] 4["StartSketchOnPlane<br>[2643, 2700, 0]"]
5["StartSketchOnFace<br>[4492, 4531, 0]"] 5["StartSketchOnFace<br>[4468, 4507, 0]"]
61["Sweep Extrusion<br>[2356, 2406, 0]"] 61["Sweep Extrusion<br>[2332, 2382, 0]"]
62["Sweep Extrusion<br>[3169, 3213, 0]"] 62["Sweep Extrusion<br>[3145, 3189, 0]"]
63["Sweep Extrusion<br>[4391, 4433, 0]"] 63["Sweep Extrusion<br>[4367, 4409, 0]"]
64["Sweep Extrusion<br>[4668, 4718, 0]"] 64["Sweep Extrusion<br>[4644, 4694, 0]"]
65[Wall] 65[Wall]
66[Wall] 66[Wall]
67[Wall] 67[Wall]
@ -156,10 +156,10 @@ flowchart LR
140["SweepEdge Adjacent"] 140["SweepEdge Adjacent"]
141["SweepEdge Adjacent"] 141["SweepEdge Adjacent"]
142["SweepEdge Adjacent"] 142["SweepEdge Adjacent"]
143["EdgeCut Fillet<br>[2443, 2584, 0]"] 143["EdgeCut Fillet<br>[2419, 2560, 0]"]
144["EdgeCut Fillet<br>[2443, 2584, 0]"] 144["EdgeCut Fillet<br>[2419, 2560, 0]"]
145["EdgeCut Fillet<br>[3256, 3387, 0]"] 145["EdgeCut Fillet<br>[3232, 3363, 0]"]
146["EdgeCut Fillet<br>[3256, 3387, 0]"] 146["EdgeCut Fillet<br>[3232, 3363, 0]"]
1 --- 6 1 --- 6
1 --- 8 1 --- 8
1 --- 9 1 --- 9

View File

@ -1434,8 +1434,6 @@ description: Result of parsing food-service-spatula.kcl
}, },
"operator": "*", "operator": "*",
"right": { "right": {
"arguments": [
{
"arguments": [ "arguments": [
{ {
"commentStart": 0, "commentStart": 0,
@ -1481,7 +1479,7 @@ description: Result of parsing food-service-spatula.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "toRadians", "name": "cos",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -1489,7 +1487,7 @@ description: Result of parsing food-service-spatula.kcl
{ {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "units", "name": "math",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
} }
@ -1502,28 +1500,6 @@ description: Result of parsing food-service-spatula.kcl
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpression",
"type": "CallExpression" "type": "CallExpression"
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "cos",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
}, },
"start": 0, "start": 0,
"type": "BinaryExpression", "type": "BinaryExpression",
@ -1627,8 +1603,6 @@ description: Result of parsing food-service-spatula.kcl
}, },
"operator": "*", "operator": "*",
"right": { "right": {
"arguments": [
{
"arguments": [ "arguments": [
{ {
"commentStart": 0, "commentStart": 0,
@ -1674,7 +1648,7 @@ description: Result of parsing food-service-spatula.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "toRadians", "name": "sin",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -1682,7 +1656,7 @@ description: Result of parsing food-service-spatula.kcl
{ {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "units", "name": "math",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
} }
@ -1695,28 +1669,6 @@ description: Result of parsing food-service-spatula.kcl
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpression",
"type": "CallExpression" "type": "CallExpression"
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "sin",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
}, },
"start": 0, "start": 0,
"type": "BinaryExpression", "type": "BinaryExpression",

View File

@ -40,7 +40,7 @@ description: Operations executed food-service-spatula.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -51,7 +51,7 @@ description: Operations executed food-service-spatula.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -62,7 +62,7 @@ description: Operations executed food-service-spatula.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -73,7 +73,7 @@ description: Operations executed food-service-spatula.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -84,7 +84,7 @@ description: Operations executed food-service-spatula.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "units::toRadians", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -95,7 +95,7 @@ description: Operations executed food-service-spatula.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "units::toRadians", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -106,7 +106,7 @@ description: Operations executed food-service-spatula.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "units::toRadians", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -117,95 +117,7 @@ description: Operations executed food-service-spatula.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "units::toRadians", "name": "math::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": "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",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "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"
},
{ {
"type": "GroupEnd" "type": "GroupEnd"
} }

View File

@ -27,9 +27,9 @@ description: Variables in memory after executing food-service-spatula.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 1616, "commentStart": 1592,
"end": 1625, "end": 1601,
"start": 1616, "start": 1592,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "backEdge" "value": "backEdge"
}, },
@ -90,9 +90,9 @@ description: Variables in memory after executing food-service-spatula.kcl
-30.0 -30.0
], ],
"tag": { "tag": {
"commentStart": 1616, "commentStart": 1592,
"end": 1625, "end": 1601,
"start": 1616, "start": 1592,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "backEdge" "value": "backEdge"
}, },
@ -299,9 +299,9 @@ description: Variables in memory after executing food-service-spatula.kcl
-30.0 -30.0
], ],
"tag": { "tag": {
"commentStart": 1616, "commentStart": 1592,
"end": 1625, "end": 1601,
"start": 1616, "start": 1592,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "backEdge" "value": "backEdge"
}, },
@ -551,9 +551,9 @@ description: Variables in memory after executing food-service-spatula.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 4235, "commentStart": 4211,
"end": 4247, "end": 4223,
"start": 4235, "start": 4211,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "gripEdgeTop" "value": "gripEdgeTop"
}, },
@ -713,9 +713,9 @@ description: Variables in memory after executing food-service-spatula.kcl
7.0 7.0
], ],
"tag": { "tag": {
"commentStart": 4235, "commentStart": 4211,
"end": 4247, "end": 4223,
"start": 4235, "start": 4211,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "gripEdgeTop" "value": "gripEdgeTop"
}, },
@ -1058,9 +1058,9 @@ description: Variables in memory after executing food-service-spatula.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 4235, "commentStart": 4211,
"end": 4247, "end": 4223,
"start": 4235, "start": 4211,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "gripEdgeTop" "value": "gripEdgeTop"
}, },
@ -1220,9 +1220,9 @@ description: Variables in memory after executing food-service-spatula.kcl
7.0 7.0
], ],
"tag": { "tag": {
"commentStart": 4235, "commentStart": 4211,
"end": 4247, "end": 4223,
"start": 4235, "start": 4211,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "gripEdgeTop" "value": "gripEdgeTop"
}, },
@ -1538,9 +1538,9 @@ description: Variables in memory after executing food-service-spatula.kcl
7.0 7.0
], ],
"tag": { "tag": {
"commentStart": 4235, "commentStart": 4211,
"end": 4247, "end": 4223,
"start": 4235, "start": 4211,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "gripEdgeTop" "value": "gripEdgeTop"
}, },
@ -1729,9 +1729,9 @@ description: Variables in memory after executing food-service-spatula.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 2887, "commentStart": 2863,
"end": 2904, "end": 2880,
"start": 2887, "start": 2863,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "handleBottomEdge" "value": "handleBottomEdge"
}, },
@ -1756,9 +1756,9 @@ description: Variables in memory after executing food-service-spatula.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 3035, "commentStart": 3011,
"end": 3049, "end": 3025,
"start": 3035, "start": 3011,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "handleTopEdge" "value": "handleTopEdge"
}, },
@ -1800,9 +1800,9 @@ description: Variables in memory after executing food-service-spatula.kcl
3.5 3.5
], ],
"tag": { "tag": {
"commentStart": 2887, "commentStart": 2863,
"end": 2904, "end": 2880,
"start": 2887, "start": 2863,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "handleBottomEdge" "value": "handleBottomEdge"
}, },
@ -1863,9 +1863,9 @@ description: Variables in memory after executing food-service-spatula.kcl
91.3213 91.3213
], ],
"tag": { "tag": {
"commentStart": 3035, "commentStart": 3011,
"end": 3049, "end": 3025,
"start": 3035, "start": 3011,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "handleTopEdge" "value": "handleTopEdge"
}, },
@ -2211,9 +2211,9 @@ description: Variables in memory after executing food-service-spatula.kcl
3.5 3.5
], ],
"tag": { "tag": {
"commentStart": 2887, "commentStart": 2863,
"end": 2904, "end": 2880,
"start": 2887, "start": 2863,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "handleBottomEdge" "value": "handleBottomEdge"
}, },
@ -2274,9 +2274,9 @@ description: Variables in memory after executing food-service-spatula.kcl
91.3213 91.3213
], ],
"tag": { "tag": {
"commentStart": 3035, "commentStart": 3011,
"end": 3049, "end": 3025,
"start": 3035, "start": 3011,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "handleTopEdge" "value": "handleTopEdge"
}, },
@ -2536,9 +2536,9 @@ description: Variables in memory after executing food-service-spatula.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 4235, "commentStart": 4211,
"end": 4247, "end": 4223,
"start": 4235, "start": 4211,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "gripEdgeTop" "value": "gripEdgeTop"
}, },
@ -2698,9 +2698,9 @@ description: Variables in memory after executing food-service-spatula.kcl
7.0 7.0
], ],
"tag": { "tag": {
"commentStart": 4235, "commentStart": 4211,
"end": 4247, "end": 4223,
"start": 4235, "start": 4211,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "gripEdgeTop" "value": "gripEdgeTop"
}, },
@ -3370,9 +3370,9 @@ description: Variables in memory after executing food-service-spatula.kcl
-30.0 -30.0
], ],
"tag": { "tag": {
"commentStart": 1616, "commentStart": 1592,
"end": 1625, "end": 1601,
"start": 1616, "start": 1592,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "backEdge" "value": "backEdge"
}, },

View File

@ -1,234 +1,234 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path4 [Path] subgraph path4 [Path]
4["Path<br>[1453, 1503, 0]"] 4["Path<br>[1441, 1491, 0]"]
7["Segment<br>[1453, 1503, 0]"] 7["Segment<br>[1441, 1491, 0]"]
219[Solid2d] 219[Solid2d]
end end
subgraph path5 [Path] subgraph path5 [Path]
5["Path<br>[2008, 2045, 0]"] 5["Path<br>[1972, 2009, 0]"]
8["Segment<br>[1668, 1706, 0]"] 8["Segment<br>[1656, 1694, 0]"]
9["Segment<br>[1668, 1706, 0]"] 9["Segment<br>[1656, 1694, 0]"]
10["Segment<br>[1668, 1706, 0]"] 10["Segment<br>[1656, 1694, 0]"]
11["Segment<br>[1668, 1706, 0]"] 11["Segment<br>[1656, 1694, 0]"]
12["Segment<br>[1668, 1706, 0]"] 12["Segment<br>[1656, 1694, 0]"]
13["Segment<br>[1668, 1706, 0]"] 13["Segment<br>[1656, 1694, 0]"]
14["Segment<br>[1668, 1706, 0]"] 14["Segment<br>[1656, 1694, 0]"]
15["Segment<br>[1668, 1706, 0]"] 15["Segment<br>[1656, 1694, 0]"]
16["Segment<br>[1668, 1706, 0]"] 16["Segment<br>[1656, 1694, 0]"]
17["Segment<br>[1668, 1706, 0]"] 17["Segment<br>[1656, 1694, 0]"]
18["Segment<br>[1668, 1706, 0]"] 18["Segment<br>[1656, 1694, 0]"]
19["Segment<br>[1668, 1706, 0]"] 19["Segment<br>[1656, 1694, 0]"]
20["Segment<br>[1668, 1706, 0]"] 20["Segment<br>[1656, 1694, 0]"]
21["Segment<br>[1668, 1706, 0]"] 21["Segment<br>[1656, 1694, 0]"]
22["Segment<br>[1668, 1706, 0]"] 22["Segment<br>[1656, 1694, 0]"]
23["Segment<br>[1668, 1706, 0]"] 23["Segment<br>[1656, 1694, 0]"]
24["Segment<br>[1668, 1706, 0]"] 24["Segment<br>[1656, 1694, 0]"]
25["Segment<br>[1668, 1706, 0]"] 25["Segment<br>[1656, 1694, 0]"]
26["Segment<br>[1668, 1706, 0]"] 26["Segment<br>[1656, 1694, 0]"]
27["Segment<br>[1668, 1706, 0]"] 27["Segment<br>[1656, 1694, 0]"]
28["Segment<br>[1668, 1706, 0]"] 28["Segment<br>[1656, 1694, 0]"]
29["Segment<br>[1668, 1706, 0]"] 29["Segment<br>[1656, 1694, 0]"]
30["Segment<br>[1668, 1706, 0]"] 30["Segment<br>[1656, 1694, 0]"]
31["Segment<br>[1668, 1706, 0]"] 31["Segment<br>[1656, 1694, 0]"]
32["Segment<br>[1668, 1706, 0]"] 32["Segment<br>[1656, 1694, 0]"]
33["Segment<br>[1668, 1706, 0]"] 33["Segment<br>[1656, 1694, 0]"]
34["Segment<br>[1668, 1706, 0]"] 34["Segment<br>[1656, 1694, 0]"]
35["Segment<br>[1668, 1706, 0]"] 35["Segment<br>[1656, 1694, 0]"]
36["Segment<br>[1668, 1706, 0]"] 36["Segment<br>[1656, 1694, 0]"]
37["Segment<br>[1668, 1706, 0]"] 37["Segment<br>[1656, 1694, 0]"]
38["Segment<br>[1668, 1706, 0]"] 38["Segment<br>[1656, 1694, 0]"]
39["Segment<br>[1668, 1706, 0]"] 39["Segment<br>[1656, 1694, 0]"]
40["Segment<br>[1668, 1706, 0]"] 40["Segment<br>[1656, 1694, 0]"]
41["Segment<br>[1668, 1706, 0]"] 41["Segment<br>[1656, 1694, 0]"]
42["Segment<br>[1668, 1706, 0]"] 42["Segment<br>[1656, 1694, 0]"]
43["Segment<br>[1668, 1706, 0]"] 43["Segment<br>[1656, 1694, 0]"]
44["Segment<br>[1668, 1706, 0]"] 44["Segment<br>[1656, 1694, 0]"]
45["Segment<br>[1668, 1706, 0]"] 45["Segment<br>[1656, 1694, 0]"]
46["Segment<br>[1668, 1706, 0]"] 46["Segment<br>[1656, 1694, 0]"]
47["Segment<br>[1668, 1706, 0]"] 47["Segment<br>[1656, 1694, 0]"]
48["Segment<br>[1668, 1706, 0]"] 48["Segment<br>[1656, 1694, 0]"]
49["Segment<br>[1668, 1706, 0]"] 49["Segment<br>[1656, 1694, 0]"]
50["Segment<br>[1668, 1706, 0]"] 50["Segment<br>[1656, 1694, 0]"]
51["Segment<br>[1668, 1706, 0]"] 51["Segment<br>[1656, 1694, 0]"]
52["Segment<br>[1668, 1706, 0]"] 52["Segment<br>[1656, 1694, 0]"]
53["Segment<br>[1668, 1706, 0]"] 53["Segment<br>[1656, 1694, 0]"]
54["Segment<br>[1668, 1706, 0]"] 54["Segment<br>[1656, 1694, 0]"]
55["Segment<br>[1668, 1706, 0]"] 55["Segment<br>[1656, 1694, 0]"]
56["Segment<br>[1668, 1706, 0]"] 56["Segment<br>[1656, 1694, 0]"]
57["Segment<br>[1668, 1706, 0]"] 57["Segment<br>[1656, 1694, 0]"]
58["Segment<br>[1668, 1706, 0]"] 58["Segment<br>[1656, 1694, 0]"]
59["Segment<br>[1668, 1706, 0]"] 59["Segment<br>[1656, 1694, 0]"]
60["Segment<br>[1668, 1706, 0]"] 60["Segment<br>[1656, 1694, 0]"]
61["Segment<br>[1668, 1706, 0]"] 61["Segment<br>[1656, 1694, 0]"]
62["Segment<br>[1668, 1706, 0]"] 62["Segment<br>[1656, 1694, 0]"]
63["Segment<br>[1668, 1706, 0]"] 63["Segment<br>[1656, 1694, 0]"]
64["Segment<br>[1668, 1706, 0]"] 64["Segment<br>[1656, 1694, 0]"]
65["Segment<br>[1668, 1706, 0]"] 65["Segment<br>[1656, 1694, 0]"]
66["Segment<br>[1668, 1706, 0]"] 66["Segment<br>[1656, 1694, 0]"]
67["Segment<br>[1668, 1706, 0]"] 67["Segment<br>[1656, 1694, 0]"]
68["Segment<br>[1668, 1706, 0]"] 68["Segment<br>[1656, 1694, 0]"]
69["Segment<br>[1668, 1706, 0]"] 69["Segment<br>[1656, 1694, 0]"]
70["Segment<br>[1668, 1706, 0]"] 70["Segment<br>[1656, 1694, 0]"]
71["Segment<br>[1668, 1706, 0]"] 71["Segment<br>[1656, 1694, 0]"]
72["Segment<br>[1668, 1706, 0]"] 72["Segment<br>[1656, 1694, 0]"]
73["Segment<br>[1668, 1706, 0]"] 73["Segment<br>[1656, 1694, 0]"]
74["Segment<br>[1668, 1706, 0]"] 74["Segment<br>[1656, 1694, 0]"]
75["Segment<br>[1668, 1706, 0]"] 75["Segment<br>[1656, 1694, 0]"]
76["Segment<br>[1668, 1706, 0]"] 76["Segment<br>[1656, 1694, 0]"]
77["Segment<br>[1668, 1706, 0]"] 77["Segment<br>[1656, 1694, 0]"]
78["Segment<br>[1668, 1706, 0]"] 78["Segment<br>[1656, 1694, 0]"]
79["Segment<br>[1668, 1706, 0]"] 79["Segment<br>[1656, 1694, 0]"]
80["Segment<br>[1668, 1706, 0]"] 80["Segment<br>[1656, 1694, 0]"]
81["Segment<br>[1668, 1706, 0]"] 81["Segment<br>[1656, 1694, 0]"]
82["Segment<br>[1668, 1706, 0]"] 82["Segment<br>[1656, 1694, 0]"]
83["Segment<br>[1668, 1706, 0]"] 83["Segment<br>[1656, 1694, 0]"]
84["Segment<br>[1668, 1706, 0]"] 84["Segment<br>[1656, 1694, 0]"]
85["Segment<br>[1668, 1706, 0]"] 85["Segment<br>[1656, 1694, 0]"]
86["Segment<br>[1668, 1706, 0]"] 86["Segment<br>[1656, 1694, 0]"]
87["Segment<br>[1668, 1706, 0]"] 87["Segment<br>[1656, 1694, 0]"]
88["Segment<br>[1668, 1706, 0]"] 88["Segment<br>[1656, 1694, 0]"]
89["Segment<br>[1668, 1706, 0]"] 89["Segment<br>[1656, 1694, 0]"]
90["Segment<br>[1668, 1706, 0]"] 90["Segment<br>[1656, 1694, 0]"]
91["Segment<br>[1668, 1706, 0]"] 91["Segment<br>[1656, 1694, 0]"]
92["Segment<br>[1668, 1706, 0]"] 92["Segment<br>[1656, 1694, 0]"]
93["Segment<br>[1668, 1706, 0]"] 93["Segment<br>[1656, 1694, 0]"]
94["Segment<br>[1668, 1706, 0]"] 94["Segment<br>[1656, 1694, 0]"]
95["Segment<br>[1668, 1706, 0]"] 95["Segment<br>[1656, 1694, 0]"]
96["Segment<br>[1668, 1706, 0]"] 96["Segment<br>[1656, 1694, 0]"]
97["Segment<br>[1668, 1706, 0]"] 97["Segment<br>[1656, 1694, 0]"]
98["Segment<br>[1668, 1706, 0]"] 98["Segment<br>[1656, 1694, 0]"]
99["Segment<br>[1668, 1706, 0]"] 99["Segment<br>[1656, 1694, 0]"]
100["Segment<br>[1668, 1706, 0]"] 100["Segment<br>[1656, 1694, 0]"]
101["Segment<br>[1668, 1706, 0]"] 101["Segment<br>[1656, 1694, 0]"]
102["Segment<br>[1668, 1706, 0]"] 102["Segment<br>[1656, 1694, 0]"]
103["Segment<br>[1668, 1706, 0]"] 103["Segment<br>[1656, 1694, 0]"]
104["Segment<br>[1668, 1706, 0]"] 104["Segment<br>[1656, 1694, 0]"]
105["Segment<br>[1668, 1706, 0]"] 105["Segment<br>[1656, 1694, 0]"]
106["Segment<br>[1668, 1706, 0]"] 106["Segment<br>[1656, 1694, 0]"]
107["Segment<br>[1668, 1706, 0]"] 107["Segment<br>[1656, 1694, 0]"]
108["Segment<br>[1668, 1706, 0]"] 108["Segment<br>[1656, 1694, 0]"]
109["Segment<br>[1924, 1954, 0]"] 109["Segment<br>[1888, 1918, 0]"]
110["Segment<br>[1924, 1954, 0]"] 110["Segment<br>[1888, 1918, 0]"]
111["Segment<br>[1924, 1954, 0]"] 111["Segment<br>[1888, 1918, 0]"]
112["Segment<br>[1924, 1954, 0]"] 112["Segment<br>[1888, 1918, 0]"]
113["Segment<br>[1924, 1954, 0]"] 113["Segment<br>[1888, 1918, 0]"]
114["Segment<br>[1924, 1954, 0]"] 114["Segment<br>[1888, 1918, 0]"]
115["Segment<br>[1924, 1954, 0]"] 115["Segment<br>[1888, 1918, 0]"]
116["Segment<br>[1924, 1954, 0]"] 116["Segment<br>[1888, 1918, 0]"]
117["Segment<br>[1924, 1954, 0]"] 117["Segment<br>[1888, 1918, 0]"]
118["Segment<br>[1924, 1954, 0]"] 118["Segment<br>[1888, 1918, 0]"]
119["Segment<br>[1924, 1954, 0]"] 119["Segment<br>[1888, 1918, 0]"]
120["Segment<br>[1924, 1954, 0]"] 120["Segment<br>[1888, 1918, 0]"]
121["Segment<br>[1924, 1954, 0]"] 121["Segment<br>[1888, 1918, 0]"]
122["Segment<br>[1924, 1954, 0]"] 122["Segment<br>[1888, 1918, 0]"]
123["Segment<br>[1924, 1954, 0]"] 123["Segment<br>[1888, 1918, 0]"]
124["Segment<br>[1924, 1954, 0]"] 124["Segment<br>[1888, 1918, 0]"]
125["Segment<br>[1924, 1954, 0]"] 125["Segment<br>[1888, 1918, 0]"]
126["Segment<br>[1924, 1954, 0]"] 126["Segment<br>[1888, 1918, 0]"]
127["Segment<br>[1924, 1954, 0]"] 127["Segment<br>[1888, 1918, 0]"]
128["Segment<br>[1924, 1954, 0]"] 128["Segment<br>[1888, 1918, 0]"]
129["Segment<br>[1924, 1954, 0]"] 129["Segment<br>[1888, 1918, 0]"]
130["Segment<br>[1924, 1954, 0]"] 130["Segment<br>[1888, 1918, 0]"]
131["Segment<br>[1924, 1954, 0]"] 131["Segment<br>[1888, 1918, 0]"]
132["Segment<br>[1924, 1954, 0]"] 132["Segment<br>[1888, 1918, 0]"]
133["Segment<br>[1924, 1954, 0]"] 133["Segment<br>[1888, 1918, 0]"]
134["Segment<br>[1924, 1954, 0]"] 134["Segment<br>[1888, 1918, 0]"]
135["Segment<br>[1924, 1954, 0]"] 135["Segment<br>[1888, 1918, 0]"]
136["Segment<br>[1924, 1954, 0]"] 136["Segment<br>[1888, 1918, 0]"]
137["Segment<br>[1924, 1954, 0]"] 137["Segment<br>[1888, 1918, 0]"]
138["Segment<br>[1924, 1954, 0]"] 138["Segment<br>[1888, 1918, 0]"]
139["Segment<br>[1924, 1954, 0]"] 139["Segment<br>[1888, 1918, 0]"]
140["Segment<br>[1924, 1954, 0]"] 140["Segment<br>[1888, 1918, 0]"]
141["Segment<br>[1924, 1954, 0]"] 141["Segment<br>[1888, 1918, 0]"]
142["Segment<br>[1924, 1954, 0]"] 142["Segment<br>[1888, 1918, 0]"]
143["Segment<br>[1924, 1954, 0]"] 143["Segment<br>[1888, 1918, 0]"]
144["Segment<br>[1924, 1954, 0]"] 144["Segment<br>[1888, 1918, 0]"]
145["Segment<br>[1924, 1954, 0]"] 145["Segment<br>[1888, 1918, 0]"]
146["Segment<br>[1924, 1954, 0]"] 146["Segment<br>[1888, 1918, 0]"]
147["Segment<br>[1924, 1954, 0]"] 147["Segment<br>[1888, 1918, 0]"]
148["Segment<br>[1924, 1954, 0]"] 148["Segment<br>[1888, 1918, 0]"]
149["Segment<br>[1924, 1954, 0]"] 149["Segment<br>[1888, 1918, 0]"]
150["Segment<br>[1924, 1954, 0]"] 150["Segment<br>[1888, 1918, 0]"]
151["Segment<br>[1924, 1954, 0]"] 151["Segment<br>[1888, 1918, 0]"]
152["Segment<br>[1924, 1954, 0]"] 152["Segment<br>[1888, 1918, 0]"]
153["Segment<br>[1924, 1954, 0]"] 153["Segment<br>[1888, 1918, 0]"]
154["Segment<br>[1924, 1954, 0]"] 154["Segment<br>[1888, 1918, 0]"]
155["Segment<br>[1924, 1954, 0]"] 155["Segment<br>[1888, 1918, 0]"]
156["Segment<br>[1924, 1954, 0]"] 156["Segment<br>[1888, 1918, 0]"]
157["Segment<br>[1924, 1954, 0]"] 157["Segment<br>[1888, 1918, 0]"]
158["Segment<br>[1924, 1954, 0]"] 158["Segment<br>[1888, 1918, 0]"]
159["Segment<br>[1924, 1954, 0]"] 159["Segment<br>[1888, 1918, 0]"]
160["Segment<br>[1924, 1954, 0]"] 160["Segment<br>[1888, 1918, 0]"]
161["Segment<br>[1924, 1954, 0]"] 161["Segment<br>[1888, 1918, 0]"]
162["Segment<br>[1924, 1954, 0]"] 162["Segment<br>[1888, 1918, 0]"]
163["Segment<br>[1924, 1954, 0]"] 163["Segment<br>[1888, 1918, 0]"]
164["Segment<br>[1924, 1954, 0]"] 164["Segment<br>[1888, 1918, 0]"]
165["Segment<br>[1924, 1954, 0]"] 165["Segment<br>[1888, 1918, 0]"]
166["Segment<br>[1924, 1954, 0]"] 166["Segment<br>[1888, 1918, 0]"]
167["Segment<br>[1924, 1954, 0]"] 167["Segment<br>[1888, 1918, 0]"]
168["Segment<br>[1924, 1954, 0]"] 168["Segment<br>[1888, 1918, 0]"]
169["Segment<br>[1924, 1954, 0]"] 169["Segment<br>[1888, 1918, 0]"]
170["Segment<br>[1924, 1954, 0]"] 170["Segment<br>[1888, 1918, 0]"]
171["Segment<br>[1924, 1954, 0]"] 171["Segment<br>[1888, 1918, 0]"]
172["Segment<br>[1924, 1954, 0]"] 172["Segment<br>[1888, 1918, 0]"]
173["Segment<br>[1924, 1954, 0]"] 173["Segment<br>[1888, 1918, 0]"]
174["Segment<br>[1924, 1954, 0]"] 174["Segment<br>[1888, 1918, 0]"]
175["Segment<br>[1924, 1954, 0]"] 175["Segment<br>[1888, 1918, 0]"]
176["Segment<br>[1924, 1954, 0]"] 176["Segment<br>[1888, 1918, 0]"]
177["Segment<br>[1924, 1954, 0]"] 177["Segment<br>[1888, 1918, 0]"]
178["Segment<br>[1924, 1954, 0]"] 178["Segment<br>[1888, 1918, 0]"]
179["Segment<br>[1924, 1954, 0]"] 179["Segment<br>[1888, 1918, 0]"]
180["Segment<br>[1924, 1954, 0]"] 180["Segment<br>[1888, 1918, 0]"]
181["Segment<br>[1924, 1954, 0]"] 181["Segment<br>[1888, 1918, 0]"]
182["Segment<br>[1924, 1954, 0]"] 182["Segment<br>[1888, 1918, 0]"]
183["Segment<br>[1924, 1954, 0]"] 183["Segment<br>[1888, 1918, 0]"]
184["Segment<br>[1924, 1954, 0]"] 184["Segment<br>[1888, 1918, 0]"]
185["Segment<br>[1924, 1954, 0]"] 185["Segment<br>[1888, 1918, 0]"]
186["Segment<br>[1924, 1954, 0]"] 186["Segment<br>[1888, 1918, 0]"]
187["Segment<br>[1924, 1954, 0]"] 187["Segment<br>[1888, 1918, 0]"]
188["Segment<br>[1924, 1954, 0]"] 188["Segment<br>[1888, 1918, 0]"]
189["Segment<br>[1924, 1954, 0]"] 189["Segment<br>[1888, 1918, 0]"]
190["Segment<br>[1924, 1954, 0]"] 190["Segment<br>[1888, 1918, 0]"]
191["Segment<br>[1924, 1954, 0]"] 191["Segment<br>[1888, 1918, 0]"]
192["Segment<br>[1924, 1954, 0]"] 192["Segment<br>[1888, 1918, 0]"]
193["Segment<br>[1924, 1954, 0]"] 193["Segment<br>[1888, 1918, 0]"]
194["Segment<br>[1924, 1954, 0]"] 194["Segment<br>[1888, 1918, 0]"]
195["Segment<br>[1924, 1954, 0]"] 195["Segment<br>[1888, 1918, 0]"]
196["Segment<br>[1924, 1954, 0]"] 196["Segment<br>[1888, 1918, 0]"]
197["Segment<br>[1924, 1954, 0]"] 197["Segment<br>[1888, 1918, 0]"]
198["Segment<br>[1924, 1954, 0]"] 198["Segment<br>[1888, 1918, 0]"]
199["Segment<br>[1924, 1954, 0]"] 199["Segment<br>[1888, 1918, 0]"]
200["Segment<br>[1924, 1954, 0]"] 200["Segment<br>[1888, 1918, 0]"]
201["Segment<br>[1924, 1954, 0]"] 201["Segment<br>[1888, 1918, 0]"]
202["Segment<br>[1924, 1954, 0]"] 202["Segment<br>[1888, 1918, 0]"]
203["Segment<br>[1924, 1954, 0]"] 203["Segment<br>[1888, 1918, 0]"]
204["Segment<br>[1924, 1954, 0]"] 204["Segment<br>[1888, 1918, 0]"]
205["Segment<br>[1924, 1954, 0]"] 205["Segment<br>[1888, 1918, 0]"]
206["Segment<br>[1924, 1954, 0]"] 206["Segment<br>[1888, 1918, 0]"]
207["Segment<br>[1924, 1954, 0]"] 207["Segment<br>[1888, 1918, 0]"]
208["Segment<br>[1924, 1954, 0]"] 208["Segment<br>[1888, 1918, 0]"]
209["Segment<br>[1924, 1954, 0]"] 209["Segment<br>[1888, 1918, 0]"]
210["Segment<br>[2111, 2180, 0]"] 210["Segment<br>[2075, 2144, 0]"]
211["Segment<br>[2240, 2247, 0]"] 211["Segment<br>[2204, 2211, 0]"]
218[Solid2d] 218[Solid2d]
end end
subgraph path6 [Path] subgraph path6 [Path]
6["Path<br>[2728, 2828, 0]"] 6["Path<br>[2692, 2804, 0]"]
212["Segment<br>[2834, 2861, 0]"] 212["Segment<br>[2810, 2837, 0]"]
213["Segment<br>[2867, 2895, 0]"] 213["Segment<br>[2843, 2871, 0]"]
214["Segment<br>[2901, 2929, 0]"] 214["Segment<br>[2877, 2905, 0]"]
215["Segment<br>[2935, 3029, 0]"] 215["Segment<br>[2911, 3005, 0]"]
216["Segment<br>[3035, 3118, 0]"] 216["Segment<br>[3011, 3094, 0]"]
217["Segment<br>[3124, 3131, 0]"] 217["Segment<br>[3100, 3107, 0]"]
220[Solid2d] 220[Solid2d]
end end
1["Plane<br>[1430, 1447, 0]"] 1["Plane<br>[1418, 1435, 0]"]
2["Plane<br>[1985, 2002, 0]"] 2["Plane<br>[1949, 1966, 0]"]
3["StartSketchOnFace<br>[2691, 2722, 0]"] 3["StartSketchOnFace<br>[2655, 2686, 0]"]
221["Sweep Extrusion<br>[1509, 1537, 0]"] 221["Sweep Extrusion<br>[1497, 1525, 0]"]
222["Sweep Extrusion<br>[2253, 2281, 0]"] 222["Sweep Extrusion<br>[2217, 2245, 0]"]
223["Sweep Extrusion<br>[3137, 3166, 0]"] 223["Sweep Extrusion<br>[3113, 3142, 0]"]
224[Wall] 224[Wall]
225[Wall] 225[Wall]
226[Wall] 226[Wall]

View File

@ -295,8 +295,6 @@ description: Result of parsing gear.kcl
}, },
"operator": "*", "operator": "*",
"right": { "right": {
"arguments": [
{
"arguments": [ "arguments": [
{ {
"abs_path": false, "abs_path": false,
@ -322,7 +320,7 @@ description: Result of parsing gear.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "toRadians", "name": "cos",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -330,7 +328,7 @@ description: Result of parsing gear.kcl
{ {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "units", "name": "math",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
} }
@ -343,28 +341,6 @@ description: Result of parsing gear.kcl
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpression",
"type": "CallExpression" "type": "CallExpression"
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "cos",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
}, },
"start": 0, "start": 0,
"type": "BinaryExpression", "type": "BinaryExpression",
@ -1063,8 +1039,6 @@ description: Result of parsing gear.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"left": { "left": {
"arguments": [
{
"arguments": [ "arguments": [
{ {
"abs_path": false, "abs_path": false,
@ -1090,7 +1064,7 @@ description: Result of parsing gear.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "toRadians", "name": "tan",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -1098,7 +1072,7 @@ description: Result of parsing gear.kcl
{ {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "units", "name": "math",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
} }
@ -1111,28 +1085,6 @@ description: Result of parsing gear.kcl
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpression",
"type": "CallExpression" "type": "CallExpression"
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "tan",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
}, },
"operator": "-", "operator": "-",
"right": { "right": {
@ -1377,7 +1329,15 @@ description: Result of parsing gear.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },
@ -1601,7 +1561,15 @@ description: Result of parsing gear.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },
@ -2336,8 +2304,6 @@ description: Result of parsing gear.kcl
}, },
"operator": "*", "operator": "*",
"right": { "right": {
"arguments": [
{
"arguments": [ "arguments": [
{ {
"commentStart": 0, "commentStart": 0,
@ -2491,7 +2457,7 @@ description: Result of parsing gear.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "toRadians", "name": "cos",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -2499,7 +2465,7 @@ description: Result of parsing gear.kcl
{ {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "units", "name": "math",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
} }
@ -2512,28 +2478,6 @@ description: Result of parsing gear.kcl
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpression",
"type": "CallExpression" "type": "CallExpression"
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "cos",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
}, },
"start": 0, "start": 0,
"type": "BinaryExpression", "type": "BinaryExpression",
@ -2597,8 +2541,6 @@ description: Result of parsing gear.kcl
}, },
"operator": "*", "operator": "*",
"right": { "right": {
"arguments": [
{
"arguments": [ "arguments": [
{ {
"commentStart": 0, "commentStart": 0,
@ -2752,7 +2694,7 @@ description: Result of parsing gear.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "toRadians", "name": "sin",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -2760,7 +2702,7 @@ description: Result of parsing gear.kcl
{ {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "units", "name": "math",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
} }
@ -2773,28 +2715,6 @@ description: Result of parsing gear.kcl
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpression",
"type": "CallExpression" "type": "CallExpression"
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "sin",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
}, },
"start": 0, "start": 0,
"type": "BinaryExpression", "type": "BinaryExpression",
@ -4179,7 +4099,15 @@ description: Result of parsing gear.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },
@ -4243,7 +4171,15 @@ description: Result of parsing gear.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },

File diff suppressed because it is too large Load Diff

View File

@ -30,389 +30,389 @@ flowchart LR
303[Solid2d] 303[Solid2d]
end end
subgraph path34 [Path] subgraph path34 [Path]
34["Path<br>[1985, 2047, 0]"] 34["Path<br>[1991, 2053, 0]"]
87["Segment<br>[2055, 2106, 0]"] 87["Segment<br>[2061, 2112, 0]"]
107["Segment<br>[2114, 2188, 0]"] 107["Segment<br>[2120, 2194, 0]"]
116["Segment<br>[2196, 2235, 0]"] 116["Segment<br>[2202, 2241, 0]"]
134["Segment<br>[2243, 2350, 0]"] 134["Segment<br>[2249, 2356, 0]"]
155["Segment<br>[2358, 2397, 0]"] 155["Segment<br>[2364, 2403, 0]"]
189["Segment<br>[2405, 2522, 0]"] 189["Segment<br>[2411, 2528, 0]"]
198["Segment<br>[2530, 2569, 0]"] 198["Segment<br>[2536, 2575, 0]"]
216["Segment<br>[2577, 2662, 0]"] 216["Segment<br>[2583, 2668, 0]"]
242["Segment<br>[2670, 2677, 0]"] 242["Segment<br>[2676, 2683, 0]"]
290[Solid2d] 290[Solid2d]
end end
subgraph path35 [Path] subgraph path35 [Path]
35["Path<br>[1985, 2047, 0]"] 35["Path<br>[1991, 2053, 0]"]
88["Segment<br>[2055, 2106, 0]"] 88["Segment<br>[2061, 2112, 0]"]
101["Segment<br>[2114, 2188, 0]"] 101["Segment<br>[2120, 2194, 0]"]
113["Segment<br>[2196, 2235, 0]"] 113["Segment<br>[2202, 2241, 0]"]
152["Segment<br>[2243, 2350, 0]"] 152["Segment<br>[2249, 2356, 0]"]
171["Segment<br>[2358, 2397, 0]"] 171["Segment<br>[2364, 2403, 0]"]
191["Segment<br>[2405, 2522, 0]"] 191["Segment<br>[2411, 2528, 0]"]
197["Segment<br>[2530, 2569, 0]"] 197["Segment<br>[2536, 2575, 0]"]
217["Segment<br>[2577, 2662, 0]"] 217["Segment<br>[2583, 2668, 0]"]
241["Segment<br>[2670, 2677, 0]"] 241["Segment<br>[2676, 2683, 0]"]
291[Solid2d] 291[Solid2d]
end end
subgraph path36 [Path] subgraph path36 [Path]
36["Path<br>[1985, 2047, 0]"] 36["Path<br>[1991, 2053, 0]"]
74["Segment<br>[2055, 2106, 0]"] 74["Segment<br>[2061, 2112, 0]"]
98["Segment<br>[2114, 2188, 0]"] 98["Segment<br>[2120, 2194, 0]"]
117["Segment<br>[2196, 2235, 0]"] 117["Segment<br>[2202, 2241, 0]"]
141["Segment<br>[2243, 2350, 0]"] 141["Segment<br>[2249, 2356, 0]"]
170["Segment<br>[2358, 2397, 0]"] 170["Segment<br>[2364, 2403, 0]"]
177["Segment<br>[2405, 2522, 0]"] 177["Segment<br>[2411, 2528, 0]"]
215["Segment<br>[2530, 2569, 0]"] 215["Segment<br>[2536, 2575, 0]"]
219["Segment<br>[2577, 2662, 0]"] 219["Segment<br>[2583, 2668, 0]"]
254["Segment<br>[2670, 2677, 0]"] 254["Segment<br>[2676, 2683, 0]"]
293[Solid2d] 293[Solid2d]
end end
subgraph path37 [Path] subgraph path37 [Path]
37["Path<br>[1985, 2047, 0]"] 37["Path<br>[1991, 2053, 0]"]
76["Segment<br>[2055, 2106, 0]"] 76["Segment<br>[2061, 2112, 0]"]
108["Segment<br>[2114, 2188, 0]"] 108["Segment<br>[2120, 2194, 0]"]
130["Segment<br>[2196, 2235, 0]"] 130["Segment<br>[2202, 2241, 0]"]
147["Segment<br>[2243, 2350, 0]"] 147["Segment<br>[2249, 2356, 0]"]
169["Segment<br>[2358, 2397, 0]"] 169["Segment<br>[2364, 2403, 0]"]
190["Segment<br>[2405, 2522, 0]"] 190["Segment<br>[2411, 2528, 0]"]
201["Segment<br>[2530, 2569, 0]"] 201["Segment<br>[2536, 2575, 0]"]
228["Segment<br>[2577, 2662, 0]"] 228["Segment<br>[2583, 2668, 0]"]
253["Segment<br>[2670, 2677, 0]"] 253["Segment<br>[2676, 2683, 0]"]
294[Solid2d] 294[Solid2d]
end end
subgraph path38 [Path] subgraph path38 [Path]
38["Path<br>[1985, 2047, 0]"] 38["Path<br>[1991, 2053, 0]"]
84["Segment<br>[2055, 2106, 0]"] 84["Segment<br>[2061, 2112, 0]"]
96["Segment<br>[2114, 2188, 0]"] 96["Segment<br>[2120, 2194, 0]"]
112["Segment<br>[2196, 2235, 0]"] 112["Segment<br>[2202, 2241, 0]"]
133["Segment<br>[2243, 2350, 0]"] 133["Segment<br>[2249, 2356, 0]"]
157["Segment<br>[2358, 2397, 0]"] 157["Segment<br>[2364, 2403, 0]"]
186["Segment<br>[2405, 2522, 0]"] 186["Segment<br>[2411, 2528, 0]"]
209["Segment<br>[2530, 2569, 0]"] 209["Segment<br>[2536, 2575, 0]"]
224["Segment<br>[2577, 2662, 0]"] 224["Segment<br>[2583, 2668, 0]"]
243["Segment<br>[2670, 2677, 0]"] 243["Segment<br>[2676, 2683, 0]"]
295[Solid2d] 295[Solid2d]
end end
subgraph path39 [Path] subgraph path39 [Path]
39["Path<br>[1985, 2047, 0]"] 39["Path<br>[1991, 2053, 0]"]
78["Segment<br>[2055, 2106, 0]"] 78["Segment<br>[2061, 2112, 0]"]
110["Segment<br>[2114, 2188, 0]"] 110["Segment<br>[2120, 2194, 0]"]
118["Segment<br>[2196, 2235, 0]"] 118["Segment<br>[2202, 2241, 0]"]
145["Segment<br>[2243, 2350, 0]"] 145["Segment<br>[2249, 2356, 0]"]
166["Segment<br>[2358, 2397, 0]"] 166["Segment<br>[2364, 2403, 0]"]
188["Segment<br>[2405, 2522, 0]"] 188["Segment<br>[2411, 2528, 0]"]
202["Segment<br>[2530, 2569, 0]"] 202["Segment<br>[2536, 2575, 0]"]
218["Segment<br>[2577, 2662, 0]"] 218["Segment<br>[2583, 2668, 0]"]
245["Segment<br>[2670, 2677, 0]"] 245["Segment<br>[2676, 2683, 0]"]
296[Solid2d] 296[Solid2d]
end end
subgraph path40 [Path] subgraph path40 [Path]
40["Path<br>[1985, 2047, 0]"] 40["Path<br>[1991, 2053, 0]"]
73["Segment<br>[2055, 2106, 0]"] 73["Segment<br>[2061, 2112, 0]"]
95["Segment<br>[2114, 2188, 0]"] 95["Segment<br>[2120, 2194, 0]"]
128["Segment<br>[2196, 2235, 0]"] 128["Segment<br>[2202, 2241, 0]"]
148["Segment<br>[2243, 2350, 0]"] 148["Segment<br>[2249, 2356, 0]"]
172["Segment<br>[2358, 2397, 0]"] 172["Segment<br>[2364, 2403, 0]"]
178["Segment<br>[2405, 2522, 0]"] 178["Segment<br>[2411, 2528, 0]"]
207["Segment<br>[2530, 2569, 0]"] 207["Segment<br>[2536, 2575, 0]"]
234["Segment<br>[2577, 2662, 0]"] 234["Segment<br>[2583, 2668, 0]"]
251["Segment<br>[2670, 2677, 0]"] 251["Segment<br>[2676, 2683, 0]"]
297[Solid2d] 297[Solid2d]
end end
subgraph path41 [Path] subgraph path41 [Path]
41["Path<br>[1985, 2047, 0]"] 41["Path<br>[1991, 2053, 0]"]
83["Segment<br>[2055, 2106, 0]"] 83["Segment<br>[2061, 2112, 0]"]
106["Segment<br>[2114, 2188, 0]"] 106["Segment<br>[2120, 2194, 0]"]
125["Segment<br>[2196, 2235, 0]"] 125["Segment<br>[2202, 2241, 0]"]
151["Segment<br>[2243, 2350, 0]"] 151["Segment<br>[2249, 2356, 0]"]
160["Segment<br>[2358, 2397, 0]"] 160["Segment<br>[2364, 2403, 0]"]
176["Segment<br>[2405, 2522, 0]"] 176["Segment<br>[2411, 2528, 0]"]
204["Segment<br>[2530, 2569, 0]"] 204["Segment<br>[2536, 2575, 0]"]
235["Segment<br>[2577, 2662, 0]"] 235["Segment<br>[2583, 2668, 0]"]
248["Segment<br>[2670, 2677, 0]"] 248["Segment<br>[2676, 2683, 0]"]
298[Solid2d] 298[Solid2d]
end end
subgraph path42 [Path] subgraph path42 [Path]
42["Path<br>[1985, 2047, 0]"] 42["Path<br>[1991, 2053, 0]"]
86["Segment<br>[2055, 2106, 0]"] 86["Segment<br>[2061, 2112, 0]"]
102["Segment<br>[2114, 2188, 0]"] 102["Segment<br>[2120, 2194, 0]"]
119["Segment<br>[2196, 2235, 0]"] 119["Segment<br>[2202, 2241, 0]"]
150["Segment<br>[2243, 2350, 0]"] 150["Segment<br>[2249, 2356, 0]"]
164["Segment<br>[2358, 2397, 0]"] 164["Segment<br>[2364, 2403, 0]"]
174["Segment<br>[2405, 2522, 0]"] 174["Segment<br>[2411, 2528, 0]"]
200["Segment<br>[2530, 2569, 0]"] 200["Segment<br>[2536, 2575, 0]"]
226["Segment<br>[2577, 2662, 0]"] 226["Segment<br>[2583, 2668, 0]"]
246["Segment<br>[2670, 2677, 0]"] 246["Segment<br>[2676, 2683, 0]"]
300[Solid2d] 300[Solid2d]
end end
subgraph path43 [Path] subgraph path43 [Path]
43["Path<br>[1985, 2047, 0]"] 43["Path<br>[1991, 2053, 0]"]
77["Segment<br>[2055, 2106, 0]"] 77["Segment<br>[2061, 2112, 0]"]
109["Segment<br>[2114, 2188, 0]"] 109["Segment<br>[2120, 2194, 0]"]
114["Segment<br>[2196, 2235, 0]"] 114["Segment<br>[2202, 2241, 0]"]
142["Segment<br>[2243, 2350, 0]"] 142["Segment<br>[2249, 2356, 0]"]
153["Segment<br>[2358, 2397, 0]"] 153["Segment<br>[2364, 2403, 0]"]
182["Segment<br>[2405, 2522, 0]"] 182["Segment<br>[2411, 2528, 0]"]
199["Segment<br>[2530, 2569, 0]"] 199["Segment<br>[2536, 2575, 0]"]
230["Segment<br>[2577, 2662, 0]"] 230["Segment<br>[2583, 2668, 0]"]
252["Segment<br>[2670, 2677, 0]"] 252["Segment<br>[2676, 2683, 0]"]
301[Solid2d] 301[Solid2d]
end end
subgraph path44 [Path] subgraph path44 [Path]
44["Path<br>[1985, 2047, 0]"] 44["Path<br>[1991, 2053, 0]"]
69["Segment<br>[2055, 2106, 0]"] 69["Segment<br>[2061, 2112, 0]"]
91["Segment<br>[2114, 2188, 0]"] 91["Segment<br>[2120, 2194, 0]"]
127["Segment<br>[2196, 2235, 0]"] 127["Segment<br>[2202, 2241, 0]"]
144["Segment<br>[2243, 2350, 0]"] 144["Segment<br>[2249, 2356, 0]"]
163["Segment<br>[2358, 2397, 0]"] 163["Segment<br>[2364, 2403, 0]"]
185["Segment<br>[2405, 2522, 0]"] 185["Segment<br>[2411, 2528, 0]"]
210["Segment<br>[2530, 2569, 0]"] 210["Segment<br>[2536, 2575, 0]"]
233["Segment<br>[2577, 2662, 0]"] 233["Segment<br>[2583, 2668, 0]"]
256["Segment<br>[2670, 2677, 0]"] 256["Segment<br>[2676, 2683, 0]"]
305[Solid2d] 305[Solid2d]
end end
subgraph path45 [Path] subgraph path45 [Path]
45["Path<br>[1985, 2047, 0]"] 45["Path<br>[1991, 2053, 0]"]
80["Segment<br>[2055, 2106, 0]"] 80["Segment<br>[2061, 2112, 0]"]
93["Segment<br>[2114, 2188, 0]"] 93["Segment<br>[2120, 2194, 0]"]
124["Segment<br>[2196, 2235, 0]"] 124["Segment<br>[2202, 2241, 0]"]
139["Segment<br>[2243, 2350, 0]"] 139["Segment<br>[2249, 2356, 0]"]
168["Segment<br>[2358, 2397, 0]"] 168["Segment<br>[2364, 2403, 0]"]
184["Segment<br>[2405, 2522, 0]"] 184["Segment<br>[2411, 2528, 0]"]
195["Segment<br>[2530, 2569, 0]"] 195["Segment<br>[2536, 2575, 0]"]
222["Segment<br>[2577, 2662, 0]"] 222["Segment<br>[2583, 2668, 0]"]
240["Segment<br>[2670, 2677, 0]"] 240["Segment<br>[2676, 2683, 0]"]
306[Solid2d] 306[Solid2d]
end end
subgraph path46 [Path] subgraph path46 [Path]
46["Path<br>[1985, 2047, 0]"] 46["Path<br>[1991, 2053, 0]"]
70["Segment<br>[2055, 2106, 0]"] 70["Segment<br>[2061, 2112, 0]"]
103["Segment<br>[2114, 2188, 0]"] 103["Segment<br>[2120, 2194, 0]"]
123["Segment<br>[2196, 2235, 0]"] 123["Segment<br>[2202, 2241, 0]"]
143["Segment<br>[2243, 2350, 0]"] 143["Segment<br>[2249, 2356, 0]"]
173["Segment<br>[2358, 2397, 0]"] 173["Segment<br>[2364, 2403, 0]"]
179["Segment<br>[2405, 2522, 0]"] 179["Segment<br>[2411, 2528, 0]"]
205["Segment<br>[2530, 2569, 0]"] 205["Segment<br>[2536, 2575, 0]"]
220["Segment<br>[2577, 2662, 0]"] 220["Segment<br>[2583, 2668, 0]"]
237["Segment<br>[2670, 2677, 0]"] 237["Segment<br>[2676, 2683, 0]"]
307[Solid2d] 307[Solid2d]
end end
subgraph path47 [Path] subgraph path47 [Path]
47["Path<br>[1985, 2047, 0]"] 47["Path<br>[1991, 2053, 0]"]
82["Segment<br>[2055, 2106, 0]"] 82["Segment<br>[2061, 2112, 0]"]
97["Segment<br>[2114, 2188, 0]"] 97["Segment<br>[2120, 2194, 0]"]
126["Segment<br>[2196, 2235, 0]"] 126["Segment<br>[2202, 2241, 0]"]
137["Segment<br>[2243, 2350, 0]"] 137["Segment<br>[2249, 2356, 0]"]
159["Segment<br>[2358, 2397, 0]"] 159["Segment<br>[2364, 2403, 0]"]
180["Segment<br>[2405, 2522, 0]"] 180["Segment<br>[2411, 2528, 0]"]
196["Segment<br>[2530, 2569, 0]"] 196["Segment<br>[2536, 2575, 0]"]
225["Segment<br>[2577, 2662, 0]"] 225["Segment<br>[2583, 2668, 0]"]
255["Segment<br>[2670, 2677, 0]"] 255["Segment<br>[2676, 2683, 0]"]
308[Solid2d] 308[Solid2d]
end end
subgraph path48 [Path] subgraph path48 [Path]
48["Path<br>[1985, 2047, 0]"] 48["Path<br>[1991, 2053, 0]"]
89["Segment<br>[2055, 2106, 0]"] 89["Segment<br>[2061, 2112, 0]"]
100["Segment<br>[2114, 2188, 0]"] 100["Segment<br>[2120, 2194, 0]"]
129["Segment<br>[2196, 2235, 0]"] 129["Segment<br>[2202, 2241, 0]"]
135["Segment<br>[2243, 2350, 0]"] 135["Segment<br>[2249, 2356, 0]"]
158["Segment<br>[2358, 2397, 0]"] 158["Segment<br>[2364, 2403, 0]"]
183["Segment<br>[2405, 2522, 0]"] 183["Segment<br>[2411, 2528, 0]"]
211["Segment<br>[2530, 2569, 0]"] 211["Segment<br>[2536, 2575, 0]"]
221["Segment<br>[2577, 2662, 0]"] 221["Segment<br>[2583, 2668, 0]"]
250["Segment<br>[2670, 2677, 0]"] 250["Segment<br>[2676, 2683, 0]"]
309[Solid2d] 309[Solid2d]
end end
subgraph path49 [Path] subgraph path49 [Path]
49["Path<br>[1985, 2047, 0]"] 49["Path<br>[1991, 2053, 0]"]
72["Segment<br>[2055, 2106, 0]"] 72["Segment<br>[2061, 2112, 0]"]
92["Segment<br>[2114, 2188, 0]"] 92["Segment<br>[2120, 2194, 0]"]
115["Segment<br>[2196, 2235, 0]"] 115["Segment<br>[2202, 2241, 0]"]
138["Segment<br>[2243, 2350, 0]"] 138["Segment<br>[2249, 2356, 0]"]
162["Segment<br>[2358, 2397, 0]"] 162["Segment<br>[2364, 2403, 0]"]
193["Segment<br>[2405, 2522, 0]"] 193["Segment<br>[2411, 2528, 0]"]
203["Segment<br>[2530, 2569, 0]"] 203["Segment<br>[2536, 2575, 0]"]
229["Segment<br>[2577, 2662, 0]"] 229["Segment<br>[2583, 2668, 0]"]
239["Segment<br>[2670, 2677, 0]"] 239["Segment<br>[2676, 2683, 0]"]
310[Solid2d] 310[Solid2d]
end end
subgraph path50 [Path] subgraph path50 [Path]
50["Path<br>[1985, 2047, 0]"] 50["Path<br>[1991, 2053, 0]"]
75["Segment<br>[2055, 2106, 0]"] 75["Segment<br>[2061, 2112, 0]"]
99["Segment<br>[2114, 2188, 0]"] 99["Segment<br>[2120, 2194, 0]"]
121["Segment<br>[2196, 2235, 0]"] 121["Segment<br>[2202, 2241, 0]"]
140["Segment<br>[2243, 2350, 0]"] 140["Segment<br>[2249, 2356, 0]"]
167["Segment<br>[2358, 2397, 0]"] 167["Segment<br>[2364, 2403, 0]"]
181["Segment<br>[2405, 2522, 0]"] 181["Segment<br>[2411, 2528, 0]"]
206["Segment<br>[2530, 2569, 0]"] 206["Segment<br>[2536, 2575, 0]"]
223["Segment<br>[2577, 2662, 0]"] 223["Segment<br>[2583, 2668, 0]"]
238["Segment<br>[2670, 2677, 0]"] 238["Segment<br>[2676, 2683, 0]"]
313[Solid2d] 313[Solid2d]
end end
subgraph path51 [Path] subgraph path51 [Path]
51["Path<br>[1985, 2047, 0]"] 51["Path<br>[1991, 2053, 0]"]
79["Segment<br>[2055, 2106, 0]"] 79["Segment<br>[2061, 2112, 0]"]
104["Segment<br>[2114, 2188, 0]"] 104["Segment<br>[2120, 2194, 0]"]
131["Segment<br>[2196, 2235, 0]"] 131["Segment<br>[2202, 2241, 0]"]
149["Segment<br>[2243, 2350, 0]"] 149["Segment<br>[2249, 2356, 0]"]
156["Segment<br>[2358, 2397, 0]"] 156["Segment<br>[2364, 2403, 0]"]
175["Segment<br>[2405, 2522, 0]"] 175["Segment<br>[2411, 2528, 0]"]
214["Segment<br>[2530, 2569, 0]"] 214["Segment<br>[2536, 2575, 0]"]
227["Segment<br>[2577, 2662, 0]"] 227["Segment<br>[2583, 2668, 0]"]
244["Segment<br>[2670, 2677, 0]"] 244["Segment<br>[2676, 2683, 0]"]
315[Solid2d] 315[Solid2d]
end end
subgraph path52 [Path] subgraph path52 [Path]
52["Path<br>[1985, 2047, 0]"] 52["Path<br>[1991, 2053, 0]"]
85["Segment<br>[2055, 2106, 0]"] 85["Segment<br>[2061, 2112, 0]"]
105["Segment<br>[2114, 2188, 0]"] 105["Segment<br>[2120, 2194, 0]"]
120["Segment<br>[2196, 2235, 0]"] 120["Segment<br>[2202, 2241, 0]"]
132["Segment<br>[2243, 2350, 0]"] 132["Segment<br>[2249, 2356, 0]"]
165["Segment<br>[2358, 2397, 0]"] 165["Segment<br>[2364, 2403, 0]"]
187["Segment<br>[2405, 2522, 0]"] 187["Segment<br>[2411, 2528, 0]"]
208["Segment<br>[2530, 2569, 0]"] 208["Segment<br>[2536, 2575, 0]"]
231["Segment<br>[2577, 2662, 0]"] 231["Segment<br>[2583, 2668, 0]"]
249["Segment<br>[2670, 2677, 0]"] 249["Segment<br>[2676, 2683, 0]"]
318[Solid2d] 318[Solid2d]
end end
subgraph path53 [Path] subgraph path53 [Path]
53["Path<br>[1985, 2047, 0]"] 53["Path<br>[1991, 2053, 0]"]
71["Segment<br>[2055, 2106, 0]"] 71["Segment<br>[2061, 2112, 0]"]
94["Segment<br>[2114, 2188, 0]"] 94["Segment<br>[2120, 2194, 0]"]
122["Segment<br>[2196, 2235, 0]"] 122["Segment<br>[2202, 2241, 0]"]
146["Segment<br>[2243, 2350, 0]"] 146["Segment<br>[2249, 2356, 0]"]
154["Segment<br>[2358, 2397, 0]"] 154["Segment<br>[2364, 2403, 0]"]
192["Segment<br>[2405, 2522, 0]"] 192["Segment<br>[2411, 2528, 0]"]
212["Segment<br>[2530, 2569, 0]"] 212["Segment<br>[2536, 2575, 0]"]
232["Segment<br>[2577, 2662, 0]"] 232["Segment<br>[2583, 2668, 0]"]
247["Segment<br>[2670, 2677, 0]"] 247["Segment<br>[2676, 2683, 0]"]
319[Solid2d] 319[Solid2d]
end end
subgraph path54 [Path] subgraph path54 [Path]
54["Path<br>[1985, 2047, 0]"] 54["Path<br>[1991, 2053, 0]"]
81["Segment<br>[2055, 2106, 0]"] 81["Segment<br>[2061, 2112, 0]"]
90["Segment<br>[2114, 2188, 0]"] 90["Segment<br>[2120, 2194, 0]"]
111["Segment<br>[2196, 2235, 0]"] 111["Segment<br>[2202, 2241, 0]"]
136["Segment<br>[2243, 2350, 0]"] 136["Segment<br>[2249, 2356, 0]"]
161["Segment<br>[2358, 2397, 0]"] 161["Segment<br>[2364, 2403, 0]"]
194["Segment<br>[2405, 2522, 0]"] 194["Segment<br>[2411, 2528, 0]"]
213["Segment<br>[2530, 2569, 0]"] 213["Segment<br>[2536, 2575, 0]"]
236["Segment<br>[2577, 2662, 0]"] 236["Segment<br>[2583, 2668, 0]"]
257["Segment<br>[2670, 2677, 0]"] 257["Segment<br>[2676, 2683, 0]"]
320[Solid2d] 320[Solid2d]
end end
subgraph path55 [Path] subgraph path55 [Path]
55["Path<br>[4901, 4988, 0]"] 55["Path<br>[4913, 5000, 0]"]
258["Segment<br>[4996, 5025, 0]"] 258["Segment<br>[5008, 5037, 0]"]
259["Segment<br>[5033, 5061, 0]"] 259["Segment<br>[5045, 5073, 0]"]
260["Segment<br>[5069, 5147, 0]"] 260["Segment<br>[5081, 5159, 0]"]
261["Segment<br>[5155, 5202, 0]"] 261["Segment<br>[5167, 5214, 0]"]
262["Segment<br>[5210, 5238, 0]"] 262["Segment<br>[5222, 5250, 0]"]
263["Segment<br>[5246, 5275, 0]"] 263["Segment<br>[5258, 5287, 0]"]
264["Segment<br>[5283, 5312, 0]"] 264["Segment<br>[5295, 5324, 0]"]
265["Segment<br>[5320, 5386, 0]"] 265["Segment<br>[5332, 5398, 0]"]
266["Segment<br>[5394, 5422, 0]"] 266["Segment<br>[5406, 5434, 0]"]
267["Segment<br>[5430, 5459, 0]"] 267["Segment<br>[5442, 5471, 0]"]
268["Segment<br>[5467, 5529, 0]"] 268["Segment<br>[5479, 5541, 0]"]
269["Segment<br>[5537, 5565, 0]"] 269["Segment<br>[5549, 5577, 0]"]
270["Segment<br>[5573, 5607, 0]"] 270["Segment<br>[5585, 5619, 0]"]
271["Segment<br>[5615, 5645, 0]"] 271["Segment<br>[5627, 5657, 0]"]
272["Segment<br>[5653, 5721, 0]"] 272["Segment<br>[5665, 5733, 0]"]
273["Segment<br>[5729, 5736, 0]"] 273["Segment<br>[5741, 5748, 0]"]
314[Solid2d] 314[Solid2d]
end end
subgraph path56 [Path] subgraph path56 [Path]
56["Path<br>[5936, 6034, 0]"] 56["Path<br>[5948, 6046, 0]"]
274["Segment<br>[6042, 6120, 0]"] 274["Segment<br>[6054, 6132, 0]"]
277["Segment<br>[6128, 6175, 0]"] 277["Segment<br>[6140, 6187, 0]"]
279["Segment<br>[6183, 6263, 0]"] 279["Segment<br>[6195, 6275, 0]"]
281["Segment<br>[6271, 6278, 0]"] 281["Segment<br>[6283, 6290, 0]"]
299[Solid2d] 299[Solid2d]
end end
subgraph path57 [Path] subgraph path57 [Path]
57["Path<br>[5936, 6034, 0]"] 57["Path<br>[5948, 6046, 0]"]
275["Segment<br>[6042, 6120, 0]"] 275["Segment<br>[6054, 6132, 0]"]
276["Segment<br>[6128, 6175, 0]"] 276["Segment<br>[6140, 6187, 0]"]
278["Segment<br>[6183, 6263, 0]"] 278["Segment<br>[6195, 6275, 0]"]
280["Segment<br>[6271, 6278, 0]"] 280["Segment<br>[6283, 6290, 0]"]
316[Solid2d] 316[Solid2d]
end end
subgraph path58 [Path] subgraph path58 [Path]
58["Path<br>[6386, 6483, 0]"] 58["Path<br>[6398, 6495, 0]"]
282["Segment<br>[6491, 6569, 0]"] 282["Segment<br>[6503, 6581, 0]"]
284["Segment<br>[6577, 6625, 0]"] 284["Segment<br>[6589, 6637, 0]"]
286["Segment<br>[6633, 6713, 0]"] 286["Segment<br>[6645, 6725, 0]"]
289["Segment<br>[6721, 6728, 0]"] 289["Segment<br>[6733, 6740, 0]"]
292[Solid2d] 292[Solid2d]
end end
subgraph path59 [Path] subgraph path59 [Path]
59["Path<br>[6386, 6483, 0]"] 59["Path<br>[6398, 6495, 0]"]
283["Segment<br>[6491, 6569, 0]"] 283["Segment<br>[6503, 6581, 0]"]
285["Segment<br>[6577, 6625, 0]"] 285["Segment<br>[6589, 6637, 0]"]
287["Segment<br>[6633, 6713, 0]"] 287["Segment<br>[6645, 6725, 0]"]
288["Segment<br>[6721, 6728, 0]"] 288["Segment<br>[6733, 6740, 0]"]
311[Solid2d] 311[Solid2d]
end end
1["Plane<br>[532, 549, 0]"] 1["Plane<br>[532, 549, 0]"]
2["Plane<br>[1946, 1969, 0]"] 2["Plane<br>[1952, 1975, 0]"]
3["Plane<br>[1946, 1969, 0]"] 3["Plane<br>[1952, 1975, 0]"]
4["Plane<br>[1946, 1969, 0]"] 4["Plane<br>[1952, 1975, 0]"]
5["Plane<br>[1946, 1969, 0]"] 5["Plane<br>[1952, 1975, 0]"]
6["Plane<br>[1946, 1969, 0]"] 6["Plane<br>[1952, 1975, 0]"]
7["Plane<br>[1946, 1969, 0]"] 7["Plane<br>[1952, 1975, 0]"]
8["Plane<br>[1946, 1969, 0]"] 8["Plane<br>[1952, 1975, 0]"]
9["Plane<br>[1946, 1969, 0]"] 9["Plane<br>[1952, 1975, 0]"]
10["Plane<br>[1946, 1969, 0]"] 10["Plane<br>[1952, 1975, 0]"]
11["Plane<br>[1946, 1969, 0]"] 11["Plane<br>[1952, 1975, 0]"]
12["Plane<br>[1946, 1969, 0]"] 12["Plane<br>[1952, 1975, 0]"]
13["Plane<br>[1946, 1969, 0]"] 13["Plane<br>[1952, 1975, 0]"]
14["Plane<br>[1946, 1969, 0]"] 14["Plane<br>[1952, 1975, 0]"]
15["Plane<br>[1946, 1969, 0]"] 15["Plane<br>[1952, 1975, 0]"]
16["Plane<br>[1946, 1969, 0]"] 16["Plane<br>[1952, 1975, 0]"]
17["Plane<br>[1946, 1969, 0]"] 17["Plane<br>[1952, 1975, 0]"]
18["Plane<br>[1946, 1969, 0]"] 18["Plane<br>[1952, 1975, 0]"]
19["Plane<br>[1946, 1969, 0]"] 19["Plane<br>[1952, 1975, 0]"]
20["Plane<br>[1946, 1969, 0]"] 20["Plane<br>[1952, 1975, 0]"]
21["Plane<br>[1946, 1969, 0]"] 21["Plane<br>[1952, 1975, 0]"]
22["Plane<br>[1946, 1969, 0]"] 22["Plane<br>[1952, 1975, 0]"]
23["Plane<br>[4870, 4893, 0]"] 23["Plane<br>[4882, 4905, 0]"]
24["Plane<br>[5905, 5928, 0]"] 24["Plane<br>[5917, 5940, 0]"]
25["Plane<br>[5905, 5928, 0]"] 25["Plane<br>[5917, 5940, 0]"]
26["Plane<br>[6355, 6378, 0]"] 26["Plane<br>[6367, 6390, 0]"]
27["Plane<br>[6355, 6378, 0]"] 27["Plane<br>[6367, 6390, 0]"]
28["StartSketchOnFace<br>[1151, 1189, 0]"] 28["StartSketchOnFace<br>[1151, 1189, 0]"]
321["Sweep Extrusion<br>[851, 873, 0]"] 321["Sweep Extrusion<br>[851, 873, 0]"]
322["Sweep Extrusion<br>[1472, 1570, 0]"] 322["Sweep Extrusion<br>[1472, 1570, 0]"]
323["Sweep Extrusion<br>[1472, 1570, 0]"] 323["Sweep Extrusion<br>[1472, 1570, 0]"]
324["Sweep Extrusion<br>[1472, 1570, 0]"] 324["Sweep Extrusion<br>[1472, 1570, 0]"]
325["Sweep Extrusion<br>[1472, 1570, 0]"] 325["Sweep Extrusion<br>[1472, 1570, 0]"]
326["Sweep Extrusion<br>[2685, 2711, 0]"] 326["Sweep Extrusion<br>[2691, 2717, 0]"]
327["Sweep Extrusion<br>[2685, 2711, 0]"] 327["Sweep Extrusion<br>[2691, 2717, 0]"]
328["Sweep Extrusion<br>[2685, 2711, 0]"] 328["Sweep Extrusion<br>[2691, 2717, 0]"]
329["Sweep Extrusion<br>[2685, 2711, 0]"] 329["Sweep Extrusion<br>[2691, 2717, 0]"]
330["Sweep Extrusion<br>[2685, 2711, 0]"] 330["Sweep Extrusion<br>[2691, 2717, 0]"]
331["Sweep Extrusion<br>[2685, 2711, 0]"] 331["Sweep Extrusion<br>[2691, 2717, 0]"]
332["Sweep Extrusion<br>[2685, 2711, 0]"] 332["Sweep Extrusion<br>[2691, 2717, 0]"]
333["Sweep Extrusion<br>[2685, 2711, 0]"] 333["Sweep Extrusion<br>[2691, 2717, 0]"]
334["Sweep Extrusion<br>[2685, 2711, 0]"] 334["Sweep Extrusion<br>[2691, 2717, 0]"]
335["Sweep Extrusion<br>[2685, 2711, 0]"] 335["Sweep Extrusion<br>[2691, 2717, 0]"]
336["Sweep Extrusion<br>[2685, 2711, 0]"] 336["Sweep Extrusion<br>[2691, 2717, 0]"]
337["Sweep Extrusion<br>[2685, 2711, 0]"] 337["Sweep Extrusion<br>[2691, 2717, 0]"]
338["Sweep Extrusion<br>[2685, 2711, 0]"] 338["Sweep Extrusion<br>[2691, 2717, 0]"]
339["Sweep Extrusion<br>[2685, 2711, 0]"] 339["Sweep Extrusion<br>[2691, 2717, 0]"]
340["Sweep Extrusion<br>[2685, 2711, 0]"] 340["Sweep Extrusion<br>[2691, 2717, 0]"]
341["Sweep Extrusion<br>[2685, 2711, 0]"] 341["Sweep Extrusion<br>[2691, 2717, 0]"]
342["Sweep Extrusion<br>[2685, 2711, 0]"] 342["Sweep Extrusion<br>[2691, 2717, 0]"]
343["Sweep Extrusion<br>[2685, 2711, 0]"] 343["Sweep Extrusion<br>[2691, 2717, 0]"]
344["Sweep Extrusion<br>[2685, 2711, 0]"] 344["Sweep Extrusion<br>[2691, 2717, 0]"]
345["Sweep Extrusion<br>[2685, 2711, 0]"] 345["Sweep Extrusion<br>[2691, 2717, 0]"]
346["Sweep Extrusion<br>[2685, 2711, 0]"] 346["Sweep Extrusion<br>[2691, 2717, 0]"]
347["Sweep Extrusion<br>[5744, 5768, 0]"] 347["Sweep Extrusion<br>[5756, 5780, 0]"]
348["Sweep Extrusion<br>[6286, 6310, 0]"] 348["Sweep Extrusion<br>[6298, 6322, 0]"]
349["Sweep Extrusion<br>[6286, 6310, 0]"] 349["Sweep Extrusion<br>[6298, 6322, 0]"]
350["Sweep Extrusion<br>[6736, 6760, 0]"] 350["Sweep Extrusion<br>[6748, 6772, 0]"]
351["Sweep Extrusion<br>[6736, 6760, 0]"] 351["Sweep Extrusion<br>[6748, 6772, 0]"]
352[Wall] 352[Wall]
353[Wall] 353[Wall]
354[Wall] 354[Wall]

View File

@ -2556,7 +2556,15 @@ description: Result of parsing keyboard.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },
@ -7906,7 +7914,15 @@ description: Result of parsing keyboard.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },

View File

@ -191,7 +191,7 @@ description: Operations executed keyboard.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -7027,7 +7027,7 @@ description: Operations executed keyboard.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}

View File

@ -44,121 +44,121 @@ flowchart LR
107[Solid2d] 107[Solid2d]
end end
subgraph path14 [Path] subgraph path14 [Path]
14["Path<br>[865, 1054, 10]"] 14["Path<br>[865, 1030, 10]"]
47["Segment<br>[865, 1054, 10]"] 47["Segment<br>[865, 1030, 10]"]
88[Solid2d] 88[Solid2d]
end end
subgraph path15 [Path] subgraph path15 [Path]
15["Path<br>[1263, 1424, 10]"] 15["Path<br>[1239, 1376, 10]"]
48["Segment<br>[1263, 1424, 10]"] 48["Segment<br>[1239, 1376, 10]"]
111[Solid2d] 111[Solid2d]
end end
subgraph path16 [Path] subgraph path16 [Path]
16["Path<br>[1760, 1948, 10]"] 16["Path<br>[1688, 1852, 10]"]
49["Segment<br>[1760, 1948, 10]"] 49["Segment<br>[1688, 1852, 10]"]
94[Solid2d] 94[Solid2d]
end end
subgraph path17 [Path] subgraph path17 [Path]
17["Path<br>[2173, 2213, 10]"] 17["Path<br>[2077, 2117, 10]"]
50["Segment<br>[2173, 2213, 10]"] 50["Segment<br>[2077, 2117, 10]"]
105[Solid2d] 105[Solid2d]
end end
subgraph path18 [Path] subgraph path18 [Path]
18["Path<br>[251, 408, 11]"] 18["Path<br>[251, 384, 11]"]
51["Segment<br>[414, 497, 11]"] 51["Segment<br>[390, 473, 11]"]
52["Segment<br>[503, 555, 11]"] 52["Segment<br>[479, 531, 11]"]
53["Segment<br>[561, 644, 11]"] 53["Segment<br>[537, 620, 11]"]
54["Segment<br>[650, 706, 11]"] 54["Segment<br>[626, 682, 11]"]
55["Segment<br>[712, 719, 11]"] 55["Segment<br>[688, 695, 11]"]
95[Solid2d] 95[Solid2d]
end end
subgraph path19 [Path] subgraph path19 [Path]
19["Path<br>[840, 904, 11]"] 19["Path<br>[816, 880, 11]"]
56["Segment<br>[840, 904, 11]"] 56["Segment<br>[816, 880, 11]"]
89[Solid2d] 89[Solid2d]
end end
subgraph path20 [Path] subgraph path20 [Path]
20["Path<br>[1078, 1300, 11]"] 20["Path<br>[1054, 1252, 11]"]
57["Segment<br>[1078, 1300, 11]"] 57["Segment<br>[1054, 1252, 11]"]
100[Solid2d] 100[Solid2d]
end end
subgraph path21 [Path] subgraph path21 [Path]
21["Path<br>[1508, 1552, 11]"] 21["Path<br>[1460, 1504, 11]"]
58["Segment<br>[1508, 1552, 11]"] 58["Segment<br>[1460, 1504, 11]"]
106[Solid2d] 106[Solid2d]
end end
subgraph path22 [Path] subgraph path22 [Path]
22["Path<br>[1795, 2001, 11]"] 22["Path<br>[1747, 1929, 11]"]
59["Segment<br>[1795, 2001, 11]"] 59["Segment<br>[1747, 1929, 11]"]
110[Solid2d] 110[Solid2d]
end end
subgraph path23 [Path] subgraph path23 [Path]
23["Path<br>[2373, 2562, 11]"] 23["Path<br>[2277, 2442, 11]"]
60["Segment<br>[2373, 2562, 11]"] 60["Segment<br>[2277, 2442, 11]"]
102[Solid2d] 102[Solid2d]
end end
subgraph path24 [Path] subgraph path24 [Path]
24["Path<br>[271, 532, 12]"] 24["Path<br>[271, 484, 12]"]
61["Segment<br>[538, 624, 12]"] 61["Segment<br>[490, 576, 12]"]
62["Segment<br>[630, 684, 12]"] 62["Segment<br>[582, 636, 12]"]
63["Segment<br>[690, 776, 12]"] 63["Segment<br>[642, 728, 12]"]
64["Segment<br>[782, 852, 12]"] 64["Segment<br>[734, 804, 12]"]
65["Segment<br>[858, 865, 12]"] 65["Segment<br>[810, 817, 12]"]
91[Solid2d] 91[Solid2d]
end end
subgraph path25 [Path] subgraph path25 [Path]
25["Path<br>[984, 1207, 12]"] 25["Path<br>[936, 1135, 12]"]
66["Segment<br>[984, 1207, 12]"] 66["Segment<br>[936, 1135, 12]"]
93[Solid2d] 93[Solid2d]
end end
subgraph path26 [Path] subgraph path26 [Path]
26["Path<br>[1417, 1620, 12]"] 26["Path<br>[1345, 1524, 12]"]
67["Segment<br>[1417, 1620, 12]"] 67["Segment<br>[1345, 1524, 12]"]
98[Solid2d] 98[Solid2d]
end end
subgraph path27 [Path] subgraph path27 [Path]
27["Path<br>[2060, 2374, 12]"] 27["Path<br>[1940, 2206, 12]"]
68["Segment<br>[2060, 2374, 12]"] 68["Segment<br>[1940, 2206, 12]"]
108[Solid2d] 108[Solid2d]
end end
subgraph path28 [Path] subgraph path28 [Path]
28["Path<br>[2478, 2790, 12]"] 28["Path<br>[2310, 2574, 12]"]
69["Segment<br>[2478, 2790, 12]"] 69["Segment<br>[2310, 2574, 12]"]
97[Solid2d] 97[Solid2d]
end end
subgraph path29 [Path] subgraph path29 [Path]
29["Path<br>[2949, 2987, 12]"] 29["Path<br>[2733, 2771, 12]"]
70["Segment<br>[2949, 2987, 12]"] 70["Segment<br>[2733, 2771, 12]"]
109[Solid2d] 109[Solid2d]
end end
subgraph path30 [Path] subgraph path30 [Path]
30["Path<br>[3122, 3375, 12]"] 30["Path<br>[2906, 3111, 12]"]
71["Segment<br>[3381, 3449, 12]"] 71["Segment<br>[3117, 3185, 12]"]
72["Segment<br>[3455, 3565, 12]"] 72["Segment<br>[3191, 3301, 12]"]
73["Segment<br>[3571, 3639, 12]"] 73["Segment<br>[3307, 3375, 12]"]
74["Segment<br>[3645, 3721, 12]"] 74["Segment<br>[3381, 3457, 12]"]
75["Segment<br>[3727, 3803, 12]"] 75["Segment<br>[3463, 3539, 12]"]
76["Segment<br>[3809, 3883, 12]"] 76["Segment<br>[3545, 3619, 12]"]
77["Segment<br>[3889, 3945, 12]"] 77["Segment<br>[3625, 3681, 12]"]
78["Segment<br>[3951, 3958, 12]"] 78["Segment<br>[3687, 3694, 12]"]
99[Solid2d] 99[Solid2d]
end end
subgraph path31 [Path] subgraph path31 [Path]
31["Path<br>[4092, 4345, 12]"] 31["Path<br>[3828, 4033, 12]"]
79["Segment<br>[4351, 4421, 12]"] 79["Segment<br>[4039, 4109, 12]"]
80["Segment<br>[4427, 4542, 12]"] 80["Segment<br>[4115, 4230, 12]"]
81["Segment<br>[4548, 4618, 12]"] 81["Segment<br>[4236, 4306, 12]"]
82["Segment<br>[4624, 4702, 12]"] 82["Segment<br>[4312, 4390, 12]"]
83["Segment<br>[4708, 4786, 12]"] 83["Segment<br>[4396, 4474, 12]"]
84["Segment<br>[4792, 4868, 12]"] 84["Segment<br>[4480, 4556, 12]"]
85["Segment<br>[4874, 4930, 12]"] 85["Segment<br>[4562, 4618, 12]"]
86["Segment<br>[4936, 4943, 12]"] 86["Segment<br>[4624, 4631, 12]"]
92[Solid2d] 92[Solid2d]
end end
1["Plane<br>[201, 218, 8]"] 1["Plane<br>[201, 218, 8]"]
2["Plane<br>[174, 197, 10]"] 2["Plane<br>[174, 197, 10]"]
3["Plane<br>[464, 487, 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]"] 5["Plane<br>[222, 245, 11]"]
6["Plane<br>[242, 265, 12]"] 6["Plane<br>[242, 265, 12]"]
112["Sweep Extrusion<br>[724, 771, 8]"] 112["Sweep Extrusion<br>[724, 771, 8]"]
@ -174,44 +174,44 @@ flowchart LR
122["Sweep Extrusion<br>[2252, 2299, 8]"] 122["Sweep Extrusion<br>[2252, 2299, 8]"]
123["Sweep Extrusion<br>[277, 315, 10]"] 123["Sweep Extrusion<br>[277, 315, 10]"]
124["Sweep Extrusion<br>[778, 808, 10]"] 124["Sweep Extrusion<br>[778, 808, 10]"]
125["Sweep Extrusion<br>[1068, 1100, 10]"] 125["Sweep Extrusion<br>[1044, 1076, 10]"]
126["Sweep Extrusion<br>[1671, 1703, 10]"] 126["Sweep Extrusion<br>[1599, 1631, 10]"]
127["Sweep Extrusion<br>[1671, 1703, 10]"] 127["Sweep Extrusion<br>[1599, 1631, 10]"]
128["Sweep Extrusion<br>[1671, 1703, 10]"] 128["Sweep Extrusion<br>[1599, 1631, 10]"]
129["Sweep Extrusion<br>[1671, 1703, 10]"] 129["Sweep Extrusion<br>[1599, 1631, 10]"]
130["Sweep Extrusion<br>[1962, 1995, 10]"] 130["Sweep Extrusion<br>[1866, 1899, 10]"]
131["Sweep Extrusion<br>[2215, 2246, 10]"] 131["Sweep Extrusion<br>[2119, 2150, 10]"]
132["Sweep Extrusion<br>[733, 781, 11]"] 132["Sweep Extrusion<br>[709, 757, 11]"]
133["Sweep Extrusion<br>[919, 952, 11]"] 133["Sweep Extrusion<br>[895, 928, 11]"]
134["Sweep Extrusion<br>[1315, 1345, 11]"] 134["Sweep Extrusion<br>[1267, 1297, 11]"]
135["Sweep Extrusion<br>[1705, 1738, 11]"] 135["Sweep Extrusion<br>[1657, 1690, 11]"]
136["Sweep Extrusion<br>[1705, 1738, 11]"] 136["Sweep Extrusion<br>[1657, 1690, 11]"]
137["Sweep Extrusion<br>[1705, 1738, 11]"] 137["Sweep Extrusion<br>[1657, 1690, 11]"]
138["Sweep Extrusion<br>[1705, 1738, 11]"] 138["Sweep Extrusion<br>[1657, 1690, 11]"]
139["Sweep Extrusion<br>[1705, 1738, 11]"] 139["Sweep Extrusion<br>[1657, 1690, 11]"]
140["Sweep Extrusion<br>[1705, 1738, 11]"] 140["Sweep Extrusion<br>[1657, 1690, 11]"]
141["Sweep Extrusion<br>[1705, 1738, 11]"] 141["Sweep Extrusion<br>[1657, 1690, 11]"]
142["Sweep Extrusion<br>[1705, 1738, 11]"] 142["Sweep Extrusion<br>[1657, 1690, 11]"]
143["Sweep Extrusion<br>[2283, 2316, 11]"] 143["Sweep Extrusion<br>[2187, 2220, 11]"]
144["Sweep Extrusion<br>[2283, 2316, 11]"] 144["Sweep Extrusion<br>[2187, 2220, 11]"]
145["Sweep Extrusion<br>[2283, 2316, 11]"] 145["Sweep Extrusion<br>[2187, 2220, 11]"]
146["Sweep Extrusion<br>[2283, 2316, 11]"] 146["Sweep Extrusion<br>[2187, 2220, 11]"]
147["Sweep Extrusion<br>[2564, 2594, 11]"] 147["Sweep Extrusion<br>[2444, 2474, 11]"]
148["Sweep Extrusion<br>[879, 927, 12]"] 148["Sweep Extrusion<br>[831, 879, 12]"]
149["Sweep Extrusion<br>[1222, 1255, 12]"] 149["Sweep Extrusion<br>[1150, 1183, 12]"]
150["Sweep Extrusion<br>[1899, 1932, 12]"] 150["Sweep Extrusion<br>[1779, 1812, 12]"]
151["Sweep Extrusion<br>[1899, 1932, 12]"] 151["Sweep Extrusion<br>[1779, 1812, 12]"]
152["Sweep Extrusion<br>[1899, 1932, 12]"] 152["Sweep Extrusion<br>[1779, 1812, 12]"]
153["Sweep Extrusion<br>[1899, 1932, 12]"] 153["Sweep Extrusion<br>[1779, 1812, 12]"]
154["Sweep Extrusion<br>[1899, 1932, 12]"] 154["Sweep Extrusion<br>[1779, 1812, 12]"]
155["Sweep Extrusion<br>[1899, 1932, 12]"] 155["Sweep Extrusion<br>[1779, 1812, 12]"]
156["Sweep Extrusion<br>[1899, 1932, 12]"] 156["Sweep Extrusion<br>[1779, 1812, 12]"]
157["Sweep Extrusion<br>[1899, 1932, 12]"] 157["Sweep Extrusion<br>[1779, 1812, 12]"]
158["Sweep Extrusion<br>[2388, 2421, 12]"] 158["Sweep Extrusion<br>[2220, 2253, 12]"]
159["Sweep Extrusion<br>[2805, 2838, 12]"] 159["Sweep Extrusion<br>[2589, 2622, 12]"]
160["Sweep Extrusion<br>[3002, 3036, 12]"] 160["Sweep Extrusion<br>[2786, 2820, 12]"]
161["Sweep Extrusion<br>[3973, 4006, 12]"] 161["Sweep Extrusion<br>[3709, 3742, 12]"]
162["Sweep Extrusion<br>[4945, 4978, 12]"] 162["Sweep Extrusion<br>[4633, 4666, 12]"]
163[Wall] 163[Wall]
164[Wall] 164[Wall]
165[Wall] 165[Wall]
@ -399,11 +399,11 @@ flowchart LR
347["EdgeCut Chamfer<br>[777, 1054, 8]"] 347["EdgeCut Chamfer<br>[777, 1054, 8]"]
348["EdgeCut Fillet<br>[1294, 1355, 8]"] 348["EdgeCut Fillet<br>[1294, 1355, 8]"]
349["EdgeCut Fillet<br>[321, 383, 10]"] 349["EdgeCut Fillet<br>[321, 383, 10]"]
350["EdgeCut Fillet<br>[1106, 1168, 10]"] 350["EdgeCut Fillet<br>[1082, 1144, 10]"]
351["EdgeCut Fillet<br>[2001, 2063, 10]"] 351["EdgeCut Fillet<br>[1905, 1967, 10]"]
352["EdgeCut Fillet<br>[958, 1020, 11]"] 352["EdgeCut Fillet<br>[934, 996, 11]"]
353["EdgeCut Fillet<br>[1351, 1413, 11]"] 353["EdgeCut Fillet<br>[1303, 1365, 11]"]
354["EdgeCut Fillet<br>[1261, 1323, 12]"] 354["EdgeCut Fillet<br>[1189, 1251, 12]"]
1 --- 7 1 --- 7
2 --- 12 2 --- 12
3 --- 13 3 --- 13

View File

@ -1,31 +1,31 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path4 [Path] subgraph path4 [Path]
4["Path<br>[665, 735, 0]"] 4["Path<br>[671, 741, 0]"]
7["Segment<br>[665, 735, 0]"] 7["Segment<br>[671, 741, 0]"]
16[Solid2d] 16[Solid2d]
end end
subgraph path5 [Path] subgraph path5 [Path]
5["Path<br>[968, 1049, 0]"] 5["Path<br>[974, 1055, 0]"]
8["Segment<br>[1055, 1106, 0]"] 8["Segment<br>[1061, 1112, 0]"]
9["Segment<br>[1112, 1163, 0]"] 9["Segment<br>[1118, 1169, 0]"]
10["Segment<br>[1169, 1220, 0]"] 10["Segment<br>[1175, 1226, 0]"]
11["Segment<br>[1226, 1276, 0]"] 11["Segment<br>[1232, 1282, 0]"]
12["Segment<br>[1282, 1332, 0]"] 12["Segment<br>[1288, 1338, 0]"]
13["Segment<br>[1338, 1345, 0]"] 13["Segment<br>[1344, 1351, 0]"]
15[Solid2d] 15[Solid2d]
end end
subgraph path6 [Path] subgraph path6 [Path]
6["Path<br>[1444, 1513, 0]"] 6["Path<br>[1450, 1519, 0]"]
14["Segment<br>[1444, 1513, 0]"] 14["Segment<br>[1450, 1519, 0]"]
17[Solid2d] 17[Solid2d]
end end
1["Plane<br>[642, 659, 0]"] 1["Plane<br>[648, 665, 0]"]
2["StartSketchOnFace<br>[925, 962, 0]"] 2["StartSketchOnFace<br>[931, 968, 0]"]
3["StartSketchOnFace<br>[1403, 1438, 0]"] 3["StartSketchOnFace<br>[1409, 1444, 0]"]
18["Sweep Extrusion<br>[741, 774, 0]"] 18["Sweep Extrusion<br>[747, 780, 0]"]
19["Sweep Extrusion<br>[1351, 1391, 0]"] 19["Sweep Extrusion<br>[1357, 1397, 0]"]
20["Sweep Extrusion<br>[1519, 1547, 0]"] 20["Sweep Extrusion<br>[1525, 1553, 0]"]
21[Wall] 21[Wall]
22[Wall] 22[Wall]
23[Wall] 23[Wall]
@ -54,9 +54,9 @@ flowchart LR
46["SweepEdge Adjacent"] 46["SweepEdge Adjacent"]
47["SweepEdge Adjacent"] 47["SweepEdge Adjacent"]
48["SweepEdge Adjacent"] 48["SweepEdge Adjacent"]
49["EdgeCut Fillet<br>[780, 846, 0]"] 49["EdgeCut Fillet<br>[786, 852, 0]"]
50["EdgeCut Fillet<br>[780, 846, 0]"] 50["EdgeCut Fillet<br>[786, 852, 0]"]
51["EdgeCut Fillet<br>[1553, 1612, 0]"] 51["EdgeCut Fillet<br>[1559, 1618, 0]"]
1 --- 4 1 --- 4
30 x--> 2 30 x--> 2
32 x--> 3 32 x--> 3

View File

@ -271,7 +271,15 @@ description: Result of parsing socket-head-cap-screw.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },

View File

@ -7,7 +7,7 @@ description: Operations executed socket-head-cap-screw.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}

View File

@ -15,9 +15,9 @@ description: Variables in memory after executing socket-head-cap-screw.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 1501, "commentStart": 1507,
"end": 1512, "end": 1518,
"start": 1501, "start": 1507,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "filletEdge" "value": "filletEdge"
}, },
@ -44,9 +44,9 @@ description: Variables in memory after executing socket-head-cap-screw.kcl
], ],
"radius": 0.095, "radius": 0.095,
"tag": { "tag": {
"commentStart": 1501, "commentStart": 1507,
"end": 1512, "end": 1518,
"start": 1501, "start": 1507,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "filletEdge" "value": "filletEdge"
}, },
@ -91,9 +91,9 @@ description: Variables in memory after executing socket-head-cap-screw.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 726, "commentStart": 732,
"end": 734, "end": 740,
"start": 726, "start": 732,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "topEdge" "value": "topEdge"
}, },
@ -120,9 +120,9 @@ description: Variables in memory after executing socket-head-cap-screw.kcl
], ],
"radius": 0.1565, "radius": 0.1565,
"tag": { "tag": {
"commentStart": 726, "commentStart": 732,
"end": 734, "end": 740,
"start": 726, "start": 732,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "topEdge" "value": "topEdge"
}, },
@ -330,9 +330,9 @@ description: Variables in memory after executing socket-head-cap-screw.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 726, "commentStart": 732,
"end": 734, "end": 740,
"start": 726, "start": 732,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "topEdge" "value": "topEdge"
}, },
@ -359,9 +359,9 @@ description: Variables in memory after executing socket-head-cap-screw.kcl
], ],
"radius": 0.1565, "radius": 0.1565,
"tag": { "tag": {
"commentStart": 726, "commentStart": 732,
"end": 734, "end": 740,
"start": 726, "start": 732,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "topEdge" "value": "topEdge"
}, },
@ -752,9 +752,9 @@ description: Variables in memory after executing socket-head-cap-screw.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 726, "commentStart": 732,
"end": 734, "end": 740,
"start": 726, "start": 732,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "topEdge" "value": "topEdge"
}, },
@ -781,9 +781,9 @@ description: Variables in memory after executing socket-head-cap-screw.kcl
], ],
"radius": 0.1565, "radius": 0.1565,
"tag": { "tag": {
"commentStart": 726, "commentStart": 732,
"end": 734, "end": 740,
"start": 726, "start": 732,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "topEdge" "value": "topEdge"
}, },

View File

@ -9,32 +9,32 @@ flowchart LR
151[Solid2d] 151[Solid2d]
end end
subgraph path19 [Path] subgraph path19 [Path]
19["Path<br>[968, 1085, 9]"] 19["Path<br>[968, 1091, 9]"]
42["Segment<br>[1091, 1149, 9]"] 42["Segment<br>[1097, 1155, 9]"]
43["Segment<br>[1155, 1272, 9]"] 43["Segment<br>[1161, 1284, 9]"]
44["Segment<br>[1278, 1336, 9]"] 44["Segment<br>[1290, 1348, 9]"]
45["Segment<br>[1342, 1462, 9]"] 45["Segment<br>[1354, 1480, 9]"]
46["Segment<br>[1468, 1529, 9]"] 46["Segment<br>[1486, 1547, 9]"]
47["Segment<br>[1535, 1656, 9]"] 47["Segment<br>[1553, 1680, 9]"]
48["Segment<br>[1662, 1722, 9]"] 48["Segment<br>[1686, 1746, 9]"]
49["Segment<br>[1728, 1735, 9]"] 49["Segment<br>[1752, 1759, 9]"]
137[Solid2d] 137[Solid2d]
end end
subgraph path20 [Path] subgraph path20 [Path]
20["Path<br>[1890, 1944, 9]"] 20["Path<br>[1914, 1968, 9]"]
50["Segment<br>[1950, 1991, 9]"] 50["Segment<br>[1974, 2015, 9]"]
51["Segment<br>[1997, 2026, 9]"] 51["Segment<br>[2021, 2050, 9]"]
52["Segment<br>[2032, 2062, 9]"] 52["Segment<br>[2056, 2086, 9]"]
53["Segment<br>[2068, 2124, 9]"] 53["Segment<br>[2092, 2148, 9]"]
54["Segment<br>[2130, 2137, 9]"] 54["Segment<br>[2154, 2161, 9]"]
156[Solid2d] 156[Solid2d]
end end
subgraph path21 [Path] subgraph path21 [Path]
21["Path<br>[2280, 2317, 9]"] 21["Path<br>[2304, 2341, 9]"]
55["Segment<br>[2323, 2354, 9]"] 55["Segment<br>[2347, 2378, 9]"]
56["Segment<br>[2360, 2393, 9]"] 56["Segment<br>[2384, 2417, 9]"]
57["Segment<br>[2399, 2431, 9]"] 57["Segment<br>[2423, 2455, 9]"]
58["Segment<br>[2437, 2444, 9]"] 58["Segment<br>[2461, 2468, 9]"]
146[Solid2d] 146[Solid2d]
end end
subgraph path22 [Path] subgraph path22 [Path]
@ -55,15 +55,15 @@ flowchart LR
148[Solid2d] 148[Solid2d]
end end
subgraph path24 [Path] subgraph path24 [Path]
24["Path<br>[1441, 1592, 10]"] 24["Path<br>[1441, 1598, 10]"]
68["Segment<br>[1598, 1674, 10]"] 68["Segment<br>[1604, 1680, 10]"]
69["Segment<br>[1680, 1833, 10]"] 69["Segment<br>[1686, 1845, 10]"]
70["Segment<br>[1839, 1915, 10]"] 70["Segment<br>[1851, 1927, 10]"]
71["Segment<br>[1921, 2077, 10]"] 71["Segment<br>[1933, 2095, 10]"]
72["Segment<br>[2083, 2160, 10]"] 72["Segment<br>[2101, 2178, 10]"]
73["Segment<br>[2166, 2321, 10]"] 73["Segment<br>[2184, 2345, 10]"]
74["Segment<br>[2327, 2403, 10]"] 74["Segment<br>[2351, 2427, 10]"]
75["Segment<br>[2409, 2416, 10]"] 75["Segment<br>[2433, 2440, 10]"]
143[Solid2d] 143[Solid2d]
end end
subgraph path25 [Path] subgraph path25 [Path]
@ -183,11 +183,11 @@ flowchart LR
2["Plane<br>[455, 472, 10]"] 2["Plane<br>[455, 472, 10]"]
3["Plane<br>[957, 974, 10]"] 3["Plane<br>[957, 974, 10]"]
4["Plane<br>[1418, 1435, 10]"] 4["Plane<br>[1418, 1435, 10]"]
5["Plane<br>[2557, 2574, 10]"] 5["Plane<br>[2581, 2598, 10]"]
6["Plane<br>[2627, 2644, 10]"] 6["Plane<br>[2651, 2668, 10]"]
7["Plane<br>[2699, 2716, 10]"] 7["Plane<br>[2723, 2740, 10]"]
8["Plane<br>[2770, 2787, 10]"] 8["Plane<br>[2794, 2811, 10]"]
9["Plane<br>[2841, 2858, 10]"] 9["Plane<br>[2865, 2882, 10]"]
10["Plane<br>[307, 324, 12]"] 10["Plane<br>[307, 324, 12]"]
11["Plane<br>[535, 574, 12]"] 11["Plane<br>[535, 574, 12]"]
12["Plane<br>[238, 255, 13]"] 12["Plane<br>[238, 255, 13]"]
@ -197,10 +197,10 @@ flowchart LR
16["Plane<br>[373, 390, 15]"] 16["Plane<br>[373, 390, 15]"]
17["Plane<br>[373, 390, 15]"] 17["Plane<br>[373, 390, 15]"]
157["Sweep Extrusion<br>[603, 633, 9]"] 157["Sweep Extrusion<br>[603, 633, 9]"]
158["Sweep Extrusion<br>[1749, 1792, 9]"] 158["Sweep Extrusion<br>[1773, 1816, 9]"]
159["Sweep Extrusion<br>[2151, 2194, 9]"] 159["Sweep Extrusion<br>[2175, 2218, 9]"]
160["Sweep Extrusion<br>[2446, 2479, 9]"] 160["Sweep Extrusion<br>[2470, 2503, 9]"]
161["Sweep Extrusion<br>[2882, 2913, 10]"] 161["Sweep Extrusion<br>[2906, 2937, 10]"]
162["Sweep Loft<br>[914, 957, 12]"] 162["Sweep Loft<br>[914, 957, 12]"]
163["Sweep Extrusion<br>[591, 643, 13]"] 163["Sweep Extrusion<br>[591, 643, 13]"]
164["Sweep Revolve<br>[522, 539, 14]"] 164["Sweep Revolve<br>[522, 539, 14]"]

View File

@ -1,61 +1,61 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path2 [Path] subgraph path2 [Path]
2["Path<br>[747, 783, 0]"] 2["Path<br>[744, 780, 0]"]
3["Segment<br>[937, 1001, 0]"] 3["Segment<br>[934, 998, 0]"]
4["Segment<br>[937, 1001, 0]"] 4["Segment<br>[934, 998, 0]"]
5["Segment<br>[937, 1001, 0]"] 5["Segment<br>[934, 998, 0]"]
6["Segment<br>[937, 1001, 0]"] 6["Segment<br>[934, 998, 0]"]
7["Segment<br>[937, 1001, 0]"] 7["Segment<br>[934, 998, 0]"]
8["Segment<br>[937, 1001, 0]"] 8["Segment<br>[934, 998, 0]"]
9["Segment<br>[937, 1001, 0]"] 9["Segment<br>[934, 998, 0]"]
10["Segment<br>[937, 1001, 0]"] 10["Segment<br>[934, 998, 0]"]
11["Segment<br>[937, 1001, 0]"] 11["Segment<br>[934, 998, 0]"]
12["Segment<br>[937, 1001, 0]"] 12["Segment<br>[934, 998, 0]"]
13["Segment<br>[937, 1001, 0]"] 13["Segment<br>[934, 998, 0]"]
14["Segment<br>[937, 1001, 0]"] 14["Segment<br>[934, 998, 0]"]
15["Segment<br>[937, 1001, 0]"] 15["Segment<br>[934, 998, 0]"]
16["Segment<br>[937, 1001, 0]"] 16["Segment<br>[934, 998, 0]"]
17["Segment<br>[937, 1001, 0]"] 17["Segment<br>[934, 998, 0]"]
18["Segment<br>[937, 1001, 0]"] 18["Segment<br>[934, 998, 0]"]
19["Segment<br>[937, 1001, 0]"] 19["Segment<br>[934, 998, 0]"]
20["Segment<br>[937, 1001, 0]"] 20["Segment<br>[934, 998, 0]"]
21["Segment<br>[937, 1001, 0]"] 21["Segment<br>[934, 998, 0]"]
22["Segment<br>[937, 1001, 0]"] 22["Segment<br>[934, 998, 0]"]
23["Segment<br>[937, 1001, 0]"] 23["Segment<br>[934, 998, 0]"]
24["Segment<br>[937, 1001, 0]"] 24["Segment<br>[934, 998, 0]"]
25["Segment<br>[937, 1001, 0]"] 25["Segment<br>[934, 998, 0]"]
26["Segment<br>[937, 1001, 0]"] 26["Segment<br>[934, 998, 0]"]
27["Segment<br>[937, 1001, 0]"] 27["Segment<br>[934, 998, 0]"]
28["Segment<br>[937, 1001, 0]"] 28["Segment<br>[934, 998, 0]"]
29["Segment<br>[937, 1001, 0]"] 29["Segment<br>[934, 998, 0]"]
30["Segment<br>[937, 1001, 0]"] 30["Segment<br>[934, 998, 0]"]
31["Segment<br>[937, 1001, 0]"] 31["Segment<br>[934, 998, 0]"]
32["Segment<br>[937, 1001, 0]"] 32["Segment<br>[934, 998, 0]"]
33["Segment<br>[937, 1001, 0]"] 33["Segment<br>[934, 998, 0]"]
34["Segment<br>[937, 1001, 0]"] 34["Segment<br>[934, 998, 0]"]
35["Segment<br>[937, 1001, 0]"] 35["Segment<br>[934, 998, 0]"]
36["Segment<br>[937, 1001, 0]"] 36["Segment<br>[934, 998, 0]"]
37["Segment<br>[937, 1001, 0]"] 37["Segment<br>[934, 998, 0]"]
38["Segment<br>[937, 1001, 0]"] 38["Segment<br>[934, 998, 0]"]
39["Segment<br>[937, 1001, 0]"] 39["Segment<br>[934, 998, 0]"]
40["Segment<br>[937, 1001, 0]"] 40["Segment<br>[934, 998, 0]"]
41["Segment<br>[937, 1001, 0]"] 41["Segment<br>[934, 998, 0]"]
42["Segment<br>[937, 1001, 0]"] 42["Segment<br>[934, 998, 0]"]
43["Segment<br>[937, 1001, 0]"] 43["Segment<br>[934, 998, 0]"]
44["Segment<br>[937, 1001, 0]"] 44["Segment<br>[934, 998, 0]"]
45["Segment<br>[937, 1001, 0]"] 45["Segment<br>[934, 998, 0]"]
46["Segment<br>[937, 1001, 0]"] 46["Segment<br>[934, 998, 0]"]
47["Segment<br>[937, 1001, 0]"] 47["Segment<br>[934, 998, 0]"]
48["Segment<br>[937, 1001, 0]"] 48["Segment<br>[934, 998, 0]"]
49["Segment<br>[937, 1001, 0]"] 49["Segment<br>[934, 998, 0]"]
50["Segment<br>[937, 1001, 0]"] 50["Segment<br>[934, 998, 0]"]
51["Segment<br>[937, 1001, 0]"] 51["Segment<br>[934, 998, 0]"]
52["Segment<br>[1065, 1083, 0]"] 52["Segment<br>[1062, 1080, 0]"]
53[Solid2d] 53[Solid2d]
end end
1["Plane<br>[724, 741, 0]"] 1["Plane<br>[721, 738, 0]"]
54["Sweep Extrusion<br>[1137, 1175, 0]"] 54["Sweep Extrusion<br>[1134, 1172, 0]"]
55[Wall] 55[Wall]
56[Wall] 56[Wall]
57[Wall] 57[Wall]

View File

@ -120,9 +120,6 @@ description: Result of parsing loop_tag.kcl
"type": "Identifier" "type": "Identifier"
}, },
"init": { "init": {
"commentStart": 0,
"end": 0,
"expr": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"left": { "left": {
@ -159,18 +156,6 @@ description: Result of parsing loop_tag.kcl
"type": "BinaryExpression" "type": "BinaryExpression"
}, },
"start": 0, "start": 0,
"ty": {
"Deg": null,
"commentStart": 0,
"end": 0,
"p_type": "Number",
"start": 0,
"type": "Primitive"
},
"type": "AscribedExpression",
"type": "AscribedExpression"
},
"start": 0,
"type": "VariableDeclarator" "type": "VariableDeclarator"
}, },
"end": 0, "end": 0,
@ -317,7 +302,15 @@ description: Result of parsing loop_tag.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },
@ -402,7 +395,15 @@ description: Result of parsing loop_tag.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },

View File

@ -9,13 +9,13 @@
radius = 10 radius = 10
height = 50 height = 50
numSides = 50 numSides = 50
angleIncrement = (360 / numSides): number(deg) angleIncrement = 360 / numSides
// Function to calculate the coordinates of a point on the circle // Function to calculate the coordinates of a point on the circle
fn calculatePoint(index) { fn calculatePoint(index) {
angle = index * angleIncrement angle = index * angleIncrement
x = radius * cos(angle) x = radius * math::cos(angle)
y = radius * sin(angle) y = radius * math::sin(angle)
return [x, y] return [x, y]
} }

View File

@ -7,7 +7,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -18,7 +18,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -29,7 +29,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -40,7 +40,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -51,7 +51,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -62,7 +62,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -73,7 +73,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -84,7 +84,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -95,7 +95,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -106,7 +106,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -117,7 +117,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -128,7 +128,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -139,7 +139,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -150,7 +150,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -161,7 +161,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -172,7 +172,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -183,7 +183,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -194,7 +194,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -205,7 +205,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -216,7 +216,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -227,7 +227,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -238,7 +238,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -249,7 +249,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -260,7 +260,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -271,7 +271,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -282,7 +282,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -293,7 +293,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -304,7 +304,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -315,7 +315,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -326,7 +326,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -337,7 +337,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -348,7 +348,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -359,7 +359,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -370,7 +370,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -381,7 +381,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -392,7 +392,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -403,7 +403,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -414,7 +414,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -425,7 +425,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -436,7 +436,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -447,7 +447,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -458,7 +458,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -469,7 +469,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -480,7 +480,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -491,7 +491,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -502,7 +502,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -513,7 +513,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -524,7 +524,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -535,7 +535,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -546,7 +546,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -557,7 +557,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -568,7 +568,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -579,7 +579,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -590,7 +590,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -601,7 +601,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -612,7 +612,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -623,7 +623,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -634,7 +634,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -645,7 +645,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -656,7 +656,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -667,7 +667,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -678,7 +678,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -689,7 +689,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -700,7 +700,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -711,7 +711,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -722,7 +722,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -733,7 +733,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -744,7 +744,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -755,7 +755,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -766,7 +766,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -777,7 +777,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -788,7 +788,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -799,7 +799,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -810,7 +810,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -821,7 +821,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -832,7 +832,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -843,7 +843,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -854,7 +854,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -865,7 +865,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -876,7 +876,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -887,7 +887,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -898,7 +898,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -909,7 +909,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -920,7 +920,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -931,7 +931,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -942,7 +942,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -953,7 +953,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -964,7 +964,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -975,7 +975,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -986,7 +986,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -997,7 +997,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -1008,7 +1008,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -1019,7 +1019,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -1030,7 +1030,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -1041,7 +1041,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -1052,7 +1052,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -1063,7 +1063,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -1074,7 +1074,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -1085,7 +1085,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -1096,7 +1096,7 @@ description: Operations executed loop_tag.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "sin", "name": "math::sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}

File diff suppressed because it is too large Load Diff

View File

@ -16,13 +16,13 @@ description: Result of unparsing loop_tag.kcl
radius = 10 radius = 10
height = 50 height = 50
numSides = 50 numSides = 50
angleIncrement = (360 / numSides): number(deg) angleIncrement = 360 / numSides
// Function to calculate the coordinates of a point on the circle // Function to calculate the coordinates of a point on the circle
fn calculatePoint(index) { fn calculatePoint(index) {
angle = index * angleIncrement angle = index * angleIncrement
x = radius * cos(angle) x = radius * math::cos(angle)
y = radius * sin(angle) y = radius * math::sin(angle)
return [x, y] return [x, y]
} }

View File

@ -1,31 +1,31 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path4 [Path] subgraph path4 [Path]
4["Path<br>[337, 407, 0]"] 4["Path<br>[343, 413, 0]"]
7["Segment<br>[337, 407, 0]"] 7["Segment<br>[343, 413, 0]"]
16[Solid2d] 16[Solid2d]
end end
subgraph path5 [Path] subgraph path5 [Path]
5["Path<br>[652, 712, 0]"] 5["Path<br>[658, 718, 0]"]
8["Segment<br>[720, 799, 0]"] 8["Segment<br>[726, 805, 0]"]
9["Segment<br>[807, 886, 0]"] 9["Segment<br>[813, 892, 0]"]
10["Segment<br>[894, 973, 0]"] 10["Segment<br>[900, 979, 0]"]
11["Segment<br>[981, 1059, 0]"] 11["Segment<br>[987, 1065, 0]"]
12["Segment<br>[1067, 1145, 0]"] 12["Segment<br>[1073, 1151, 0]"]
13["Segment<br>[1153, 1160, 0]"] 13["Segment<br>[1159, 1166, 0]"]
15[Solid2d] 15[Solid2d]
end end
subgraph path6 [Path] subgraph path6 [Path]
6["Path<br>[1268, 1337, 0]"] 6["Path<br>[1274, 1343, 0]"]
14["Segment<br>[1268, 1337, 0]"] 14["Segment<br>[1274, 1343, 0]"]
17[Solid2d] 17[Solid2d]
end end
1["Plane<br>[312, 329, 0]"] 1["Plane<br>[318, 335, 0]"]
2["StartSketchOnFace<br>[605, 644, 0]"] 2["StartSketchOnFace<br>[611, 650, 0]"]
3["StartSketchOnFace<br>[1223, 1260, 0]"] 3["StartSketchOnFace<br>[1229, 1266, 0]"]
18["Sweep Extrusion<br>[415, 448, 0]"] 18["Sweep Extrusion<br>[421, 454, 0]"]
19["Sweep Extrusion<br>[1168, 1208, 0]"] 19["Sweep Extrusion<br>[1174, 1214, 0]"]
20["Sweep Extrusion<br>[1345, 1373, 0]"] 20["Sweep Extrusion<br>[1351, 1379, 0]"]
21[Wall] 21[Wall]
22[Wall] 22[Wall]
23[Wall] 23[Wall]
@ -54,9 +54,9 @@ flowchart LR
46["SweepEdge Adjacent"] 46["SweepEdge Adjacent"]
47["SweepEdge Adjacent"] 47["SweepEdge Adjacent"]
48["SweepEdge Adjacent"] 48["SweepEdge Adjacent"]
49["EdgeCut Fillet<br>[456, 522, 0]"] 49["EdgeCut Fillet<br>[462, 528, 0]"]
50["EdgeCut Fillet<br>[456, 522, 0]"] 50["EdgeCut Fillet<br>[462, 528, 0]"]
51["EdgeCut Fillet<br>[1381, 1440, 0]"] 51["EdgeCut Fillet<br>[1387, 1446, 0]"]
1 --- 4 1 --- 4
30 x--> 2 30 x--> 2
32 x--> 3 32 x--> 3

View File

@ -273,7 +273,15 @@ description: Result of parsing rotate_after_fillet.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },

View File

@ -3,7 +3,7 @@ export boltLength = 2.500
export boltHeadLength = boltDiameter export boltHeadLength = boltDiameter
export boltHeadDiameter = 0.938 export boltHeadDiameter = 0.938
export boltHexDrive = 1 / 2 export boltHexDrive = 1 / 2
export boltHexFlatLength = boltHexDrive / (2 * cos(30deg)) export boltHexFlatLength = boltHexDrive / (2 * math::cos(30deg))
export boltThreadLength = 1.75 export boltThreadLength = 1.75
export fn bolt() { export fn bolt() {

View File

@ -7,7 +7,7 @@ description: Operations executed rotate_after_fillet.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}

View File

@ -7,7 +7,7 @@ export boltLength = 2.500
export boltHeadLength = boltDiameter export boltHeadLength = boltDiameter
export boltHeadDiameter = 0.938 export boltHeadDiameter = 0.938
export boltHexDrive = 1 / 2 export boltHexDrive = 1 / 2
export boltHexFlatLength = boltHexDrive / (2 * cos(30deg)) export boltHexFlatLength = boltHexDrive / (2 * math::cos(30deg))
export boltThreadLength = 1.75 export boltThreadLength = 1.75
export fn bolt() { export fn bolt() {

View File

@ -1,31 +1,31 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path4 [Path] subgraph path4 [Path]
4["Path<br>[337, 407, 0]"] 4["Path<br>[343, 413, 0]"]
7["Segment<br>[337, 407, 0]"] 7["Segment<br>[343, 413, 0]"]
16[Solid2d] 16[Solid2d]
end end
subgraph path5 [Path] subgraph path5 [Path]
5["Path<br>[652, 712, 0]"] 5["Path<br>[658, 718, 0]"]
8["Segment<br>[720, 799, 0]"] 8["Segment<br>[726, 805, 0]"]
9["Segment<br>[807, 886, 0]"] 9["Segment<br>[813, 892, 0]"]
10["Segment<br>[894, 973, 0]"] 10["Segment<br>[900, 979, 0]"]
11["Segment<br>[981, 1059, 0]"] 11["Segment<br>[987, 1065, 0]"]
12["Segment<br>[1067, 1145, 0]"] 12["Segment<br>[1073, 1151, 0]"]
13["Segment<br>[1153, 1160, 0]"] 13["Segment<br>[1159, 1166, 0]"]
15[Solid2d] 15[Solid2d]
end end
subgraph path6 [Path] subgraph path6 [Path]
6["Path<br>[1268, 1337, 0]"] 6["Path<br>[1274, 1343, 0]"]
14["Segment<br>[1268, 1337, 0]"] 14["Segment<br>[1274, 1343, 0]"]
17[Solid2d] 17[Solid2d]
end end
1["Plane<br>[312, 329, 0]"] 1["Plane<br>[318, 335, 0]"]
2["StartSketchOnFace<br>[605, 644, 0]"] 2["StartSketchOnFace<br>[611, 650, 0]"]
3["StartSketchOnFace<br>[1223, 1260, 0]"] 3["StartSketchOnFace<br>[1229, 1266, 0]"]
18["Sweep Extrusion<br>[415, 448, 0]"] 18["Sweep Extrusion<br>[421, 454, 0]"]
19["Sweep Extrusion<br>[1168, 1208, 0]"] 19["Sweep Extrusion<br>[1174, 1214, 0]"]
20["Sweep Extrusion<br>[1345, 1373, 0]"] 20["Sweep Extrusion<br>[1351, 1379, 0]"]
21[Wall] 21[Wall]
22[Wall] 22[Wall]
23[Wall] 23[Wall]
@ -54,9 +54,9 @@ flowchart LR
46["SweepEdge Adjacent"] 46["SweepEdge Adjacent"]
47["SweepEdge Adjacent"] 47["SweepEdge Adjacent"]
48["SweepEdge Adjacent"] 48["SweepEdge Adjacent"]
49["EdgeCut Fillet<br>[456, 522, 0]"] 49["EdgeCut Fillet<br>[462, 528, 0]"]
50["EdgeCut Fillet<br>[456, 522, 0]"] 50["EdgeCut Fillet<br>[462, 528, 0]"]
51["EdgeCut Fillet<br>[1381, 1440, 0]"] 51["EdgeCut Fillet<br>[1387, 1446, 0]"]
1 --- 4 1 --- 4
30 x--> 2 30 x--> 2
32 x--> 3 32 x--> 3

View File

@ -273,7 +273,15 @@ description: Result of parsing scale_after_fillet.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },

View File

@ -3,7 +3,7 @@ export boltLength = 2.500
export boltHeadLength = boltDiameter export boltHeadLength = boltDiameter
export boltHeadDiameter = 0.938 export boltHeadDiameter = 0.938
export boltHexDrive = 1 / 2 export boltHexDrive = 1 / 2
export boltHexFlatLength = boltHexDrive / (2 * cos(30deg)) export boltHexFlatLength = boltHexDrive / (2 * math::cos(30deg))
export boltThreadLength = 1.75 export boltThreadLength = 1.75
export fn bolt() { export fn bolt() {

View File

@ -7,7 +7,7 @@ description: Operations executed scale_after_fillet.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}

View File

@ -7,7 +7,7 @@ export boltLength = 2.500
export boltHeadLength = boltDiameter export boltHeadLength = boltDiameter
export boltHeadDiameter = 0.938 export boltHeadDiameter = 0.938
export boltHexDrive = 1 / 2 export boltHexDrive = 1 / 2
export boltHexFlatLength = boltHexDrive / (2 * cos(30deg)) export boltHexFlatLength = boltHexDrive / (2 * math::cos(30deg))
export boltThreadLength = 1.75 export boltThreadLength = 1.75
export fn bolt() { export fn bolt() {

View File

@ -1,31 +1,31 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path4 [Path] subgraph path4 [Path]
4["Path<br>[337, 407, 0]"] 4["Path<br>[343, 413, 0]"]
7["Segment<br>[337, 407, 0]"] 7["Segment<br>[343, 413, 0]"]
16[Solid2d] 16[Solid2d]
end end
subgraph path5 [Path] subgraph path5 [Path]
5["Path<br>[652, 712, 0]"] 5["Path<br>[658, 718, 0]"]
8["Segment<br>[720, 799, 0]"] 8["Segment<br>[726, 805, 0]"]
9["Segment<br>[807, 886, 0]"] 9["Segment<br>[813, 892, 0]"]
10["Segment<br>[894, 973, 0]"] 10["Segment<br>[900, 979, 0]"]
11["Segment<br>[981, 1059, 0]"] 11["Segment<br>[987, 1065, 0]"]
12["Segment<br>[1067, 1145, 0]"] 12["Segment<br>[1073, 1151, 0]"]
13["Segment<br>[1153, 1160, 0]"] 13["Segment<br>[1159, 1166, 0]"]
15[Solid2d] 15[Solid2d]
end end
subgraph path6 [Path] subgraph path6 [Path]
6["Path<br>[1268, 1337, 0]"] 6["Path<br>[1274, 1343, 0]"]
14["Segment<br>[1268, 1337, 0]"] 14["Segment<br>[1274, 1343, 0]"]
17[Solid2d] 17[Solid2d]
end end
1["Plane<br>[312, 329, 0]"] 1["Plane<br>[318, 335, 0]"]
2["StartSketchOnFace<br>[605, 644, 0]"] 2["StartSketchOnFace<br>[611, 650, 0]"]
3["StartSketchOnFace<br>[1223, 1260, 0]"] 3["StartSketchOnFace<br>[1229, 1266, 0]"]
18["Sweep Extrusion<br>[415, 448, 0]"] 18["Sweep Extrusion<br>[421, 454, 0]"]
19["Sweep Extrusion<br>[1168, 1208, 0]"] 19["Sweep Extrusion<br>[1174, 1214, 0]"]
20["Sweep Extrusion<br>[1345, 1373, 0]"] 20["Sweep Extrusion<br>[1351, 1379, 0]"]
21[Wall] 21[Wall]
22[Wall] 22[Wall]
23[Wall] 23[Wall]
@ -54,9 +54,9 @@ flowchart LR
46["SweepEdge Adjacent"] 46["SweepEdge Adjacent"]
47["SweepEdge Adjacent"] 47["SweepEdge Adjacent"]
48["SweepEdge Adjacent"] 48["SweepEdge Adjacent"]
49["EdgeCut Fillet<br>[456, 522, 0]"] 49["EdgeCut Fillet<br>[462, 528, 0]"]
50["EdgeCut Fillet<br>[456, 522, 0]"] 50["EdgeCut Fillet<br>[462, 528, 0]"]
51["EdgeCut Fillet<br>[1381, 1440, 0]"] 51["EdgeCut Fillet<br>[1387, 1446, 0]"]
1 --- 4 1 --- 4
30 x--> 2 30 x--> 2
32 x--> 3 32 x--> 3

View File

@ -273,7 +273,15 @@ description: Result of parsing translate_after_fillet.kcl
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [
{
"commentStart": 0,
"end": 0,
"name": "math",
"start": 0,
"type": "Identifier"
}
],
"start": 0, "start": 0,
"type": "Name" "type": "Name"
}, },

View File

@ -3,7 +3,7 @@ export boltLength = 2.500
export boltHeadLength = boltDiameter export boltHeadLength = boltDiameter
export boltHeadDiameter = 0.938 export boltHeadDiameter = 0.938
export boltHexDrive = 1 / 2 export boltHexDrive = 1 / 2
export boltHexFlatLength = boltHexDrive / (2 * cos(30deg)) export boltHexFlatLength = boltHexDrive / (2 * math::cos(30deg))
export boltThreadLength = 1.75 export boltThreadLength = 1.75
export fn bolt() { export fn bolt() {

View File

@ -7,7 +7,7 @@ description: Operations executed translate_after_fillet.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "cos", "name": "math::cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}

View File

@ -7,7 +7,7 @@ export boltLength = 2.500
export boltHeadLength = boltDiameter export boltHeadLength = boltDiameter
export boltHeadDiameter = 0.938 export boltHeadDiameter = 0.938
export boltHexDrive = 1 / 2 export boltHexDrive = 1 / 2
export boltHexFlatLength = boltHexDrive / (2 * cos(30deg)) export boltHexFlatLength = boltHexDrive / (2 * math::cos(30deg))
export boltThreadLength = 1.75 export boltThreadLength = 1.75
export fn bolt() { export fn bolt() {