Add math functions back to the prelude (#6595)

* Add math functions back to the prelude

* Update output

* Update docs
This commit is contained in:
Jonathan Tran
2025-04-30 11:07:05 -04:00
committed by GitHub
parent f1fdf48834
commit ccd5b0272d
111 changed files with 4002 additions and 4335 deletions

View File

@ -20,8 +20,11 @@ layout: manual
### `std::math` ### `std::math`
- [`E`](/docs/kcl/consts/std-math-E)
- [`E`](/docs/kcl/consts/std-math-E) - [`E`](/docs/kcl/consts/std-math-E)
- [`PI`](/docs/kcl/consts/std-math-PI) - [`PI`](/docs/kcl/consts/std-math-PI)
- [`PI`](/docs/kcl/consts/std-math-PI)
- [`TAU`](/docs/kcl/consts/std-math-TAU)
- [`TAU`](/docs/kcl/consts/std-math-TAU) - [`TAU`](/docs/kcl/consts/std-math-TAU)
### `std::turns` ### `std::turns`

View File

@ -93,6 +93,21 @@ layout: manual
* [`xLine`](kcl/xLine) * [`xLine`](kcl/xLine)
* [`yLine`](kcl/yLine) * [`yLine`](kcl/yLine)
* **std::math** * **std::math**
* [`E`](kcl/consts/std-math-E)
* [`PI`](kcl/consts/std-math-PI)
* [`TAU`](kcl/consts/std-math-TAU)
* [`abs`](kcl/std-math-abs)
* [`acos`](kcl/std-math-acos)
* [`asin`](kcl/std-math-asin)
* [`atan`](kcl/std-math-atan)
* [`atan2`](kcl/std-math-atan2)
* [`ceil`](kcl/std-math-ceil)
* [`cos`](kcl/std-math-cos)
* [`floor`](kcl/std-math-floor)
* [`ln`](kcl/std-math-ln)
* [`log`](kcl/std-math-log)
* [`log10`](kcl/std-math-log10)
* [`log2`](kcl/std-math-log2)
* [`math::E`](kcl/consts/std-math-E) * [`math::E`](kcl/consts/std-math-E)
* [`math::PI`](kcl/consts/std-math-PI) * [`math::PI`](kcl/consts/std-math-PI)
* [`math::TAU`](kcl/consts/std-math-TAU) * [`math::TAU`](kcl/consts/std-math-TAU)
@ -117,6 +132,15 @@ layout: manual
* [`math::sin`](kcl/std-math-sin) * [`math::sin`](kcl/std-math-sin)
* [`math::sqrt`](kcl/std-math-sqrt) * [`math::sqrt`](kcl/std-math-sqrt)
* [`math::tan`](kcl/std-math-tan) * [`math::tan`](kcl/std-math-tan)
* [`max`](kcl/std-math-max)
* [`min`](kcl/std-math-min)
* [`polar`](kcl/std-math-polar)
* [`pow`](kcl/std-math-pow)
* [`rem`](kcl/std-math-rem)
* [`round`](kcl/std-math-round)
* [`sin`](kcl/std-math-sin)
* [`sqrt`](kcl/std-math-sqrt)
* [`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 * math::abs(1 - (t * replicaId)) * (5 + math::cos((replicaId / 8): number(rad))) scale = r * abs(1 - (t * replicaId)) * (5 + 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

@ -97,10 +97,7 @@ fn decagon(radius) {
// Start the decagon sketch at this point. // Start the decagon sketch at this point.
startOfDecagonSketch = startSketchOn(XY) startOfDecagonSketch = startSketchOn(XY)
|> startProfile(at = [ |> startProfile(at = [cos(0) * radius, sin(0) * radius])
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,
@ -110,8 +107,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 = math::cos(stepAngle * i) * radius x = cos(stepAngle * i) * radius
y = math::sin(stepAngle * i) * radius y = sin(stepAngle * i) * radius
return line(partialDecagon, end = [x, y]) return line(partialDecagon, end = [x, y])
}, },
) )
@ -123,13 +120,13 @@ fn decagon(radius) {
fn decagon(radius): fn decagon(radius):
stepAngle = ((1/10) * TAU): number(rad) stepAngle = ((1/10) * TAU): number(rad)
plane = startSketchOn(XY) plane = startSketchOn(XY)
startOfDecagonSketch = startProfile(plane, at = [(math::cos(0)*radius), (math::sin(0) * radius)]) startOfDecagonSketch = startProfile(plane, at = [(cos(0)*radius), (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 = math::cos(stepAngle * i) * radius x = cos(stepAngle * i) * radius
y = math::sin(stepAngle * i) * radius y = 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

@ -33,7 +33,7 @@ sketch001 = startSketchOn(XZ)
|> startProfile(at = [0, 0]) |> startProfile(at = [0, 0])
|> line(end = [8, 0]) |> line(end = [8, 0])
|> angledLine( |> angledLine(
angle = math::abs(myAngle), angle = abs(myAngle),
length = 5, length = 5,
) )
|> line(end = [-5, 0]) |> line(end = [-5, 0])

View File

@ -30,7 +30,7 @@ acos(@num: number(_)): number(rad)
sketch001 = startSketchOn(XZ) sketch001 = startSketchOn(XZ)
|> startProfile(at = [0, 0]) |> startProfile(at = [0, 0])
|> angledLine( |> angledLine(
angle = math::acos(0.5), angle = acos(0.5),
length = 10, length = 10,
) )
|> line(end = [5, 0]) |> line(end = [5, 0])

View File

@ -30,7 +30,7 @@ asin(@num: number(_)): number(rad)
sketch001 = startSketchOn(XZ) sketch001 = startSketchOn(XZ)
|> startProfile(at = [0, 0]) |> startProfile(at = [0, 0])
|> angledLine( |> angledLine(
angle = math::asin(0.5), angle = asin(0.5),
length = 20, length = 20,
) )
|> yLine(endAbsolute = 0) |> yLine(endAbsolute = 0)

View File

@ -30,7 +30,7 @@ atan(@num: number(_)): number(rad)
sketch001 = startSketchOn(XZ) sketch001 = startSketchOn(XZ)
|> startProfile(at = [0, 0]) |> startProfile(at = [0, 0])
|> angledLine( |> angledLine(
angle = math::atan(1.25), angle = atan(1.25),
length = 20, length = 20,
) )
|> yLine(endAbsolute = 0) |> yLine(endAbsolute = 0)

View File

@ -34,7 +34,7 @@ atan2(
sketch001 = startSketchOn(XZ) sketch001 = startSketchOn(XZ)
|> startProfile(at = [0, 0]) |> startProfile(at = [0, 0])
|> angledLine( |> angledLine(
angle = math::atan2(y = 1.25, x = 2), angle = atan2(y = 1.25, x = 2),
length = 20, length = 20,
) )
|> yLine(endAbsolute = 0) |> yLine(endAbsolute = 0)

View File

@ -30,7 +30,7 @@ ceil(@input: number): number
sketch001 = startSketchOn(XZ) sketch001 = startSketchOn(XZ)
|> startProfile(at = [0, 0]) |> startProfile(at = [0, 0])
|> line(endAbsolute = [12, 10]) |> line(endAbsolute = [12, 10])
|> line(end = [math::ceil(7.02986), 0]) |> line(end = [ceil(7.02986), 0])
|> 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 = 30, angle = 30,
length = 3 / math::cos(30deg), length = 3 / cos(30deg),
) )
|> yLine(endAbsolute = 0) |> yLine(endAbsolute = 0)
|> close() |> close()

View File

@ -30,7 +30,7 @@ floor(@input: number): number
sketch001 = startSketchOn(XZ) sketch001 = startSketchOn(XZ)
|> startProfile(at = [0, 0]) |> startProfile(at = [0, 0])
|> line(endAbsolute = [12, 10]) |> line(endAbsolute = [12, 10])
|> line(end = [math::floor(7.02986), 0]) |> line(end = [floor(7.02986), 0])
|> yLine(endAbsolute = 0) |> yLine(endAbsolute = 0)
|> close() |> close()

View File

@ -29,7 +29,7 @@ ln(@input: number): number
```js ```js
exampleSketch = startSketchOn(XZ) exampleSketch = startSketchOn(XZ)
|> startProfile(at = [0, 0]) |> startProfile(at = [0, 0])
|> line(end = [math::ln(100), 15]) |> line(end = [ln(100), 15])
|> line(end = [5, -6]) |> line(end = [5, -6])
|> line(end = [-10, -10]) |> line(end = [-10, -10])
|> close() |> close()

View File

@ -7,8 +7,8 @@ layout: manual
Compute the logarithm of the number with respect to an arbitrary base. Compute the logarithm of the number with respect to an arbitrary base.
The result might not be correctly rounded owing to implementation The result might not be correctly rounded owing to implementation
details; `math::log2` can produce more accurate results for base 2, details; `log2` can produce more accurate results for base 2,
and `math::log10` can produce more accurate results for base 10. and `log10` can produce more accurate results for base 10.
```js ```js
log( log(
@ -35,7 +35,7 @@ log(
```js ```js
exampleSketch = startSketchOn(XZ) exampleSketch = startSketchOn(XZ)
|> startProfile(at = [0, 0]) |> startProfile(at = [0, 0])
|> line(end = [math::log(100, base = 5), 0]) |> line(end = [log(100, base = 5), 0])
|> line(end = [5, 8]) |> line(end = [5, 8])
|> line(end = [-10, 0]) |> line(end = [-10, 0])
|> close() |> close()

View File

@ -29,7 +29,7 @@ log10(@input: number): number
```js ```js
exampleSketch = startSketchOn(XZ) exampleSketch = startSketchOn(XZ)
|> startProfile(at = [0, 0]) |> startProfile(at = [0, 0])
|> line(end = [math::log10(100), 0]) |> line(end = [log10(100), 0])
|> line(end = [5, 8]) |> line(end = [5, 8])
|> line(end = [-10, 0]) |> line(end = [-10, 0])
|> close() |> close()

View File

@ -29,7 +29,7 @@ log2(@input: number): number
```js ```js
exampleSketch = startSketchOn(XZ) exampleSketch = startSketchOn(XZ)
|> startProfile(at = [0, 0]) |> startProfile(at = [0, 0])
|> line(end = [math::log2(100), 0]) |> line(end = [log2(100), 0])
|> line(end = [5, 8]) |> line(end = [5, 8])
|> line(end = [-10, 0]) |> line(end = [-10, 0])
|> close() |> close()

View File

@ -31,7 +31,7 @@ exampleSketch = startSketchOn(XZ)
|> startProfile(at = [0, 0]) |> startProfile(at = [0, 0])
|> angledLine( |> angledLine(
angle = 70, angle = 70,
length = math::max([15, 31, 4, 13, 22]) length = max([15, 31, 4, 13, 22])
) )
|> line(end = [20, 0]) |> line(end = [20, 0])
|> close() |> close()

View File

@ -31,7 +31,7 @@ exampleSketch = startSketchOn(XZ)
|> startProfile(at = [0, 0]) |> startProfile(at = [0, 0])
|> angledLine( |> angledLine(
angle = 70, angle = 70,
length = math::min([15, 31, 4, 13, 22]) length = min([15, 31, 4, 13, 22])
) )
|> line(end = [20, 0]) |> line(end = [20, 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 = math::polar(angle = 30, length = 5), tag = $thing) |> line(end = 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

@ -35,7 +35,7 @@ exampleSketch = startSketchOn(XZ)
|> startProfile(at = [0, 0]) |> startProfile(at = [0, 0])
|> angledLine( |> angledLine(
angle = 50, angle = 50,
length = math::pow(5, exp = 2), length = pow(5, exp = 2),
) )
|> yLine(endAbsolute = 0) |> yLine(endAbsolute = 0)
|> close() |> close()

View File

@ -30,7 +30,7 @@ round(@input: number): number
sketch001 = startSketchOn(XZ) sketch001 = startSketchOn(XZ)
|> startProfile(at = [0, 0]) |> startProfile(at = [0, 0])
|> line(endAbsolute = [12, 10]) |> line(endAbsolute = [12, 10])
|> line(end = [math::round(7.02986), 0]) |> line(end = [round(7.02986), 0])
|> 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 = 15 / math::sin(135deg), length = 15 / sin(135deg),
) )
|> 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 = 50 * math::tan((1/2): number(rad)), length = 50 * 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 * math::cos(units::toDegrees((PI/4): number(rad))), length = 70 * 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 * math::cos(units::toRadians(45)), length = 70 * cos(units::toRadians(45)),
) )
|> yLine(endAbsolute = 0) |> yLine(endAbsolute = 0)
|> close() |> close()

View File

@ -185084,7 +185084,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 * math::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)", "// 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)",
"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)"
] ]
}, },
@ -232207,7 +232207,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): 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()" "// 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 = [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): number(rad)\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()"
] ]
}, },
{ {

View File

@ -139,7 +139,7 @@ startSketchOn(motorHousing, face = END)
|> extrude(length = -16) |> extrude(length = -16)
|> appearance(color = "#a55e2c") |> appearance(color = "#a55e2c")
|> fillet( |> fillet(
radius = math::abs(fanSize - mountingHoleSpacing) / 2, radius = abs(fanSize - mountingHoleSpacing) / 2,
tags = [ tags = [
getNextAdjacentEdge(rectangleSegmentA001), getNextAdjacentEdge(rectangleSegmentA001),
getNextAdjacentEdge(rectangleSegmentB001), getNextAdjacentEdge(rectangleSegmentB001),

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 * math::cos(startAngle), 15 * cos(startAngle),
15 * math::sin(startAngle) 15 * 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 * math::cos(startAngle - 20), fanSize * 22 / 50 * cos(startAngle - 20),
fanSize * 22 / 50 * math::sin(startAngle - 20) fanSize * 22 / 50 * sin(startAngle - 20)
], ],
interiorAbsolute = [ interiorAbsolute = [
fanSize * 11 / 50 * math::cos(startAngle + 3), fanSize * 11 / 50 * cos(startAngle + 3),
fanSize * 11 / 50 * math::sin(startAngle + 3) fanSize * 11 / 50 * sin(startAngle + 3)
], ],
) )
|> arc( |> arc(
endAbsolute = [ endAbsolute = [
fanSize * 22 / 50 * math::cos(startAngle - 24), fanSize * 22 / 50 * cos(startAngle - 24),
fanSize * 22 / 50 * math::sin(startAngle - 24) fanSize * 22 / 50 * sin(startAngle - 24)
], ],
interiorAbsolute = [ interiorAbsolute = [
fanSize * 22 / 50 * math::cos(startAngle - 22), fanSize * 22 / 50 * cos(startAngle - 22),
fanSize * 22 / 50 * math::sin(startAngle - 22) fanSize * 22 / 50 * sin(startAngle - 22)
], ],
) )
|> arc( |> arc(
endAbsolute = [profileStartX(%), profileStartY(%)], endAbsolute = [profileStartX(%), profileStartY(%)],
interiorAbsolute = [ interiorAbsolute = [
fanSize * 11 / 50 * math::cos(startAngle - 5), fanSize * 11 / 50 * cos(startAngle - 5),
fanSize * 11 / 50 * math::sin(startAngle - 5) fanSize * 11 / 50 * 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 * math::sin(60) 0.125 * 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 * math::cos(helixAngleP) + gearPitch * math::sin(-helixAngleP), gearPitch * 1.55 * cos(helixAngleP) + gearPitch * sin(-helixAngleP),
gearPitch * 1.55 * math::sin(helixAngleP) + gearPitch * math::cos(-helixAngleP) gearPitch * 1.55 * sin(helixAngleP) + gearPitch * 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

@ -18,11 +18,7 @@ fn primaryTube(n, angle001, length001, length002, length003) {
// 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 = [ xAxis = [sin(-angle001), cos(-angle001), 0.0],
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

@ -26,14 +26,14 @@ fn slot(sketch1, start, end, width) {
} }
} else { } else {
if end[0] < start[0] { if end[0] < start[0] {
units::toDegrees(math::atan((end[1] - start[1]) / (end[0] - start[0]))) + 180 units::toDegrees(atan((end[1] - start[1]) / (end[0] - start[0]))) + 180
} else { } else {
units::toDegrees( math::atan((end[1] - start[1]) / (end[0] - start[0]))) units::toDegrees( atan((end[1] - start[1]) / (end[0] - start[0])))
} }
} }
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 * math::cos(angle - 90) + start[0] xstart = width / 2 * cos(angle - 90) + start[0]
ystart = width / 2 * math::sin(angle - 90) + start[1] ystart = width / 2 * 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 * math::cos(pressureAngle) baseDiameter = pitchDiameter * cos(pressureAngle)
tipDiameter = pitchDiameter + 2 * module tipDiameter = pitchDiameter + 2 * module
gearHeight = 3 gearHeight = 3
@ -28,7 +28,7 @@ rs = map(
angles = map( angles = map(
rs, rs,
f = fn(r) { f = fn(r) {
return units::toDegrees( math::acos(baseDiameter / 2 / r)) return units::toDegrees( acos(baseDiameter / 2 / r))
}, },
) )
@ -36,7 +36,7 @@ angles = map(
invas = map( invas = map(
angles, angles,
f = fn(a) { f = fn(a) {
return math::tan(a) - units::toRadians(a) return 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] * math::cos(invas[i]: number(rad)) return rs[i] * cos(invas[i]: number(rad))
}, },
) )
ys = map( ys = map(
[0..cmo], [0..cmo],
f = fn(i) { f = fn(i) {
return rs[i] * math::sin(invas[i]: number(rad)) return rs[i] * sin(invas[i]: number(rad))
}, },
) )
@ -69,8 +69,8 @@ fn leftInvolute(i, sg) {
} }
fn rightInvolute(i, sg) { fn rightInvolute(i, sg) {
x = rs[i] * math::cos(-toothAngle + units::toDegrees(math::atan(ys[i] / xs[i]))) x = rs[i] * cos(-toothAngle + units::toDegrees(atan(ys[i] / xs[i])))
y = -rs[i] * math::sin(-toothAngle + units::toDegrees(math::atan(ys[i] / xs[i]))) y = -rs[i] * sin(-toothAngle + units::toDegrees(atan(ys[i] / xs[i])))
return line(sg, endAbsolute = [x, y]) return line(sg, endAbsolute = [x, y])
} }
@ -95,13 +95,13 @@ keywayWidth = 0.250
keywayDepth = keywayWidth / 2 keywayDepth = keywayWidth / 2
holeDiam = 2 holeDiam = 2
holeRadius = 1 holeRadius = 1
startAngle = math::asin(keywayWidth / 2 / holeRadius) 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 * math::cos(startAngle), holeRadius * cos(startAngle),
holeRadius * math::sin(startAngle) holeRadius * 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, math::sin(7deg)], yAxis = [0.0, 1.0, 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, math::sin(7deg)], yAxis = [0.0, 1.0, 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 = [
math::sin(axisJ1): number(in), sin(axisJ1): number(in),
math::cos(axisJ1): number(in), 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 = [
math::sin(axisJ1): number(in), sin(axisJ1): number(in),
math::cos(axisJ1): number(in), 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 * math::sin(axisJ2)), 1.75 - (axisJ2ArmWidth / 2 * sin(axisJ2)),
8 + axisJ2ArmWidth / 2 * math::cos(axisJ2) 8 + axisJ2ArmWidth / 2 * 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 * math::cos(axisJ2)), -1.75 - (axisJ2ArmLength * cos(axisJ2)),
8 + axisJ2ArmLength * math::sin(axisJ2) 8 + axisJ2ArmLength * 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) * math::cos(axisJ2)), -1.75 - ((axisJ2ArmLength - 1) * cos(axisJ2)),
8 + (axisJ2ArmLength - 1.5) * math::sin(axisJ2) 8 + (axisJ2ArmLength - 1.5) * sin(axisJ2)
], ],
radius = 0.2, radius = 0.2,
) )
|> patternCircular2d( |> patternCircular2d(
center = [ center = [
-1.75 - (axisJ2ArmLength * math::cos(axisJ2)), -1.75 - (axisJ2ArmLength * cos(axisJ2)),
8 + axisJ2ArmLength * math::sin(axisJ2) 8 + axisJ2ArmLength * 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 * math::cos(axisJ2), 1.75 + axisJ2ArmLength * cos(axisJ2),
8 + axisJ2ArmLength * math::sin(axisJ2) 8 + axisJ2ArmLength * 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 * math::cos(axisJ2) - (axisJ3CArmWidth / 2 * math::sin(axisJ3C)), 1.75 + axisJ2ArmLength * cos(axisJ2) - (axisJ3CArmWidth / 2 * sin(axisJ3C)),
8 + axisJ2ArmLength * math::sin(axisJ2) + axisJ3CArmWidth / 2 * math::cos(axisJ3C) 8 + axisJ2ArmLength * sin(axisJ2) + axisJ3CArmWidth / 2 * 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 * math::cos(axisJ2), 1.75 + axisJ2ArmLength * cos(axisJ2),
8 + axisJ2ArmLength * math::sin(axisJ2) 8 + axisJ2ArmLength * 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) * math::cos(axisJ2), 1.75 + (axisJ2ArmLength - 1) * cos(axisJ2),
8 + (axisJ2ArmLength - 1.5) * math::sin(axisJ2) 8 + (axisJ2ArmLength - 1.5) * sin(axisJ2)
], ],
radius = 0.2, radius = 0.2,
) )
|> patternCircular2d( |> patternCircular2d(
center = [ center = [
1.75 + axisJ2ArmLength * math::cos(axisJ2), 1.75 + axisJ2ArmLength * cos(axisJ2),
8 + axisJ2ArmLength * math::sin(axisJ2) 8 + axisJ2ArmLength * 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 * math::cos(axisJ2)) - (axisJ3CArmLength * math::cos(axisJ3C)), -1.75 - (axisJ2ArmLength * cos(axisJ2)) - (axisJ3CArmLength * cos(axisJ3C)),
8 + axisJ2ArmLength * math::sin(axisJ2) + axisJ3CArmLength * math::sin(axisJ3C) 8 + axisJ2ArmLength * sin(axisJ2) + axisJ3CArmLength * 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 * math::cos(axisJ2) + axisJ3CArmLength * math::cos(axisJ3C), 1.75 + axisJ2ArmLength * cos(axisJ2) + axisJ3CArmLength * cos(axisJ3C),
8 + axisJ2ArmLength * math::sin(axisJ2) + axisJ3CArmLength * math::sin(axisJ3C) 8 + axisJ2ArmLength * sin(axisJ2) + axisJ3CArmLength * 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 * math::cos(axisJ2) + axisJ3CArmLength * math::cos(axisJ3C), 1.75 + axisJ2ArmLength * cos(axisJ2) + axisJ3CArmLength * cos(axisJ3C),
8 + axisJ2ArmLength * math::sin(axisJ2) + axisJ3CArmLength * math::sin(axisJ3C) 8 + axisJ2ArmLength * sin(axisJ2) + axisJ3CArmLength * 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 * math::cos(axisJ2) + axisJ3CArmLength * math::cos(axisJ3C), 1.75 + axisJ2ArmLength * cos(axisJ2) + axisJ3CArmLength * cos(axisJ3C),
8 + axisJ2ArmLength * math::sin(axisJ2) + axisJ3CArmLength * math::sin(axisJ3C) 8 + axisJ2ArmLength * sin(axisJ2) + axisJ3CArmLength * 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 * math::cos(axisJ1) / math::abs(math::cos(axisJ1)), 1.75 * cos(axisJ1) / abs(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 * math::cos(axisJ1) / math::abs(math::cos(axisJ1)), 1.75 * cos(axisJ1) / abs(cos(axisJ1)),
6.75 6.75
], ],
radius = 0.2, radius = 0.2,
) )
|> patternCircular2d( |> patternCircular2d(
center = [ center = [
1.75 * math::cos(axisJ1) / math::abs(math::cos(axisJ1)), 1.75 * cos(axisJ1) / abs(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 * math::cos(axisJ1) / math::abs(math::cos(axisJ1)), 1.75 * cos(axisJ1) / abs(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 * math::cos(30deg)) export boltHexFlatLength = boltHexDrive / (2 * 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 * math::cos(30deg)) export hexNutFlatLength = hexNutFlatToFlat / (2 * 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 * math::cos(30deg)) boltHexFlatLength = boltHexDrive / (2 * 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 * math::cos(45deg)) height / 2 - (chamferLength + offset / 2 * 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 * math::cos(45deg)), width / 2 - (chamferLength + offset / 2 * 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 * math::cos(45deg))) -(height / 2 - (chamferLength + offset / 2 * 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 * math::cos(45deg))), -(width / 2 - (chamferLength + offset / 2 * 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 * math::cos(45deg)) height / 2 - (chamferLength + (offset + caseTolerance) / 2 * 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 * math::cos(45deg)), width / 2 - (chamferLength + (offset + caseTolerance) / 2 * 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 * math::cos(45deg))) -(height / 2 - (chamferLength + (offset + caseTolerance) / 2 * 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 * math::cos(45deg))), -(width / 2 - (chamferLength + (offset + caseTolerance) / 2 * 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 @@
fn cond(bools) { fn cond(bools) {
return fn(a, b) { return fn(a, b) {
x = math::min([math::max([-1, a-b]), 1]) + 1 x = min([max([-1, a-b]), 1]) + 1
return bools[x] return bools[x]
} }
} }
@ -75,8 +75,8 @@ fn setLength(state, q) {
fn Gt2(state) { return setLength(state, state.currentLength * state.factor) } fn Gt2(state) { return setLength(state, state.currentLength * state.factor) }
fn Lt2(state) { return setLength(state, state.currentLength / state.factor) } fn Lt2(state) { return setLength(state, state.currentLength / state.factor) }
fn Add(state) { return setAngle(state, math::rem(state.currentAngle - state.angle, divisor = 360)) } fn Add(state) { return setAngle(state, rem(state.currentAngle - state.angle, divisor = 360)) }
fn Sub(state) { return setAngle(state, math::rem(state.currentAngle + state.angle, divisor = 360)) } fn Sub(state) { return setAngle(state, rem(state.currentAngle + state.angle, divisor = 360)) }
// Only necessary to get around recursion limitations... // Only necessary to get around recursion limitations...
fn F(state, F) { fn F(state, F) {

View File

@ -5,7 +5,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 * math::abs(1 - (t * replicaId)) * (5 + math::cos((replicaId / 8): number(rad))) scale = r * abs(1 - (t * replicaId)) * (5 + 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

@ -1307,7 +1307,7 @@ part001 = startSketchOn(XY)
|> startProfile(at = [0, 0]) |> startProfile(at = [0, 0])
|> line(end = [3, 4], tag = $seg01) |> line(end = [3, 4], tag = $seg01)
|> line(end = [ |> line(end = [
math::min([segLen(seg01), myVar]), min([segLen(seg01), myVar]),
-legLen(hypotenuse = segLen(seg01), leg = myVar) -legLen(hypotenuse = segLen(seg01), leg = myVar)
]) ])
"#; "#;
@ -1322,7 +1322,7 @@ part001 = startSketchOn(XY)
|> startProfile(at = [0, 0]) |> startProfile(at = [0, 0])
|> line(end = [3, 4], tag = $seg01) |> line(end = [3, 4], tag = $seg01)
|> line(end = [ |> line(end = [
math::min([segLen(seg01), myVar]), min([segLen(seg01), myVar]),
legLen(hypotenuse = segLen(seg01), leg = myVar) legLen(hypotenuse = segLen(seg01), leg = myVar)
]) ])
"#; "#;
@ -1662,7 +1662,7 @@ shape = layer() |> patternTransform(instances = 10, transform = transform)
#[tokio::test(flavor = "multi_thread")] #[tokio::test(flavor = "multi_thread")]
async fn test_math_execute_with_functions() { async fn test_math_execute_with_functions() {
let ast = r#"myVar = 2 + math::min([100, -1 + legLen(hypotenuse = 5, leg = 3)])"#; let ast = r#"myVar = 2 + min([100, -1 + legLen(hypotenuse = 5, leg = 3)])"#;
let result = parse_execute(ast).await.unwrap(); let result = parse_execute(ast).await.unwrap();
assert_eq!( assert_eq!(
5.0, 5.0,

View File

@ -2081,10 +2081,10 @@ o = 3mm / 3
p = 3_ / 4 p = 3_ / 4
q = 4inch / 2_ q = 4inch / 2_
r = math::min([0, 3, 42]) r = min([0, 3, 42])
s = math::min([0, 3mm, -42]) s = min([0, 3mm, -42])
t = math::min([100, 3in, 142mm]) t = min([100, 3in, 142mm])
u = math::min([3rad, 4in]) u = min([3rad, 4in])
"#; "#;
let result = parse_execute(program).await.unwrap(); let result = parse_execute(program).await.unwrap();
@ -2137,10 +2137,10 @@ 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 = math::cos(units::toRadians(30)) a = cos(units::toRadians(30))
b = 3 / a b = 3 / a
c = math::cos(30deg) c = cos(30deg)
d = math::cos(30) d = cos(30)
"#; "#;
let result = parse_execute(program).await.unwrap(); let result = parse_execute(program).await.unwrap();

View File

@ -144,15 +144,15 @@ pub async fn reduce(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ///
/// // Start the decagon sketch at this point. /// // Start the decagon sketch at this point.
/// startOfDecagonSketch = startSketchOn(XY) /// startOfDecagonSketch = startSketchOn(XY)
/// |> startProfile(at = [(math::cos(0)*radius), (math::sin(0) * radius)]) /// |> startProfile(at = [(cos(0)*radius), (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 = math::cos(stepAngle * i) * radius /// x = cos(stepAngle * i) * radius
/// y = math::sin(stepAngle * i) * radius /// y = sin(stepAngle * i) * radius
/// return line(partialDecagon, end = [x, y]) /// return line(partialDecagon, end = [x, y])
/// }) /// })
/// ///
@ -165,13 +165,13 @@ pub async fn reduce(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// fn decagon(radius): /// fn decagon(radius):
/// stepAngle = ((1/10) * TAU): number(rad) /// stepAngle = ((1/10) * TAU): number(rad)
/// plane = startSketchOn(XY) /// plane = startSketchOn(XY)
/// startOfDecagonSketch = startProfile(plane, at = [(math::cos(0)*radius), (math::sin(0) * radius)]) /// startOfDecagonSketch = startProfile(plane, at = [(cos(0)*radius), (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 = math::cos(stepAngle * i) * radius /// x = cos(stepAngle * i) * radius
/// y = math::sin(stepAngle * i) * radius /// y = 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

@ -149,84 +149,84 @@ pub(crate) fn std_fn(path: &str, fn_name: &str) -> (crate::std::StdFn, StdFnProp
match (path, fn_name) { match (path, fn_name) {
("math", "cos") => ( ("math", "cos") => (
|e, a| Box::pin(crate::std::math::cos(e, a)), |e, a| Box::pin(crate::std::math::cos(e, a)),
StdFnProps::default("std::math::cos"), StdFnProps::default("std::cos"),
), ),
("math", "sin") => ( ("math", "sin") => (
|e, a| Box::pin(crate::std::math::sin(e, a)), |e, a| Box::pin(crate::std::math::sin(e, a)),
StdFnProps::default("std::math::sin"), StdFnProps::default("std::sin"),
), ),
("math", "tan") => ( ("math", "tan") => (
|e, a| Box::pin(crate::std::math::tan(e, a)), |e, a| Box::pin(crate::std::math::tan(e, a)),
StdFnProps::default("std::math::tan"), StdFnProps::default("std::tan"),
), ),
("math", "acos") => ( ("math", "acos") => (
|e, a| Box::pin(crate::std::math::acos(e, a)), |e, a| Box::pin(crate::std::math::acos(e, a)),
StdFnProps::default("std::math::acos"), StdFnProps::default("std::acos"),
), ),
("math", "asin") => ( ("math", "asin") => (
|e, a| Box::pin(crate::std::math::asin(e, a)), |e, a| Box::pin(crate::std::math::asin(e, a)),
StdFnProps::default("std::math::asin"), StdFnProps::default("std::asin"),
), ),
("math", "atan") => ( ("math", "atan") => (
|e, a| Box::pin(crate::std::math::atan(e, a)), |e, a| Box::pin(crate::std::math::atan(e, a)),
StdFnProps::default("std::math::atan"), StdFnProps::default("std::atan"),
), ),
("math", "atan2") => ( ("math", "atan2") => (
|e, a| Box::pin(crate::std::math::atan2(e, a)), |e, a| Box::pin(crate::std::math::atan2(e, a)),
StdFnProps::default("std::math::atan2"), StdFnProps::default("std::atan2"),
), ),
("math", "sqrt") => ( ("math", "sqrt") => (
|e, a| Box::pin(crate::std::math::sqrt(e, a)), |e, a| Box::pin(crate::std::math::sqrt(e, a)),
StdFnProps::default("std::math::sqrt"), StdFnProps::default("std::sqrt"),
), ),
("math", "abs") => ( ("math", "abs") => (
|e, a| Box::pin(crate::std::math::abs(e, a)), |e, a| Box::pin(crate::std::math::abs(e, a)),
StdFnProps::default("std::math::abs"), StdFnProps::default("std::abs"),
), ),
("math", "rem") => ( ("math", "rem") => (
|e, a| Box::pin(crate::std::math::rem(e, a)), |e, a| Box::pin(crate::std::math::rem(e, a)),
StdFnProps::default("std::math::rem"), StdFnProps::default("std::rem"),
), ),
("math", "round") => ( ("math", "round") => (
|e, a| Box::pin(crate::std::math::round(e, a)), |e, a| Box::pin(crate::std::math::round(e, a)),
StdFnProps::default("std::math::round"), StdFnProps::default("std::round"),
), ),
("math", "floor") => ( ("math", "floor") => (
|e, a| Box::pin(crate::std::math::floor(e, a)), |e, a| Box::pin(crate::std::math::floor(e, a)),
StdFnProps::default("std::math::floor"), StdFnProps::default("std::floor"),
), ),
("math", "ceil") => ( ("math", "ceil") => (
|e, a| Box::pin(crate::std::math::ceil(e, a)), |e, a| Box::pin(crate::std::math::ceil(e, a)),
StdFnProps::default("std::math::ceil"), StdFnProps::default("std::ceil"),
), ),
("math", "min") => ( ("math", "min") => (
|e, a| Box::pin(crate::std::math::min(e, a)), |e, a| Box::pin(crate::std::math::min(e, a)),
StdFnProps::default("std::math::min"), StdFnProps::default("std::min"),
), ),
("math", "max") => ( ("math", "max") => (
|e, a| Box::pin(crate::std::math::max(e, a)), |e, a| Box::pin(crate::std::math::max(e, a)),
StdFnProps::default("std::math::max"), StdFnProps::default("std::max"),
), ),
("math", "pow") => ( ("math", "pow") => (
|e, a| Box::pin(crate::std::math::pow(e, a)), |e, a| Box::pin(crate::std::math::pow(e, a)),
StdFnProps::default("std::math::pow"), StdFnProps::default("std::pow"),
), ),
("math", "log") => ( ("math", "log") => (
|e, a| Box::pin(crate::std::math::log(e, a)), |e, a| Box::pin(crate::std::math::log(e, a)),
StdFnProps::default("std::math::log"), StdFnProps::default("std::log"),
), ),
("math", "log2") => ( ("math", "log2") => (
|e, a| Box::pin(crate::std::math::log2(e, a)), |e, a| Box::pin(crate::std::math::log2(e, a)),
StdFnProps::default("std::math::log2"), StdFnProps::default("std::log2"),
), ),
("math", "log10") => ( ("math", "log10") => (
|e, a| Box::pin(crate::std::math::log10(e, a)), |e, a| Box::pin(crate::std::math::log10(e, a)),
StdFnProps::default("std::math::log10"), StdFnProps::default("std::log10"),
), ),
("math", "ln") => ( ("math", "ln") => (
|e, a| Box::pin(crate::std::math::ln(e, a)), |e, a| Box::pin(crate::std::math::ln(e, a)),
StdFnProps::default("std::math::ln"), StdFnProps::default("std::ln"),
), ),
("sketch", "circle") => ( ("sketch", "circle") => (
|e, a| Box::pin(crate::std::shapes::circle(e, a)), |e, a| Box::pin(crate::std::shapes::circle(e, a)),

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 * math::abs(1 - (t * replicaId)) * (5 + math::cos((replicaId / 8): number(rad))) /// scale = r * abs(1 - (t * replicaId)) * (5 + 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

@ -54,7 +54,7 @@ export TAU = 6.28318530717958647692528676655900577_
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> angledLine( /// |> angledLine(
/// angle = 30, /// angle = 30,
/// length = 3 / math::cos(30deg), /// length = 3 / cos(30deg),
/// ) /// )
/// |> yLine(endAbsolute = 0) /// |> yLine(endAbsolute = 0)
/// |> close() /// |> close()
@ -71,7 +71,7 @@ export fn cos(@num: number(Angle)): number(Count) {}
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> angledLine( /// |> angledLine(
/// angle = 50, /// angle = 50,
/// length = 15 / math::sin(135deg), /// length = 15 / sin(135deg),
/// ) /// )
/// |> yLine(endAbsolute = 0) /// |> yLine(endAbsolute = 0)
/// |> close() /// |> close()
@ -88,7 +88,7 @@ export fn sin(@num: number(Angle)): number(Count) {}
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> angledLine( /// |> angledLine(
/// angle = 50, /// angle = 50,
/// length = 50 * math::tan((1/2): number(rad)), /// length = 50 * tan((1/2): number(rad)),
/// ) /// )
/// |> yLine(endAbsolute = 0) /// |> yLine(endAbsolute = 0)
/// |> close() /// |> close()
@ -104,7 +104,7 @@ export fn tan(@num: number(Angle)): number(Count) {}
/// sketch001 = startSketchOn(XZ) /// sketch001 = startSketchOn(XZ)
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> angledLine( /// |> angledLine(
/// angle = math::acos(0.5), /// angle = acos(0.5),
/// length = 10, /// length = 10,
/// ) /// )
/// |> line(end = [5, 0]) /// |> line(end = [5, 0])
@ -122,7 +122,7 @@ export fn acos(@num: number(Count)): number(rad) {}
/// sketch001 = startSketchOn(XZ) /// sketch001 = startSketchOn(XZ)
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> angledLine( /// |> angledLine(
/// angle = math::asin(0.5), /// angle = asin(0.5),
/// length = 20, /// length = 20,
/// ) /// )
/// |> yLine(endAbsolute = 0) /// |> yLine(endAbsolute = 0)
@ -141,7 +141,7 @@ export fn asin(@num: number(Count)): number(rad) {}
/// sketch001 = startSketchOn(XZ) /// sketch001 = startSketchOn(XZ)
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> angledLine( /// |> angledLine(
/// angle = math::atan(1.25), /// angle = atan(1.25),
/// length = 20, /// length = 20,
/// ) /// )
/// |> yLine(endAbsolute = 0) /// |> yLine(endAbsolute = 0)
@ -158,7 +158,7 @@ export fn atan(@num: number(Count)): number(rad) {}
/// sketch001 = startSketchOn(XZ) /// sketch001 = startSketchOn(XZ)
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> angledLine( /// |> angledLine(
/// angle = math::atan2(y = 1.25, x = 2), /// angle = atan2(y = 1.25, x = 2),
/// length = 20, /// length = 20,
/// ) /// )
/// |> yLine(endAbsolute = 0) /// |> yLine(endAbsolute = 0)
@ -175,7 +175,7 @@ export fn atan2(y: number(Length), x: number(Length)): number(rad) {}
/// ``` /// ```
/// exampleSketch = startSketchOn(XZ) /// exampleSketch = startSketchOn(XZ)
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> line(end = math::polar(angle = 30, length = 5), tag = $thing) /// |> line(end = 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])
@ -236,7 +236,7 @@ export fn sqrt(@input: number): number {}
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> line(end = [8, 0]) /// |> line(end = [8, 0])
/// |> angledLine( /// |> angledLine(
/// angle = math::abs(myAngle), /// angle = abs(myAngle),
/// length = 5, /// length = 5,
/// ) /// )
/// |> line(end = [-5, 0]) /// |> line(end = [-5, 0])
@ -257,7 +257,7 @@ export fn abs(@input: number): number {}
/// sketch001 = startSketchOn(XZ) /// sketch001 = startSketchOn(XZ)
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> line(endAbsolute = [12, 10]) /// |> line(endAbsolute = [12, 10])
/// |> line(end = [math::round(7.02986), 0]) /// |> line(end = [round(7.02986), 0])
/// |> yLine(endAbsolute = 0) /// |> yLine(endAbsolute = 0)
/// |> close() /// |> close()
/// ///
@ -272,7 +272,7 @@ export fn round(@input: number): number {}
/// sketch001 = startSketchOn(XZ) /// sketch001 = startSketchOn(XZ)
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> line(endAbsolute = [12, 10]) /// |> line(endAbsolute = [12, 10])
/// |> line(end = [math::floor(7.02986), 0]) /// |> line(end = [floor(7.02986), 0])
/// |> yLine(endAbsolute = 0) /// |> yLine(endAbsolute = 0)
/// |> close() /// |> close()
/// ///
@ -287,7 +287,7 @@ export fn floor(@input: number): number {}
/// sketch001 = startSketchOn(XZ) /// sketch001 = startSketchOn(XZ)
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> line(endAbsolute = [12, 10]) /// |> line(endAbsolute = [12, 10])
/// |> line(end = [math::ceil(7.02986), 0]) /// |> line(end = [ceil(7.02986), 0])
/// |> yLine(endAbsolute = 0) /// |> yLine(endAbsolute = 0)
/// |> close() /// |> close()
/// ///
@ -303,7 +303,7 @@ export fn ceil(@input: number): number {}
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> angledLine( /// |> angledLine(
/// angle = 70, /// angle = 70,
/// length = math::min([15, 31, 4, 13, 22]) /// length = min([15, 31, 4, 13, 22])
/// ) /// )
/// |> line(end = [20, 0]) /// |> line(end = [20, 0])
/// |> close() /// |> close()
@ -323,7 +323,7 @@ export fn min(
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> angledLine( /// |> angledLine(
/// angle = 70, /// angle = 70,
/// length = math::max([15, 31, 4, 13, 22]) /// length = max([15, 31, 4, 13, 22])
/// ) /// )
/// |> line(end = [20, 0]) /// |> line(end = [20, 0])
/// |> close() /// |> close()
@ -343,7 +343,7 @@ export fn max(
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> angledLine( /// |> angledLine(
/// angle = 50, /// angle = 50,
/// length = math::pow(5, exp = 2), /// length = pow(5, exp = 2),
/// ) /// )
/// |> yLine(endAbsolute = 0) /// |> yLine(endAbsolute = 0)
/// |> close() /// |> close()
@ -361,13 +361,13 @@ export fn pow(
/// Compute the logarithm of the number with respect to an arbitrary base. /// Compute the logarithm of the number with respect to an arbitrary base.
/// ///
/// The result might not be correctly rounded owing to implementation /// The result might not be correctly rounded owing to implementation
/// details; `math::log2` can produce more accurate results for base 2, /// details; `log2` can produce more accurate results for base 2,
/// and `math::log10` can produce more accurate results for base 10. /// and `log10` can produce more accurate results for base 10.
/// ///
/// ``` /// ```
/// exampleSketch = startSketchOn(XZ) /// exampleSketch = startSketchOn(XZ)
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> line(end = [math::log(100, base = 5), 0]) /// |> line(end = [log(100, base = 5), 0])
/// |> line(end = [5, 8]) /// |> line(end = [5, 8])
/// |> line(end = [-10, 0]) /// |> line(end = [-10, 0])
/// |> close() /// |> close()
@ -387,7 +387,7 @@ export fn log(
/// ``` /// ```
/// exampleSketch = startSketchOn(XZ) /// exampleSketch = startSketchOn(XZ)
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> line(end = [math::log2(100), 0]) /// |> line(end = [log2(100), 0])
/// |> line(end = [5, 8]) /// |> line(end = [5, 8])
/// |> line(end = [-10, 0]) /// |> line(end = [-10, 0])
/// |> close() /// |> close()
@ -402,7 +402,7 @@ export fn log2(@input: number): number {}
/// ``` /// ```
/// exampleSketch = startSketchOn(XZ) /// exampleSketch = startSketchOn(XZ)
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> line(end = [math::log10(100), 0]) /// |> line(end = [log10(100), 0])
/// |> line(end = [5, 8]) /// |> line(end = [5, 8])
/// |> line(end = [-10, 0]) /// |> line(end = [-10, 0])
/// |> close() /// |> close()
@ -417,7 +417,7 @@ export fn log10(@input: number): number {}
/// ``` /// ```
/// exampleSketch = startSketchOn(XZ) /// exampleSketch = startSketchOn(XZ)
/// |> startProfile(at = [0, 0]) /// |> startProfile(at = [0, 0])
/// |> line(end = [math::ln(100), 15]) /// |> line(end = [ln(100), 15])
/// |> line(end = [5, -6]) /// |> line(end = [5, -6])
/// |> line(end = [-10, -10]) /// |> line(end = [-10, -10])
/// |> close() /// |> close()

View File

@ -5,7 +5,7 @@
export import * from "std::types" export import * from "std::types"
export import "std::units" export import "std::units"
export import PI, E, TAU, pow, sqrt from "std::math" export import * from "std::math"
export import "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"

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 * math::cos(units::toRadians(45)), /// length = 70 * 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 * math::cos(units::toDegrees((PI/4): number(rad))), /// length = 70 * cos(units::toDegrees((PI/4): number(rad))),
/// ) /// )
/// |> yLine(endAbsolute = 0) /// |> yLine(endAbsolute = 0)
/// |> close() /// |> close()

View File

@ -649,15 +649,7 @@ 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 = math::cos((2 * PI): number(rad)) x = 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": "math::cos", "name": "cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}

View File

@ -23,7 +23,7 @@ assert(
error = "oops pi", error = "oops pi",
) )
x = math::cos((2 * PI): number(rad)) x = 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>[1121, 1171, 0]"] 5["Path<br>[1091, 1141, 0]"]
8["Segment<br>[1121, 1171, 0]"] 8["Segment<br>[1091, 1141, 0]"]
220[Solid2d] 220[Solid2d]
end end
subgraph path6 [Path] subgraph path6 [Path]
6["Path<br>[1664, 1701, 0]"] 6["Path<br>[1610, 1647, 0]"]
9["Segment<br>[1336, 1374, 0]"] 9["Segment<br>[1306, 1344, 0]"]
10["Segment<br>[1336, 1374, 0]"] 10["Segment<br>[1306, 1344, 0]"]
11["Segment<br>[1336, 1374, 0]"] 11["Segment<br>[1306, 1344, 0]"]
12["Segment<br>[1336, 1374, 0]"] 12["Segment<br>[1306, 1344, 0]"]
13["Segment<br>[1336, 1374, 0]"] 13["Segment<br>[1306, 1344, 0]"]
14["Segment<br>[1336, 1374, 0]"] 14["Segment<br>[1306, 1344, 0]"]
15["Segment<br>[1336, 1374, 0]"] 15["Segment<br>[1306, 1344, 0]"]
16["Segment<br>[1336, 1374, 0]"] 16["Segment<br>[1306, 1344, 0]"]
17["Segment<br>[1336, 1374, 0]"] 17["Segment<br>[1306, 1344, 0]"]
18["Segment<br>[1336, 1374, 0]"] 18["Segment<br>[1306, 1344, 0]"]
19["Segment<br>[1336, 1374, 0]"] 19["Segment<br>[1306, 1344, 0]"]
20["Segment<br>[1336, 1374, 0]"] 20["Segment<br>[1306, 1344, 0]"]
21["Segment<br>[1336, 1374, 0]"] 21["Segment<br>[1306, 1344, 0]"]
22["Segment<br>[1336, 1374, 0]"] 22["Segment<br>[1306, 1344, 0]"]
23["Segment<br>[1336, 1374, 0]"] 23["Segment<br>[1306, 1344, 0]"]
24["Segment<br>[1336, 1374, 0]"] 24["Segment<br>[1306, 1344, 0]"]
25["Segment<br>[1336, 1374, 0]"] 25["Segment<br>[1306, 1344, 0]"]
26["Segment<br>[1336, 1374, 0]"] 26["Segment<br>[1306, 1344, 0]"]
27["Segment<br>[1336, 1374, 0]"] 27["Segment<br>[1306, 1344, 0]"]
28["Segment<br>[1336, 1374, 0]"] 28["Segment<br>[1306, 1344, 0]"]
29["Segment<br>[1336, 1374, 0]"] 29["Segment<br>[1306, 1344, 0]"]
30["Segment<br>[1336, 1374, 0]"] 30["Segment<br>[1306, 1344, 0]"]
31["Segment<br>[1336, 1374, 0]"] 31["Segment<br>[1306, 1344, 0]"]
32["Segment<br>[1336, 1374, 0]"] 32["Segment<br>[1306, 1344, 0]"]
33["Segment<br>[1336, 1374, 0]"] 33["Segment<br>[1306, 1344, 0]"]
34["Segment<br>[1336, 1374, 0]"] 34["Segment<br>[1306, 1344, 0]"]
35["Segment<br>[1336, 1374, 0]"] 35["Segment<br>[1306, 1344, 0]"]
36["Segment<br>[1336, 1374, 0]"] 36["Segment<br>[1306, 1344, 0]"]
37["Segment<br>[1336, 1374, 0]"] 37["Segment<br>[1306, 1344, 0]"]
38["Segment<br>[1336, 1374, 0]"] 38["Segment<br>[1306, 1344, 0]"]
39["Segment<br>[1336, 1374, 0]"] 39["Segment<br>[1306, 1344, 0]"]
40["Segment<br>[1336, 1374, 0]"] 40["Segment<br>[1306, 1344, 0]"]
41["Segment<br>[1336, 1374, 0]"] 41["Segment<br>[1306, 1344, 0]"]
42["Segment<br>[1336, 1374, 0]"] 42["Segment<br>[1306, 1344, 0]"]
43["Segment<br>[1336, 1374, 0]"] 43["Segment<br>[1306, 1344, 0]"]
44["Segment<br>[1336, 1374, 0]"] 44["Segment<br>[1306, 1344, 0]"]
45["Segment<br>[1336, 1374, 0]"] 45["Segment<br>[1306, 1344, 0]"]
46["Segment<br>[1336, 1374, 0]"] 46["Segment<br>[1306, 1344, 0]"]
47["Segment<br>[1336, 1374, 0]"] 47["Segment<br>[1306, 1344, 0]"]
48["Segment<br>[1336, 1374, 0]"] 48["Segment<br>[1306, 1344, 0]"]
49["Segment<br>[1336, 1374, 0]"] 49["Segment<br>[1306, 1344, 0]"]
50["Segment<br>[1336, 1374, 0]"] 50["Segment<br>[1306, 1344, 0]"]
51["Segment<br>[1336, 1374, 0]"] 51["Segment<br>[1306, 1344, 0]"]
52["Segment<br>[1336, 1374, 0]"] 52["Segment<br>[1306, 1344, 0]"]
53["Segment<br>[1336, 1374, 0]"] 53["Segment<br>[1306, 1344, 0]"]
54["Segment<br>[1336, 1374, 0]"] 54["Segment<br>[1306, 1344, 0]"]
55["Segment<br>[1336, 1374, 0]"] 55["Segment<br>[1306, 1344, 0]"]
56["Segment<br>[1336, 1374, 0]"] 56["Segment<br>[1306, 1344, 0]"]
57["Segment<br>[1336, 1374, 0]"] 57["Segment<br>[1306, 1344, 0]"]
58["Segment<br>[1336, 1374, 0]"] 58["Segment<br>[1306, 1344, 0]"]
59["Segment<br>[1336, 1374, 0]"] 59["Segment<br>[1306, 1344, 0]"]
60["Segment<br>[1336, 1374, 0]"] 60["Segment<br>[1306, 1344, 0]"]
61["Segment<br>[1336, 1374, 0]"] 61["Segment<br>[1306, 1344, 0]"]
62["Segment<br>[1336, 1374, 0]"] 62["Segment<br>[1306, 1344, 0]"]
63["Segment<br>[1336, 1374, 0]"] 63["Segment<br>[1306, 1344, 0]"]
64["Segment<br>[1336, 1374, 0]"] 64["Segment<br>[1306, 1344, 0]"]
65["Segment<br>[1336, 1374, 0]"] 65["Segment<br>[1306, 1344, 0]"]
66["Segment<br>[1336, 1374, 0]"] 66["Segment<br>[1306, 1344, 0]"]
67["Segment<br>[1336, 1374, 0]"] 67["Segment<br>[1306, 1344, 0]"]
68["Segment<br>[1336, 1374, 0]"] 68["Segment<br>[1306, 1344, 0]"]
69["Segment<br>[1336, 1374, 0]"] 69["Segment<br>[1306, 1344, 0]"]
70["Segment<br>[1336, 1374, 0]"] 70["Segment<br>[1306, 1344, 0]"]
71["Segment<br>[1336, 1374, 0]"] 71["Segment<br>[1306, 1344, 0]"]
72["Segment<br>[1336, 1374, 0]"] 72["Segment<br>[1306, 1344, 0]"]
73["Segment<br>[1336, 1374, 0]"] 73["Segment<br>[1306, 1344, 0]"]
74["Segment<br>[1336, 1374, 0]"] 74["Segment<br>[1306, 1344, 0]"]
75["Segment<br>[1336, 1374, 0]"] 75["Segment<br>[1306, 1344, 0]"]
76["Segment<br>[1336, 1374, 0]"] 76["Segment<br>[1306, 1344, 0]"]
77["Segment<br>[1336, 1374, 0]"] 77["Segment<br>[1306, 1344, 0]"]
78["Segment<br>[1336, 1374, 0]"] 78["Segment<br>[1306, 1344, 0]"]
79["Segment<br>[1336, 1374, 0]"] 79["Segment<br>[1306, 1344, 0]"]
80["Segment<br>[1336, 1374, 0]"] 80["Segment<br>[1306, 1344, 0]"]
81["Segment<br>[1336, 1374, 0]"] 81["Segment<br>[1306, 1344, 0]"]
82["Segment<br>[1336, 1374, 0]"] 82["Segment<br>[1306, 1344, 0]"]
83["Segment<br>[1336, 1374, 0]"] 83["Segment<br>[1306, 1344, 0]"]
84["Segment<br>[1336, 1374, 0]"] 84["Segment<br>[1306, 1344, 0]"]
85["Segment<br>[1336, 1374, 0]"] 85["Segment<br>[1306, 1344, 0]"]
86["Segment<br>[1336, 1374, 0]"] 86["Segment<br>[1306, 1344, 0]"]
87["Segment<br>[1336, 1374, 0]"] 87["Segment<br>[1306, 1344, 0]"]
88["Segment<br>[1336, 1374, 0]"] 88["Segment<br>[1306, 1344, 0]"]
89["Segment<br>[1336, 1374, 0]"] 89["Segment<br>[1306, 1344, 0]"]
90["Segment<br>[1336, 1374, 0]"] 90["Segment<br>[1306, 1344, 0]"]
91["Segment<br>[1336, 1374, 0]"] 91["Segment<br>[1306, 1344, 0]"]
92["Segment<br>[1336, 1374, 0]"] 92["Segment<br>[1306, 1344, 0]"]
93["Segment<br>[1336, 1374, 0]"] 93["Segment<br>[1306, 1344, 0]"]
94["Segment<br>[1336, 1374, 0]"] 94["Segment<br>[1306, 1344, 0]"]
95["Segment<br>[1336, 1374, 0]"] 95["Segment<br>[1306, 1344, 0]"]
96["Segment<br>[1336, 1374, 0]"] 96["Segment<br>[1306, 1344, 0]"]
97["Segment<br>[1336, 1374, 0]"] 97["Segment<br>[1306, 1344, 0]"]
98["Segment<br>[1336, 1374, 0]"] 98["Segment<br>[1306, 1344, 0]"]
99["Segment<br>[1336, 1374, 0]"] 99["Segment<br>[1306, 1344, 0]"]
100["Segment<br>[1336, 1374, 0]"] 100["Segment<br>[1306, 1344, 0]"]
101["Segment<br>[1336, 1374, 0]"] 101["Segment<br>[1306, 1344, 0]"]
102["Segment<br>[1336, 1374, 0]"] 102["Segment<br>[1306, 1344, 0]"]
103["Segment<br>[1336, 1374, 0]"] 103["Segment<br>[1306, 1344, 0]"]
104["Segment<br>[1336, 1374, 0]"] 104["Segment<br>[1306, 1344, 0]"]
105["Segment<br>[1336, 1374, 0]"] 105["Segment<br>[1306, 1344, 0]"]
106["Segment<br>[1336, 1374, 0]"] 106["Segment<br>[1306, 1344, 0]"]
107["Segment<br>[1336, 1374, 0]"] 107["Segment<br>[1306, 1344, 0]"]
108["Segment<br>[1336, 1374, 0]"] 108["Segment<br>[1306, 1344, 0]"]
109["Segment<br>[1336, 1374, 0]"] 109["Segment<br>[1306, 1344, 0]"]
110["Segment<br>[1580, 1610, 0]"] 110["Segment<br>[1526, 1556, 0]"]
111["Segment<br>[1580, 1610, 0]"] 111["Segment<br>[1526, 1556, 0]"]
112["Segment<br>[1580, 1610, 0]"] 112["Segment<br>[1526, 1556, 0]"]
113["Segment<br>[1580, 1610, 0]"] 113["Segment<br>[1526, 1556, 0]"]
114["Segment<br>[1580, 1610, 0]"] 114["Segment<br>[1526, 1556, 0]"]
115["Segment<br>[1580, 1610, 0]"] 115["Segment<br>[1526, 1556, 0]"]
116["Segment<br>[1580, 1610, 0]"] 116["Segment<br>[1526, 1556, 0]"]
117["Segment<br>[1580, 1610, 0]"] 117["Segment<br>[1526, 1556, 0]"]
118["Segment<br>[1580, 1610, 0]"] 118["Segment<br>[1526, 1556, 0]"]
119["Segment<br>[1580, 1610, 0]"] 119["Segment<br>[1526, 1556, 0]"]
120["Segment<br>[1580, 1610, 0]"] 120["Segment<br>[1526, 1556, 0]"]
121["Segment<br>[1580, 1610, 0]"] 121["Segment<br>[1526, 1556, 0]"]
122["Segment<br>[1580, 1610, 0]"] 122["Segment<br>[1526, 1556, 0]"]
123["Segment<br>[1580, 1610, 0]"] 123["Segment<br>[1526, 1556, 0]"]
124["Segment<br>[1580, 1610, 0]"] 124["Segment<br>[1526, 1556, 0]"]
125["Segment<br>[1580, 1610, 0]"] 125["Segment<br>[1526, 1556, 0]"]
126["Segment<br>[1580, 1610, 0]"] 126["Segment<br>[1526, 1556, 0]"]
127["Segment<br>[1580, 1610, 0]"] 127["Segment<br>[1526, 1556, 0]"]
128["Segment<br>[1580, 1610, 0]"] 128["Segment<br>[1526, 1556, 0]"]
129["Segment<br>[1580, 1610, 0]"] 129["Segment<br>[1526, 1556, 0]"]
130["Segment<br>[1580, 1610, 0]"] 130["Segment<br>[1526, 1556, 0]"]
131["Segment<br>[1580, 1610, 0]"] 131["Segment<br>[1526, 1556, 0]"]
132["Segment<br>[1580, 1610, 0]"] 132["Segment<br>[1526, 1556, 0]"]
133["Segment<br>[1580, 1610, 0]"] 133["Segment<br>[1526, 1556, 0]"]
134["Segment<br>[1580, 1610, 0]"] 134["Segment<br>[1526, 1556, 0]"]
135["Segment<br>[1580, 1610, 0]"] 135["Segment<br>[1526, 1556, 0]"]
136["Segment<br>[1580, 1610, 0]"] 136["Segment<br>[1526, 1556, 0]"]
137["Segment<br>[1580, 1610, 0]"] 137["Segment<br>[1526, 1556, 0]"]
138["Segment<br>[1580, 1610, 0]"] 138["Segment<br>[1526, 1556, 0]"]
139["Segment<br>[1580, 1610, 0]"] 139["Segment<br>[1526, 1556, 0]"]
140["Segment<br>[1580, 1610, 0]"] 140["Segment<br>[1526, 1556, 0]"]
141["Segment<br>[1580, 1610, 0]"] 141["Segment<br>[1526, 1556, 0]"]
142["Segment<br>[1580, 1610, 0]"] 142["Segment<br>[1526, 1556, 0]"]
143["Segment<br>[1580, 1610, 0]"] 143["Segment<br>[1526, 1556, 0]"]
144["Segment<br>[1580, 1610, 0]"] 144["Segment<br>[1526, 1556, 0]"]
145["Segment<br>[1580, 1610, 0]"] 145["Segment<br>[1526, 1556, 0]"]
146["Segment<br>[1580, 1610, 0]"] 146["Segment<br>[1526, 1556, 0]"]
147["Segment<br>[1580, 1610, 0]"] 147["Segment<br>[1526, 1556, 0]"]
148["Segment<br>[1580, 1610, 0]"] 148["Segment<br>[1526, 1556, 0]"]
149["Segment<br>[1580, 1610, 0]"] 149["Segment<br>[1526, 1556, 0]"]
150["Segment<br>[1580, 1610, 0]"] 150["Segment<br>[1526, 1556, 0]"]
151["Segment<br>[1580, 1610, 0]"] 151["Segment<br>[1526, 1556, 0]"]
152["Segment<br>[1580, 1610, 0]"] 152["Segment<br>[1526, 1556, 0]"]
153["Segment<br>[1580, 1610, 0]"] 153["Segment<br>[1526, 1556, 0]"]
154["Segment<br>[1580, 1610, 0]"] 154["Segment<br>[1526, 1556, 0]"]
155["Segment<br>[1580, 1610, 0]"] 155["Segment<br>[1526, 1556, 0]"]
156["Segment<br>[1580, 1610, 0]"] 156["Segment<br>[1526, 1556, 0]"]
157["Segment<br>[1580, 1610, 0]"] 157["Segment<br>[1526, 1556, 0]"]
158["Segment<br>[1580, 1610, 0]"] 158["Segment<br>[1526, 1556, 0]"]
159["Segment<br>[1580, 1610, 0]"] 159["Segment<br>[1526, 1556, 0]"]
160["Segment<br>[1580, 1610, 0]"] 160["Segment<br>[1526, 1556, 0]"]
161["Segment<br>[1580, 1610, 0]"] 161["Segment<br>[1526, 1556, 0]"]
162["Segment<br>[1580, 1610, 0]"] 162["Segment<br>[1526, 1556, 0]"]
163["Segment<br>[1580, 1610, 0]"] 163["Segment<br>[1526, 1556, 0]"]
164["Segment<br>[1580, 1610, 0]"] 164["Segment<br>[1526, 1556, 0]"]
165["Segment<br>[1580, 1610, 0]"] 165["Segment<br>[1526, 1556, 0]"]
166["Segment<br>[1580, 1610, 0]"] 166["Segment<br>[1526, 1556, 0]"]
167["Segment<br>[1580, 1610, 0]"] 167["Segment<br>[1526, 1556, 0]"]
168["Segment<br>[1580, 1610, 0]"] 168["Segment<br>[1526, 1556, 0]"]
169["Segment<br>[1580, 1610, 0]"] 169["Segment<br>[1526, 1556, 0]"]
170["Segment<br>[1580, 1610, 0]"] 170["Segment<br>[1526, 1556, 0]"]
171["Segment<br>[1580, 1610, 0]"] 171["Segment<br>[1526, 1556, 0]"]
172["Segment<br>[1580, 1610, 0]"] 172["Segment<br>[1526, 1556, 0]"]
173["Segment<br>[1580, 1610, 0]"] 173["Segment<br>[1526, 1556, 0]"]
174["Segment<br>[1580, 1610, 0]"] 174["Segment<br>[1526, 1556, 0]"]
175["Segment<br>[1580, 1610, 0]"] 175["Segment<br>[1526, 1556, 0]"]
176["Segment<br>[1580, 1610, 0]"] 176["Segment<br>[1526, 1556, 0]"]
177["Segment<br>[1580, 1610, 0]"] 177["Segment<br>[1526, 1556, 0]"]
178["Segment<br>[1580, 1610, 0]"] 178["Segment<br>[1526, 1556, 0]"]
179["Segment<br>[1580, 1610, 0]"] 179["Segment<br>[1526, 1556, 0]"]
180["Segment<br>[1580, 1610, 0]"] 180["Segment<br>[1526, 1556, 0]"]
181["Segment<br>[1580, 1610, 0]"] 181["Segment<br>[1526, 1556, 0]"]
182["Segment<br>[1580, 1610, 0]"] 182["Segment<br>[1526, 1556, 0]"]
183["Segment<br>[1580, 1610, 0]"] 183["Segment<br>[1526, 1556, 0]"]
184["Segment<br>[1580, 1610, 0]"] 184["Segment<br>[1526, 1556, 0]"]
185["Segment<br>[1580, 1610, 0]"] 185["Segment<br>[1526, 1556, 0]"]
186["Segment<br>[1580, 1610, 0]"] 186["Segment<br>[1526, 1556, 0]"]
187["Segment<br>[1580, 1610, 0]"] 187["Segment<br>[1526, 1556, 0]"]
188["Segment<br>[1580, 1610, 0]"] 188["Segment<br>[1526, 1556, 0]"]
189["Segment<br>[1580, 1610, 0]"] 189["Segment<br>[1526, 1556, 0]"]
190["Segment<br>[1580, 1610, 0]"] 190["Segment<br>[1526, 1556, 0]"]
191["Segment<br>[1580, 1610, 0]"] 191["Segment<br>[1526, 1556, 0]"]
192["Segment<br>[1580, 1610, 0]"] 192["Segment<br>[1526, 1556, 0]"]
193["Segment<br>[1580, 1610, 0]"] 193["Segment<br>[1526, 1556, 0]"]
194["Segment<br>[1580, 1610, 0]"] 194["Segment<br>[1526, 1556, 0]"]
195["Segment<br>[1580, 1610, 0]"] 195["Segment<br>[1526, 1556, 0]"]
196["Segment<br>[1580, 1610, 0]"] 196["Segment<br>[1526, 1556, 0]"]
197["Segment<br>[1580, 1610, 0]"] 197["Segment<br>[1526, 1556, 0]"]
198["Segment<br>[1580, 1610, 0]"] 198["Segment<br>[1526, 1556, 0]"]
199["Segment<br>[1580, 1610, 0]"] 199["Segment<br>[1526, 1556, 0]"]
200["Segment<br>[1580, 1610, 0]"] 200["Segment<br>[1526, 1556, 0]"]
201["Segment<br>[1580, 1610, 0]"] 201["Segment<br>[1526, 1556, 0]"]
202["Segment<br>[1580, 1610, 0]"] 202["Segment<br>[1526, 1556, 0]"]
203["Segment<br>[1580, 1610, 0]"] 203["Segment<br>[1526, 1556, 0]"]
204["Segment<br>[1580, 1610, 0]"] 204["Segment<br>[1526, 1556, 0]"]
205["Segment<br>[1580, 1610, 0]"] 205["Segment<br>[1526, 1556, 0]"]
206["Segment<br>[1580, 1610, 0]"] 206["Segment<br>[1526, 1556, 0]"]
207["Segment<br>[1580, 1610, 0]"] 207["Segment<br>[1526, 1556, 0]"]
208["Segment<br>[1580, 1610, 0]"] 208["Segment<br>[1526, 1556, 0]"]
209["Segment<br>[1580, 1610, 0]"] 209["Segment<br>[1526, 1556, 0]"]
210["Segment<br>[1580, 1610, 0]"] 210["Segment<br>[1526, 1556, 0]"]
211["Segment<br>[1767, 1865, 0]"] 211["Segment<br>[1713, 1811, 0]"]
212["Segment<br>[1925, 1932, 0]"] 212["Segment<br>[1871, 1878, 0]"]
219[Solid2d] 219[Solid2d]
end end
subgraph path7 [Path] subgraph path7 [Path]
7["Path<br>[2419, 2510, 0]"] 7["Path<br>[2359, 2438, 0]"]
213["Segment<br>[2516, 2543, 0]"] 213["Segment<br>[2444, 2471, 0]"]
214["Segment<br>[2549, 2577, 0]"] 214["Segment<br>[2477, 2505, 0]"]
215["Segment<br>[2583, 2611, 0]"] 215["Segment<br>[2511, 2539, 0]"]
216["Segment<br>[2617, 2740, 0]"] 216["Segment<br>[2545, 2668, 0]"]
217["Segment<br>[2746, 2858, 0]"] 217["Segment<br>[2674, 2786, 0]"]
218["Segment<br>[2864, 2871, 0]"] 218["Segment<br>[2792, 2799, 0]"]
221[Solid2d] 221[Solid2d]
end end
1["Plane<br>[168, 185, 0]"] 1["Plane<br>[168, 185, 0]"]
2["Plane<br>[1098, 1115, 0]"] 2["Plane<br>[1068, 1085, 0]"]
3["Plane<br>[1641, 1658, 0]"] 3["Plane<br>[1587, 1604, 0]"]
4["StartSketchOnFace<br>[2382, 2413, 0]"] 4["StartSketchOnFace<br>[2322, 2353, 0]"]
222["Sweep Extrusion<br>[1177, 1205, 0]"] 222["Sweep Extrusion<br>[1147, 1175, 0]"]
223["Sweep Extrusion<br>[1938, 1966, 0]"] 223["Sweep Extrusion<br>[1884, 1912, 0]"]
224["Sweep Extrusion<br>[2877, 2906, 0]"] 224["Sweep Extrusion<br>[2805, 2834, 0]"]
225[Wall] 225[Wall]
226[Wall] 226[Wall]
227[Wall] 227[Wall]

View File

@ -485,15 +485,7 @@ 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"
}, },
@ -1047,15 +1039,7 @@ 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"
}, },
@ -1269,15 +1253,7 @@ 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"
}, },
@ -1530,15 +1506,7 @@ 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,15 +1730,7 @@ 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"
}, },
@ -2606,15 +2566,7 @@ 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"
}, },
@ -2670,15 +2622,7 @@ 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"
}, },
@ -2851,15 +2795,7 @@ 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"
}, },
@ -2915,15 +2851,7 @@ 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"
}, },
@ -4153,15 +4081,7 @@ 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"
}, },
@ -4324,15 +4244,7 @@ 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"
}, },
@ -4396,15 +4308,7 @@ 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 * math::cos(pressureAngle) baseDiameter = pitchDiameter * cos(pressureAngle)
tipDiameter = pitchDiameter + 2 * module tipDiameter = pitchDiameter + 2 * module
gearHeight = 3 gearHeight = 3
@ -28,21 +28,21 @@ rs = map([0..cmo], f = fn(i) {
// Calculate operating pressure angle // Calculate operating pressure angle
angles = map(rs, f = fn(r) { angles = map(rs, f = fn(r) {
return units::toDegrees( math::acos(baseDiameter / 2 / r)) return units::toDegrees( acos(baseDiameter / 2 / r))
}) })
// Calculate the involute function // Calculate the involute function
invas = map(angles, f = fn(a) { invas = map(angles, f = fn(a) {
return math::tan(units::toRadians(a)) - units::toRadians(a) return 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] * math::cos(invas[i]: number(rad)) return rs[i] * cos(invas[i]: number(rad))
}) })
ys = map([0..cmo], f = fn(i) { ys = map([0..cmo], f = fn(i) {
return rs[i] * math::sin(invas[i]: number(rad)) return rs[i] * 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] * math::cos(-toothAngle + units::toDegrees(math::atan(ys[i] / xs[i]))) x = rs[i] * cos(-toothAngle + units::toDegrees(atan(ys[i] / xs[i])))
y = -rs[i] * math::sin(-toothAngle + units::toDegrees(math::atan(ys[i] / xs[i]))) y = -rs[i] * sin(-toothAngle + units::toDegrees(atan(ys[i] / xs[i])))
return line(sg, endAbsolute = [x, y]) return line(sg, endAbsolute = [x, y])
} }
@ -89,11 +89,11 @@ keywayWidth = 0.250
keywayDepth = keywayWidth / 2 keywayDepth = keywayWidth / 2
holeDiam = 2 holeDiam = 2
holeRadius = 1 holeRadius = 1
startAngle = math::asin(keywayWidth / 2 / holeRadius) 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 * math::cos(startAngle), holeRadius * math::sin(startAngle)]) |> startProfile(at = [holeRadius * cos(startAngle), holeRadius * 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 * math::cos(pressureAngle) baseDiameter = pitchDiameter * cos(pressureAngle)
tipDiameter = pitchDiameter + 2 * module tipDiameter = pitchDiameter + 2 * module
gearHeight = 3 gearHeight = 3
@ -36,7 +36,7 @@ rs = map(
angles = map( angles = map(
rs, rs,
f = fn(r) { f = fn(r) {
return units::toDegrees( math::acos(baseDiameter / 2 / r)) return units::toDegrees( acos(baseDiameter / 2 / r))
}, },
) )
@ -44,7 +44,7 @@ angles = map(
invas = map( invas = map(
angles, angles,
f = fn(a) { f = fn(a) {
return math::tan(units::toRadians(a)) - units::toRadians(a) return 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] * math::cos(invas[i]: number(rad)) return rs[i] * cos(invas[i]: number(rad))
}, },
) )
ys = map( ys = map(
[0..cmo], [0..cmo],
f = fn(i) { f = fn(i) {
return rs[i] * math::sin(invas[i]: number(rad)) return rs[i] * sin(invas[i]: number(rad))
}, },
) )
@ -77,8 +77,8 @@ fn leftInvolute(i, sg) {
} }
fn rightInvolute(i, sg) { fn rightInvolute(i, sg) {
x = rs[i] * math::cos(-toothAngle + units::toDegrees(math::atan(ys[i] / xs[i]))) x = rs[i] * cos(-toothAngle + units::toDegrees(atan(ys[i] / xs[i])))
y = -rs[i] * math::sin(-toothAngle + units::toDegrees(math::atan(ys[i] / xs[i]))) y = -rs[i] * sin(-toothAngle + units::toDegrees(atan(ys[i] / xs[i])))
return line(sg, endAbsolute = [x, y]) return line(sg, endAbsolute = [x, y])
} }
@ -103,13 +103,13 @@ keywayWidth = 0.250
keywayDepth = keywayWidth / 2 keywayDepth = keywayWidth / 2
holeDiam = 2 holeDiam = 2
holeRadius = 1 holeRadius = 1
startAngle = math::asin(keywayWidth / 2 / holeRadius) 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 * math::cos(startAngle), holeRadius * cos(startAngle),
holeRadius * math::sin(startAngle) holeRadius * sin(startAngle)
]) ])
|> xLine(length = keywayDepth) |> xLine(length = keywayDepth)
|> yLine(length = -keywayWidth) |> yLine(length = -keywayWidth)

View File

@ -135,26 +135,26 @@ flowchart LR
98[Solid2d] 98[Solid2d]
end end
subgraph path28 [Path] subgraph path28 [Path]
28["Path<br>[1113, 1215, 11]"] 28["Path<br>[1113, 1203, 11]"]
95["Segment<br>[2205, 2212, 11]"] 95["Segment<br>[2133, 2140, 11]"]
97[Solid2d] 97[Solid2d]
end end
subgraph path29 [Path] subgraph path29 [Path]
29["Path<br>[1113, 1215, 11]"] 29["Path<br>[1113, 1203, 11]"]
86["Segment<br>[1223, 1292, 11]"] 86["Segment<br>[1211, 1280, 11]"]
88["Segment<br>[1300, 1624, 11]"] 88["Segment<br>[1288, 1588, 11]"]
91["Segment<br>[1632, 1958, 11]"] 91["Segment<br>[1596, 1898, 11]"]
93["Segment<br>[1966, 2197, 11]"] 93["Segment<br>[1906, 2125, 11]"]
96["Segment<br>[2205, 2212, 11]"] 96["Segment<br>[2133, 2140, 11]"]
100[Solid2d] 100[Solid2d]
end end
subgraph path30 [Path] subgraph path30 [Path]
30["Path<br>[1113, 1215, 11]"] 30["Path<br>[1113, 1203, 11]"]
87["Segment<br>[1223, 1292, 11]"] 87["Segment<br>[1211, 1280, 11]"]
89["Segment<br>[1300, 1624, 11]"] 89["Segment<br>[1288, 1588, 11]"]
90["Segment<br>[1632, 1958, 11]"] 90["Segment<br>[1596, 1898, 11]"]
92["Segment<br>[1966, 2197, 11]"] 92["Segment<br>[1906, 2125, 11]"]
94["Segment<br>[2205, 2212, 11]"] 94["Segment<br>[2133, 2140, 11]"]
109[Solid2d] 109[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>[2331, 2451, 11]"] 132["Sweep Loft<br>[2259, 2379, 11]"]
133[Wall] 133[Wall]
134[Wall] 134[Wall]
135[Wall] 135[Wall]
@ -313,14 +313,14 @@ flowchart LR
265["SweepEdge Adjacent"] 265["SweepEdge Adjacent"]
266["SweepEdge Adjacent"] 266["SweepEdge Adjacent"]
267["SweepEdge Adjacent"] 267["SweepEdge Adjacent"]
268["EdgeCut Fillet<br>[5113, 5630, 8]"] 268["EdgeCut Fillet<br>[5113, 5624, 8]"]
269["EdgeCut Fillet<br>[5113, 5630, 8]"] 269["EdgeCut Fillet<br>[5113, 5624, 8]"]
270["EdgeCut Fillet<br>[5113, 5630, 8]"] 270["EdgeCut Fillet<br>[5113, 5624, 8]"]
271["EdgeCut Fillet<br>[5113, 5630, 8]"] 271["EdgeCut Fillet<br>[5113, 5624, 8]"]
272["EdgeCut Fillet<br>[5113, 5630, 8]"] 272["EdgeCut Fillet<br>[5113, 5624, 8]"]
273["EdgeCut Fillet<br>[5113, 5630, 8]"] 273["EdgeCut Fillet<br>[5113, 5624, 8]"]
274["EdgeCut Fillet<br>[5113, 5630, 8]"] 274["EdgeCut Fillet<br>[5113, 5624, 8]"]
275["EdgeCut Fillet<br>[5113, 5630, 8]"] 275["EdgeCut Fillet<br>[5113, 5624, 8]"]
276["EdgeCut Fillet<br>[394, 452, 10]"] 276["EdgeCut Fillet<br>[394, 452, 10]"]
277["EdgeCut Fillet<br>[394, 452, 10]"] 277["EdgeCut Fillet<br>[394, 452, 10]"]
1 --- 8 1 --- 8
@ -605,19 +605,19 @@ flowchart LR
84 --- 147 84 --- 147
84 --- 233 84 --- 233
87 --- 169 87 --- 169
87 x--> 184 87 x--> 183
87 --- 212 87 --- 212
87 --- 257 87 --- 257
89 --- 168 89 --- 168
89 x--> 184 89 x--> 183
89 --- 214 89 --- 214
89 --- 258 89 --- 258
90 --- 167 90 --- 167
90 x--> 184 90 x--> 183
90 --- 211 90 --- 211
90 --- 256 90 --- 256
92 --- 166 92 --- 166
92 x--> 184 92 x--> 183
92 --- 213 92 --- 213
92 --- 259 92 --- 259
119 --- 162 119 --- 162
@ -865,10 +865,10 @@ flowchart LR
221 <--x 181 221 <--x 181
222 <--x 181 222 <--x 181
193 <--x 182 193 <--x 182
211 <--x 183 211 <--x 184
212 <--x 183 212 <--x 184
213 <--x 183 213 <--x 184
214 <--x 183 214 <--x 184
203 <--x 186 203 <--x 186
204 <--x 186 204 <--x 186
205 <--x 186 205 <--x 186

View File

@ -17,40 +17,40 @@ flowchart LR
30[Solid2d] 30[Solid2d]
end end
subgraph path11 [Path] subgraph path11 [Path]
11["Path<br>[1484, 1612, 0]"] 11["Path<br>[1484, 1606, 0]"]
19["Segment<br>[1618, 1678, 0]"] 19["Segment<br>[1612, 1672, 0]"]
20["Segment<br>[1684, 1715, 0]"] 20["Segment<br>[1678, 1709, 0]"]
21["Segment<br>[1721, 1749, 0]"] 21["Segment<br>[1715, 1743, 0]"]
22["Segment<br>[1755, 1762, 0]"] 22["Segment<br>[1749, 1756, 0]"]
27[Solid2d] 27[Solid2d]
end end
subgraph path12 [Path] subgraph path12 [Path]
12["Path<br>[2096, 2238, 0]"] 12["Path<br>[2090, 2232, 0]"]
23["Segment<br>[2096, 2238, 0]"] 23["Segment<br>[2090, 2232, 0]"]
28[Solid2d] 28[Solid2d]
end end
subgraph path13 [Path] subgraph path13 [Path]
13["Path<br>[2632, 2685, 0]"] 13["Path<br>[2626, 2679, 0]"]
24["Segment<br>[2632, 2685, 0]"] 24["Segment<br>[2626, 2679, 0]"]
26[Solid2d] 26[Solid2d]
end end
subgraph path14 [Path] subgraph path14 [Path]
14["Path<br>[2709, 2783, 0]"] 14["Path<br>[2703, 2777, 0]"]
25["Segment<br>[2709, 2783, 0]"] 25["Segment<br>[2703, 2777, 0]"]
29[Solid2d] 29[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>[2073, 2090, 0]"] 4["Plane<br>[2067, 2084, 0]"]
5["Plane<br>[2578, 2625, 0]"] 5["Plane<br>[2572, 2619, 0]"]
6["StartSketchOnPlane<br>[2564, 2626, 0]"] 6["StartSketchOnPlane<br>[2558, 2620, 0]"]
7["StartSketchOnPlane<br>[596, 658, 0]"] 7["StartSketchOnPlane<br>[596, 658, 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>[1804, 1834, 0]"] 35["Sweep Revolve<br>[1798, 1828, 0]"]
36["Sweep Revolve<br>[2281, 2332, 0]"] 36["Sweep Revolve<br>[2275, 2326, 0]"]
37["Sweep Extrusion<br>[2800, 2853, 0]"] 37["Sweep Extrusion<br>[2794, 2847, 0]"]
38[Wall] 38[Wall]
39[Wall] 39[Wall]
40[Wall] 40[Wall]

View File

@ -1876,15 +1876,7 @@ 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": "math::sin", "name": "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, 858, 0]"] 7["Path<br>[644, 834, 0]"]
13["Segment<br>[868, 952, 0]"] 13["Segment<br>[844, 928, 0]"]
16["Segment<br>[962, 1014, 0]"] 16["Segment<br>[938, 990, 0]"]
17["Segment<br>[1024, 1071, 0]"] 17["Segment<br>[1000, 1047, 0]"]
19["Segment<br>[1081, 1133, 0]"] 19["Segment<br>[1057, 1109, 0]"]
21["Segment<br>[1143, 1190, 0]"] 21["Segment<br>[1119, 1166, 0]"]
23["Segment<br>[1200, 1265, 0]"] 23["Segment<br>[1176, 1241, 0]"]
27["Segment<br>[1275, 1283, 0]"] 27["Segment<br>[1251, 1259, 0]"]
31[Solid2d] 31[Solid2d]
end end
subgraph path8 [Path] subgraph path8 [Path]
8["Path<br>[644, 858, 0]"] 8["Path<br>[644, 834, 0]"]
26["Segment<br>[1275, 1283, 0]"] 26["Segment<br>[1251, 1259, 0]"]
32[Solid2d] 32[Solid2d]
end end
subgraph path9 [Path] subgraph path9 [Path]
9["Path<br>[644, 858, 0]"] 9["Path<br>[644, 834, 0]"]
14["Segment<br>[868, 952, 0]"] 14["Segment<br>[844, 928, 0]"]
15["Segment<br>[962, 1014, 0]"] 15["Segment<br>[938, 990, 0]"]
18["Segment<br>[1024, 1071, 0]"] 18["Segment<br>[1000, 1047, 0]"]
20["Segment<br>[1081, 1133, 0]"] 20["Segment<br>[1057, 1109, 0]"]
22["Segment<br>[1143, 1190, 0]"] 22["Segment<br>[1119, 1166, 0]"]
24["Segment<br>[1200, 1265, 0]"] 24["Segment<br>[1176, 1241, 0]"]
25["Segment<br>[1275, 1283, 0]"] 25["Segment<br>[1251, 1259, 0]"]
36[Solid2d] 36[Solid2d]
end end
subgraph path10 [Path] subgraph path10 [Path]
10["Path<br>[1311, 1361, 0]"] 10["Path<br>[1287, 1337, 0]"]
29["Segment<br>[1311, 1361, 0]"] 29["Segment<br>[1287, 1337, 0]"]
33[Solid2d] 33[Solid2d]
end end
subgraph path11 [Path] subgraph path11 [Path]
11["Path<br>[1311, 1361, 0]"] 11["Path<br>[1287, 1337, 0]"]
30["Segment<br>[1311, 1361, 0]"] 30["Segment<br>[1287, 1337, 0]"]
34[Solid2d] 34[Solid2d]
end end
subgraph path12 [Path] subgraph path12 [Path]
12["Path<br>[1311, 1361, 0]"] 12["Path<br>[1287, 1337, 0]"]
28["Segment<br>[1311, 1361, 0]"] 28["Segment<br>[1287, 1337, 0]"]
35[Solid2d] 35[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>[1488, 1577, 0]"] 37["Sweep Loft<br>[1464, 1553, 0]"]
38[Wall] 38[Wall]
39[Wall] 39[Wall]
40[Wall] 40[Wall]

View File

@ -311,15 +311,7 @@ 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"
}, },
@ -392,15 +384,7 @@ 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"
}, },
@ -491,15 +475,7 @@ 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"
}, },
@ -572,15 +548,7 @@ 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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}

View File

@ -608,7 +608,7 @@ flowchart LR
83 --- 246 83 --- 246
83 --- 289 83 --- 289
90 --- 159 90 --- 159
90 x--> 192 90 x--> 193
90 --- 226 90 --- 226
90 --- 271 90 --- 271
104 --- 151 104 --- 151
@ -910,7 +910,7 @@ flowchart LR
211 <--x 191 211 <--x 191
212 <--x 191 212 <--x 191
213 <--x 191 213 <--x 191
226 <--x 193 226 <--x 192
239 <--x 195 239 <--x 195
240 <--x 195 240 <--x 195
241 <--x 195 241 <--x 195

View File

@ -1,152 +1,152 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path10 [Path] subgraph path10 [Path]
10["Path<br>[771, 806, 0]"] 10["Path<br>[735, 770, 0]"]
33["Segment<br>[814, 840, 0]"] 33["Segment<br>[778, 804, 0]"]
37["Segment<br>[848, 909, 0]"] 37["Segment<br>[812, 873, 0]"]
42["Segment<br>[917, 976, 0]"] 42["Segment<br>[881, 940, 0]"]
43["Segment<br>[984, 1044, 0]"] 43["Segment<br>[948, 1008, 0]"]
47["Segment<br>[1052, 1111, 0]"] 47["Segment<br>[1016, 1075, 0]"]
end end
subgraph path11 [Path] subgraph path11 [Path]
11["Path<br>[771, 806, 0]"] 11["Path<br>[735, 770, 0]"]
34["Segment<br>[814, 840, 0]"] 34["Segment<br>[778, 804, 0]"]
35["Segment<br>[848, 909, 0]"] 35["Segment<br>[812, 873, 0]"]
41["Segment<br>[917, 976, 0]"] 41["Segment<br>[881, 940, 0]"]
45["Segment<br>[984, 1044, 0]"] 45["Segment<br>[948, 1008, 0]"]
48["Segment<br>[1052, 1111, 0]"] 48["Segment<br>[1016, 1075, 0]"]
end end
subgraph path12 [Path] subgraph path12 [Path]
12["Path<br>[771, 806, 0]"] 12["Path<br>[735, 770, 0]"]
32["Segment<br>[814, 840, 0]"] 32["Segment<br>[778, 804, 0]"]
36["Segment<br>[848, 909, 0]"] 36["Segment<br>[812, 873, 0]"]
40["Segment<br>[917, 976, 0]"] 40["Segment<br>[881, 940, 0]"]
46["Segment<br>[984, 1044, 0]"] 46["Segment<br>[948, 1008, 0]"]
50["Segment<br>[1052, 1111, 0]"] 50["Segment<br>[1016, 1075, 0]"]
end end
subgraph path13 [Path] subgraph path13 [Path]
13["Path<br>[771, 806, 0]"] 13["Path<br>[735, 770, 0]"]
31["Segment<br>[814, 840, 0]"] 31["Segment<br>[778, 804, 0]"]
38["Segment<br>[848, 909, 0]"] 38["Segment<br>[812, 873, 0]"]
39["Segment<br>[917, 976, 0]"] 39["Segment<br>[881, 940, 0]"]
44["Segment<br>[984, 1044, 0]"] 44["Segment<br>[948, 1008, 0]"]
49["Segment<br>[1052, 1111, 0]"] 49["Segment<br>[1016, 1075, 0]"]
end end
subgraph path14 [Path] subgraph path14 [Path]
14["Path<br>[1213, 1275, 0]"] 14["Path<br>[1177, 1239, 0]"]
54["Segment<br>[1213, 1275, 0]"] 54["Segment<br>[1177, 1239, 0]"]
88[Solid2d] 88[Solid2d]
end end
subgraph path15 [Path] subgraph path15 [Path]
15["Path<br>[1213, 1275, 0]"] 15["Path<br>[1177, 1239, 0]"]
51["Segment<br>[1213, 1275, 0]"] 51["Segment<br>[1177, 1239, 0]"]
89[Solid2d] 89[Solid2d]
end end
subgraph path16 [Path] subgraph path16 [Path]
16["Path<br>[1213, 1275, 0]"] 16["Path<br>[1177, 1239, 0]"]
53["Segment<br>[1213, 1275, 0]"] 53["Segment<br>[1177, 1239, 0]"]
93[Solid2d] 93[Solid2d]
end end
subgraph path17 [Path] subgraph path17 [Path]
17["Path<br>[1213, 1275, 0]"] 17["Path<br>[1177, 1239, 0]"]
52["Segment<br>[1213, 1275, 0]"] 52["Segment<br>[1177, 1239, 0]"]
95[Solid2d] 95[Solid2d]
end end
subgraph path18 [Path] subgraph path18 [Path]
18["Path<br>[1301, 1379, 0]"] 18["Path<br>[1265, 1343, 0]"]
58["Segment<br>[1301, 1379, 0]"] 58["Segment<br>[1265, 1343, 0]"]
84[Solid2d] 84[Solid2d]
end end
subgraph path19 [Path] subgraph path19 [Path]
19["Path<br>[1301, 1379, 0]"] 19["Path<br>[1265, 1343, 0]"]
55["Segment<br>[1301, 1379, 0]"] 55["Segment<br>[1265, 1343, 0]"]
91[Solid2d] 91[Solid2d]
end end
subgraph path20 [Path] subgraph path20 [Path]
20["Path<br>[1301, 1379, 0]"] 20["Path<br>[1265, 1343, 0]"]
56["Segment<br>[1301, 1379, 0]"] 56["Segment<br>[1265, 1343, 0]"]
92[Solid2d] 92[Solid2d]
end end
subgraph path21 [Path] subgraph path21 [Path]
21["Path<br>[1301, 1379, 0]"] 21["Path<br>[1265, 1343, 0]"]
57["Segment<br>[1301, 1379, 0]"] 57["Segment<br>[1265, 1343, 0]"]
100[Solid2d] 100[Solid2d]
end end
subgraph path22 [Path] subgraph path22 [Path]
22["Path<br>[1703, 1738, 0]"] 22["Path<br>[1667, 1702, 0]"]
59["Segment<br>[1744, 1778, 0]"] 59["Segment<br>[1708, 1742, 0]"]
60["Segment<br>[1784, 1823, 0]"] 60["Segment<br>[1748, 1787, 0]"]
61["Segment<br>[1829, 1867, 0]"] 61["Segment<br>[1793, 1831, 0]"]
62["Segment<br>[1873, 1912, 0]"] 62["Segment<br>[1837, 1876, 0]"]
63["Segment<br>[1918, 1952, 0]"] 63["Segment<br>[1882, 1916, 0]"]
64["Segment<br>[1958, 2001, 0]"] 64["Segment<br>[1922, 1965, 0]"]
65["Segment<br>[2007, 2040, 0]"] 65["Segment<br>[1971, 2004, 0]"]
66["Segment<br>[2046, 2085, 0]"] 66["Segment<br>[2010, 2049, 0]"]
67["Segment<br>[2091, 2130, 0]"] 67["Segment<br>[2055, 2094, 0]"]
68["Segment<br>[2136, 2175, 0]"] 68["Segment<br>[2100, 2139, 0]"]
69["Segment<br>[2181, 2224, 0]"] 69["Segment<br>[2145, 2188, 0]"]
70["Segment<br>[2230, 2281, 0]"] 70["Segment<br>[2194, 2245, 0]"]
71["Segment<br>[2287, 2331, 0]"] 71["Segment<br>[2251, 2295, 0]"]
72["Segment<br>[2337, 2376, 0]"] 72["Segment<br>[2301, 2340, 0]"]
73["Segment<br>[2382, 2420, 0]"] 73["Segment<br>[2346, 2384, 0]"]
74["Segment<br>[2426, 2491, 0]"] 74["Segment<br>[2390, 2455, 0]"]
75["Segment<br>[2497, 2504, 0]"] 75["Segment<br>[2461, 2468, 0]"]
96[Solid2d] 96[Solid2d]
end end
subgraph path23 [Path] subgraph path23 [Path]
23["Path<br>[2589, 2662, 0]"] 23["Path<br>[2553, 2626, 0]"]
76["Segment<br>[2589, 2662, 0]"] 76["Segment<br>[2553, 2626, 0]"]
86[Solid2d] 86[Solid2d]
end end
subgraph path24 [Path] subgraph path24 [Path]
24["Path<br>[2687, 2760, 0]"] 24["Path<br>[2651, 2724, 0]"]
77["Segment<br>[2687, 2760, 0]"] 77["Segment<br>[2651, 2724, 0]"]
98[Solid2d] 98[Solid2d]
end end
subgraph path25 [Path] subgraph path25 [Path]
25["Path<br>[2785, 2858, 0]"] 25["Path<br>[2749, 2822, 0]"]
78["Segment<br>[2785, 2858, 0]"] 78["Segment<br>[2749, 2822, 0]"]
85[Solid2d] 85[Solid2d]
end end
subgraph path26 [Path] subgraph path26 [Path]
26["Path<br>[2883, 2956, 0]"] 26["Path<br>[2847, 2920, 0]"]
79["Segment<br>[2883, 2956, 0]"] 79["Segment<br>[2847, 2920, 0]"]
94[Solid2d] 94[Solid2d]
end end
subgraph path27 [Path] subgraph path27 [Path]
27["Path<br>[3020, 3159, 0]"] 27["Path<br>[2984, 3123, 0]"]
80["Segment<br>[3020, 3159, 0]"] 80["Segment<br>[2984, 3123, 0]"]
87[Solid2d] 87[Solid2d]
end end
subgraph path28 [Path] subgraph path28 [Path]
28["Path<br>[3184, 3321, 0]"] 28["Path<br>[3148, 3285, 0]"]
81["Segment<br>[3184, 3321, 0]"] 81["Segment<br>[3148, 3285, 0]"]
99[Solid2d] 99[Solid2d]
end end
subgraph path29 [Path] subgraph path29 [Path]
29["Path<br>[3346, 3493, 0]"] 29["Path<br>[3310, 3457, 0]"]
82["Segment<br>[3346, 3493, 0]"] 82["Segment<br>[3310, 3457, 0]"]
90[Solid2d] 90[Solid2d]
end end
subgraph path30 [Path] subgraph path30 [Path]
30["Path<br>[3518, 3664, 0]"] 30["Path<br>[3482, 3628, 0]"]
83["Segment<br>[3518, 3664, 0]"] 83["Segment<br>[3482, 3628, 0]"]
97[Solid2d] 97[Solid2d]
end end
1["Plane<br>[738, 763, 0]"] 1["Plane<br>[702, 727, 0]"]
2["Plane<br>[738, 763, 0]"] 2["Plane<br>[702, 727, 0]"]
3["Plane<br>[738, 763, 0]"] 3["Plane<br>[702, 727, 0]"]
4["Plane<br>[738, 763, 0]"] 4["Plane<br>[702, 727, 0]"]
5["Plane<br>[1188, 1205, 0]"] 5["Plane<br>[1152, 1169, 0]"]
6["Plane<br>[1188, 1205, 0]"] 6["Plane<br>[1152, 1169, 0]"]
7["Plane<br>[1188, 1205, 0]"] 7["Plane<br>[1152, 1169, 0]"]
8["Plane<br>[1188, 1205, 0]"] 8["Plane<br>[1152, 1169, 0]"]
9["Plane<br>[1680, 1697, 0]"] 9["Plane<br>[1644, 1661, 0]"]
101["Sweep Sweep<br>[1388, 1411, 0]"] 101["Sweep Sweep<br>[1352, 1375, 0]"]
102["Sweep Sweep<br>[1388, 1411, 0]"] 102["Sweep Sweep<br>[1352, 1375, 0]"]
103["Sweep Sweep<br>[1388, 1411, 0]"] 103["Sweep Sweep<br>[1352, 1375, 0]"]
104["Sweep Sweep<br>[1388, 1411, 0]"] 104["Sweep Sweep<br>[1352, 1375, 0]"]
105["Sweep Extrusion<br>[3717, 3746, 0]"] 105["Sweep Extrusion<br>[3681, 3710, 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>[3752, 3886, 0]"] 176["EdgeCut Fillet<br>[3716, 3850, 0]"]
177["EdgeCut Fillet<br>[3752, 3886, 0]"] 177["EdgeCut Fillet<br>[3716, 3850, 0]"]
178["EdgeCut Fillet<br>[3892, 4026, 0]"] 178["EdgeCut Fillet<br>[3856, 3990, 0]"]
179["EdgeCut Fillet<br>[3892, 4026, 0]"] 179["EdgeCut Fillet<br>[3856, 3990, 0]"]
1 --- 11 1 --- 11
2 --- 10 2 --- 10
3 --- 13 3 --- 13

View File

@ -346,15 +346,7 @@ 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"
}, },
@ -402,15 +394,7 @@ 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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}

View File

@ -28,9 +28,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 1771, "commentStart": 1735,
"end": 1777, "end": 1741,
"start": 1771, "start": 1735,
"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": 1945, "commentStart": 1909,
"end": 1951, "end": 1915,
"start": 1945, "start": 1909,
"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": 1994, "commentStart": 1958,
"end": 2000, "end": 1964,
"start": 1994, "start": 1958,
"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": 2033, "commentStart": 1997,
"end": 2039, "end": 2003,
"start": 2033, "start": 1997,
"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": 2217, "commentStart": 2181,
"end": 2223, "end": 2187,
"start": 2217, "start": 2181,
"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": 2274, "commentStart": 2238,
"end": 2280, "end": 2244,
"start": 2274, "start": 2238,
"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": 2324, "commentStart": 2288,
"end": 2330, "end": 2294,
"start": 2324, "start": 2288,
"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": 1771, "commentStart": 1735,
"end": 1777, "end": 1741,
"start": 1771, "start": 1735,
"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": 1945, "commentStart": 1909,
"end": 1951, "end": 1915,
"start": 1945, "start": 1909,
"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": 1994, "commentStart": 1958,
"end": 2000, "end": 1964,
"start": 1994, "start": 1958,
"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": 2033, "commentStart": 1997,
"end": 2039, "end": 2003,
"start": 2033, "start": 1997,
"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": 2217, "commentStart": 2181,
"end": 2223, "end": 2187,
"start": 2217, "start": 2181,
"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": 2274, "commentStart": 2238,
"end": 2280, "end": 2244,
"start": 2274, "start": 2238,
"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": 2324, "commentStart": 2288,
"end": 2330, "end": 2294,
"start": 2324, "start": 2288,
"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>[1029, 1073, 0]"] 6["Path<br>[1005, 1049, 0]"]
16["Segment<br>[1081, 1121, 0]"] 16["Segment<br>[1057, 1097, 0]"]
17["Segment<br>[1129, 1175, 0]"] 17["Segment<br>[1105, 1151, 0]"]
22["Segment<br>[1183, 1224, 0]"] 22["Segment<br>[1159, 1200, 0]"]
25["Segment<br>[1232, 1297, 0]"] 25["Segment<br>[1208, 1273, 0]"]
29["Segment<br>[1305, 1312, 0]"] 29["Segment<br>[1281, 1288, 0]"]
56[Solid2d] 56[Solid2d]
end end
subgraph path7 [Path] subgraph path7 [Path]
7["Path<br>[1029, 1073, 0]"] 7["Path<br>[1005, 1049, 0]"]
15["Segment<br>[1081, 1121, 0]"] 15["Segment<br>[1057, 1097, 0]"]
19["Segment<br>[1129, 1175, 0]"] 19["Segment<br>[1105, 1151, 0]"]
24["Segment<br>[1183, 1224, 0]"] 24["Segment<br>[1159, 1200, 0]"]
26["Segment<br>[1232, 1297, 0]"] 26["Segment<br>[1208, 1273, 0]"]
30["Segment<br>[1305, 1312, 0]"] 30["Segment<br>[1281, 1288, 0]"]
58[Solid2d] 58[Solid2d]
end end
subgraph path8 [Path] subgraph path8 [Path]
8["Path<br>[1029, 1073, 0]"] 8["Path<br>[1005, 1049, 0]"]
13["Segment<br>[1081, 1121, 0]"] 13["Segment<br>[1057, 1097, 0]"]
20["Segment<br>[1129, 1175, 0]"] 20["Segment<br>[1105, 1151, 0]"]
21["Segment<br>[1183, 1224, 0]"] 21["Segment<br>[1159, 1200, 0]"]
27["Segment<br>[1232, 1297, 0]"] 27["Segment<br>[1208, 1273, 0]"]
32["Segment<br>[1305, 1312, 0]"] 32["Segment<br>[1281, 1288, 0]"]
59[Solid2d] 59[Solid2d]
end end
subgraph path9 [Path] subgraph path9 [Path]
9["Path<br>[1029, 1073, 0]"] 9["Path<br>[1005, 1049, 0]"]
14["Segment<br>[1081, 1121, 0]"] 14["Segment<br>[1057, 1097, 0]"]
18["Segment<br>[1129, 1175, 0]"] 18["Segment<br>[1105, 1151, 0]"]
23["Segment<br>[1183, 1224, 0]"] 23["Segment<br>[1159, 1200, 0]"]
28["Segment<br>[1232, 1297, 0]"] 28["Segment<br>[1208, 1273, 0]"]
31["Segment<br>[1305, 1312, 0]"] 31["Segment<br>[1281, 1288, 0]"]
60[Solid2d] 60[Solid2d]
end end
subgraph path10 [Path] subgraph path10 [Path]
10["Path<br>[1474, 1531, 0]"] 10["Path<br>[1450, 1507, 0]"]
33["Segment<br>[1537, 1569, 0]"] 33["Segment<br>[1513, 1545, 0]"]
34["Segment<br>[1575, 1612, 0]"] 34["Segment<br>[1551, 1588, 0]"]
35["Segment<br>[1618, 1651, 0]"] 35["Segment<br>[1594, 1627, 0]"]
36["Segment<br>[1657, 1724, 0]"] 36["Segment<br>[1633, 1700, 0]"]
37["Segment<br>[1730, 1737, 0]"] 37["Segment<br>[1706, 1713, 0]"]
57[Solid2d] 57[Solid2d]
end end
subgraph path11 [Path] subgraph path11 [Path]
11["Path<br>[2768, 2824, 0]"] 11["Path<br>[2744, 2800, 0]"]
38["Segment<br>[2830, 2889, 0]"] 38["Segment<br>[2806, 2865, 0]"]
39["Segment<br>[2895, 2930, 0]"] 39["Segment<br>[2871, 2906, 0]"]
40["Segment<br>[2936, 2969, 0]"] 40["Segment<br>[2912, 2945, 0]"]
41["Segment<br>[2975, 3034, 0]"] 41["Segment<br>[2951, 3010, 0]"]
42["Segment<br>[3040, 3076, 0]"] 42["Segment<br>[3016, 3052, 0]"]
43["Segment<br>[3082, 3106, 0]"] 43["Segment<br>[3058, 3082, 0]"]
44["Segment<br>[3112, 3119, 0]"] 44["Segment<br>[3088, 3095, 0]"]
54[Solid2d] 54[Solid2d]
end end
subgraph path12 [Path] subgraph path12 [Path]
12["Path<br>[3714, 3764, 0]"] 12["Path<br>[3690, 3740, 0]"]
45["Segment<br>[3770, 3820, 0]"] 45["Segment<br>[3746, 3796, 0]"]
46["Segment<br>[3826, 3892, 0]"] 46["Segment<br>[3802, 3868, 0]"]
47["Segment<br>[3898, 3949, 0]"] 47["Segment<br>[3874, 3925, 0]"]
48["Segment<br>[3955, 4020, 0]"] 48["Segment<br>[3931, 3996, 0]"]
49["Segment<br>[4026, 4079, 0]"] 49["Segment<br>[4002, 4055, 0]"]
50["Segment<br>[4085, 4152, 0]"] 50["Segment<br>[4061, 4128, 0]"]
51["Segment<br>[4158, 4232, 0]"] 51["Segment<br>[4134, 4208, 0]"]
52["Segment<br>[4238, 4306, 0]"] 52["Segment<br>[4214, 4282, 0]"]
53["Segment<br>[4312, 4319, 0]"] 53["Segment<br>[4288, 4295, 0]"]
55[Solid2d] 55[Solid2d]
end end
1["Plane<br>[1403, 1420, 0]"] 1["Plane<br>[1379, 1396, 0]"]
2["Plane<br>[2665, 2707, 0]"] 2["Plane<br>[2641, 2683, 0]"]
3["Plane<br>[3640, 3666, 0]"] 3["Plane<br>[3616, 3642, 0]"]
4["StartSketchOnPlane<br>[2651, 2708, 0]"] 4["StartSketchOnPlane<br>[2627, 2684, 0]"]
5["StartSketchOnFace<br>[4476, 4515, 0]"] 5["StartSketchOnFace<br>[4452, 4491, 0]"]
61["Sweep Extrusion<br>[2342, 2392, 0]"] 61["Sweep Extrusion<br>[2318, 2368, 0]"]
62["Sweep Extrusion<br>[3153, 3197, 0]"] 62["Sweep Extrusion<br>[3129, 3173, 0]"]
63["Sweep Extrusion<br>[4375, 4417, 0]"] 63["Sweep Extrusion<br>[4351, 4393, 0]"]
64["Sweep Extrusion<br>[4652, 4702, 0]"] 64["Sweep Extrusion<br>[4628, 4678, 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>[2429, 2570, 0]"] 143["EdgeCut Fillet<br>[2405, 2546, 0]"]
144["EdgeCut Fillet<br>[2429, 2570, 0]"] 144["EdgeCut Fillet<br>[2405, 2546, 0]"]
145["EdgeCut Fillet<br>[3240, 3371, 0]"] 145["EdgeCut Fillet<br>[3216, 3347, 0]"]
146["EdgeCut Fillet<br>[3240, 3371, 0]"] 146["EdgeCut Fillet<br>[3216, 3347, 0]"]
1 --- 6 1 --- 6
1 --- 8 1 --- 8
1 --- 9 1 --- 9

View File

@ -665,15 +665,7 @@ description: Result of parsing food-service-spatula.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"
}, },
@ -883,15 +875,7 @@ description: Result of parsing food-service-spatula.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"
}, },
@ -1499,15 +1483,7 @@ description: Result of parsing food-service-spatula.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"
}, },
@ -1668,15 +1644,7 @@ description: Result of parsing food-service-spatula.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

@ -40,7 +40,7 @@ description: Operations executed food-service-spatula.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "math::atan", "name": "atan",
"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": "math::atan", "name": "atan",
"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": "math::atan", "name": "atan",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -117,7 +117,7 @@ description: Operations executed food-service-spatula.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "math::cos", "name": "cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -128,7 +128,7 @@ description: Operations executed food-service-spatula.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "math::cos", "name": "cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -139,7 +139,7 @@ description: Operations executed food-service-spatula.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "math::cos", "name": "cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -150,7 +150,7 @@ description: Operations executed food-service-spatula.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "math::cos", "name": "cos",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -161,7 +161,7 @@ description: Operations executed food-service-spatula.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "math::sin", "name": "sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -172,7 +172,7 @@ description: Operations executed food-service-spatula.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "math::sin", "name": "sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -183,7 +183,7 @@ description: Operations executed food-service-spatula.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "math::sin", "name": "sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}
@ -194,7 +194,7 @@ description: Operations executed food-service-spatula.kcl
"type": "GroupBegin", "type": "GroupBegin",
"group": { "group": {
"type": "FunctionCall", "type": "FunctionCall",
"name": "math::sin", "name": "sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}

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": 1602, "commentStart": 1578,
"end": 1611, "end": 1587,
"start": 1602, "start": 1578,
"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": 1602, "commentStart": 1578,
"end": 1611, "end": 1587,
"start": 1602, "start": 1578,
"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": 1602, "commentStart": 1578,
"end": 1611, "end": 1587,
"start": 1602, "start": 1578,
"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": 4219, "commentStart": 4195,
"end": 4231, "end": 4207,
"start": 4219, "start": 4195,
"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": 4219, "commentStart": 4195,
"end": 4231, "end": 4207,
"start": 4219, "start": 4195,
"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": 4219, "commentStart": 4195,
"end": 4231, "end": 4207,
"start": 4219, "start": 4195,
"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": 4219, "commentStart": 4195,
"end": 4231, "end": 4207,
"start": 4219, "start": 4195,
"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": 4219, "commentStart": 4195,
"end": 4231, "end": 4207,
"start": 4219, "start": 4195,
"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": 2871, "commentStart": 2847,
"end": 2888, "end": 2864,
"start": 2871, "start": 2847,
"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": 3019, "commentStart": 2995,
"end": 3033, "end": 3009,
"start": 3019, "start": 2995,
"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": 2871, "commentStart": 2847,
"end": 2888, "end": 2864,
"start": 2871, "start": 2847,
"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": 3019, "commentStart": 2995,
"end": 3033, "end": 3009,
"start": 3019, "start": 2995,
"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": 2871, "commentStart": 2847,
"end": 2888, "end": 2864,
"start": 2871, "start": 2847,
"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": 3019, "commentStart": 2995,
"end": 3033, "end": 3009,
"start": 3019, "start": 2995,
"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": 4219, "commentStart": 4195,
"end": 4231, "end": 4207,
"start": 4219, "start": 4195,
"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": 4219, "commentStart": 4195,
"end": 4231, "end": 4207,
"start": 4219, "start": 4195,
"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": 1602, "commentStart": 1578,
"end": 1611, "end": 1587,
"start": 1602, "start": 1578,
"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>[1447, 1497, 0]"] 4["Path<br>[1417, 1467, 0]"]
7["Segment<br>[1447, 1497, 0]"] 7["Segment<br>[1417, 1467, 0]"]
219[Solid2d] 219[Solid2d]
end end
subgraph path5 [Path] subgraph path5 [Path]
5["Path<br>[1990, 2027, 0]"] 5["Path<br>[1936, 1973, 0]"]
8["Segment<br>[1662, 1700, 0]"] 8["Segment<br>[1632, 1670, 0]"]
9["Segment<br>[1662, 1700, 0]"] 9["Segment<br>[1632, 1670, 0]"]
10["Segment<br>[1662, 1700, 0]"] 10["Segment<br>[1632, 1670, 0]"]
11["Segment<br>[1662, 1700, 0]"] 11["Segment<br>[1632, 1670, 0]"]
12["Segment<br>[1662, 1700, 0]"] 12["Segment<br>[1632, 1670, 0]"]
13["Segment<br>[1662, 1700, 0]"] 13["Segment<br>[1632, 1670, 0]"]
14["Segment<br>[1662, 1700, 0]"] 14["Segment<br>[1632, 1670, 0]"]
15["Segment<br>[1662, 1700, 0]"] 15["Segment<br>[1632, 1670, 0]"]
16["Segment<br>[1662, 1700, 0]"] 16["Segment<br>[1632, 1670, 0]"]
17["Segment<br>[1662, 1700, 0]"] 17["Segment<br>[1632, 1670, 0]"]
18["Segment<br>[1662, 1700, 0]"] 18["Segment<br>[1632, 1670, 0]"]
19["Segment<br>[1662, 1700, 0]"] 19["Segment<br>[1632, 1670, 0]"]
20["Segment<br>[1662, 1700, 0]"] 20["Segment<br>[1632, 1670, 0]"]
21["Segment<br>[1662, 1700, 0]"] 21["Segment<br>[1632, 1670, 0]"]
22["Segment<br>[1662, 1700, 0]"] 22["Segment<br>[1632, 1670, 0]"]
23["Segment<br>[1662, 1700, 0]"] 23["Segment<br>[1632, 1670, 0]"]
24["Segment<br>[1662, 1700, 0]"] 24["Segment<br>[1632, 1670, 0]"]
25["Segment<br>[1662, 1700, 0]"] 25["Segment<br>[1632, 1670, 0]"]
26["Segment<br>[1662, 1700, 0]"] 26["Segment<br>[1632, 1670, 0]"]
27["Segment<br>[1662, 1700, 0]"] 27["Segment<br>[1632, 1670, 0]"]
28["Segment<br>[1662, 1700, 0]"] 28["Segment<br>[1632, 1670, 0]"]
29["Segment<br>[1662, 1700, 0]"] 29["Segment<br>[1632, 1670, 0]"]
30["Segment<br>[1662, 1700, 0]"] 30["Segment<br>[1632, 1670, 0]"]
31["Segment<br>[1662, 1700, 0]"] 31["Segment<br>[1632, 1670, 0]"]
32["Segment<br>[1662, 1700, 0]"] 32["Segment<br>[1632, 1670, 0]"]
33["Segment<br>[1662, 1700, 0]"] 33["Segment<br>[1632, 1670, 0]"]
34["Segment<br>[1662, 1700, 0]"] 34["Segment<br>[1632, 1670, 0]"]
35["Segment<br>[1662, 1700, 0]"] 35["Segment<br>[1632, 1670, 0]"]
36["Segment<br>[1662, 1700, 0]"] 36["Segment<br>[1632, 1670, 0]"]
37["Segment<br>[1662, 1700, 0]"] 37["Segment<br>[1632, 1670, 0]"]
38["Segment<br>[1662, 1700, 0]"] 38["Segment<br>[1632, 1670, 0]"]
39["Segment<br>[1662, 1700, 0]"] 39["Segment<br>[1632, 1670, 0]"]
40["Segment<br>[1662, 1700, 0]"] 40["Segment<br>[1632, 1670, 0]"]
41["Segment<br>[1662, 1700, 0]"] 41["Segment<br>[1632, 1670, 0]"]
42["Segment<br>[1662, 1700, 0]"] 42["Segment<br>[1632, 1670, 0]"]
43["Segment<br>[1662, 1700, 0]"] 43["Segment<br>[1632, 1670, 0]"]
44["Segment<br>[1662, 1700, 0]"] 44["Segment<br>[1632, 1670, 0]"]
45["Segment<br>[1662, 1700, 0]"] 45["Segment<br>[1632, 1670, 0]"]
46["Segment<br>[1662, 1700, 0]"] 46["Segment<br>[1632, 1670, 0]"]
47["Segment<br>[1662, 1700, 0]"] 47["Segment<br>[1632, 1670, 0]"]
48["Segment<br>[1662, 1700, 0]"] 48["Segment<br>[1632, 1670, 0]"]
49["Segment<br>[1662, 1700, 0]"] 49["Segment<br>[1632, 1670, 0]"]
50["Segment<br>[1662, 1700, 0]"] 50["Segment<br>[1632, 1670, 0]"]
51["Segment<br>[1662, 1700, 0]"] 51["Segment<br>[1632, 1670, 0]"]
52["Segment<br>[1662, 1700, 0]"] 52["Segment<br>[1632, 1670, 0]"]
53["Segment<br>[1662, 1700, 0]"] 53["Segment<br>[1632, 1670, 0]"]
54["Segment<br>[1662, 1700, 0]"] 54["Segment<br>[1632, 1670, 0]"]
55["Segment<br>[1662, 1700, 0]"] 55["Segment<br>[1632, 1670, 0]"]
56["Segment<br>[1662, 1700, 0]"] 56["Segment<br>[1632, 1670, 0]"]
57["Segment<br>[1662, 1700, 0]"] 57["Segment<br>[1632, 1670, 0]"]
58["Segment<br>[1662, 1700, 0]"] 58["Segment<br>[1632, 1670, 0]"]
59["Segment<br>[1662, 1700, 0]"] 59["Segment<br>[1632, 1670, 0]"]
60["Segment<br>[1662, 1700, 0]"] 60["Segment<br>[1632, 1670, 0]"]
61["Segment<br>[1662, 1700, 0]"] 61["Segment<br>[1632, 1670, 0]"]
62["Segment<br>[1662, 1700, 0]"] 62["Segment<br>[1632, 1670, 0]"]
63["Segment<br>[1662, 1700, 0]"] 63["Segment<br>[1632, 1670, 0]"]
64["Segment<br>[1662, 1700, 0]"] 64["Segment<br>[1632, 1670, 0]"]
65["Segment<br>[1662, 1700, 0]"] 65["Segment<br>[1632, 1670, 0]"]
66["Segment<br>[1662, 1700, 0]"] 66["Segment<br>[1632, 1670, 0]"]
67["Segment<br>[1662, 1700, 0]"] 67["Segment<br>[1632, 1670, 0]"]
68["Segment<br>[1662, 1700, 0]"] 68["Segment<br>[1632, 1670, 0]"]
69["Segment<br>[1662, 1700, 0]"] 69["Segment<br>[1632, 1670, 0]"]
70["Segment<br>[1662, 1700, 0]"] 70["Segment<br>[1632, 1670, 0]"]
71["Segment<br>[1662, 1700, 0]"] 71["Segment<br>[1632, 1670, 0]"]
72["Segment<br>[1662, 1700, 0]"] 72["Segment<br>[1632, 1670, 0]"]
73["Segment<br>[1662, 1700, 0]"] 73["Segment<br>[1632, 1670, 0]"]
74["Segment<br>[1662, 1700, 0]"] 74["Segment<br>[1632, 1670, 0]"]
75["Segment<br>[1662, 1700, 0]"] 75["Segment<br>[1632, 1670, 0]"]
76["Segment<br>[1662, 1700, 0]"] 76["Segment<br>[1632, 1670, 0]"]
77["Segment<br>[1662, 1700, 0]"] 77["Segment<br>[1632, 1670, 0]"]
78["Segment<br>[1662, 1700, 0]"] 78["Segment<br>[1632, 1670, 0]"]
79["Segment<br>[1662, 1700, 0]"] 79["Segment<br>[1632, 1670, 0]"]
80["Segment<br>[1662, 1700, 0]"] 80["Segment<br>[1632, 1670, 0]"]
81["Segment<br>[1662, 1700, 0]"] 81["Segment<br>[1632, 1670, 0]"]
82["Segment<br>[1662, 1700, 0]"] 82["Segment<br>[1632, 1670, 0]"]
83["Segment<br>[1662, 1700, 0]"] 83["Segment<br>[1632, 1670, 0]"]
84["Segment<br>[1662, 1700, 0]"] 84["Segment<br>[1632, 1670, 0]"]
85["Segment<br>[1662, 1700, 0]"] 85["Segment<br>[1632, 1670, 0]"]
86["Segment<br>[1662, 1700, 0]"] 86["Segment<br>[1632, 1670, 0]"]
87["Segment<br>[1662, 1700, 0]"] 87["Segment<br>[1632, 1670, 0]"]
88["Segment<br>[1662, 1700, 0]"] 88["Segment<br>[1632, 1670, 0]"]
89["Segment<br>[1662, 1700, 0]"] 89["Segment<br>[1632, 1670, 0]"]
90["Segment<br>[1662, 1700, 0]"] 90["Segment<br>[1632, 1670, 0]"]
91["Segment<br>[1662, 1700, 0]"] 91["Segment<br>[1632, 1670, 0]"]
92["Segment<br>[1662, 1700, 0]"] 92["Segment<br>[1632, 1670, 0]"]
93["Segment<br>[1662, 1700, 0]"] 93["Segment<br>[1632, 1670, 0]"]
94["Segment<br>[1662, 1700, 0]"] 94["Segment<br>[1632, 1670, 0]"]
95["Segment<br>[1662, 1700, 0]"] 95["Segment<br>[1632, 1670, 0]"]
96["Segment<br>[1662, 1700, 0]"] 96["Segment<br>[1632, 1670, 0]"]
97["Segment<br>[1662, 1700, 0]"] 97["Segment<br>[1632, 1670, 0]"]
98["Segment<br>[1662, 1700, 0]"] 98["Segment<br>[1632, 1670, 0]"]
99["Segment<br>[1662, 1700, 0]"] 99["Segment<br>[1632, 1670, 0]"]
100["Segment<br>[1662, 1700, 0]"] 100["Segment<br>[1632, 1670, 0]"]
101["Segment<br>[1662, 1700, 0]"] 101["Segment<br>[1632, 1670, 0]"]
102["Segment<br>[1662, 1700, 0]"] 102["Segment<br>[1632, 1670, 0]"]
103["Segment<br>[1662, 1700, 0]"] 103["Segment<br>[1632, 1670, 0]"]
104["Segment<br>[1662, 1700, 0]"] 104["Segment<br>[1632, 1670, 0]"]
105["Segment<br>[1662, 1700, 0]"] 105["Segment<br>[1632, 1670, 0]"]
106["Segment<br>[1662, 1700, 0]"] 106["Segment<br>[1632, 1670, 0]"]
107["Segment<br>[1662, 1700, 0]"] 107["Segment<br>[1632, 1670, 0]"]
108["Segment<br>[1662, 1700, 0]"] 108["Segment<br>[1632, 1670, 0]"]
109["Segment<br>[1906, 1936, 0]"] 109["Segment<br>[1852, 1882, 0]"]
110["Segment<br>[1906, 1936, 0]"] 110["Segment<br>[1852, 1882, 0]"]
111["Segment<br>[1906, 1936, 0]"] 111["Segment<br>[1852, 1882, 0]"]
112["Segment<br>[1906, 1936, 0]"] 112["Segment<br>[1852, 1882, 0]"]
113["Segment<br>[1906, 1936, 0]"] 113["Segment<br>[1852, 1882, 0]"]
114["Segment<br>[1906, 1936, 0]"] 114["Segment<br>[1852, 1882, 0]"]
115["Segment<br>[1906, 1936, 0]"] 115["Segment<br>[1852, 1882, 0]"]
116["Segment<br>[1906, 1936, 0]"] 116["Segment<br>[1852, 1882, 0]"]
117["Segment<br>[1906, 1936, 0]"] 117["Segment<br>[1852, 1882, 0]"]
118["Segment<br>[1906, 1936, 0]"] 118["Segment<br>[1852, 1882, 0]"]
119["Segment<br>[1906, 1936, 0]"] 119["Segment<br>[1852, 1882, 0]"]
120["Segment<br>[1906, 1936, 0]"] 120["Segment<br>[1852, 1882, 0]"]
121["Segment<br>[1906, 1936, 0]"] 121["Segment<br>[1852, 1882, 0]"]
122["Segment<br>[1906, 1936, 0]"] 122["Segment<br>[1852, 1882, 0]"]
123["Segment<br>[1906, 1936, 0]"] 123["Segment<br>[1852, 1882, 0]"]
124["Segment<br>[1906, 1936, 0]"] 124["Segment<br>[1852, 1882, 0]"]
125["Segment<br>[1906, 1936, 0]"] 125["Segment<br>[1852, 1882, 0]"]
126["Segment<br>[1906, 1936, 0]"] 126["Segment<br>[1852, 1882, 0]"]
127["Segment<br>[1906, 1936, 0]"] 127["Segment<br>[1852, 1882, 0]"]
128["Segment<br>[1906, 1936, 0]"] 128["Segment<br>[1852, 1882, 0]"]
129["Segment<br>[1906, 1936, 0]"] 129["Segment<br>[1852, 1882, 0]"]
130["Segment<br>[1906, 1936, 0]"] 130["Segment<br>[1852, 1882, 0]"]
131["Segment<br>[1906, 1936, 0]"] 131["Segment<br>[1852, 1882, 0]"]
132["Segment<br>[1906, 1936, 0]"] 132["Segment<br>[1852, 1882, 0]"]
133["Segment<br>[1906, 1936, 0]"] 133["Segment<br>[1852, 1882, 0]"]
134["Segment<br>[1906, 1936, 0]"] 134["Segment<br>[1852, 1882, 0]"]
135["Segment<br>[1906, 1936, 0]"] 135["Segment<br>[1852, 1882, 0]"]
136["Segment<br>[1906, 1936, 0]"] 136["Segment<br>[1852, 1882, 0]"]
137["Segment<br>[1906, 1936, 0]"] 137["Segment<br>[1852, 1882, 0]"]
138["Segment<br>[1906, 1936, 0]"] 138["Segment<br>[1852, 1882, 0]"]
139["Segment<br>[1906, 1936, 0]"] 139["Segment<br>[1852, 1882, 0]"]
140["Segment<br>[1906, 1936, 0]"] 140["Segment<br>[1852, 1882, 0]"]
141["Segment<br>[1906, 1936, 0]"] 141["Segment<br>[1852, 1882, 0]"]
142["Segment<br>[1906, 1936, 0]"] 142["Segment<br>[1852, 1882, 0]"]
143["Segment<br>[1906, 1936, 0]"] 143["Segment<br>[1852, 1882, 0]"]
144["Segment<br>[1906, 1936, 0]"] 144["Segment<br>[1852, 1882, 0]"]
145["Segment<br>[1906, 1936, 0]"] 145["Segment<br>[1852, 1882, 0]"]
146["Segment<br>[1906, 1936, 0]"] 146["Segment<br>[1852, 1882, 0]"]
147["Segment<br>[1906, 1936, 0]"] 147["Segment<br>[1852, 1882, 0]"]
148["Segment<br>[1906, 1936, 0]"] 148["Segment<br>[1852, 1882, 0]"]
149["Segment<br>[1906, 1936, 0]"] 149["Segment<br>[1852, 1882, 0]"]
150["Segment<br>[1906, 1936, 0]"] 150["Segment<br>[1852, 1882, 0]"]
151["Segment<br>[1906, 1936, 0]"] 151["Segment<br>[1852, 1882, 0]"]
152["Segment<br>[1906, 1936, 0]"] 152["Segment<br>[1852, 1882, 0]"]
153["Segment<br>[1906, 1936, 0]"] 153["Segment<br>[1852, 1882, 0]"]
154["Segment<br>[1906, 1936, 0]"] 154["Segment<br>[1852, 1882, 0]"]
155["Segment<br>[1906, 1936, 0]"] 155["Segment<br>[1852, 1882, 0]"]
156["Segment<br>[1906, 1936, 0]"] 156["Segment<br>[1852, 1882, 0]"]
157["Segment<br>[1906, 1936, 0]"] 157["Segment<br>[1852, 1882, 0]"]
158["Segment<br>[1906, 1936, 0]"] 158["Segment<br>[1852, 1882, 0]"]
159["Segment<br>[1906, 1936, 0]"] 159["Segment<br>[1852, 1882, 0]"]
160["Segment<br>[1906, 1936, 0]"] 160["Segment<br>[1852, 1882, 0]"]
161["Segment<br>[1906, 1936, 0]"] 161["Segment<br>[1852, 1882, 0]"]
162["Segment<br>[1906, 1936, 0]"] 162["Segment<br>[1852, 1882, 0]"]
163["Segment<br>[1906, 1936, 0]"] 163["Segment<br>[1852, 1882, 0]"]
164["Segment<br>[1906, 1936, 0]"] 164["Segment<br>[1852, 1882, 0]"]
165["Segment<br>[1906, 1936, 0]"] 165["Segment<br>[1852, 1882, 0]"]
166["Segment<br>[1906, 1936, 0]"] 166["Segment<br>[1852, 1882, 0]"]
167["Segment<br>[1906, 1936, 0]"] 167["Segment<br>[1852, 1882, 0]"]
168["Segment<br>[1906, 1936, 0]"] 168["Segment<br>[1852, 1882, 0]"]
169["Segment<br>[1906, 1936, 0]"] 169["Segment<br>[1852, 1882, 0]"]
170["Segment<br>[1906, 1936, 0]"] 170["Segment<br>[1852, 1882, 0]"]
171["Segment<br>[1906, 1936, 0]"] 171["Segment<br>[1852, 1882, 0]"]
172["Segment<br>[1906, 1936, 0]"] 172["Segment<br>[1852, 1882, 0]"]
173["Segment<br>[1906, 1936, 0]"] 173["Segment<br>[1852, 1882, 0]"]
174["Segment<br>[1906, 1936, 0]"] 174["Segment<br>[1852, 1882, 0]"]
175["Segment<br>[1906, 1936, 0]"] 175["Segment<br>[1852, 1882, 0]"]
176["Segment<br>[1906, 1936, 0]"] 176["Segment<br>[1852, 1882, 0]"]
177["Segment<br>[1906, 1936, 0]"] 177["Segment<br>[1852, 1882, 0]"]
178["Segment<br>[1906, 1936, 0]"] 178["Segment<br>[1852, 1882, 0]"]
179["Segment<br>[1906, 1936, 0]"] 179["Segment<br>[1852, 1882, 0]"]
180["Segment<br>[1906, 1936, 0]"] 180["Segment<br>[1852, 1882, 0]"]
181["Segment<br>[1906, 1936, 0]"] 181["Segment<br>[1852, 1882, 0]"]
182["Segment<br>[1906, 1936, 0]"] 182["Segment<br>[1852, 1882, 0]"]
183["Segment<br>[1906, 1936, 0]"] 183["Segment<br>[1852, 1882, 0]"]
184["Segment<br>[1906, 1936, 0]"] 184["Segment<br>[1852, 1882, 0]"]
185["Segment<br>[1906, 1936, 0]"] 185["Segment<br>[1852, 1882, 0]"]
186["Segment<br>[1906, 1936, 0]"] 186["Segment<br>[1852, 1882, 0]"]
187["Segment<br>[1906, 1936, 0]"] 187["Segment<br>[1852, 1882, 0]"]
188["Segment<br>[1906, 1936, 0]"] 188["Segment<br>[1852, 1882, 0]"]
189["Segment<br>[1906, 1936, 0]"] 189["Segment<br>[1852, 1882, 0]"]
190["Segment<br>[1906, 1936, 0]"] 190["Segment<br>[1852, 1882, 0]"]
191["Segment<br>[1906, 1936, 0]"] 191["Segment<br>[1852, 1882, 0]"]
192["Segment<br>[1906, 1936, 0]"] 192["Segment<br>[1852, 1882, 0]"]
193["Segment<br>[1906, 1936, 0]"] 193["Segment<br>[1852, 1882, 0]"]
194["Segment<br>[1906, 1936, 0]"] 194["Segment<br>[1852, 1882, 0]"]
195["Segment<br>[1906, 1936, 0]"] 195["Segment<br>[1852, 1882, 0]"]
196["Segment<br>[1906, 1936, 0]"] 196["Segment<br>[1852, 1882, 0]"]
197["Segment<br>[1906, 1936, 0]"] 197["Segment<br>[1852, 1882, 0]"]
198["Segment<br>[1906, 1936, 0]"] 198["Segment<br>[1852, 1882, 0]"]
199["Segment<br>[1906, 1936, 0]"] 199["Segment<br>[1852, 1882, 0]"]
200["Segment<br>[1906, 1936, 0]"] 200["Segment<br>[1852, 1882, 0]"]
201["Segment<br>[1906, 1936, 0]"] 201["Segment<br>[1852, 1882, 0]"]
202["Segment<br>[1906, 1936, 0]"] 202["Segment<br>[1852, 1882, 0]"]
203["Segment<br>[1906, 1936, 0]"] 203["Segment<br>[1852, 1882, 0]"]
204["Segment<br>[1906, 1936, 0]"] 204["Segment<br>[1852, 1882, 0]"]
205["Segment<br>[1906, 1936, 0]"] 205["Segment<br>[1852, 1882, 0]"]
206["Segment<br>[1906, 1936, 0]"] 206["Segment<br>[1852, 1882, 0]"]
207["Segment<br>[1906, 1936, 0]"] 207["Segment<br>[1852, 1882, 0]"]
208["Segment<br>[1906, 1936, 0]"] 208["Segment<br>[1852, 1882, 0]"]
209["Segment<br>[1906, 1936, 0]"] 209["Segment<br>[1852, 1882, 0]"]
210["Segment<br>[2093, 2162, 0]"] 210["Segment<br>[2039, 2108, 0]"]
211["Segment<br>[2222, 2229, 0]"] 211["Segment<br>[2168, 2175, 0]"]
218[Solid2d] 218[Solid2d]
end end
subgraph path6 [Path] subgraph path6 [Path]
6["Path<br>[2716, 2828, 0]"] 6["Path<br>[2656, 2756, 0]"]
212["Segment<br>[2834, 2861, 0]"] 212["Segment<br>[2762, 2789, 0]"]
213["Segment<br>[2867, 2895, 0]"] 213["Segment<br>[2795, 2823, 0]"]
214["Segment<br>[2901, 2929, 0]"] 214["Segment<br>[2829, 2857, 0]"]
215["Segment<br>[2935, 3029, 0]"] 215["Segment<br>[2863, 2957, 0]"]
216["Segment<br>[3035, 3118, 0]"] 216["Segment<br>[2963, 3046, 0]"]
217["Segment<br>[3124, 3131, 0]"] 217["Segment<br>[3052, 3059, 0]"]
220[Solid2d] 220[Solid2d]
end end
1["Plane<br>[1424, 1441, 0]"] 1["Plane<br>[1394, 1411, 0]"]
2["Plane<br>[1967, 1984, 0]"] 2["Plane<br>[1913, 1930, 0]"]
3["StartSketchOnFace<br>[2679, 2710, 0]"] 3["StartSketchOnFace<br>[2619, 2650, 0]"]
221["Sweep Extrusion<br>[1503, 1531, 0]"] 221["Sweep Extrusion<br>[1473, 1501, 0]"]
222["Sweep Extrusion<br>[2235, 2263, 0]"] 222["Sweep Extrusion<br>[2181, 2209, 0]"]
223["Sweep Extrusion<br>[3137, 3166, 0]"] 223["Sweep Extrusion<br>[3065, 3094, 0]"]
224[Wall] 224[Wall]
225[Wall] 225[Wall]
226[Wall] 226[Wall]

View File

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

View File

@ -2556,15 +2556,7 @@ 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"
}, },
@ -7914,15 +7906,7 @@ 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": "math::sin", "name": "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": "math::sin", "name": "sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}

View File

@ -44,121 +44,121 @@ flowchart LR
87[Solid2d] 87[Solid2d]
end end
subgraph path14 [Path] subgraph path14 [Path]
14["Path<br>[865, 1036, 10]"] 14["Path<br>[865, 1018, 10]"]
47["Segment<br>[865, 1036, 10]"] 47["Segment<br>[865, 1018, 10]"]
90[Solid2d] 90[Solid2d]
end end
subgraph path15 [Path] subgraph path15 [Path]
15["Path<br>[1245, 1388, 10]"] 15["Path<br>[1227, 1352, 10]"]
48["Segment<br>[1245, 1388, 10]"] 48["Segment<br>[1227, 1352, 10]"]
101[Solid2d] 101[Solid2d]
end end
subgraph path16 [Path] subgraph path16 [Path]
16["Path<br>[1706, 1876, 10]"] 16["Path<br>[1652, 1804, 10]"]
49["Segment<br>[1706, 1876, 10]"] 49["Segment<br>[1652, 1804, 10]"]
95[Solid2d] 95[Solid2d]
end end
subgraph path17 [Path] subgraph path17 [Path]
17["Path<br>[2101, 2141, 10]"] 17["Path<br>[2029, 2069, 10]"]
50["Segment<br>[2101, 2141, 10]"] 50["Segment<br>[2029, 2069, 10]"]
96[Solid2d] 96[Solid2d]
end end
subgraph path18 [Path] subgraph path18 [Path]
18["Path<br>[251, 384, 11]"] 18["Path<br>[251, 372, 11]"]
51["Segment<br>[390, 473, 11]"] 51["Segment<br>[378, 461, 11]"]
52["Segment<br>[479, 531, 11]"] 52["Segment<br>[467, 519, 11]"]
53["Segment<br>[537, 620, 11]"] 53["Segment<br>[525, 608, 11]"]
54["Segment<br>[626, 682, 11]"] 54["Segment<br>[614, 670, 11]"]
55["Segment<br>[688, 695, 11]"] 55["Segment<br>[676, 683, 11]"]
111[Solid2d] 111[Solid2d]
end end
subgraph path19 [Path] subgraph path19 [Path]
19["Path<br>[816, 880, 11]"] 19["Path<br>[804, 868, 11]"]
56["Segment<br>[816, 880, 11]"] 56["Segment<br>[804, 868, 11]"]
103[Solid2d] 103[Solid2d]
end end
subgraph path20 [Path] subgraph path20 [Path]
20["Path<br>[1054, 1252, 11]"] 20["Path<br>[1042, 1228, 11]"]
57["Segment<br>[1054, 1252, 11]"] 57["Segment<br>[1042, 1228, 11]"]
100[Solid2d] 100[Solid2d]
end end
subgraph path21 [Path] subgraph path21 [Path]
21["Path<br>[1460, 1504, 11]"] 21["Path<br>[1436, 1480, 11]"]
58["Segment<br>[1460, 1504, 11]"] 58["Segment<br>[1436, 1480, 11]"]
93[Solid2d] 93[Solid2d]
end end
subgraph path22 [Path] subgraph path22 [Path]
22["Path<br>[1747, 1929, 11]"] 22["Path<br>[1723, 1893, 11]"]
59["Segment<br>[1747, 1929, 11]"] 59["Segment<br>[1723, 1893, 11]"]
106[Solid2d] 106[Solid2d]
end end
subgraph path23 [Path] subgraph path23 [Path]
23["Path<br>[2277, 2442, 11]"] 23["Path<br>[2229, 2382, 11]"]
60["Segment<br>[2277, 2442, 11]"] 60["Segment<br>[2229, 2382, 11]"]
91[Solid2d] 91[Solid2d]
end end
subgraph path24 [Path] subgraph path24 [Path]
24["Path<br>[271, 484, 12]"] 24["Path<br>[271, 460, 12]"]
61["Segment<br>[490, 576, 12]"] 61["Segment<br>[466, 552, 12]"]
62["Segment<br>[582, 636, 12]"] 62["Segment<br>[558, 612, 12]"]
63["Segment<br>[642, 728, 12]"] 63["Segment<br>[618, 704, 12]"]
64["Segment<br>[734, 804, 12]"] 64["Segment<br>[710, 780, 12]"]
65["Segment<br>[810, 817, 12]"] 65["Segment<br>[786, 793, 12]"]
107[Solid2d] 107[Solid2d]
end end
subgraph path25 [Path] subgraph path25 [Path]
25["Path<br>[936, 1135, 12]"] 25["Path<br>[912, 1099, 12]"]
66["Segment<br>[936, 1135, 12]"] 66["Segment<br>[912, 1099, 12]"]
104[Solid2d] 104[Solid2d]
end end
subgraph path26 [Path] subgraph path26 [Path]
26["Path<br>[1345, 1524, 12]"] 26["Path<br>[1309, 1476, 12]"]
67["Segment<br>[1345, 1524, 12]"] 67["Segment<br>[1309, 1476, 12]"]
108[Solid2d] 108[Solid2d]
end end
subgraph path27 [Path] subgraph path27 [Path]
27["Path<br>[1940, 2206, 12]"] 27["Path<br>[1880, 2122, 12]"]
68["Segment<br>[1940, 2206, 12]"] 68["Segment<br>[1880, 2122, 12]"]
98[Solid2d] 98[Solid2d]
end end
subgraph path28 [Path] subgraph path28 [Path]
28["Path<br>[2310, 2574, 12]"] 28["Path<br>[2226, 2466, 12]"]
69["Segment<br>[2310, 2574, 12]"] 69["Segment<br>[2226, 2466, 12]"]
105[Solid2d] 105[Solid2d]
end end
subgraph path29 [Path] subgraph path29 [Path]
29["Path<br>[2733, 2771, 12]"] 29["Path<br>[2625, 2663, 12]"]
70["Segment<br>[2733, 2771, 12]"] 70["Segment<br>[2625, 2663, 12]"]
99[Solid2d] 99[Solid2d]
end end
subgraph path30 [Path] subgraph path30 [Path]
30["Path<br>[2906, 3111, 12]"] 30["Path<br>[2798, 2979, 12]"]
71["Segment<br>[3117, 3185, 12]"] 71["Segment<br>[2985, 3053, 12]"]
72["Segment<br>[3191, 3301, 12]"] 72["Segment<br>[3059, 3169, 12]"]
73["Segment<br>[3307, 3375, 12]"] 73["Segment<br>[3175, 3243, 12]"]
74["Segment<br>[3381, 3457, 12]"] 74["Segment<br>[3249, 3325, 12]"]
75["Segment<br>[3463, 3539, 12]"] 75["Segment<br>[3331, 3407, 12]"]
76["Segment<br>[3545, 3619, 12]"] 76["Segment<br>[3413, 3487, 12]"]
77["Segment<br>[3625, 3681, 12]"] 77["Segment<br>[3493, 3549, 12]"]
78["Segment<br>[3687, 3694, 12]"] 78["Segment<br>[3555, 3562, 12]"]
109[Solid2d] 109[Solid2d]
end end
subgraph path31 [Path] subgraph path31 [Path]
31["Path<br>[3828, 4033, 12]"] 31["Path<br>[3696, 3877, 12]"]
79["Segment<br>[4039, 4109, 12]"] 79["Segment<br>[3883, 3953, 12]"]
80["Segment<br>[4115, 4230, 12]"] 80["Segment<br>[3959, 4074, 12]"]
81["Segment<br>[4236, 4306, 12]"] 81["Segment<br>[4080, 4150, 12]"]
82["Segment<br>[4312, 4390, 12]"] 82["Segment<br>[4156, 4234, 12]"]
83["Segment<br>[4396, 4474, 12]"] 83["Segment<br>[4240, 4318, 12]"]
84["Segment<br>[4480, 4556, 12]"] 84["Segment<br>[4324, 4400, 12]"]
85["Segment<br>[4562, 4618, 12]"] 85["Segment<br>[4406, 4462, 12]"]
86["Segment<br>[4624, 4631, 12]"] 86["Segment<br>[4468, 4475, 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>[2072, 2095, 10]"] 4["Plane<br>[2000, 2023, 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>[1050, 1082, 10]"] 125["Sweep Extrusion<br>[1032, 1064, 10]"]
126["Sweep Extrusion<br>[1617, 1649, 10]"] 126["Sweep Extrusion<br>[1563, 1595, 10]"]
127["Sweep Extrusion<br>[1617, 1649, 10]"] 127["Sweep Extrusion<br>[1563, 1595, 10]"]
128["Sweep Extrusion<br>[1617, 1649, 10]"] 128["Sweep Extrusion<br>[1563, 1595, 10]"]
129["Sweep Extrusion<br>[1617, 1649, 10]"] 129["Sweep Extrusion<br>[1563, 1595, 10]"]
130["Sweep Extrusion<br>[1890, 1923, 10]"] 130["Sweep Extrusion<br>[1818, 1851, 10]"]
131["Sweep Extrusion<br>[2143, 2174, 10]"] 131["Sweep Extrusion<br>[2071, 2102, 10]"]
132["Sweep Extrusion<br>[709, 757, 11]"] 132["Sweep Extrusion<br>[697, 745, 11]"]
133["Sweep Extrusion<br>[895, 928, 11]"] 133["Sweep Extrusion<br>[883, 916, 11]"]
134["Sweep Extrusion<br>[1267, 1297, 11]"] 134["Sweep Extrusion<br>[1243, 1273, 11]"]
135["Sweep Extrusion<br>[1657, 1690, 11]"] 135["Sweep Extrusion<br>[1633, 1666, 11]"]
136["Sweep Extrusion<br>[1657, 1690, 11]"] 136["Sweep Extrusion<br>[1633, 1666, 11]"]
137["Sweep Extrusion<br>[1657, 1690, 11]"] 137["Sweep Extrusion<br>[1633, 1666, 11]"]
138["Sweep Extrusion<br>[1657, 1690, 11]"] 138["Sweep Extrusion<br>[1633, 1666, 11]"]
139["Sweep Extrusion<br>[1657, 1690, 11]"] 139["Sweep Extrusion<br>[1633, 1666, 11]"]
140["Sweep Extrusion<br>[1657, 1690, 11]"] 140["Sweep Extrusion<br>[1633, 1666, 11]"]
141["Sweep Extrusion<br>[1657, 1690, 11]"] 141["Sweep Extrusion<br>[1633, 1666, 11]"]
142["Sweep Extrusion<br>[1657, 1690, 11]"] 142["Sweep Extrusion<br>[1633, 1666, 11]"]
143["Sweep Extrusion<br>[2187, 2220, 11]"] 143["Sweep Extrusion<br>[2139, 2172, 11]"]
144["Sweep Extrusion<br>[2187, 2220, 11]"] 144["Sweep Extrusion<br>[2139, 2172, 11]"]
145["Sweep Extrusion<br>[2187, 2220, 11]"] 145["Sweep Extrusion<br>[2139, 2172, 11]"]
146["Sweep Extrusion<br>[2187, 2220, 11]"] 146["Sweep Extrusion<br>[2139, 2172, 11]"]
147["Sweep Extrusion<br>[2444, 2474, 11]"] 147["Sweep Extrusion<br>[2384, 2414, 11]"]
148["Sweep Extrusion<br>[831, 879, 12]"] 148["Sweep Extrusion<br>[807, 855, 12]"]
149["Sweep Extrusion<br>[1150, 1183, 12]"] 149["Sweep Extrusion<br>[1114, 1147, 12]"]
150["Sweep Extrusion<br>[1779, 1812, 12]"] 150["Sweep Extrusion<br>[1719, 1752, 12]"]
151["Sweep Extrusion<br>[1779, 1812, 12]"] 151["Sweep Extrusion<br>[1719, 1752, 12]"]
152["Sweep Extrusion<br>[1779, 1812, 12]"] 152["Sweep Extrusion<br>[1719, 1752, 12]"]
153["Sweep Extrusion<br>[1779, 1812, 12]"] 153["Sweep Extrusion<br>[1719, 1752, 12]"]
154["Sweep Extrusion<br>[1779, 1812, 12]"] 154["Sweep Extrusion<br>[1719, 1752, 12]"]
155["Sweep Extrusion<br>[1779, 1812, 12]"] 155["Sweep Extrusion<br>[1719, 1752, 12]"]
156["Sweep Extrusion<br>[1779, 1812, 12]"] 156["Sweep Extrusion<br>[1719, 1752, 12]"]
157["Sweep Extrusion<br>[1779, 1812, 12]"] 157["Sweep Extrusion<br>[1719, 1752, 12]"]
158["Sweep Extrusion<br>[2220, 2253, 12]"] 158["Sweep Extrusion<br>[2136, 2169, 12]"]
159["Sweep Extrusion<br>[2589, 2622, 12]"] 159["Sweep Extrusion<br>[2481, 2514, 12]"]
160["Sweep Extrusion<br>[2786, 2820, 12]"] 160["Sweep Extrusion<br>[2678, 2712, 12]"]
161["Sweep Extrusion<br>[3709, 3742, 12]"] 161["Sweep Extrusion<br>[3577, 3610, 12]"]
162["Sweep Extrusion<br>[4633, 4666, 12]"] 162["Sweep Extrusion<br>[4477, 4510, 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>[1088, 1150, 10]"] 350["EdgeCut Fillet<br>[1070, 1132, 10]"]
351["EdgeCut Fillet<br>[1929, 1991, 10]"] 351["EdgeCut Fillet<br>[1857, 1919, 10]"]
352["EdgeCut Fillet<br>[934, 996, 11]"] 352["EdgeCut Fillet<br>[922, 984, 11]"]
353["EdgeCut Fillet<br>[1303, 1365, 11]"] 353["EdgeCut Fillet<br>[1279, 1341, 11]"]
354["EdgeCut Fillet<br>[1189, 1251, 12]"] 354["EdgeCut Fillet<br>[1153, 1215, 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>[671, 741, 0]"] 4["Path<br>[665, 735, 0]"]
7["Segment<br>[671, 741, 0]"] 7["Segment<br>[665, 735, 0]"]
16[Solid2d] 16[Solid2d]
end end
subgraph path5 [Path] subgraph path5 [Path]
5["Path<br>[974, 1055, 0]"] 5["Path<br>[968, 1049, 0]"]
8["Segment<br>[1061, 1112, 0]"] 8["Segment<br>[1055, 1106, 0]"]
9["Segment<br>[1118, 1169, 0]"] 9["Segment<br>[1112, 1163, 0]"]
10["Segment<br>[1175, 1226, 0]"] 10["Segment<br>[1169, 1220, 0]"]
11["Segment<br>[1232, 1282, 0]"] 11["Segment<br>[1226, 1276, 0]"]
12["Segment<br>[1288, 1338, 0]"] 12["Segment<br>[1282, 1332, 0]"]
13["Segment<br>[1344, 1351, 0]"] 13["Segment<br>[1338, 1345, 0]"]
15[Solid2d] 15[Solid2d]
end end
subgraph path6 [Path] subgraph path6 [Path]
6["Path<br>[1450, 1519, 0]"] 6["Path<br>[1444, 1513, 0]"]
14["Segment<br>[1450, 1519, 0]"] 14["Segment<br>[1444, 1513, 0]"]
17[Solid2d] 17[Solid2d]
end end
1["Plane<br>[648, 665, 0]"] 1["Plane<br>[642, 659, 0]"]
2["StartSketchOnFace<br>[931, 968, 0]"] 2["StartSketchOnFace<br>[925, 962, 0]"]
3["StartSketchOnFace<br>[1409, 1444, 0]"] 3["StartSketchOnFace<br>[1403, 1438, 0]"]
18["Sweep Extrusion<br>[747, 780, 0]"] 18["Sweep Extrusion<br>[741, 774, 0]"]
19["Sweep Extrusion<br>[1357, 1397, 0]"] 19["Sweep Extrusion<br>[1351, 1391, 0]"]
20["Sweep Extrusion<br>[1525, 1553, 0]"] 20["Sweep Extrusion<br>[1519, 1547, 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>[786, 852, 0]"] 49["EdgeCut Fillet<br>[780, 846, 0]"]
50["EdgeCut Fillet<br>[786, 852, 0]"] 50["EdgeCut Fillet<br>[780, 846, 0]"]
51["EdgeCut Fillet<br>[1559, 1618, 0]"] 51["EdgeCut Fillet<br>[1553, 1612, 0]"]
1 --- 4 1 --- 4
29 x--> 2 29 x--> 2
31 x--> 3 31 x--> 3

View File

@ -271,15 +271,7 @@ 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": "math::cos", "name": "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": 1507, "commentStart": 1501,
"end": 1518, "end": 1512,
"start": 1507, "start": 1501,
"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": 1507, "commentStart": 1501,
"end": 1518, "end": 1512,
"start": 1507, "start": 1501,
"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": 732, "commentStart": 726,
"end": 740, "end": 734,
"start": 732, "start": 726,
"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": 732, "commentStart": 726,
"end": 740, "end": 734,
"start": 732, "start": 726,
"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": 732, "commentStart": 726,
"end": 740, "end": 734,
"start": 732, "start": 726,
"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": 732, "commentStart": 726,
"end": 740, "end": 734,
"start": 732, "start": 726,
"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": 732, "commentStart": 726,
"end": 740, "end": 734,
"start": 732, "start": 726,
"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": 732, "commentStart": 726,
"end": 740, "end": 734,
"start": 732, "start": 726,
"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, 1091, 9]"] 19["Path<br>[968, 1085, 9]"]
42["Segment<br>[1097, 1155, 9]"] 42["Segment<br>[1091, 1149, 9]"]
43["Segment<br>[1161, 1284, 9]"] 43["Segment<br>[1155, 1272, 9]"]
44["Segment<br>[1290, 1348, 9]"] 44["Segment<br>[1278, 1336, 9]"]
45["Segment<br>[1354, 1480, 9]"] 45["Segment<br>[1342, 1462, 9]"]
46["Segment<br>[1486, 1547, 9]"] 46["Segment<br>[1468, 1529, 9]"]
47["Segment<br>[1553, 1680, 9]"] 47["Segment<br>[1535, 1656, 9]"]
48["Segment<br>[1686, 1746, 9]"] 48["Segment<br>[1662, 1722, 9]"]
49["Segment<br>[1752, 1759, 9]"] 49["Segment<br>[1728, 1735, 9]"]
137[Solid2d] 137[Solid2d]
end end
subgraph path20 [Path] subgraph path20 [Path]
20["Path<br>[1914, 1968, 9]"] 20["Path<br>[1890, 1944, 9]"]
50["Segment<br>[1974, 2015, 9]"] 50["Segment<br>[1950, 1991, 9]"]
51["Segment<br>[2021, 2050, 9]"] 51["Segment<br>[1997, 2026, 9]"]
52["Segment<br>[2056, 2086, 9]"] 52["Segment<br>[2032, 2062, 9]"]
53["Segment<br>[2092, 2148, 9]"] 53["Segment<br>[2068, 2124, 9]"]
54["Segment<br>[2154, 2161, 9]"] 54["Segment<br>[2130, 2137, 9]"]
156[Solid2d] 156[Solid2d]
end end
subgraph path21 [Path] subgraph path21 [Path]
21["Path<br>[2304, 2341, 9]"] 21["Path<br>[2280, 2317, 9]"]
55["Segment<br>[2347, 2378, 9]"] 55["Segment<br>[2323, 2354, 9]"]
56["Segment<br>[2384, 2417, 9]"] 56["Segment<br>[2360, 2393, 9]"]
57["Segment<br>[2423, 2455, 9]"] 57["Segment<br>[2399, 2431, 9]"]
58["Segment<br>[2461, 2468, 9]"] 58["Segment<br>[2437, 2444, 9]"]
147[Solid2d] 147[Solid2d]
end end
subgraph path22 [Path] subgraph path22 [Path]
@ -55,15 +55,15 @@ flowchart LR
149[Solid2d] 149[Solid2d]
end end
subgraph path24 [Path] subgraph path24 [Path]
24["Path<br>[1441, 1598, 10]"] 24["Path<br>[1441, 1592, 10]"]
68["Segment<br>[1604, 1680, 10]"] 68["Segment<br>[1598, 1674, 10]"]
69["Segment<br>[1686, 1845, 10]"] 69["Segment<br>[1680, 1833, 10]"]
70["Segment<br>[1851, 1927, 10]"] 70["Segment<br>[1839, 1915, 10]"]
71["Segment<br>[1933, 2095, 10]"] 71["Segment<br>[1921, 2077, 10]"]
72["Segment<br>[2101, 2178, 10]"] 72["Segment<br>[2083, 2160, 10]"]
73["Segment<br>[2184, 2345, 10]"] 73["Segment<br>[2166, 2321, 10]"]
74["Segment<br>[2351, 2427, 10]"] 74["Segment<br>[2327, 2403, 10]"]
75["Segment<br>[2433, 2440, 10]"] 75["Segment<br>[2409, 2416, 10]"]
144[Solid2d] 144[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>[2581, 2598, 10]"] 5["Plane<br>[2557, 2574, 10]"]
6["Plane<br>[2651, 2668, 10]"] 6["Plane<br>[2627, 2644, 10]"]
7["Plane<br>[2723, 2740, 10]"] 7["Plane<br>[2699, 2716, 10]"]
8["Plane<br>[2794, 2811, 10]"] 8["Plane<br>[2770, 2787, 10]"]
9["Plane<br>[2865, 2882, 10]"] 9["Plane<br>[2841, 2858, 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>[1773, 1816, 9]"] 158["Sweep Extrusion<br>[1749, 1792, 9]"]
159["Sweep Extrusion<br>[2175, 2218, 9]"] 159["Sweep Extrusion<br>[2151, 2194, 9]"]
160["Sweep Extrusion<br>[2470, 2503, 9]"] 160["Sweep Extrusion<br>[2446, 2479, 9]"]
161["Sweep Extrusion<br>[2906, 2937, 10]"] 161["Sweep Extrusion<br>[2882, 2913, 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>[744, 780, 0]"] 2["Path<br>[732, 768, 0]"]
3["Segment<br>[934, 998, 0]"] 3["Segment<br>[922, 986, 0]"]
4["Segment<br>[934, 998, 0]"] 4["Segment<br>[922, 986, 0]"]
5["Segment<br>[934, 998, 0]"] 5["Segment<br>[922, 986, 0]"]
6["Segment<br>[934, 998, 0]"] 6["Segment<br>[922, 986, 0]"]
7["Segment<br>[934, 998, 0]"] 7["Segment<br>[922, 986, 0]"]
8["Segment<br>[934, 998, 0]"] 8["Segment<br>[922, 986, 0]"]
9["Segment<br>[934, 998, 0]"] 9["Segment<br>[922, 986, 0]"]
10["Segment<br>[934, 998, 0]"] 10["Segment<br>[922, 986, 0]"]
11["Segment<br>[934, 998, 0]"] 11["Segment<br>[922, 986, 0]"]
12["Segment<br>[934, 998, 0]"] 12["Segment<br>[922, 986, 0]"]
13["Segment<br>[934, 998, 0]"] 13["Segment<br>[922, 986, 0]"]
14["Segment<br>[934, 998, 0]"] 14["Segment<br>[922, 986, 0]"]
15["Segment<br>[934, 998, 0]"] 15["Segment<br>[922, 986, 0]"]
16["Segment<br>[934, 998, 0]"] 16["Segment<br>[922, 986, 0]"]
17["Segment<br>[934, 998, 0]"] 17["Segment<br>[922, 986, 0]"]
18["Segment<br>[934, 998, 0]"] 18["Segment<br>[922, 986, 0]"]
19["Segment<br>[934, 998, 0]"] 19["Segment<br>[922, 986, 0]"]
20["Segment<br>[934, 998, 0]"] 20["Segment<br>[922, 986, 0]"]
21["Segment<br>[934, 998, 0]"] 21["Segment<br>[922, 986, 0]"]
22["Segment<br>[934, 998, 0]"] 22["Segment<br>[922, 986, 0]"]
23["Segment<br>[934, 998, 0]"] 23["Segment<br>[922, 986, 0]"]
24["Segment<br>[934, 998, 0]"] 24["Segment<br>[922, 986, 0]"]
25["Segment<br>[934, 998, 0]"] 25["Segment<br>[922, 986, 0]"]
26["Segment<br>[934, 998, 0]"] 26["Segment<br>[922, 986, 0]"]
27["Segment<br>[934, 998, 0]"] 27["Segment<br>[922, 986, 0]"]
28["Segment<br>[934, 998, 0]"] 28["Segment<br>[922, 986, 0]"]
29["Segment<br>[934, 998, 0]"] 29["Segment<br>[922, 986, 0]"]
30["Segment<br>[934, 998, 0]"] 30["Segment<br>[922, 986, 0]"]
31["Segment<br>[934, 998, 0]"] 31["Segment<br>[922, 986, 0]"]
32["Segment<br>[934, 998, 0]"] 32["Segment<br>[922, 986, 0]"]
33["Segment<br>[934, 998, 0]"] 33["Segment<br>[922, 986, 0]"]
34["Segment<br>[934, 998, 0]"] 34["Segment<br>[922, 986, 0]"]
35["Segment<br>[934, 998, 0]"] 35["Segment<br>[922, 986, 0]"]
36["Segment<br>[934, 998, 0]"] 36["Segment<br>[922, 986, 0]"]
37["Segment<br>[934, 998, 0]"] 37["Segment<br>[922, 986, 0]"]
38["Segment<br>[934, 998, 0]"] 38["Segment<br>[922, 986, 0]"]
39["Segment<br>[934, 998, 0]"] 39["Segment<br>[922, 986, 0]"]
40["Segment<br>[934, 998, 0]"] 40["Segment<br>[922, 986, 0]"]
41["Segment<br>[934, 998, 0]"] 41["Segment<br>[922, 986, 0]"]
42["Segment<br>[934, 998, 0]"] 42["Segment<br>[922, 986, 0]"]
43["Segment<br>[934, 998, 0]"] 43["Segment<br>[922, 986, 0]"]
44["Segment<br>[934, 998, 0]"] 44["Segment<br>[922, 986, 0]"]
45["Segment<br>[934, 998, 0]"] 45["Segment<br>[922, 986, 0]"]
46["Segment<br>[934, 998, 0]"] 46["Segment<br>[922, 986, 0]"]
47["Segment<br>[934, 998, 0]"] 47["Segment<br>[922, 986, 0]"]
48["Segment<br>[934, 998, 0]"] 48["Segment<br>[922, 986, 0]"]
49["Segment<br>[934, 998, 0]"] 49["Segment<br>[922, 986, 0]"]
50["Segment<br>[934, 998, 0]"] 50["Segment<br>[922, 986, 0]"]
51["Segment<br>[934, 998, 0]"] 51["Segment<br>[922, 986, 0]"]
52["Segment<br>[1062, 1080, 0]"] 52["Segment<br>[1050, 1068, 0]"]
53[Solid2d] 53[Solid2d]
end end
1["Plane<br>[721, 738, 0]"] 1["Plane<br>[709, 726, 0]"]
54["Sweep Extrusion<br>[1134, 1172, 0]"] 54["Sweep Extrusion<br>[1122, 1160, 0]"]
55[Wall] 55[Wall]
56[Wall] 56[Wall]
57[Wall] 57[Wall]

View File

@ -302,15 +302,7 @@ 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"
}, },
@ -395,15 +387,7 @@ 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

@ -14,8 +14,8 @@ 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 * math::cos(angle) x = radius * cos(angle)
y = radius * math::sin(angle) y = radius * 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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::cos", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "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": "math::sin", "name": "sin",
"functionSourceRange": [], "functionSourceRange": [],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {} "labeledArgs": {}

File diff suppressed because it is too large Load Diff

View File

@ -21,8 +21,8 @@ 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 * math::cos(angle) x = radius * cos(angle)
y = radius * math::sin(angle) y = radius * 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>[343, 413, 0]"] 4["Path<br>[337, 407, 0]"]
7["Segment<br>[343, 413, 0]"] 7["Segment<br>[337, 407, 0]"]
16[Solid2d] 16[Solid2d]
end end
subgraph path5 [Path] subgraph path5 [Path]
5["Path<br>[658, 718, 0]"] 5["Path<br>[652, 712, 0]"]
8["Segment<br>[726, 805, 0]"] 8["Segment<br>[720, 799, 0]"]
9["Segment<br>[813, 892, 0]"] 9["Segment<br>[807, 886, 0]"]
10["Segment<br>[900, 979, 0]"] 10["Segment<br>[894, 973, 0]"]
11["Segment<br>[987, 1065, 0]"] 11["Segment<br>[981, 1059, 0]"]
12["Segment<br>[1073, 1151, 0]"] 12["Segment<br>[1067, 1145, 0]"]
13["Segment<br>[1159, 1166, 0]"] 13["Segment<br>[1153, 1160, 0]"]
15[Solid2d] 15[Solid2d]
end end
subgraph path6 [Path] subgraph path6 [Path]
6["Path<br>[1274, 1343, 0]"] 6["Path<br>[1268, 1337, 0]"]
14["Segment<br>[1274, 1343, 0]"] 14["Segment<br>[1268, 1337, 0]"]
17[Solid2d] 17[Solid2d]
end end
1["Plane<br>[318, 335, 0]"] 1["Plane<br>[312, 329, 0]"]
2["StartSketchOnFace<br>[611, 650, 0]"] 2["StartSketchOnFace<br>[605, 644, 0]"]
3["StartSketchOnFace<br>[1229, 1266, 0]"] 3["StartSketchOnFace<br>[1223, 1260, 0]"]
18["Sweep Extrusion<br>[421, 454, 0]"] 18["Sweep Extrusion<br>[415, 448, 0]"]
19["Sweep Extrusion<br>[1174, 1214, 0]"] 19["Sweep Extrusion<br>[1168, 1208, 0]"]
20["Sweep Extrusion<br>[1351, 1379, 0]"] 20["Sweep Extrusion<br>[1345, 1373, 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>[462, 528, 0]"] 49["EdgeCut Fillet<br>[456, 522, 0]"]
50["EdgeCut Fillet<br>[462, 528, 0]"] 50["EdgeCut Fillet<br>[456, 522, 0]"]
51["EdgeCut Fillet<br>[1387, 1446, 0]"] 51["EdgeCut Fillet<br>[1381, 1440, 0]"]
1 --- 4 1 --- 4
29 x--> 2 29 x--> 2
31 x--> 3 31 x--> 3

View File

@ -273,15 +273,7 @@ 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 * math::cos(30deg)) export boltHexFlatLength = boltHexDrive / (2 * 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": "math::cos", "name": "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 * math::cos(30deg)) export boltHexFlatLength = boltHexDrive / (2 * cos(30deg))
export boltThreadLength = 1.75 export boltThreadLength = 1.75
export fn bolt() { export fn bolt() {

Some files were not shown because too many files have changed in this diff Show More