BREAKING: Change tangential arc to keyword args (#6266)

* Change tangentialArc, tangentialArcTo, and tangentialArcToRelative to keyword args

* Change tangentialArc offset to angle and convert to kw arg calls

* Fix lints

* Fix sketch errors and all unit tests passing

* Fix tangentialArcTo calls in KCL samples

* Update tangentialArc in samples

* Update sim test output

* Fix formatting

* Fix mistake in merge

* Fix gear rack sample

* Update output after more samples fixes

* Update gear rack output

* Add end label to docs snippet

* Fix to not add endAbsolute for an arc with radius or angle arguments

* Update docs outputs

* Fix formatting

* Fix executor tests

* Fix formatting

* Fix bench input files

* Fix spelling

* Improve error messages

---------

Co-authored-by: Adam Chalmers <adam.chalmers@zoo.dev>
This commit is contained in:
Jonathan Tran
2025-04-11 14:17:20 -04:00
committed by GitHub
parent 66f95d25f6
commit 319c60d4fa
129 changed files with 13063 additions and 17144 deletions

View File

@ -188,9 +188,9 @@ example = extrude(exampleSketch, length = 1)
sweepPath = startSketchOn(XZ) sweepPath = startSketchOn(XZ)
|> startProfileAt([0.05, 0.05], %) |> startProfileAt([0.05, 0.05], %)
|> line(end = [0, 7]) |> line(end = [0, 7])
|> tangentialArc({ offset = 90, radius = 5 }, %) |> tangentialArc(angle = 90, radius = 5)
|> line(end = [-3, 0]) |> line(end = [-3, 0])
|> tangentialArc({ offset = -90, radius = 5 }, %) |> tangentialArc(angle = -90, radius = 5)
|> line(end = [0, 7]) |> line(end = [0, 7])
pipeHole = startSketchOn(XY) pipeHole = startSketchOn(XY)

View File

@ -65,7 +65,7 @@ case = startSketchOn(-XZ)
|> startProfileAt([-size, -size], %) |> startProfileAt([-size, -size], %)
|> line(end = [2 * size, 0]) |> line(end = [2 * size, 0])
|> line(end = [0, 2 * size]) |> line(end = [0, 2 * size])
|> tangentialArcTo([-size, size], %) |> tangentialArc(endAbsolute = [-size, size])
|> close() |> close()
|> extrude(length = 65) |> extrude(length = 65)

View File

@ -128,8 +128,6 @@ layout: manual
* [`sweep`](kcl/sweep) * [`sweep`](kcl/sweep)
* [`tangentToEnd`](kcl/tangentToEnd) * [`tangentToEnd`](kcl/tangentToEnd)
* [`tangentialArc`](kcl/tangentialArc) * [`tangentialArc`](kcl/tangentialArc)
* [`tangentialArcTo`](kcl/tangentialArcTo)
* [`tangentialArcToRelative`](kcl/tangentialArcToRelative)
* [`toDegrees`](kcl/toDegrees) * [`toDegrees`](kcl/toDegrees)
* [`toRadians`](kcl/toRadians) * [`toRadians`](kcl/toRadians)
* [`translate`](kcl/translate) * [`translate`](kcl/translate)

View File

@ -57,7 +57,7 @@ case = startSketchOn(XY)
|> startProfileAt([-size, -size], %) |> startProfileAt([-size, -size], %)
|> line(end = [2 * size, 0]) |> line(end = [2 * size, 0])
|> line(end = [0, 2 * size]) |> line(end = [0, 2 * size])
|> tangentialArcTo([-size, size], %) |> tangentialArc(endAbsolute = [-size, size])
|> close(%) |> close(%)
|> extrude(length = 65) |> extrude(length = 65)
@ -88,7 +88,7 @@ case = startSketchOn(XY)
|> startProfileAt([-size, -size], %) |> startProfileAt([-size, -size], %)
|> line(end = [2 * size, 0]) |> line(end = [2 * size, 0])
|> line(end = [0, 2 * size]) |> line(end = [0, 2 * size])
|> tangentialArcTo([-size, size], %) |> tangentialArc(endAbsolute = [-size, size])
|> close(%) |> close(%)
|> extrude(length = 65) |> extrude(length = 65)

View File

@ -65,9 +65,9 @@ rotate(
sweepPath = startSketchOn(XZ) sweepPath = startSketchOn(XZ)
|> startProfileAt([0.05, 0.05], %) |> startProfileAt([0.05, 0.05], %)
|> line(end = [0, 7]) |> line(end = [0, 7])
|> tangentialArc({ offset = 90, radius = 5 }, %) |> tangentialArc(angle = 90, radius = 5)
|> line(end = [-3, 0]) |> line(end = [-3, 0])
|> tangentialArc({ offset = -90, radius = 5 }, %) |> tangentialArc(angle = -90, radius = 5)
|> line(end = [0, 7]) |> line(end = [0, 7])
// Create a hole for the pipe. // Create a hole for the pipe.
@ -90,9 +90,9 @@ sweepSketch = startSketchOn(XY)
sweepPath = startSketchOn(XZ) sweepPath = startSketchOn(XZ)
|> startProfileAt([0.05, 0.05], %) |> startProfileAt([0.05, 0.05], %)
|> line(end = [0, 7]) |> line(end = [0, 7])
|> tangentialArc({ offset = 90, radius = 5 }, %) |> tangentialArc(angle = 90, radius = 5)
|> line(end = [-3, 0]) |> line(end = [-3, 0])
|> tangentialArc({ offset = -90, radius = 5 }, %) |> tangentialArc(angle = -90, radius = 5)
|> line(end = [0, 7]) |> line(end = [0, 7])
// Create a hole for the pipe. // Create a hole for the pipe.
@ -115,9 +115,9 @@ sweepSketch = startSketchOn(XY)
sweepPath = startSketchOn(XZ) sweepPath = startSketchOn(XZ)
|> startProfileAt([0.05, 0.05], %) |> startProfileAt([0.05, 0.05], %)
|> line(end = [0, 7]) |> line(end = [0, 7])
|> tangentialArc({ offset = 90, radius = 5 }, %) |> tangentialArc(angle = 90, radius = 5)
|> line(end = [-3, 0]) |> line(end = [-3, 0])
|> tangentialArc({ offset = -90, radius = 5 }, %) |> tangentialArc(angle = -90, radius = 5)
|> line(end = [0, 7]) |> line(end = [0, 7])
// Create a hole for the pipe. // Create a hole for the pipe.
@ -162,7 +162,7 @@ circleSketch = circle(sketch001, center = [200, -30.29], radius = 32.63)
sketch002 = startSketchOn(YZ) sketch002 = startSketchOn(YZ)
sweepPath = startProfileAt([0, 0], sketch002) sweepPath = startProfileAt([0, 0], sketch002)
|> yLine(length = 231.81) |> yLine(length = 231.81)
|> tangentialArc({ radius = 80, offset = -90 }, %) |> tangentialArc(radius = 80, angle = -90)
|> xLine(length = 384.93) |> xLine(length = 384.93)
parts = sweep([rectangleSketch, circleSketch], path = sweepPath) parts = sweep([rectangleSketch, circleSketch], path = sweepPath)

View File

@ -49,9 +49,9 @@ scale(
sweepPath = startSketchOn(XZ) sweepPath = startSketchOn(XZ)
|> startProfileAt([0.05, 0.05], %) |> startProfileAt([0.05, 0.05], %)
|> line(end = [0, 7]) |> line(end = [0, 7])
|> tangentialArc({ offset = 90, radius = 5 }, %) |> tangentialArc(angle = 90, radius = 5)
|> line(end = [-3, 0]) |> line(end = [-3, 0])
|> tangentialArc({ offset = -90, radius = 5 }, %) |> tangentialArc(angle = -90, radius = 5)
|> line(end = [0, 7]) |> line(end = [0, 7])
// Create a hole for the pipe. // Create a hole for the pipe.
@ -96,7 +96,7 @@ circleSketch = circle(sketch001, center = [200, -30.29], radius = 32.63)
sketch002 = startSketchOn(YZ) sketch002 = startSketchOn(YZ)
sweepPath = startProfileAt([0, 0], sketch002) sweepPath = startProfileAt([0, 0], sketch002)
|> yLine(length = 231.81) |> yLine(length = 231.81)
|> tangentialArc({ radius = 80, offset = -90 }, %) |> tangentialArc(radius = 80, angle = -90)
|> xLine(length = 384.93) |> xLine(length = 384.93)
parts = sweep([rectangleSketch, circleSketch], path = sweepPath) parts = sweep([rectangleSketch, circleSketch], path = sweepPath)

View File

@ -30,7 +30,7 @@ segLen(tag: TagIdentifier): number
exampleSketch = startSketchOn(XZ) exampleSketch = startSketchOn(XZ)
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> angledLine(angle = 60, length = 10, tag = $thing) |> angledLine(angle = 60, length = 10, tag = $thing)
|> tangentialArc({ offset = -120, radius = 5 }, %) |> tangentialArc(angle = -120, radius = 5)
|> angledLine(angle = -60, length = segLen(thing)) |> angledLine(angle = -60, length = segLen(thing))
|> close() |> close()

View File

@ -103,7 +103,7 @@ case = startSketchOn(-XZ)
|> startProfileAt([-size, -size], %) |> startProfileAt([-size, -size], %)
|> line(end = [2 * size, 0]) |> line(end = [2 * size, 0])
|> line(end = [0, 2 * size]) |> line(end = [0, 2 * size])
|> tangentialArcTo([-size, size], %) |> tangentialArc(endAbsolute = [-size, size])
|> close() |> close()
|> extrude(length = 65) |> extrude(length = 65)
@ -128,7 +128,7 @@ case = startSketchOn(XY)
|> startProfileAt([-size, -size], %) |> startProfileAt([-size, -size], %)
|> line(end = [2 * size, 0]) |> line(end = [2 * size, 0])
|> line(end = [0, 2 * size]) |> line(end = [0, 2 * size])
|> tangentialArcTo([-size, size], %) |> tangentialArc(endAbsolute = [-size, size])
|> close() |> close()
|> extrude(length = 65) |> extrude(length = 65)
@ -156,7 +156,7 @@ case = startSketchOn(XY)
|> startProfileAt([-size, -size], %) |> startProfileAt([-size, -size], %)
|> line(end = [2 * size, 0]) |> line(end = [2 * size, 0])
|> line(end = [0, 2 * size]) |> line(end = [0, 2 * size])
|> tangentialArcTo([-size, size], %) |> tangentialArc(endAbsolute = [-size, size])
|> close() |> close()
|> extrude(length = 65) |> extrude(length = 65)

View File

@ -103,9 +103,9 @@ example = extrude(sketch001, length = 10)
sketch0011 = startSketchOn(XY) sketch0011 = startSketchOn(XY)
|> startProfileAt([6.77, 0], %) |> startProfileAt([6.77, 0], %)
|> yLine(length = 1.27) |> yLine(length = 1.27)
|> tangentialArcTo([5.96, 2.37], %) |> tangentialArc(endAbsolute = [5.96, 2.37])
|> tangentialArcTo([-6.2, 2.44], %) |> tangentialArc(endAbsolute = [-6.2, 2.44])
|> tangentialArcTo([-6.6, 1.82], %) |> tangentialArc(endAbsolute = [-6.6, 1.82])
|> yLine(length = -1.82) |> yLine(length = -1.82)
|> mirror2d( axis = X ) |> mirror2d( axis = X )
|> extrude(length = 10) |> extrude(length = 10)

File diff suppressed because it is too large Load Diff

View File

@ -47,9 +47,9 @@ sweep(
sweepPath = startSketchOn(XZ) sweepPath = startSketchOn(XZ)
|> startProfileAt([0.05, 0.05], %) |> startProfileAt([0.05, 0.05], %)
|> line(end = [0, 7]) |> line(end = [0, 7])
|> tangentialArc({ offset = 90, radius = 5 }, %) |> tangentialArc(angle = 90, radius = 5)
|> line(end = [-3, 0]) |> line(end = [-3, 0])
|> tangentialArc({ offset = -90, radius = 5 }, %) |> tangentialArc(angle = -90, radius = 5)
|> line(end = [0, 7]) |> line(end = [0, 7])
// Create a hole for the pipe. // Create a hole for the pipe.
@ -102,7 +102,7 @@ circleSketch = circle(sketch001, center = [200, -30.29], radius = 32.63)
sketch002 = startSketchOn(YZ) sketch002 = startSketchOn(YZ)
sweepPath = startProfileAt([0, 0], sketch002) sweepPath = startProfileAt([0, 0], sketch002)
|> yLine(length = 231.81) |> yLine(length = 231.81)
|> tangentialArc({ radius = 80, offset = -90 }, %) |> tangentialArc(radius = 80, angle = -90)
|> xLine(length = 384.93) |> xLine(length = 384.93)
sweep([rectangleSketch, circleSketch], path = sweepPath) sweep([rectangleSketch, circleSketch], path = sweepPath)
@ -120,7 +120,7 @@ circleSketch = circle(sketch001, center = [200, -30.29], radius = 32.63)
sketch002 = startSketchOn(YZ) sketch002 = startSketchOn(YZ)
sweepPath = startProfileAt([0, 0], sketch002) sweepPath = startProfileAt([0, 0], sketch002)
|> yLine(length = 231.81) |> yLine(length = 231.81)
|> tangentialArc({ radius = 80, offset = -90 }, %) |> tangentialArc(radius = 80, angle = -90)
|> xLine(length = 384.93) |> xLine(length = 384.93)
sweep(circleSketch, path = sweepPath, sectional = true) sweep(circleSketch, path = sweepPath, sectional = true)

View File

@ -31,9 +31,9 @@ tangentToEnd(tag: TagIdentifier): number
pillSketch = startSketchOn(XZ) pillSketch = startSketchOn(XZ)
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> line(end = [20, 0]) |> line(end = [20, 0])
|> tangentialArcToRelative([0, 10], %, $arc1) |> tangentialArc(end = [0, 10], tag = $arc1)
|> angledLine(angle = tangentToEnd(arc1), length = 20) |> angledLine(angle = tangentToEnd(arc1), length = 20)
|> tangentialArcToRelative([0, -10], %) |> tangentialArc(end = [0, -10])
|> close() |> close()
pillExtrude = extrude(pillSketch, length = 10) pillExtrude = extrude(pillSketch, length = 10)
@ -46,9 +46,9 @@ pillExtrude = extrude(pillSketch, length = 10)
pillSketch = startSketchOn(XZ) pillSketch = startSketchOn(XZ)
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> line(end = [0, 20]) |> line(end = [0, 20])
|> tangentialArcTo([10, 20], %, $arc1) |> tangentialArc(endAbsolute = [10, 20], tag = $arc1)
|> angledLine(angle = tangentToEnd(arc1), length = 20) |> angledLine(angle = tangentToEnd(arc1), length = 20)
|> tangentialArcToRelative([-10, 0], %) |> tangentialArc(end = [-10, 0])
|> close() |> close()
pillExtrude = extrude(pillSketch, length = 10) pillExtrude = extrude(pillSketch, length = 10)

File diff suppressed because one or more lines are too long

View File

@ -45,9 +45,9 @@ translate(
sweepPath = startSketchOn(XZ) sweepPath = startSketchOn(XZ)
|> startProfileAt([0.05, 0.05], %) |> startProfileAt([0.05, 0.05], %)
|> line(end = [0, 7]) |> line(end = [0, 7])
|> tangentialArc({ offset = 90, radius = 5 }, %) |> tangentialArc(angle = 90, radius = 5)
|> line(end = [-3, 0]) |> line(end = [-3, 0])
|> tangentialArc({ offset = -90, radius = 5 }, %) |> tangentialArc(angle = -90, radius = 5)
|> line(end = [0, 7]) |> line(end = [0, 7])
// Create a hole for the pipe. // Create a hole for the pipe.
@ -97,7 +97,7 @@ circleSketch = circle(sketch001, center = [200, -30.29], radius = 32.63)
sketch002 = startSketchOn(YZ) sketch002 = startSketchOn(YZ)
sweepPath = startProfileAt([0, 0], sketch002) sweepPath = startProfileAt([0, 0], sketch002)
|> yLine(length = 231.81) |> yLine(length = 231.81)
|> tangentialArc({ radius = 80, offset = -90 }, %) |> tangentialArc(radius = 80, angle = -90)
|> xLine(length = 384.93) |> xLine(length = 384.93)
parts = sweep([rectangleSketch, circleSketch], path = sweepPath) parts = sweep([rectangleSketch, circleSketch], path = sweepPath)

View File

@ -920,7 +920,7 @@ sketch001 = startSketchOn(XZ)
`sketch001 = startSketchOn(XZ) `sketch001 = startSketchOn(XZ)
|> startProfileAt([4.61, -14.01], %) |> startProfileAt([4.61, -14.01], %)
|> line(end = [12.73, -0.09]) |> line(end = [12.73, -0.09])
|> tangentialArcTo([24.95, -5.38], %) |> tangentialArc(endAbsolute = [24.95, -5.38])
|> close()` |> close()`
) )
}) })
@ -969,7 +969,7 @@ sketch001 = startSketchOn(XZ)
// expect the code to have changed // expect the code to have changed
await expect(page.locator('.cm-content')).toHaveText( await expect(page.locator('.cm-content')).toHaveText(
`sketch001 = startSketchOn(XZ) |> startProfileAt([4.61, -14.01], %) |> line(end = [12.73, -0.09]) |> tangentialArcTo([24.95, -5.38], %) |> close()extrude001 = extrude(sketch001, length = 5)` `sketch001 = startSketchOn(XZ) |> startProfileAt([4.61, -14.01], %) |> line(end = [12.73, -0.09]) |> tangentialArc(endAbsolute = [24.95, -5.38]) |> close()extrude001 = extrude(sketch001, length = 5)`
) )
// Now hit undo // Now hit undo
@ -982,7 +982,7 @@ sketch001 = startSketchOn(XZ)
.toHaveText(`sketch001 = startSketchOn(XZ) .toHaveText(`sketch001 = startSketchOn(XZ)
|> startProfileAt([4.61, -14.01], %) |> startProfileAt([4.61, -14.01], %)
|> line(end = [12.73, -0.09]) |> line(end = [12.73, -0.09])
|> tangentialArcTo([24.95, -5.38], %) |> tangentialArc(endAbsolute = [24.95, -5.38])
|> close()`) |> close()`)
}) })
@ -998,7 +998,7 @@ sketch001 = startSketchOn(XZ)
sketch001 = startSketchOn(XZ) sketch001 = startSketchOn(XZ)
|> startProfileAt([4.61, -10.01], %) |> startProfileAt([4.61, -10.01], %)
|> line(end = [12.73, -0.09]) |> line(end = [12.73, -0.09])
|> tangentialArcTo([24.95, -0.38], %) |> tangentialArc(endAbsolute = [24.95, -0.38])
|> close() |> close()
|> extrude(length = 5)` |> extrude(length = 5)`
) )
@ -1072,7 +1072,7 @@ sketch001 = startSketchOn(XZ)
// we wait so it saves the code // we wait so it saves the code
await page.waitForTimeout(800) await page.waitForTimeout(800)
// drag tangentialArcTo handle // drag tangentialArc handle
const tangentEnd = await u.getBoundingBox('[data-overlay-index="1"]') const tangentEnd = await u.getBoundingBox('[data-overlay-index="1"]')
await page.dragAndDrop('#stream', '#stream', { await page.dragAndDrop('#stream', '#stream', {
sourcePosition: { x: tangentEnd.x + 10, y: tangentEnd.y - 5 }, sourcePosition: { x: tangentEnd.x + 10, y: tangentEnd.y - 5 },
@ -1089,7 +1089,7 @@ sketch001 = startSketchOn(XZ)
`sketch001 = startSketchOn(XZ) `sketch001 = startSketchOn(XZ)
|> startProfileAt([2.71, -2.71], %) |> startProfileAt([2.71, -2.71], %)
|> line(end = [15.4, -2.78]) |> line(end = [15.4, -2.78])
|> tangentialArcTo([27.6, -3.05], %) |> tangentialArc(endAbsolute = [27.6, -3.05])
|> close() |> close()
|> extrude(length = 5)`, |> extrude(length = 5)`,
{ shouldNormalise: true } { shouldNormalise: true }
@ -1104,7 +1104,7 @@ sketch001 = startSketchOn(XZ)
`sketch001 = startSketchOn(XZ) `sketch001 = startSketchOn(XZ)
|> startProfileAt([2.71, -2.71], %) |> startProfileAt([2.71, -2.71], %)
|> line(end = [15.4, -2.78]) |> line(end = [15.4, -2.78])
|> tangentialArcTo([24.95, -0.38], %) |> tangentialArc(endAbsolute = [24.95, -0.38])
|> close() |> close()
|> extrude(length = 5)`, |> extrude(length = 5)`,
{ shouldNormalise: true } { shouldNormalise: true }
@ -1119,7 +1119,7 @@ sketch001 = startSketchOn(XZ)
`sketch001 = startSketchOn(XZ) `sketch001 = startSketchOn(XZ)
|> startProfileAt([2.71, -2.71], %) |> startProfileAt([2.71, -2.71], %)
|> line(end = [12.73, -0.09]) |> line(end = [12.73, -0.09])
|> tangentialArcTo([24.95, -0.38], %) |> tangentialArc(endAbsolute = [24.95, -0.38])
|> close() |> close()
|> extrude(length = 5)`, |> extrude(length = 5)`,
{ shouldNormalise: true } { shouldNormalise: true }
@ -1135,7 +1135,7 @@ sketch001 = startSketchOn(XZ)
`sketch001 = startSketchOn(XZ) `sketch001 = startSketchOn(XZ)
|> startProfileAt([4.61, -10.01], %) |> startProfileAt([4.61, -10.01], %)
|> line(end = [12.73, -0.09]) |> line(end = [12.73, -0.09])
|> tangentialArcTo([24.95, -0.38], %) |> tangentialArc(endAbsolute = [24.95, -0.38])
|> close() |> close()
|> extrude(length = 5)`, |> extrude(length = 5)`,
{ shouldNormalise: true } { shouldNormalise: true }

View File

@ -550,7 +550,7 @@ openSketch = startSketchOn(XY)
|> startProfileAt([-5, 0], %) |> startProfileAt([-5, 0], %)
|> line(endAbsolute = [0, 5]) |> line(endAbsolute = [0, 5])
|> xLine(length = 5) |> xLine(length = 5)
|> tangentialArcTo([10, 0], %) |> tangentialArc(endAbsolute = [10, 0])
` `
const viewPortSize = { width: 1000, height: 500 } const viewPortSize = { width: 1000, height: 500 }
await page.setBodyDimensions(viewPortSize) await page.setBodyDimensions(viewPortSize)
@ -634,8 +634,8 @@ openSketch = startSketchOn(XY)
// Wait for enter sketch mode to complete // Wait for enter sketch mode to complete
await page.waitForTimeout(500) await page.waitForTimeout(500)
await editor.expectState({ await editor.expectState({
activeLines: [`|>tangentialArcTo([10,0],%)`], activeLines: [`|>tangentialArc(endAbsolute=[10,0])`],
highlightedCode: 'tangentialArcTo([10,0],%)', highlightedCode: 'tangentialArc(endAbsolute=[10,0])',
diagnostics: [], diagnostics: [],
}) })
}) })
@ -1624,7 +1624,7 @@ profile001 = circle(sketch001, center = [0, 0], radius = 500)
sketch002 = startSketchOn(XZ) sketch002 = startSketchOn(XZ)
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> xLine(length = -500) |> xLine(length = -500)
|> tangentialArcTo([-2000, 500], %)`, |> tangentialArc(endAbsolute = [-2000, 500])`,
}, },
{ {
targetType: 'rectangle', targetType: 'rectangle',
@ -1640,7 +1640,7 @@ profile001 = startProfileAt([-400, -400], sketch001)
sketch002 = startSketchOn(XZ) sketch002 = startSketchOn(XZ)
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> xLine(length = -500) |> xLine(length = -500)
|> tangentialArcTo([-2000, 500], %)`, |> tangentialArc(endAbsolute = [-2000, 500])`,
}, },
] ]
sweepCases.map(({ initialCode, targetType, testPoint }) => { sweepCases.map(({ initialCode, targetType, testPoint }) => {

View File

@ -63,7 +63,7 @@ test.describe('Sketch tests', { tag: ['@skipWin'] }, () => {
part002 = startSketchOn(-XZ) part002 = startSketchOn(-XZ)
${startProfileAt3} ${startProfileAt3}
|> xLine(length = width / 4) |> xLine(length = width / 4)
|> tangentialArcTo([width / 2, 0], %) |> tangentialArc(endAbsolute = [width / 2, 0])
|> xLine(length = -width / 4 + wireRadius) |> xLine(length = -width / 4 + wireRadius)
|> yLine(length = wireOffset) |> yLine(length = wireOffset)
|> arc({ |> arc({
@ -119,7 +119,7 @@ test.describe('Sketch tests', { tag: ['@skipWin'] }, () => {
sketch001 = startSketchOn(XZ) sketch001 = startSketchOn(XZ)
|> startProfileAt([2.61, -4.01], %) |> startProfileAt([2.61, -4.01], %)
|> xLine(length = 8.73) |> xLine(length = 8.73)
|> tangentialArcTo([8.33, -1.31], %)` |> tangentialArc(endAbsolute = [8.33, -1.31])`
) )
}) })
@ -130,7 +130,7 @@ sketch001 = startSketchOn(XZ)
await expect(async () => { await expect(async () => {
await page.mouse.click(700, 200) await page.mouse.click(700, 200)
await page.getByText('tangentialArcTo([8.33, -1.31], %)').click() await page.getByText('tangentialArc(endAbsolute = [8.33, -1.31])').click()
await expect( await expect(
page.getByRole('button', { name: 'Edit Sketch' }) page.getByRole('button', { name: 'Edit Sketch' })
).toBeEnabled({ timeout: 2000 }) ).toBeEnabled({ timeout: 2000 })
@ -139,7 +139,7 @@ sketch001 = startSketchOn(XZ)
await page.waitForTimeout(600) // wait for animation await page.waitForTimeout(600) // wait for animation
await page.getByText('tangentialArcTo([8.33, -1.31], %)').click() await page.getByText('tangentialArc(endAbsolute = [8.33, -1.31])').click()
await page.keyboard.press('End') await page.keyboard.press('End')
await page.keyboard.down('Shift') await page.keyboard.down('Shift')
await page.keyboard.press('ArrowUp') await page.keyboard.press('ArrowUp')
@ -212,7 +212,7 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
`sketch001 = startSketchOn(XZ) `sketch001 = startSketchOn(XZ)
|> startProfileAt([4.61, -14.01], %) |> startProfileAt([4.61, -14.01], %)
|> line(end = [12.73, -0.09]) |> line(end = [12.73, -0.09])
|> tangentialArcTo([24.95, -5.38], %) |> tangentialArc(endAbsolute = [24.95, -5.38])
|> arcTo({ |> arcTo({
interior = [20.18, -1.7], interior = [20.18, -1.7],
end = [11.82, -1.16] end = [11.82, -1.16]
@ -262,7 +262,7 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
await expect(u.codeLocator).toHaveText(`sketch001 = startSketchOn(XZ) await expect(u.codeLocator).toHaveText(`sketch001 = startSketchOn(XZ)
|> startProfileAt([4.61, -14.01], %) |> startProfileAt([4.61, -14.01], %)
|> line(end = [12.73, -0.09]) |> line(end = [12.73, -0.09])
|> tangentialArcTo([24.95, -5.38], %) |> tangentialArc(endAbsolute = [24.95, -5.38])
|> arcTo({ |> arcTo({
interior = [20.18, -1.7], interior = [20.18, -1.7],
end = [11.82, -1.16] end = [11.82, -1.16]
@ -326,7 +326,7 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
prevContent = await page.locator('.cm-content').innerText() prevContent = await page.locator('.cm-content').innerText()
} }
// drag tangentialArcTo handle // drag tangentialArc handle
const tangentEnd = await u.getBoundingBox('[data-overlay-index="1"]') const tangentEnd = await u.getBoundingBox('[data-overlay-index="1"]')
await page.mouse.move(tangentEnd.x, tangentEnd.y - 5) await page.mouse.move(tangentEnd.x, tangentEnd.y - 5)
await page.mouse.down() await page.mouse.down()
@ -407,7 +407,7 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
.toHaveText(`sketch001 = startSketchOn(XZ) .toHaveText(`sketch001 = startSketchOn(XZ)
|> startProfileAt([6.44, -12.07], %) |> startProfileAt([6.44, -12.07], %)
|> line(end = [14.72, 1.97]) |> line(end = [14.72, 1.97])
|> tangentialArcTo([26.92, -3.32], %) |> tangentialArc(endAbsolute = [26.92, -3.32])
|> arcTo({ |> arcTo({
interior = [18.11, -3.73], interior = [18.11, -3.73],
end = [9.77, -3.19] end = [9.77, -3.19]
@ -577,7 +577,7 @@ sketch001 = startSketchOn(XZ)
sketch001 = startSketchOn(XZ) sketch001 = startSketchOn(XZ)
|> startProfileAt([4.61, -10.01], %) |> startProfileAt([4.61, -10.01], %)
|> line(end = [12.73, -0.09]) |> line(end = [12.73, -0.09])
|> tangentialArcTo([24.95, -0.38], %) |> tangentialArc(endAbsolute = [24.95, -0.38])
|> close() |> close()
|> extrude(length = 5)` |> extrude(length = 5)`
) )
@ -646,7 +646,7 @@ sketch001 = startSketchOn(XZ)
await expect(page.locator('.cm-content')).not.toHaveText(prevContent) await expect(page.locator('.cm-content')).not.toHaveText(prevContent)
prevContent = await page.locator('.cm-content').innerText() prevContent = await page.locator('.cm-content').innerText()
// drag tangentialArcTo handle // drag tangentialArc handle
const tangentEnd = await u.getBoundingBox('[data-overlay-index="1"]') const tangentEnd = await u.getBoundingBox('[data-overlay-index="1"]')
await page.dragAndDrop('#stream', '#stream', { await page.dragAndDrop('#stream', '#stream', {
sourcePosition: { x: tangentEnd.x + 10, y: tangentEnd.y - 5 }, sourcePosition: { x: tangentEnd.x + 10, y: tangentEnd.y - 5 },
@ -663,7 +663,7 @@ sketch001 = startSketchOn(XZ)
`sketch001 = startSketchOn(XZ) `sketch001 = startSketchOn(XZ)
|> startProfileAt([7.12, -12.68], %) |> startProfileAt([7.12, -12.68], %)
|> line(end = [12.68, -1.09]) |> line(end = [12.68, -1.09])
|> tangentialArcTo([24.89, 0.68], %) |> tangentialArc(endAbsolute = [24.89, 0.68])
|> close() |> close()
|> extrude(length = 5)`, |> extrude(length = 5)`,
{ shouldNormalise: true } { shouldNormalise: true }
@ -685,7 +685,7 @@ sketch001 = startSketchOn(XZ)
sketch001 = startSketchOn(XZ) sketch001 = startSketchOn(XZ)
|> startProfileAt([4.61, -14.01], %) |> startProfileAt([4.61, -14.01], %)
|> line(end = [12.73, -0.09]) |> line(end = [12.73, -0.09])
|> tangentialArcTo([24.95, -5.38], %) |> tangentialArc(endAbsolute = [24.95, -5.38])
|> close() |> close()
|> revolve(axis = X)` |> revolve(axis = X)`
) )
@ -757,7 +757,7 @@ sketch001 = startSketchOn(XZ)
await expect(page.locator('.cm-content')).not.toHaveText(prevContent) await expect(page.locator('.cm-content')).not.toHaveText(prevContent)
prevContent = await page.locator('.cm-content').innerText() prevContent = await page.locator('.cm-content').innerText()
// drag tangentialArcTo handle // drag tangentialArc handle
const tangentEnd = await u.getBoundingBox('[data-overlay-index="1"]') const tangentEnd = await u.getBoundingBox('[data-overlay-index="1"]')
await page.mouse.move(tangentEnd.x, tangentEnd.y - 5) await page.mouse.move(tangentEnd.x, tangentEnd.y - 5)
await page.mouse.down() await page.mouse.down()
@ -771,7 +771,7 @@ sketch001 = startSketchOn(XZ)
`sketch001 = startSketchOn(XZ) `sketch001 = startSketchOn(XZ)
|> startProfileAt([6.44, -12.07], %) |> startProfileAt([6.44, -12.07], %)
|> line(end = [14.72, 1.97]) |> line(end = [14.72, 1.97])
|> tangentialArcTo([24.95, -5.38], %) |> tangentialArc(endAbsolute = [24.95, -5.38])
|> line(end = [1.97, 2.06]) |> line(end = [1.97, 2.06])
|> close() |> close()
|> revolve(axis = X)`, |> revolve(axis = X)`,
@ -1653,7 +1653,7 @@ profile003 = startProfileAt([206.63, -56.73], sketch001)
await page.waitForTimeout(600) await page.waitForTimeout(600)
}) })
const codeFromTangentialArc = ` |> tangentialArcTo([39.49, 88.22], %)` const codeFromTangentialArc = ` |> tangentialArc(endAbsolute = [39.49, 88.22])`
await test.step('check that tangential tool does not snap to other profile starts', async () => { await test.step('check that tangential tool does not snap to other profile starts', async () => {
await toolbar.tangentialArcBtn.click() await toolbar.tangentialArcBtn.click()
await page.waitForTimeout(1000) await page.waitForTimeout(1000)
@ -1675,7 +1675,7 @@ profile003 = startProfileAt([206.63, -56.73], sketch001)
// check pixel is now gray at tanArcLocation to verify code has executed // check pixel is now gray at tanArcLocation to verify code has executed
await scene.expectPixelColor([26, 26, 26], tanArcLocation, 15) await scene.expectPixelColor([26, 26, 26], tanArcLocation, 15)
await editor.expectEditor.not.toContain( await editor.expectEditor.not.toContain(
`tangentialArcTo([39.49, 88.22], %)` `tangentialArc(endAbsolute = [39.49, 88.22])`
) )
}) })
@ -1876,7 +1876,7 @@ profile003 = startProfileAt([206.63, -56.73], sketch001)
await endArcStartLine() await endArcStartLine()
await editor.expectEditor.toContain( await editor.expectEditor.toContain(
`|> tangentialArcTo([16.61, 4.14], %)` `|> tangentialArc(endAbsolute = [16.61, 4.14])`
) )
// Add a three-point arc segment // Add a three-point arc segment
@ -2416,7 +2416,7 @@ sketch001 = startSketchOn(XZ)
profile001 = startProfileAt([-63.43, 193.08], sketch001) profile001 = startProfileAt([-63.43, 193.08], sketch001)
|> line(end = [168.52, 149.87]) |> line(end = [168.52, 149.87])
|> line(end = [190.29, -39.18]) |> line(end = [190.29, -39.18])
|> tangentialArcTo([319.63, 129.65], %) |> tangentialArc(endAbsolute = [319.63, 129.65])
|> line(end = [-217.65, -21.76]) |> line(end = [-217.65, -21.76])
|> line(endAbsolute = [profileStartX(%), profileStartY(%)]) |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()

View File

@ -684,7 +684,7 @@ test.describe(
await page.mouse.click(startXPx + PUR * 30, 500 - PUR * 20) await page.mouse.click(startXPx + PUR * 30, 500 - PUR * 20)
code += ` code += `
|> tangentialArcTo([551.2, -62.01], %)` |> tangentialArc(endAbsolute = [551.2, -62.01])`
await expect(u.codeLocator).toHaveText(code) await expect(u.codeLocator).toHaveText(code)
// click tangential arc tool again to unequip it // click tangential arc tool again to unequip it
@ -778,7 +778,7 @@ test.describe(
await page.mouse.click(startXPx + PUR * 30, 500 - PUR * 20) await page.mouse.click(startXPx + PUR * 30, 500 - PUR * 20)
code += ` code += `
|> tangentialArcTo([551.2, -62.01], %)` |> tangentialArc(endAbsolute = [551.2, -62.01])`
await expect(u.codeLocator).toHaveText(code) await expect(u.codeLocator).toHaveText(code)
await page await page

View File

@ -98,7 +98,7 @@ part001 = startSketchOn(XZ)
intersectTag: a, intersectTag: a,
offset: 0 offset: 0
}, %) }, %)
|> tangentialArcTo([13.14 + 0, 13.14], %) |> tangentialArc(endAbsolute = [13.14 + 0, 13.14])
|> close() |> close()
|> extrude(length = 5 + 7) |> extrude(length = 5 + 7)
` `

View File

@ -229,7 +229,7 @@ test.describe('Testing segment overlays', { tag: ['@skipWin'] }, () => {
intersectTag = a, intersectTag = a,
offset = 9 offset = 9
}, %) }, %)
|> tangentialArcTo([5 + 3.14 + 13, 20 + 3.14], %) |> tangentialArc(endAbsolute = [5 + 3.14 + 13, 20 + 3.14])
` `
) )
}) })
@ -477,7 +477,7 @@ test.describe('Testing segment overlays', { tag: ['@skipWin'] }, () => {
intersectTag = a, intersectTag = a,
offset = 9 offset = 9
}, %) }, %)
|> tangentialArcTo([3.14 + 13, 3.14], %) |> tangentialArc(endAbsolute = [3.14 + 13, 3.14])
` `
) )
localStorage.setItem('disableAxis', 'true') localStorage.setItem('disableAxis', 'true')
@ -602,7 +602,7 @@ test.describe('Testing segment overlays', { tag: ['@skipWin'] }, () => {
intersectTag = a, intersectTag = a,
offset = 9 offset = 9
}, %) }, %)
|> tangentialArcTo([3.14 + 13, 1.14], %) |> tangentialArc(endAbsolute = [3.14 + 13, 1.14])
` `
) )
localStorage.setItem('disableAxis', 'true') localStorage.setItem('disableAxis', 'true')
@ -735,11 +735,7 @@ test.describe('Testing segment overlays', { tag: ['@skipWin'] }, () => {
locator: '[data-overlay-toolbar-index="11"]', locator: '[data-overlay-toolbar-index="11"]',
}) })
}) })
test('for segment [tangentialArcTo]', async ({ test('for segment [tangentialArc]', async ({ page, editor, homePage }) => {
page,
editor,
homePage,
}) => {
await page.addInitScript(async () => { await page.addInitScript(async () => {
localStorage.setItem( localStorage.setItem(
'persistCode', 'persistCode',
@ -762,7 +758,7 @@ test.describe('Testing segment overlays', { tag: ['@skipWin'] }, () => {
intersectTag = a, intersectTag = a,
offset = 9 offset = 9
}, %) }, %)
|> tangentialArcTo([3.14 + 13, -3.14], %) |> tangentialArc(endAbsolute = [3.14 + 13, -3.14])
` `
) )
localStorage.setItem('disableAxis', 'true') localStorage.setItem('disableAxis', 'true')
@ -787,28 +783,29 @@ test.describe('Testing segment overlays', { tag: ['@skipWin'] }, () => {
const clickUnconstrained = _clickUnconstrained(page, editor) const clickUnconstrained = _clickUnconstrained(page, editor)
const clickConstrained = _clickConstrained(page, editor) const clickConstrained = _clickConstrained(page, editor)
const tangentialArcTo = await u.getBoundingBox( const tangentialArc = await u.getBoundingBox('[data-overlay-index="12"]')
'[data-overlay-index="12"]'
)
let ang = await u.getAngle('[data-overlay-index="12"]') let ang = await u.getAngle('[data-overlay-index="12"]')
console.log('tangentialArcTo') console.log('tangentialArc')
await clickConstrained({ await clickConstrained({
hoverPos: { x: tangentialArcTo.x, y: tangentialArcTo.y }, hoverPos: { x: tangentialArc.x, y: tangentialArc.y },
constraintType: 'xAbsolute', constraintType: 'xAbsolute',
expectBeforeUnconstrained: 'tangentialArcTo([3.14 + 13, -3.14], %)', expectBeforeUnconstrained:
expectAfterUnconstrained: 'tangentialArcTo([16.14, -3.14], %)', 'tangentialArc(endAbsolute = [3.14 + 13, -3.14])',
expectFinal: 'tangentialArcTo([xAbs001, -3.14], %)', expectAfterUnconstrained: 'tangentialArc(endAbsolute = [16.14, -3.14])',
expectFinal: 'tangentialArc(endAbsolute = [xAbs001, -3.14])',
ang: ang + 180, ang: ang + 180,
steps: 6, steps: 6,
locator: '[data-overlay-toolbar-index="12"]', locator: '[data-overlay-toolbar-index="12"]',
}) })
console.log('tangentialArcTo2') console.log('tangentialArc2')
await clickUnconstrained({ await clickUnconstrained({
hoverPos: { x: tangentialArcTo.x, y: tangentialArcTo.y }, hoverPos: { x: tangentialArc.x, y: tangentialArc.y },
constraintType: 'yAbsolute', constraintType: 'yAbsolute',
expectBeforeUnconstrained: 'tangentialArcTo([xAbs001, -3.14], %)', expectBeforeUnconstrained:
expectAfterUnconstrained: 'tangentialArcTo([xAbs001, yAbs001], %)', 'tangentialArc(endAbsolute = [xAbs001, -3.14])',
expectFinal: 'tangentialArcTo([xAbs001, -3.14], %)', expectAfterUnconstrained:
'tangentialArc(endAbsolute = [xAbs001, yAbs001])',
expectFinal: 'tangentialArc(endAbsolute = [xAbs001, -3.14])',
ang: ang + 180, ang: ang + 180,
steps: 10, steps: 10,
locator: '[data-overlay-toolbar-index="12"]', locator: '[data-overlay-toolbar-index="12"]',
@ -1091,7 +1088,7 @@ part001 = startSketchOn(XZ)
intersectTag = a, intersectTag = a,
offset = 9 offset = 9
}, %) }, %)
|> tangentialArcTo([3.14 + 13, 1.14], %) |> tangentialArc(endAbsolute = [3.14 + 13, 1.14])
|> arcTo({ |> arcTo({
interior = [16.25, 5.12], interior = [16.25, 5.12],
end = [21.61, 4.15] end = [21.61, 4.15]
@ -1161,8 +1158,8 @@ part001 = startSketchOn(XZ)
ang = await u.getAngle('[data-overlay-index="12"]') ang = await u.getAngle('[data-overlay-index="12"]')
await deleteSegmentSequence({ await deleteSegmentSequence({
hoverPos: { x: segmentToDelete.x, y: segmentToDelete.y }, hoverPos: { x: segmentToDelete.x, y: segmentToDelete.y },
codeToBeDeleted: 'tangentialArcTo([3.14 + 13, 1.14], %)', codeToBeDeleted: 'tangentialArc(endAbsolute = [3.14 + 13, 1.14])',
stdLibFnName: 'tangentialArcTo', stdLibFnName: 'tangentialArc',
ang: ang + 180, ang: ang + 180,
steps: 6, steps: 6,
locator: '[data-overlay-toolbar-index="12"]', locator: '[data-overlay-toolbar-index="12"]',

View File

@ -535,7 +535,7 @@ part001 = startSketchOn(XZ)
intersectTag = a, intersectTag = a,
offset = 0 offset = 0
}, %) }, %)
|> tangentialArcTo([13.14 + 0, 13.14], %) |> tangentialArc(endAbsolute = [13.14 + 0, 13.14])
|> close() |> close()
|> extrude(length = 5 + 7) |> extrude(length = 5 + 7)
` `
@ -574,7 +574,7 @@ part001 = startSketchOn(XZ)
const extrusionTopCap: Coords2d = [800, 240] const extrusionTopCap: Coords2d = [800, 240]
const flatExtrusionFace: Coords2d = [960, 160] const flatExtrusionFace: Coords2d = [960, 160]
const tangentialArcTo: Coords2d = [840, 160] const tangentialArc: Coords2d = [840, 160]
const close: Coords2d = [720, 200] const close: Coords2d = [720, 200]
const nothing: Coords2d = [600, 200] const nothing: Coords2d = [600, 200]
const closeEdge: Coords2d = [744, 233] const closeEdge: Coords2d = [744, 233]
@ -671,28 +671,28 @@ part001 = startSketchOn(XZ)
) )
await checkCodeAtHoverPosition( await checkCodeAtHoverPosition(
'tangentialArcTo', 'tangentialArc',
tangentialArcTo, tangentialArc,
'tangentialArcTo([13.14+0,13.14],%)extrude(length=5+7)', 'tangentialArc(endAbsolute=[13.14+0,13.14])extrude(length=5+7)',
'tangentialArcTo([13.14 + 0, 13.14], %)' 'tangentialArc(endAbsolute = [13.14 + 0, 13.14])'
) )
await checkCodeAtHoverPosition( await checkCodeAtHoverPosition(
'tangentialArcEdge', 'tangentialArcEdge',
tangentialArcEdge, tangentialArcEdge,
`tangentialArcTo([13.14+0,13.14],%)`, `tangentialArc(endAbsolute=[13.14+0,13.14])`,
'tangentialArcTo([13.14 + 0, 13.14], %)' 'tangentialArc(endAbsolute = [13.14 + 0, 13.14])'
) )
await checkCodeAtHoverPosition( await checkCodeAtHoverPosition(
'tangentialArcOppositeEdge', 'tangentialArcOppositeEdge',
tangentialArcOppositeEdge, tangentialArcOppositeEdge,
`tangentialArcTo([13.14+0,13.14],%)`, `tangentialArc(endAbsolute=[13.14+0,13.14])`,
'tangentialArcTo([13.14 + 0, 13.14], %)' 'tangentialArc(endAbsolute = [13.14 + 0, 13.14])'
) )
await checkCodeAtHoverPosition( await checkCodeAtHoverPosition(
'tangentialArcAdjacentEdge', 'tangentialArcAdjacentEdge',
tangentialArcAdjacentEdge, tangentialArcAdjacentEdge,
`tangentialArcTo([13.14+0,13.14],%)`, `tangentialArc(endAbsolute=[13.14+0,13.14])`,
'tangentialArcTo([13.14 + 0, 13.14], %)' 'tangentialArc(endAbsolute = [13.14 + 0, 13.14])'
) )
await checkCodeAtHoverPosition( await checkCodeAtHoverPosition(
@ -940,7 +940,7 @@ part001 = startSketchOn(XZ)
}, },
{ {
pos: [1107, 161], pos: [1107, 161],
expectedCode: 'tangentialArcTo([167.95, -28.85], %)', expectedCode: 'tangentialArc(endAbsolute = [167.95, -28.85])',
}, },
] as const ] as const
await page.addInitScript( await page.addInitScript(

View File

@ -10,25 +10,25 @@ fn dividerSketch(plane) {
sketch000 = startSketchOn(plane) sketch000 = startSketchOn(plane)
|> startProfileAt([-16.82, 21.2], %) |> startProfileAt([-16.82, 21.2], %)
|> line(end = [-0.13, -1.27]) |> line(end = [-0.13, -1.27])
|> tangentialArcTo([-15.94, profileStartY(%) - 7.73], %) |> tangentialArc(endAbsolute = [-15.94, profileStartY(%) - 7.73])
|> tangentialArcTo([-16.6, profileStartY(%) - 15.52], %) |> tangentialArc(endAbsolute = [-16.6, profileStartY(%) - 15.52])
|> tangentialArcTo([-18.38, profileStartY(%) - 18.63], %) |> tangentialArc(endAbsolute = [-18.38, profileStartY(%) - 18.63])
|> line(end = [-1.25, -2.6]) |> line(end = [-1.25, -2.6])
|> xLine(length = 6.04) |> xLine(length = 6.04)
|> line(end = [6.68, 7.87]) |> line(end = [6.68, 7.87])
|> tangentialArcTo([10.06, profileStartY(%) - 12.69], %) |> tangentialArc(endAbsolute = [10.06, profileStartY(%) - 12.69])
|> line(end = [7.28, -8.47]) |> line(end = [7.28, -8.47])
|> xLine(length = 5.98) |> xLine(length = 5.98)
|> line(end = [-1.3, 3.01]) |> line(end = [-1.3, 3.01])
|> tangentialArcTo([22.45, profileStartY(%) - 2.84], %) |> tangentialArc(endAbsolute = [22.45, profileStartY(%) - 2.84])
|> tangentialArcTo([25.08, profileStartY(%) + 6.42], %) |> tangentialArc(endAbsolute = [25.08, profileStartY(%) + 6.42])
|> line(end = [2.35, 16.36]) |> line(end = [2.35, 16.36])
|> line(end = [1.78, 1.15]) |> line(end = [1.78, 1.15])
|> tangentialArcTo([23.93, profileStartY(%) + 27.29], %) |> tangentialArc(endAbsolute = [23.93, profileStartY(%) + 27.29])
|> line(end = [-1.92, 0.21]) |> line(end = [-1.92, 0.21])
|> line(end = [-3.74, -26.54]) |> line(end = [-3.74, -26.54])
|> tangentialArcTo([15.13, profileStartY(%) - 1.72], %) |> tangentialArc(endAbsolute = [15.13, profileStartY(%) - 1.72])
|> tangentialArcTo(profileStart(%), %) |> tangentialArc(endAbsolute = profileStart(%))
|> close() |> close()
return sketch000 return sketch000
} }

View File

@ -17,66 +17,42 @@ brakeCaliperSketch = startSketchOn(XY)
0, 0,
rotorTotalThickness + caliperTolerance - caliperInnerEdgeRadius rotorTotalThickness + caliperTolerance - caliperInnerEdgeRadius
]) ])
|> tangentialArc({ |> tangentialArc(angle = 90, radius = caliperInnerEdgeRadius)
offset = 90,
radius = caliperInnerEdgeRadius
}, %)
|> line(end = [ |> line(end = [
-caliperPadLength + 2 * caliperInnerEdgeRadius, -caliperPadLength + 2 * caliperInnerEdgeRadius,
0 0
]) ])
|> tangentialArc({ |> tangentialArc(angle = -90, radius = caliperInnerEdgeRadius)
offset = -90,
radius = caliperInnerEdgeRadius
}, %)
|> line(end = [ |> line(end = [
0, 0,
caliperThickness - (caliperInnerEdgeRadius * 2) caliperThickness - (caliperInnerEdgeRadius * 2)
]) ])
|> tangentialArc({ |> tangentialArc(angle = -90, radius = caliperInnerEdgeRadius)
offset = -90,
radius = caliperInnerEdgeRadius
}, %)
|> line(end = [ |> line(end = [
caliperPadLength + caliperThickness - caliperOuterEdgeRadius - caliperInnerEdgeRadius, caliperPadLength + caliperThickness - caliperOuterEdgeRadius - caliperInnerEdgeRadius,
0 0
]) ])
|> tangentialArc({ |> tangentialArc(angle = -90, radius = caliperOuterEdgeRadius)
offset = -90,
radius = caliperOuterEdgeRadius
}, %)
|> line(end = [ |> line(end = [
0, 0,
-2 * caliperTolerance - (2 * caliperThickness) - rotorTotalThickness + 2 * caliperOuterEdgeRadius -2 * caliperTolerance - (2 * caliperThickness) - rotorTotalThickness + 2 * caliperOuterEdgeRadius
]) ])
|> tangentialArc({ |> tangentialArc(angle = -90, radius = caliperOuterEdgeRadius)
offset = -90,
radius = caliperOuterEdgeRadius
}, %)
|> line(end = [ |> line(end = [
-caliperPadLength - caliperThickness + caliperOuterEdgeRadius + caliperInnerEdgeRadius, -caliperPadLength - caliperThickness + caliperOuterEdgeRadius + caliperInnerEdgeRadius,
0 0
]) ])
|> tangentialArc({ |> tangentialArc(angle = -90, radius = caliperInnerEdgeRadius)
offset = -90,
radius = caliperInnerEdgeRadius
}, %)
|> line(end = [ |> line(end = [
0, 0,
caliperThickness - (2 * caliperInnerEdgeRadius) caliperThickness - (2 * caliperInnerEdgeRadius)
]) ])
|> tangentialArc({ |> tangentialArc(angle = -90, radius = caliperInnerEdgeRadius)
offset = -90,
radius = caliperInnerEdgeRadius
}, %)
|> line(end = [ |> line(end = [
caliperPadLength - (2 * caliperInnerEdgeRadius), caliperPadLength - (2 * caliperInnerEdgeRadius),
0 0
]) ])
|> tangentialArc({ |> tangentialArc(angle = 90, radius = caliperInnerEdgeRadius)
offset = 90,
radius = caliperInnerEdgeRadius
}, %)
|> close() |> close()
// Revolve the brake caliper sketch // Revolve the brake caliper sketch

View File

@ -17,7 +17,7 @@ tireSketch = startSketchOn(XY)
], ],
tag = $edge1, tag = $edge1,
) )
|> tangentialArc({ offset = -90, radius = bendRadius }, %) |> tangentialArc(angle = -90, radius = bendRadius)
|> line(endAbsolute = [ |> line(endAbsolute = [
tireOuterDiameter / 2, tireOuterDiameter / 2,
tireDepth / 2 - tireTreadOffset tireDepth / 2 - tireTreadOffset
@ -36,7 +36,7 @@ tireSketch = startSketchOn(XY)
tireOuterDiameter / 2, tireOuterDiameter / 2,
-tireDepth / 2 + bendRadius -tireDepth / 2 + bendRadius
]) ])
|> tangentialArc({ offset = -90, radius = bendRadius }, %) |> tangentialArc(angle = -90, radius = bendRadius)
|> line(endAbsolute = [tireInnerDiameter / 2, -tireDepth / 2], tag = $edge2) |> line(endAbsolute = [tireInnerDiameter / 2, -tireDepth / 2], tag = $edge2)
|> close() |> close()

View File

@ -26,7 +26,7 @@ fn lug(plane, length, diameter) {
|> angledLine(angle = 70, lengthY = lugHeadLength) |> angledLine(angle = 70, lengthY = lugHeadLength)
|> xLine(endAbsolute = lugDiameter / 2) |> xLine(endAbsolute = lugDiameter / 2)
|> yLine(endAbsolute = lugLength) |> yLine(endAbsolute = lugLength)
|> tangentialArc({ offset = 90, radius = fromMm(3) }, %) |> tangentialArc(angle = 90, radius = fromMm(3))
|> xLine(endAbsolute = 0 + .001, tag = $c1) |> xLine(endAbsolute = 0 + .001, tag = $c1)
|> yLine(endAbsolute = lugThreadDepth) |> yLine(endAbsolute = lugThreadDepth)
|> xLine(endAbsolute = lugThreadDiameter) |> xLine(endAbsolute = lugThreadDiameter)

View File

@ -19,17 +19,11 @@ fn cycloidalGear(gearPitch, gearHeight, holeDiameter, helixAngle) {
angleEnd = -90 + helixAngleP, angleEnd = -90 + helixAngleP,
radius = gearPitch radius = gearPitch
}, %) }, %)
|> tangentialArc({ |> tangentialArc(radius = gearPitch * 1.67, angle = 60)
radius = gearPitch * 1.67, |> tangentialArc(radius = gearPitch, angle = -180)
offset = 60 |> tangentialArc(radius = gearPitch * 1.67, angle = 60)
}, %) |> tangentialArc(radius = gearPitch, angle = -180)
|> tangentialArc({ radius = gearPitch, offset = -180 }, %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> tangentialArc({
radius = gearPitch * 1.67,
offset = 60
}, %)
|> tangentialArc({ radius = gearPitch, offset = -180 }, %)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %)
|> close(%) |> close(%)
|> hole(circle(center = [0, 0], radius = holeDiameter / 2), %) |> hole(circle(center = [0, 0], radius = holeDiameter / 2), %)
return gearProfile return gearProfile

View File

@ -184,15 +184,15 @@ handlePlane = startSketchOn(offsetPlane(XY, offset = handleHeightAboveTheFloor))
handleProfilePath = startProfileAt([0 + handleOffset, 0], handlePlane) handleProfilePath = startProfileAt([0 + handleOffset, 0], handlePlane)
|> yLine(length = -handleLengthSegmentA) |> yLine(length = -handleLengthSegmentA)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
handleFillet + handleOffset, handleFillet + handleOffset,
-handleDepth -handleDepth
], %) ])
|> xLine(length = handleLengthSegmentB) |> xLine(length = handleLengthSegmentB)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
handleOffset + handleWidth, handleOffset + handleWidth,
-handleLengthSegmentA -handleLengthSegmentA
], %) ])
|> yLine(length = handleLengthSegmentA) |> yLine(length = handleLengthSegmentA)
handleSectionPlane = startSketchOn(XZ) handleSectionPlane = startSketchOn(XZ)
handleProfileSection = circle( handleProfileSection = circle(

View File

@ -33,9 +33,9 @@ fn primaryTube(n, angle001, length001, length002, length003) {
sweepPath = startSketchOn(sweepPlane) sweepPath = startSketchOn(sweepPlane)
|> startProfileAt([0, plateHeight], %) |> startProfileAt([0, plateHeight], %)
|> line(end = [0, length001]) |> line(end = [0, length001])
|> tangentialArc({ offset = -80, radius = bendRadius }, %, $arc01) |> tangentialArc(angle = -80, radius = bendRadius, tag = $arc01)
|> angledLine(angle = tangentToEnd(arc01), length = length002) |> angledLine(angle = tangentToEnd(arc01), length = length002)
|> tangentialArc({ offset = 85, radius = bendRadius }, %, $arc02) |> tangentialArc(angle = 85, radius = bendRadius, tag = $arc02)
|> angledLine(angle = tangentToEnd(arc02), length = length003) |> angledLine(angle = tangentToEnd(arc02), length = length003)
// Create the cross section of each tube and sweep them // Create the cross section of each tube and sweep them
@ -57,21 +57,21 @@ primaryTube(3, 25.2, 5, 5, 3)
flangeSketch = startSketchOn(XY) flangeSketch = startSketchOn(XY)
|> startProfileAt([3 + 1.3, -1.25], %) |> startProfileAt([3 + 1.3, -1.25], %)
|> xLine(length = -2.6, tag = $seg01) |> xLine(length = -2.6, tag = $seg01)
|> tangentialArc({ radius = .3, offset = -40 }, %) |> tangentialArc(radius = .3, angle = -40)
|> tangentialArc({ radius = .9, offset = 80 }, %) |> tangentialArc(radius = .9, angle = 80)
|> tangentialArc({ radius = .3, offset = -40 }, %) |> tangentialArc(radius = .3, angle = -40)
|> xLine(length = -1.4, tag = $seg03) |> xLine(length = -1.4, tag = $seg03)
|> yLine(length = segLen(seg01), tag = $seg04) |> yLine(length = segLen(seg01), tag = $seg04)
|> xLine(length = 3.1, tag = $seg05) |> xLine(length = 3.1, tag = $seg05)
|> tangentialArc({ radius = .3, offset = -40 }, %) |> tangentialArc(radius = .3, angle = -40)
|> tangentialArc({ radius = 1.5, offset = 80 }, %) |> tangentialArc(radius = 1.5, angle = 80)
|> tangentialArc({ radius = .3, offset = -40 }, %) |> tangentialArc(radius = .3, angle = -40)
|> xLine(length = segLen(seg05), tag = $seg07) |> xLine(length = segLen(seg05), tag = $seg07)
|> yLine(endAbsolute = profileStartY(%), tag = $seg08) |> yLine(endAbsolute = profileStartY(%), tag = $seg08)
|> xLine(length = -segLen(seg03), tag = $seg09) |> xLine(length = -segLen(seg03), tag = $seg09)
|> tangentialArc({ radius = .3, offset = -40 }, %) |> tangentialArc(radius = .3, angle = -40)
|> tangentialArc({ radius = .9, offset = 80 }, %) |> tangentialArc(radius = .9, angle = 80)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
// Create openings in the flange to accommodate each tube // Create openings in the flange to accommodate each tube

View File

@ -36,9 +36,9 @@ fn slot(sketch1, start, end, width) {
ystart = width / 2 * sin(toRadians(angle - 90)) + start[1] ystart = width / 2 * sin(toRadians(angle - 90)) + start[1]
slotSketch = startProfileAt([xstart, ystart], sketch1) slotSketch = startProfileAt([xstart, ystart], sketch1)
|> angledLine(angle = angle, length = dist) |> angledLine(angle = angle, length = dist)
|> tangentialArc({ radius = width / 2, offset = 180 }, %) |> tangentialArc(radius = width / 2, angle = 180)
|> angledLine(angle = angle, length = -dist) |> angledLine(angle = angle, length = -dist)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
return slotSketch return slotSketch
} }

View File

@ -127,7 +127,7 @@ sketch006 = startSketchOn(XZ)
|> yLine(length = 10) |> yLine(length = 10)
|> line(end = [0.6, 0]) |> line(end = [0.6, 0])
|> yLine(length = -.05) |> yLine(length = -.05)
|> tangentialArc({ radius = 0.6, offset = -90 }, %) |> tangentialArc(radius = 0.6, angle = -90)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)]) |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
|> revolve(axis = Y) |> revolve(axis = Y)
@ -192,15 +192,15 @@ sketch011 = startSketchOn(XZ)
sketch012 = startSketchOn(offsetPlane(XZ, offset = handleThickness / 2)) sketch012 = startSketchOn(offsetPlane(XZ, offset = handleThickness / 2))
|> startProfileAt([2.3, 6.4], %) |> startProfileAt([2.3, 6.4], %)
|> line(end = [0.56, 0]) |> line(end = [0.56, 0])
|> tangentialArcTo([4.1, 5.26], %) |> tangentialArc(endAbsolute = [4.1, 5.26])
|> tangentialArcTo([4.17, 1.6], %) |> tangentialArc(endAbsolute = [4.17, 1.6])
|> tangentialArcTo([3.13, 0.61], %) |> tangentialArc(endAbsolute = [3.13, 0.61])
|> line(end = [-1.09, 0]) |> line(end = [-1.09, 0])
|> line(end = [0, 0.43]) |> line(end = [0, 0.43])
|> line(end = [0.99, -0.02]) |> line(end = [0.99, -0.02])
|> tangentialArcTo([3.63, 1.6], %) |> tangentialArc(endAbsolute = [3.63, 1.6])
|> tangentialArcTo([3.56, 5.15], %) |> tangentialArc(endAbsolute = [3.56, 5.15])
|> tangentialArcTo([2.72, 5.88], %) |> tangentialArc(endAbsolute = [2.72, 5.88])
|> line(end = [-0.4, 0]) |> line(end = [-0.4, 0])
|> line(endAbsolute = [profileStartX(%), profileStartY(%)]) |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()

View File

@ -24,13 +24,13 @@ rackBody = startSketchOn(XY)
fn tooth() { fn tooth() {
toothSketch = startSketchOn(XY) toothSketch = startSketchOn(XY)
|> startProfileAt([-length / 2 + 0.567672, minHeight], %) |> startProfileAt([-length / 2 + 0.567672, minHeight], %)
|> tangentialArcToRelative([0.157636, 0.110378], %) |> tangentialArc(end = [0.157636, 0.110378])
|> line(end = [0.329118, 0.904244]) |> line(end = [0.329118, 0.904244])
|> tangentialArcToRelative([0.157636, 0.110378], %) |> tangentialArc(end = [0.157636, 0.110378])
|> line(end = [0.186505, 0]) |> line(end = [0.186505, 0])
|> tangentialArcToRelative([0.157636, -0.110378], %) |> tangentialArc(end = [0.157636, -0.110378])
|> line(end = [0.329118, -0.904244]) |> line(end = [0.329118, -0.904244])
|> tangentialArcToRelative([0.157636, -0.110378], %) |> tangentialArc(end = [0.157636, -0.110378])
|> close() |> close()
|> extrude(length = width) |> extrude(length = width)
return toothSketch return toothSketch
@ -44,7 +44,7 @@ teeth = tooth()
endCapTooth = startSketchOn(XY) endCapTooth = startSketchOn(XY)
|> startProfileAt([-length / 2, 11.849525], %) |> startProfileAt([-length / 2, 11.849525], %)
|> line(end = [0.314524, -0.864147]) |> line(end = [0.314524, -0.864147])
|> tangentialArcToRelative([0.157636, -0.110378], %) |> tangentialArc(end = [0.157636, -0.110378])
|> line(endAbsolute = [-length / 2, minHeight]) |> line(endAbsolute = [-length / 2, minHeight])
|> close() |> close()
|> extrude(length = width) |> extrude(length = width)
@ -53,7 +53,7 @@ endCapTooth = startSketchOn(XY)
endCapTooth2 = startSketchOn(XY) endCapTooth2 = startSketchOn(XY)
|> startProfileAt([length / 2, 11.849525], %) |> startProfileAt([length / 2, 11.849525], %)
|> line(end = [-0.314524, -0.864147]) |> line(end = [-0.314524, -0.864147])
|> tangentialArcToRelative([-0.157636, -0.110378], %) |> tangentialArc(end = [-0.157636, -0.110378])
|> line(endAbsolute = [length / 2, minHeight]) |> line(endAbsolute = [length / 2, minHeight])
|> close() |> close()
|> extrude(length = width) |> extrude(length = width)

View File

@ -18,7 +18,7 @@ iBeam = startSketchOn(-XZ)
|> xLine(length = flangeWidth / 2) |> xLine(length = flangeWidth / 2)
|> yLine(length = -flangeThickness) |> yLine(length = -flangeThickness)
|> xLine(endAbsolute = webThickness / 2 + rootRadius) |> xLine(endAbsolute = webThickness / 2 + rootRadius)
|> tangentialArc({ radius = rootRadius, offset = 90 }, %) |> tangentialArc(radius = rootRadius, angle = 90)
|> yLine(endAbsolute = 0) |> yLine(endAbsolute = 0)
|> mirror2d(axis = X) |> mirror2d(axis = X)
|> mirror2d(axis = Y) |> mirror2d(axis = Y)

View File

@ -74,11 +74,11 @@ fn keyFn(originStart, keyWidth, keyHeight, repeats, color) {
radius = 0.1 radius = 0.1
}, %) }, %)
|> angledLine(angle = 0, length = keyWidth - .2, tag = $rectangleSegmentA001) |> angledLine(angle = 0, length = keyWidth - .2, tag = $rectangleSegmentA001)
|> tangentialArc({ radius = 0.1, offset = 90 }, %) |> tangentialArc(radius = 0.1, angle = 90)
|> angledLine(angle = segAng(rectangleSegmentA001) + 90, length = keyHeight - .2, tag = $rectangleSegmentB001) |> angledLine(angle = segAng(rectangleSegmentA001) + 90, length = keyHeight - .2, tag = $rectangleSegmentB001)
|> tangentialArc({ radius = 0.1, offset = 90 }, %) |> tangentialArc(radius = 0.1, angle = 90)
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $rectangleSegmentC001) |> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $rectangleSegmentC001)
|> tangentialArc({ radius = 0.1, offset = 90 }, %) |> tangentialArc(radius = 0.1, angle = 90)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $rectangleSegmentD001) |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $rectangleSegmentD001)
|> close() |> close()
|> extrude(length = keyDepth) |> extrude(length = keyDepth)

View File

@ -69,7 +69,7 @@ customPlane = {
} }
sketch003 = startSketchOn(customPlane) sketch003 = startSketchOn(customPlane)
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> tangentialArc({ offset = 60, radius = height }, %) |> tangentialArc(angle = 60, radius = height)
|> angledLine(angle = 60, endAbsoluteY = 0) |> angledLine(angle = 60, endAbsoluteY = 0)
|> close() |> close()
|> extrude(length = wallThickness) |> extrude(length = wallThickness)
@ -85,11 +85,11 @@ sketch004 = startSketchOn(sketch002, 'END')
|> angledLine(angle = 60, endAbsoluteY = segEndY(seg01)) |> angledLine(angle = 60, endAbsoluteY = segEndY(seg01))
|> yLine(endAbsolute = height) |> yLine(endAbsolute = height)
|> xLine(length = wallThickness) |> xLine(length = wallThickness)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
(frontLength - wallsWidth) / 2 + wallsWidth, (frontLength - wallsWidth) / 2 + wallsWidth,
height - ((height - exitHeight) / 2) height - ((height - exitHeight) / 2)
], %) ])
|> tangentialArcTo([frontLength, exitHeight], %) |> tangentialArc(endAbsolute = [frontLength, exitHeight])
|> yLine(endAbsolute = 0) |> yLine(endAbsolute = 0)
|> close(tag = $seg04) |> close(tag = $seg04)
|> extrude(length = wallThickness) |> extrude(length = wallThickness)
@ -110,11 +110,11 @@ sketch005 = startSketchOn(customPlane2)
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> yLine(endAbsolute = height) |> yLine(endAbsolute = height)
|> xLine(endAbsolute = wallsWidth) |> xLine(endAbsolute = wallsWidth)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
(frontLength - wallsWidth) / 2 + wallsWidth, (frontLength - wallsWidth) / 2 + wallsWidth,
height - ((height - exitHeight) / 2) height - ((height - exitHeight) / 2)
], %) ])
|> tangentialArcTo([frontLength, exitHeight], %) |> tangentialArc(endAbsolute = [frontLength, exitHeight])
|> yLine(endAbsolute = 0, tag = $seg03) |> yLine(endAbsolute = 0, tag = $seg03)
|> close() |> close()
|> extrude(length = wallThickness) |> extrude(length = wallThickness)

View File

@ -37,49 +37,25 @@ bracketProfile = startSketchOn(XZ)
0 0
], %) ], %)
|> xLine(length = flangeLength) |> xLine(length = flangeLength)
|> tangentialArc({ |> tangentialArc(radius = exteriorBendRadius, angle = bendAngle)
radius = exteriorBendRadius,
offset = bendAngle
}, %)
|> angledLine(angle = bendAngle, endAbsoluteY = hatHeight - thickness, tag = $seg01) |> angledLine(angle = bendAngle, endAbsoluteY = hatHeight - thickness, tag = $seg01)
|> tangentialArc({ |> tangentialArc(radius = interiorBendRadius, angle = -bendAngle)
radius = interiorBendRadius,
offset = -bendAngle
}, %)
|> xLine(endAbsolute = 0, tag = $seg02) |> xLine(endAbsolute = 0, tag = $seg02)
|> xLine(length = segLen(seg02)) |> xLine(length = segLen(seg02))
|> tangentialArc({ |> tangentialArc(radius = interiorBendRadius, angle = -bendAngle)
radius = interiorBendRadius,
offset = -bendAngle
}, %)
|> angledLine(angle = -bendAngle, length = segLen(seg01)) |> angledLine(angle = -bendAngle, length = segLen(seg01))
|> tangentialArc({ |> tangentialArc(radius = exteriorBendRadius, angle = bendAngle)
radius = exteriorBendRadius,
offset = bendAngle
}, %)
|> xLine(length = flangeLength) |> xLine(length = flangeLength)
|> yLine(length = thickness, tag = $seg03) |> yLine(length = thickness, tag = $seg03)
|> xLine(length = -flangeLength, tag = $seg04) |> xLine(length = -flangeLength, tag = $seg04)
|> tangentialArc({ |> tangentialArc(radius = interiorBendRadius, angle = -bendAngle)
radius = interiorBendRadius,
offset = -bendAngle
}, %)
|> angledLine(angle = 180 - bendAngle, length = segLen(seg01)) |> angledLine(angle = 180 - bendAngle, length = segLen(seg01))
|> tangentialArc({ |> tangentialArc(radius = exteriorBendRadius, angle = bendAngle)
radius = exteriorBendRadius,
offset = bendAngle
}, %)
|> xLine(endAbsolute = 0, tag = $seg05) |> xLine(endAbsolute = 0, tag = $seg05)
|> xLine(length = -segLen(seg05)) |> xLine(length = -segLen(seg05))
|> tangentialArc({ |> tangentialArc(radius = exteriorBendRadius, angle = bendAngle)
radius = exteriorBendRadius,
offset = bendAngle
}, %)
|> angledLine(angle = bendAngle - 180, length = segLen(seg01)) |> angledLine(angle = bendAngle - 180, length = segLen(seg01))
|> tangentialArc({ |> tangentialArc(radius = interiorBendRadius, angle = -bendAngle)
radius = interiorBendRadius,
offset = -bendAngle
}, %)
|> xLine(length = -flangeLength, tag = $seg06) |> xLine(length = -flangeLength, tag = $seg06)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg07) |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg07)
|> close() |> close()

View File

@ -10,41 +10,41 @@ let corner_radius = 5.0
let brace_base = startSketchOn(XY) let brace_base = startSketchOn(XY)
|> startProfileAt([corner_radius, 0], %) |> startProfileAt([corner_radius, 0], %)
|> line(end = [width - corner_radius, 0.0]) |> line(end = [width - corner_radius, 0.0])
|> tangentialArcToRelative([corner_radius, corner_radius], %) |> tangentialArc(end = [corner_radius, corner_radius])
|> yLine(length = 25.0 - corner_radius) |> yLine(length = 25.0 - corner_radius)
|> tangentialArcToRelative([-corner_radius, corner_radius], %) |> tangentialArc(end = [-corner_radius, corner_radius])
|> xLine(length = -(d_wrist_circumference[0] - (corner_radius * 2))) |> xLine(length = -(d_wrist_circumference[0] - (corner_radius * 2)))
|> tangentialArcToRelative([-corner_radius, corner_radius], %) |> tangentialArc(end = [-corner_radius, corner_radius])
|> yLine(length = length - 25.0 - 23.0 - (corner_radius * 2)) |> yLine(length = length - 25.0 - 23.0 - (corner_radius * 2))
|> tangentialArcToRelative([corner_radius, corner_radius], %) |> tangentialArc(end = [corner_radius, corner_radius])
|> xLine(length = 15.0 - (corner_radius * 2)) |> xLine(length = 15.0 - (corner_radius * 2))
|> tangentialArcToRelative([corner_radius, corner_radius], %) |> tangentialArc(end = [corner_radius, corner_radius])
|> yLine(length = 23.0 - corner_radius) |> yLine(length = 23.0 - corner_radius)
|> tangentialArcToRelative([-corner_radius, corner_radius], %) |> tangentialArc(end = [-corner_radius, corner_radius])
|> xLine(length = -(hand_thickness + 15.0 + 15.0 - (corner_radius * 2))) |> xLine(length = -(hand_thickness + 15.0 + 15.0 - (corner_radius * 2)))
|> tangentialArcToRelative([-corner_radius, -corner_radius], %) |> tangentialArc(end = [-corner_radius, -corner_radius])
|> yLine(length = -(23.0 - corner_radius)) |> yLine(length = -(23.0 - corner_radius))
|> tangentialArcToRelative([corner_radius, -corner_radius], %) |> tangentialArc(end = [corner_radius, -corner_radius])
|> xLine(length = 15.0 - (corner_radius * 2)) |> xLine(length = 15.0 - (corner_radius * 2))
|> tangentialArcToRelative([corner_radius, -corner_radius], %) |> tangentialArc(end = [corner_radius, -corner_radius])
|> yLine(length = -(length - 25.0 - 23.0 - (corner_radius * 2))) |> yLine(length = -(length - 25.0 - 23.0 - (corner_radius * 2)))
|> tangentialArcToRelative([-corner_radius, -corner_radius], %) |> tangentialArc(end = [-corner_radius, -corner_radius])
|> xLine(length = -(d_wrist_circumference[1] + d_wrist_circumference[2] + d_wrist_circumference[3] - hand_thickness - corner_radius)) |> xLine(length = -(d_wrist_circumference[1] + d_wrist_circumference[2] + d_wrist_circumference[3] - hand_thickness - corner_radius))
|> tangentialArcToRelative([-corner_radius, -corner_radius], %) |> tangentialArc(end = [-corner_radius, -corner_radius])
|> yLine(length = -(25.0 - corner_radius)) |> yLine(length = -(25.0 - corner_radius))
|> tangentialArcToRelative([corner_radius, -corner_radius], %) |> tangentialArc(end = [corner_radius, -corner_radius])
|> close() |> close()
let inner = startSketchOn(XY) let inner = startSketchOn(XY)
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> xLine(length = 1.0) |> xLine(length = 1.0)
|> tangentialArcToRelative([corner_radius, corner_radius], %) |> tangentialArc(end = [corner_radius, corner_radius])
|> yLine(length = 25.0 - (corner_radius * 2)) |> yLine(length = 25.0 - (corner_radius * 2))
|> tangentialArcToRelative([-corner_radius, corner_radius], %) |> tangentialArc(end = [-corner_radius, corner_radius])
|> xLine(length = -1.0) |> xLine(length = -1.0)
|> tangentialArcToRelative([-corner_radius, -corner_radius], %) |> tangentialArc(end = [-corner_radius, -corner_radius])
|> yLine(length = -(25.0 - (corner_radius * 2))) |> yLine(length = -(25.0 - (corner_radius * 2)))
|> tangentialArcToRelative([corner_radius, -corner_radius], %) |> tangentialArc(end = [corner_radius, -corner_radius])
|> close() |> close()
let final = brace_base let final = brace_base

View File

@ -11,17 +11,17 @@ const wallMountL = 8
const bracket = startSketchOn(XY) const bracket = startSketchOn(XY)
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> line(end = [0, wallMountL]) |> line(end = [0, wallMountL])
|> tangentialArc({ |> tangentialArc(
radius: filletR, radius = filletR,
offset: 90 angle = 90,
}, %) )
|> line(end = [-shelfMountL, 0]) |> line(end = [-shelfMountL, 0])
|> line(end = [0, -thickness]) |> line(end = [0, -thickness])
|> line(end = [shelfMountL, 0]) |> line(end = [shelfMountL, 0])
|> tangentialArc({ |> tangentialArc(
radius: filletR - thickness, radius = filletR - thickness,
offset: -90 angle = -90,
}, %) )
|> line(end = [0, -wallMountL]) |> line(end = [0, -wallMountL])
|> close() |> close()
|> extrude(length = width) |> extrude(length = width)

View File

@ -763,9 +763,9 @@ const sketch010fl = startSketchOn(extrude001fl, 'START')
originStart[2] + .81 - (.438 / 2) originStart[2] + .81 - (.438 / 2)
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([-0.66 - originStart[0],originStart[2] + .81 + .438 / 2], %) |> tangentialArc(endAbsolute = [-0.66 - originStart[0],originStart[2] + .81 + .438 / 2])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
|> patternLinear2d( |> patternLinear2d(
axis = [0, 1], axis = [0, 1],
@ -781,12 +781,12 @@ const sketch011fl = startSketchOn(extrude001fl, 'START')
originStart[2] + railHeight * 1.75 / 2 + .438 / 2 originStart[2] + railHeight * 1.75 / 2 + .438 / 2
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0],originStart[2]+ -0.66 - originStart[0],
railHeight * 1.75 / 2 - (.438 / 2) originStart[2] + railHeight * 1.75 / 2 - (.438 / 2)
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
const extrude011fl = extrude(sketch011fl, length = -thickness) const extrude011fl = extrude(sketch011fl, length = -thickness)
@ -798,12 +798,12 @@ const sketch012fl = startSketchOn(extrude001fl, 'START')
railHeight * 1.75 - .81 + .438 / 2 railHeight * 1.75 - .81 + .438 / 2
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0], originStart[2]+ -0.66 - originStart[0], originStart[2]+
railHeight * 1.75 - .81 - (.438 / 2) railHeight * 1.75 - .81 - (.438 / 2)
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
|> patternLinear2d( |> patternLinear2d(
axis = [0, -1], axis = [0, -1],
@ -1006,12 +1006,12 @@ const sketch010fr = startSketchOn(extrude001fr, 'START')
originStart[2] + .81 - (.438 / 2) originStart[2] + .81 - (.438 / 2)
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0], -0.66 - originStart[0],
originStart[2] + .81 + .438 / 2 originStart[2] + .81 + .438 / 2
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
|> patternLinear2d( |> patternLinear2d(
axis = [0, 1], axis = [0, 1],
@ -1027,12 +1027,12 @@ const sketch011fr = startSketchOn(extrude001fr, 'START')
originStart[2] + railHeight * 1.75 / 2 + .438 / 2 originStart[2] + railHeight * 1.75 / 2 + .438 / 2
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0], -0.66 - originStart[0],
originStart[2] + railHeight * 1.75 / 2 - (.438 / 2) originStart[2] + railHeight * 1.75 / 2 - (.438 / 2)
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
const extrude011fr = extrude(sketch011fr, length = -thickness) const extrude011fr = extrude(sketch011fr, length = -thickness)
@ -1044,12 +1044,12 @@ const sketch012fr = startSketchOn(extrude001fr, 'START')
originStart[2] + railHeight * 1.75 - .81 + .438 / 2 originStart[2] + railHeight * 1.75 - .81 + .438 / 2
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0], -0.66 - originStart[0],
originStart[2] + railHeight * 1.75 - .81 - (.438 / 2) originStart[2] + railHeight * 1.75 - .81 - (.438 / 2)
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
|> patternLinear2d( |> patternLinear2d(
axis = [0, -1], axis = [0, -1],
@ -1252,12 +1252,12 @@ const sketch010rr = startSketchOn(extrude001rr, 'START')
originStart[2] + .81 - (.438 / 2) originStart[2] + .81 - (.438 / 2)
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0]+1.5-serverDepth, -0.66 - originStart[0]+1.5-serverDepth,
originStart[2] + .81 + .438 / 2 originStart[2] + .81 + .438 / 2
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
|> patternLinear2d( |> patternLinear2d(
axis = [0, 1], axis = [0, 1],
@ -1273,12 +1273,12 @@ const sketch011rr = startSketchOn(extrude001rr, 'START')
originStart[2] + railHeight * 1.75 / 2 + .438 / 2 originStart[2] + railHeight * 1.75 / 2 + .438 / 2
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0]+1.5-serverDepth, -0.66 - originStart[0]+1.5-serverDepth,
originStart[2] + railHeight * 1.75 / 2 - (.438 / 2) originStart[2] + railHeight * 1.75 / 2 - (.438 / 2)
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
const extrude011rr = extrude(sketch011rr, length = -thickness) const extrude011rr = extrude(sketch011rr, length = -thickness)
@ -1290,12 +1290,12 @@ const sketch012rr = startSketchOn(extrude001rr, 'START')
originStart[2] + railHeight * 1.75 - .81 + .438 / 2 originStart[2] + railHeight * 1.75 - .81 + .438 / 2
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0]+1.5-serverDepth, -0.66 - originStart[0]+1.5-serverDepth,
originStart[2] + railHeight * 1.75 - .81 - (.438 / 2) originStart[2] + railHeight * 1.75 - .81 - (.438 / 2)
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
|> patternLinear2d( |> patternLinear2d(
axis = [0, -1], axis = [0, -1],
@ -1497,12 +1497,12 @@ const sketch010rl = startSketchOn(extrude001rl, 'START')
originStart[2] + .81 - (.438 / 2) originStart[2] + .81 - (.438 / 2)
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0] - serverDepth + 1.5, -0.66 - originStart[0] - serverDepth + 1.5,
originStart[2] + .81 + .438 / 2 originStart[2] + .81 + .438 / 2
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
|> patternLinear2d( |> patternLinear2d(
axis = [0, 1], axis = [0, 1],
@ -1518,12 +1518,12 @@ const sketch011rl = startSketchOn(extrude001rl, 'START')
originStart[2] + railHeight * 1.75 / 2 + .438 / 2 originStart[2] + railHeight * 1.75 / 2 + .438 / 2
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0] - serverDepth + 1.5, -0.66 - originStart[0] - serverDepth + 1.5,
originStart[2] + railHeight * 1.75 / 2 - (.438 / 2) originStart[2] + railHeight * 1.75 / 2 - (.438 / 2)
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
const extrude011rl = extrude(sketch011rl, length = -thickness) const extrude011rl = extrude(sketch011rl, length = -thickness)
@ -1535,12 +1535,12 @@ const sketch012rl = startSketchOn(extrude001rl, 'START')
originStart[2] + railHeight * 1.75 - .81 + .438 / 2 originStart[2] + railHeight * 1.75 - .81 + .438 / 2
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0] - serverDepth + 1.5, -0.66 - originStart[0] - serverDepth + 1.5,
originStart[2] + railHeight * 1.75 - .81 - (.438 / 2) originStart[2] + railHeight * 1.75 - .81 - (.438 / 2)
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
|> patternLinear2d( |> patternLinear2d(
axis = [0, -1], axis = [0, -1],
@ -1593,15 +1593,15 @@ fn streamServer = (serverPos) => {
|> xLine(length = 0.2) |> xLine(length = 0.2)
|> yLine(length = -0.36) |> yLine(length = -0.36)
|> xLine(length = 0.5) |> xLine(length = 0.5)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
0.3, 0.3,
17.15 + 4.114 + 1 + serverPos * 1.75 - 11.114 17.15 + 4.114 + 1 + serverPos * 1.75 - 11.114
], %) ])
|> yLine(length = -1.77) |> yLine(length = -1.77)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.13, -0.13,
14.89 + 4.114 + 1 + serverPos * 1.75 - 11.114 14.89 + 4.114 + 1 + serverPos * 1.75 - 11.114
], %) ])
|> xLine(length = -0.52) |> xLine(length = -0.52)
|> yLine(length = -0.42) |> yLine(length = -0.42)
|> line(end = [0.34, -0.15]) |> line(end = [0.34, -0.15])
@ -1617,15 +1617,15 @@ fn streamServer = (serverPos) => {
|> xLine(length = 0.2) |> xLine(length = 0.2)
|> yLine(length = -0.36) |> yLine(length = -0.36)
|> xLine(length = 0.5) |> xLine(length = 0.5)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
0.3, 0.3,
17.15 + 4.114 + 1 + serverPos * 1.75 - 11.114 17.15 + 4.114 + 1 + serverPos * 1.75 - 11.114
], %) ])
|> yLine(length = -1.77) |> yLine(length = -1.77)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.13, -0.13,
14.89 + 4.114 + 1 + serverPos * 1.75 - 11.114 14.89 + 4.114 + 1 + serverPos * 1.75 - 11.114
], %) ])
|> xLine(length = -0.52) |> xLine(length = -0.52)
|> yLine(length = -0.42) |> yLine(length = -0.42)
|> line(end = [0.34, -0.15]) |> line(end = [0.34, -0.15])

View File

@ -676,12 +676,12 @@ const sketch010fl = startSketchOn(extrude001fl, 'START')
originStart[2] + .81 - (.438 / 2) originStart[2] + .81 - (.438 / 2)
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0], -0.66 - originStart[0],
originStart[2] + .81 + .438 / 2 originStart[2] + .81 + .438 / 2
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
|> patternLinear2d( |> patternLinear2d(
axis = [0, 1], axis = [0, 1],
@ -697,12 +697,12 @@ const sketch011fl = startSketchOn(extrude001fl, 'START')
originStart[2] + railHeight * 1.75 / 2 + .438 / 2 originStart[2] + railHeight * 1.75 / 2 + .438 / 2
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0], -0.66 - originStart[0],
originStart[2] + railHeight * 1.75 / 2 - (.438 / 2) originStart[2] + railHeight * 1.75 / 2 - (.438 / 2)
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
const extrude011fl = extrude(sketch011fl, length = -thickness) const extrude011fl = extrude(sketch011fl, length = -thickness)
@ -714,12 +714,12 @@ const sketch012fl = startSketchOn(extrude001fl, 'START')
originStart[2] + railHeight * 1.75 - .81 + .438 / 2 originStart[2] + railHeight * 1.75 - .81 + .438 / 2
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0], -0.66 - originStart[0],
originStart[2] + railHeight * 1.75 - .81 - (.438 / 2) originStart[2] + railHeight * 1.75 - .81 - (.438 / 2)
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
|> patternLinear2d( |> patternLinear2d(
axis = [0, -1], axis = [0, -1],
@ -814,12 +814,12 @@ const sketch010fr = startSketchOn(extrude001fr, 'START')
originStart[2] + .81 - (.438 / 2) originStart[2] + .81 - (.438 / 2)
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0], -0.66 - originStart[0],
originStart[2] + .81 + .438 / 2 originStart[2] + .81 + .438 / 2
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
|> patternLinear2d( |> patternLinear2d(
axis = [0, 1], axis = [0, 1],
@ -835,12 +835,12 @@ const sketch011fr = startSketchOn(extrude001fr, 'START')
originStart[2] + railHeight * 1.75 / 2 + .438 / 2 originStart[2] + railHeight * 1.75 / 2 + .438 / 2
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0], -0.66 - originStart[0],
originStart[2] + railHeight * 1.75 / 2 - (.438 / 2) originStart[2] + railHeight * 1.75 / 2 - (.438 / 2)
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
const extrude011fr = extrude(sketch011fr, length = -thickness) const extrude011fr = extrude(sketch011fr, length = -thickness)
@ -852,12 +852,12 @@ const sketch012fr = startSketchOn(extrude001fr, 'START')
originStart[2] + railHeight * 1.75 - .81 + .438 / 2 originStart[2] + railHeight * 1.75 - .81 + .438 / 2
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0], -0.66 - originStart[0],
originStart[2] + railHeight * 1.75 - .81 - (.438 / 2) originStart[2] + railHeight * 1.75 - .81 - (.438 / 2)
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
|> patternLinear2d( |> patternLinear2d(
axis = [0, -1], axis = [0, -1],
@ -952,12 +952,12 @@ const sketch010rr = startSketchOn(extrude001rr, 'START')
originStart[2] + .81 - (.438 / 2) originStart[2] + .81 - (.438 / 2)
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0] + 1.5 - serverDepth, -0.66 - originStart[0] + 1.5 - serverDepth,
originStart[2] + .81 + .438 / 2 originStart[2] + .81 + .438 / 2
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
|> patternLinear2d( |> patternLinear2d(
axis = [0, 1], axis = [0, 1],
@ -973,12 +973,12 @@ const sketch011rr = startSketchOn(extrude001rr, 'START')
originStart[2] + railHeight * 1.75 / 2 + .438 / 2 originStart[2] + railHeight * 1.75 / 2 + .438 / 2
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0] + 1.5 - serverDepth, -0.66 - originStart[0] + 1.5 - serverDepth,
originStart[2] + railHeight * 1.75 / 2 - (.438 / 2) originStart[2] + railHeight * 1.75 / 2 - (.438 / 2)
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
const extrude011rr = extrude(sketch011rr, length = -thickness) const extrude011rr = extrude(sketch011rr, length = -thickness)
@ -990,12 +990,12 @@ const sketch012rr = startSketchOn(extrude001rr, 'START')
originStart[2] + railHeight * 1.75 - .81 + .438 / 2 originStart[2] + railHeight * 1.75 - .81 + .438 / 2
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0] + 1.5 - serverDepth, -0.66 - originStart[0] + 1.5 - serverDepth,
originStart[2] + railHeight * 1.75 - .81 - (.438 / 2) originStart[2] + railHeight * 1.75 - .81 - (.438 / 2)
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
|> patternLinear2d( |> patternLinear2d(
axis = [0, -1], axis = [0, -1],
@ -1089,12 +1089,12 @@ const sketch010rl = startSketchOn(extrude001rl, 'START')
originStart[2] + .81 - (.438 / 2) originStart[2] + .81 - (.438 / 2)
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0] - serverDepth + 1.5, -0.66 - originStart[0] - serverDepth + 1.5,
originStart[2] + .81 + .438 / 2 originStart[2] + .81 + .438 / 2
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
|> patternLinear2d( |> patternLinear2d(
axis = [0, 1], axis = [0, 1],
@ -1110,12 +1110,12 @@ const sketch011rl = startSketchOn(extrude001rl, 'START')
originStart[2] + railHeight * 1.75 / 2 + .438 / 2 originStart[2] + railHeight * 1.75 / 2 + .438 / 2
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0] - serverDepth + 1.5, -0.66 - originStart[0] - serverDepth + 1.5,
originStart[2] + railHeight * 1.75 / 2 - (.438 / 2) originStart[2] + railHeight * 1.75 / 2 - (.438 / 2)
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
const extrude011rl = extrude(sketch011rl, length = -thickness) const extrude011rl = extrude(sketch011rl, length = -thickness)
@ -1127,12 +1127,12 @@ const sketch012rl = startSketchOn(extrude001rl, 'START')
originStart[2] + railHeight * 1.75 - .81 + .438 / 2 originStart[2] + railHeight * 1.75 - .81 + .438 / 2
], %) ], %)
|> xLine(length = 0.75 - .438) |> xLine(length = 0.75 - .438)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.66 - originStart[0] - serverDepth + 1.5, -0.66 - originStart[0] - serverDepth + 1.5,
originStart[2] + railHeight * 1.75 - .81 - (.438 / 2) originStart[2] + railHeight * 1.75 - .81 - (.438 / 2)
], %) ])
|> xLine(length = -0.75 + .438) |> xLine(length = -0.75 + .438)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %) |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
|> patternLinear2d( |> patternLinear2d(
axis = [0, -1], axis = [0, -1],
@ -1184,15 +1184,15 @@ fn streamServer = (serverPos) => {
|> xLine(length = 0.2) |> xLine(length = 0.2)
|> yLine(length = -0.36) |> yLine(length = -0.36)
|> xLine(length = 0.5) |> xLine(length = 0.5)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
0.3, 0.3,
17.15 + 4.114 + 1 + serverPos * 1.75 - 11.114 17.15 + 4.114 + 1 + serverPos * 1.75 - 11.114
], %) ])
|> yLine(length = -1.77) |> yLine(length = -1.77)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.13, -0.13,
14.89 + 4.114 + 1 + serverPos * 1.75 - 11.114 14.89 + 4.114 + 1 + serverPos * 1.75 - 11.114
], %) ])
|> xLine(length = -0.52) |> xLine(length = -0.52)
|> yLine(length = -0.42) |> yLine(length = -0.42)
|> line(end = [0.34, -0.15]) |> line(end = [0.34, -0.15])
@ -1208,15 +1208,15 @@ fn streamServer = (serverPos) => {
|> xLine(length = 0.2) |> xLine(length = 0.2)
|> yLine(length = -0.36) |> yLine(length = -0.36)
|> xLine(length = 0.5) |> xLine(length = 0.5)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
0.3, 0.3,
17.15 + 4.114 + 1 + serverPos * 1.75 - 11.114 17.15 + 4.114 + 1 + serverPos * 1.75 - 11.114
], %) ])
|> yLine(length = -1.77) |> yLine(length = -1.77)
|> tangentialArcTo([ |> tangentialArc(endAbsolute = [
-0.13, -0.13,
14.89 + 4.114 + 1 + serverPos * 1.75 - 11.114 14.89 + 4.114 + 1 + serverPos * 1.75 - 11.114
], %) ])
|> xLine(length = -0.52) |> xLine(length = -0.52)
|> yLine(length = -0.42) |> yLine(length = -0.42)
|> line(end = [0.34, -0.15]) |> line(end = [0.34, -0.15])

View File

@ -10,16 +10,17 @@ startSketchOn(XY)
angle = angleStart, angle = angleStart,
length = .000001, length = .000001,
) )
|> tangentialArc({ |> tangentialArc(
offset: angleOffset, angle = angleOffset,
radius: r, radius: r,
}, %, $arc1) tag = $arc1,
|> tangentialArc({ )
offset: angleOffset, |> tangentialArc(
radius: 0.5*r, angle = angleOffset,
}, %, $arc2) radius = 0.5*r,
|> tangentialArc({ tag = $arc2)
offset: -angleOffset, |> tangentialArc(
radius: 0.5*r, angle = -angleOffset,
}, %, $arc3) radius = 0.5*r,
tag = $arc3)
|> xLine(endAbsolute = 1) |> xLine(endAbsolute = 1)

View File

@ -1,6 +1,6 @@
const boxSketch = startSketchOn(XY) const boxSketch = startSketchOn(XY)
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> line(end = [0, 10]) |> line(end = [0, 10])
|> tangentialArc({radius: 5, offset: 90}, %) |> tangentialArc(radius = 5, angle = 90)
|> line(end = [5, -15]) |> line(end = [5, -15])
|> extrude(length = 10) |> extrude(length = 10)

View File

@ -159,7 +159,7 @@ async fn kcl_test_basic_tangential_arc_with_point() {
let code = r#"boxSketch = startSketchOn(XY) let code = r#"boxSketch = startSketchOn(XY)
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> line(end = [0, 10]) |> line(end = [0, 10])
|> tangentialArcToRelative([-5, 5], %) |> tangentialArc(end = [-5, 5])
|> line(end = [5, -15]) |> line(end = [5, -15])
|> extrude(length = 10) |> extrude(length = 10)
"#; "#;
@ -173,7 +173,7 @@ async fn kcl_test_basic_tangential_arc_to() {
let code = r#"boxSketch = startSketchOn(XY) let code = r#"boxSketch = startSketchOn(XY)
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> line(end = [0, 10]) |> line(end = [0, 10])
|> tangentialArcTo([-5, 15], %) |> tangentialArc(endAbsolute = [-5, 15])
|> line(end = [5, -15]) |> line(end = [5, -15])
|> extrude(length = 10) |> extrude(length = 10)
"#; "#;
@ -224,14 +224,14 @@ wallMountL = 8
bracket = startSketchOn(XY) bracket = startSketchOn(XY)
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> line(end = [0, wallMountL]) |> line(end = [0, wallMountL])
|> tangentialArc({ radius= filletR, offset: 90 }, %) |> tangentialArc(radius = filletR, angle = 90 )
|> line(end = [-shelfMountL, 0]) |> line(end = [-shelfMountL, 0])
|> line(end = [0, -thickness]) |> line(end = [0, -thickness])
|> line(end = [shelfMountL, 0]) |> line(end = [shelfMountL, 0])
|> tangentialArc({ |> tangentialArc(
radius= filletR - thickness, radius = filletR - thickness,
offset: -90 angle = -90,
}, %) )
|> line(end = [0, -wallMountL]) |> line(end = [0, -wallMountL])
|> close() |> close()
|> extrude(length = width) |> extrude(length = width)
@ -306,7 +306,7 @@ thing = other_circle([2, 2], 20)
#[tokio::test(flavor = "multi_thread")] #[tokio::test(flavor = "multi_thread")]
async fn kcl_test_rounded_with_holes() { async fn kcl_test_rounded_with_holes() {
let code = r#"fn tarc = (to, sktch, tag?) => { let code = r#"fn tarc = (to, sktch, tag?) => {
return tangentialArcTo(to, sktch, tag) return tangentialArc(sktch, endAbsolute = to, tag = tag)
} }
fn roundedRectangle = (pos, w, l, cornerRadius) => { fn roundedRectangle = (pos, w, l, cornerRadius) => {
@ -705,7 +705,7 @@ async fn kcl_test_error_sketch_on_arc_face() {
let code = r#"fn cube = (pos, scale) => { let code = r#"fn cube = (pos, scale) => {
sg = startSketchOn(XY) sg = startSketchOn(XY)
|> startProfileAt(pos, %) |> startProfileAt(pos, %)
|> tangentialArcToRelative([0, scale], %, $here) |> tangentialArc(end = [0, scale], tag = $here)
|> line(end = [scale, 0]) |> line(end = [scale, 0])
|> line(end = [0, -scale]) |> line(end = [0, -scale])
@ -1342,7 +1342,7 @@ async fn kcl_test_error_empty_start_sketch_on_string() {
|> line(end = [190.03, -118.13]) |> line(end = [190.03, -118.13])
|> line(end = [-33.38, -202.86]) |> line(end = [-33.38, -202.86])
|> line(end = [-315.86, -64.2]) |> line(end = [-315.86, -64.2])
|> tangentialArcTo([-147.66, 121.34], %) |> tangentialArc(endAbsolute = [-147.66, 121.34])
|> close() |> close()
|> extrude(length = 100) |> extrude(length = 100)
@ -1352,10 +1352,11 @@ secondSketch = startSketchOn(part001, '')
"#; "#;
let result = execute_and_snapshot(code, None).await; let result = execute_and_snapshot(code, None).await;
assert!(result.is_err()); let err = result.unwrap_err();
let err = err.as_kcl_error().unwrap();
assert_eq!( assert_eq!(
result.err().unwrap().to_string(), err.message(),
r#"semantic: KclErrorDetails { source_ranges: [SourceRange([297, 299, 0])], message: "Argument at index 1 was supposed to be type Option<FaceTag> but found string (text)" }"# "Argument at index 1 was supposed to be type Option<FaceTag> but found string (text)"
); );
} }

View File

@ -7,6 +7,7 @@ use schemars::JsonSchema;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use uuid::Uuid; use uuid::Uuid;
use super::types::NumericType;
use crate::{ use crate::{
errors::{KclError, KclErrorDetails, Severity}, errors::{KclError, KclErrorDetails, Severity},
execution::{ execution::{
@ -22,8 +23,6 @@ use crate::{
CompilationError, CompilationError,
}; };
use super::types::NumericType;
/// State for executing a program. /// State for executing a program.
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct ExecState { pub struct ExecState {

View File

@ -807,6 +807,7 @@ pub enum UnitAngle {
impl UnitAngle { impl UnitAngle {
fn adjust_to(self, value: f64, to: UnitAngle) -> f64 { fn adjust_to(self, value: f64, to: UnitAngle) -> f64 {
use std::f64::consts::PI; use std::f64::consts::PI;
use UnitAngle::*; use UnitAngle::*;
if !*CHECK_NUMERIC_TYPES { if !*CHECK_NUMERIC_TYPES {
@ -1171,9 +1172,8 @@ impl KclValue {
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use crate::execution::{parse_execute, ExecTestResults};
use super::*; use super::*;
use crate::execution::{parse_execute, ExecTestResults};
fn values(exec_state: &mut ExecState) -> Vec<KclValue> { fn values(exec_state: &mut ExecState) -> Vec<KclValue> {
vec![ vec![

View File

@ -241,15 +241,9 @@ pub async fn appearance(exec_state: &mut ExecState, args: Args) -> Result<KclVal
/// sweepPath = startSketchOn(XZ) /// sweepPath = startSketchOn(XZ)
/// |> startProfileAt([0.05, 0.05], %) /// |> startProfileAt([0.05, 0.05], %)
/// |> line(end = [0, 7]) /// |> line(end = [0, 7])
/// |> tangentialArc({ /// |> tangentialArc(angle = 90, radius = 5)
/// offset: 90,
/// radius: 5
/// }, %)
/// |> line(end = [-3, 0]) /// |> line(end = [-3, 0])
/// |> tangentialArc({ /// |> tangentialArc(angle = -90, radius = 5)
/// offset: -90,
/// radius: 5
/// }, %)
/// |> line(end = [0, 7]) /// |> line(end = [0, 7])
/// ///
/// pipeHole = startSketchOn(XY) /// pipeHole = startSketchOn(XY)

View File

@ -151,6 +151,10 @@ impl Args {
let Some(arg) = self.kw_args.labeled.get(label) else { let Some(arg) = self.kw_args.labeled.get(label) else {
return Ok(None); return Ok(None);
}; };
if let KclValue::KclNone { .. } = arg.value {
// It is set, but it's an optional parameter that wasn't provided.
return Ok(None);
}
T::from_kcl_val(&arg.value).map(Some).ok_or_else(|| { T::from_kcl_val(&arg.value).map(Some).ok_or_else(|| {
KclError::Type(KclErrorDetails { KclError::Type(KclErrorDetails {

View File

@ -9,8 +9,7 @@ use kcmc::{
length_unit::LengthUnit, length_unit::LengthUnit,
ok_response::OkModelingCmdResponse, ok_response::OkModelingCmdResponse,
output::ExtrusionFaceInfo, output::ExtrusionFaceInfo,
shared::ExtrusionFaceCapType, shared::{ExtrusionFaceCapType, Opposite},
shared::Opposite,
websocket::{ModelingCmdReq, OkWebSocketResponseData}, websocket::{ModelingCmdReq, OkWebSocketResponseData},
ModelingCmd, ModelingCmd,
}; };

View File

@ -85,8 +85,6 @@ lazy_static! {
Box::new(crate::std::sketch::Arc), Box::new(crate::std::sketch::Arc),
Box::new(crate::std::sketch::ArcTo), Box::new(crate::std::sketch::ArcTo),
Box::new(crate::std::sketch::TangentialArc), Box::new(crate::std::sketch::TangentialArc),
Box::new(crate::std::sketch::TangentialArcTo),
Box::new(crate::std::sketch::TangentialArcToRelative),
Box::new(crate::std::sketch::BezierCurve), Box::new(crate::std::sketch::BezierCurve),
Box::new(crate::std::sketch::Hole), Box::new(crate::std::sketch::Hole),
Box::new(crate::std::patterns::PatternLinear2D), Box::new(crate::std::patterns::PatternLinear2D),

View File

@ -824,7 +824,7 @@ pub async fn pattern_linear_3d(exec_state: &mut ExecState, args: Args) -> Result
/// |> startProfileAt([-size, -size], %) /// |> startProfileAt([-size, -size], %)
/// |> line(end = [2 * size, 0]) /// |> line(end = [2 * size, 0])
/// |> line(end = [0, 2 * size]) /// |> line(end = [0, 2 * size])
/// |> tangentialArcTo([-size, size], %) /// |> tangentialArc(endAbsolute = [-size, size])
/// |> close(%) /// |> close(%)
/// |> extrude(length = 65) /// |> extrude(length = 65)
/// ///
@ -852,7 +852,7 @@ pub async fn pattern_linear_3d(exec_state: &mut ExecState, args: Args) -> Result
/// |> startProfileAt([-size, -size], %) /// |> startProfileAt([-size, -size], %)
/// |> line(end = [2 * size, 0]) /// |> line(end = [2 * size, 0])
/// |> line(end = [0, 2 * size]) /// |> line(end = [0, 2 * size])
/// |> tangentialArcTo([-size, size], %) /// |> tangentialArc(endAbsolute = [-size, size])
/// |> close(%) /// |> close(%)
/// |> extrude(length = 65) /// |> extrude(length = 65)
/// ///

View File

@ -1,7 +1,12 @@
//! Standard library revolution surfaces. //! Standard library revolution surfaces.
use anyhow::Result; use anyhow::Result;
use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, shared::Angle, shared::Opposite, ModelingCmd}; use kcmc::{
each_cmd as mcmd,
length_unit::LengthUnit,
shared::{Angle, Opposite},
ModelingCmd,
};
use kittycad_modeling_cmds::{self as kcmc, shared::Point3d}; use kittycad_modeling_cmds::{self as kcmc, shared::Point3d};
use super::DEFAULT_TOLERANCE; use super::DEFAULT_TOLERANCE;

View File

@ -393,10 +393,7 @@ pub async fn segment_length(exec_state: &mut ExecState, args: Args) -> Result<Kc
/// length = 10, /// length = 10,
/// tag = $thing, /// tag = $thing,
/// ) /// )
/// |> tangentialArc({ /// |> tangentialArc(angle = -120, radius = 5)
/// offset = -120,
/// radius = 5,
/// }, %)
/// |> angledLine( /// |> angledLine(
/// angle = -60, /// angle = -60,
/// length = segLen(thing), /// length = segLen(thing),
@ -485,12 +482,12 @@ pub async fn tangent_to_end(exec_state: &mut ExecState, args: Args) -> Result<Kc
/// pillSketch = startSketchOn('XZ') /// pillSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line(end = [20, 0]) /// |> line(end = [20, 0])
/// |> tangentialArcToRelative([0, 10], %, $arc1) /// |> tangentialArc(end = [0, 10], tag = $arc1)
/// |> angledLine( /// |> angledLine(
/// angle = tangentToEnd(arc1), /// angle = tangentToEnd(arc1),
/// length = 20, /// length = 20,
/// ) /// )
/// |> tangentialArcToRelative([0, -10], %) /// |> tangentialArc(end = [0, -10])
/// |> close() /// |> close()
/// ///
/// pillExtrude = extrude(pillSketch, length = 10) /// pillExtrude = extrude(pillSketch, length = 10)
@ -501,12 +498,12 @@ pub async fn tangent_to_end(exec_state: &mut ExecState, args: Args) -> Result<Kc
/// pillSketch = startSketchOn('XZ') /// pillSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line(end = [0, 20]) /// |> line(end = [0, 20])
/// |> tangentialArcTo([10, 20], %, $arc1) /// |> tangentialArc(endAbsolute = [10, 20], tag = $arc1)
/// |> angledLine( /// |> angledLine(
/// angle = tangentToEnd(arc1), /// angle = tangentToEnd(arc1),
/// length = 20, /// length = 20,
/// ) /// )
/// |> tangentialArcToRelative([-10, 0], %) /// |> tangentialArc(end = [-10, 0])
/// |> close() /// |> close()
/// ///
/// pillExtrude = extrude(pillSketch, length = 10) /// pillExtrude = extrude(pillSketch, length = 10)

View File

@ -104,7 +104,7 @@ pub async fn shell(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// |> startProfileAt([-size, -size], %) /// |> startProfileAt([-size, -size], %)
/// |> line(end = [2 * size, 0]) /// |> line(end = [2 * size, 0])
/// |> line(end = [0, 2 * size]) /// |> line(end = [0, 2 * size])
/// |> tangentialArcTo([-size, size], %) /// |> tangentialArc(endAbsolute = [-size, size])
/// |> close() /// |> close()
/// |> extrude(length = 65) /// |> extrude(length = 65)
/// ///
@ -127,7 +127,7 @@ pub async fn shell(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// |> startProfileAt([-size, -size], %) /// |> startProfileAt([-size, -size], %)
/// |> line(end = [2 * size, 0]) /// |> line(end = [2 * size, 0])
/// |> line(end = [0, 2 * size]) /// |> line(end = [0, 2 * size])
/// |> tangentialArcTo([-size, size], %) /// |> tangentialArc(endAbsolute = [-size, size])
/// |> close() /// |> close()
/// |> extrude(length = 65) /// |> extrude(length = 65)
/// ///
@ -152,7 +152,7 @@ pub async fn shell(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// |> startProfileAt([-size, -size], %) /// |> startProfileAt([-size, -size], %)
/// |> line(end = [2 * size, 0]) /// |> line(end = [2 * size, 0])
/// |> line(end = [0, 2 * size]) /// |> line(end = [0, 2 * size])
/// |> tangentialArcTo([-size, size], %) /// |> tangentialArc(endAbsolute = [-size, size])
/// |> close() /// |> close()
/// |> extrude(length = 65) /// |> extrude(length = 65)
/// ///
@ -287,7 +287,7 @@ pub async fn hollow(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// |> startProfileAt([-size, -size], %) /// |> startProfileAt([-size, -size], %)
/// |> line(end = [2 * size, 0]) /// |> line(end = [2 * size, 0])
/// |> line(end = [0, 2 * size]) /// |> line(end = [0, 2 * size])
/// |> tangentialArcTo([-size, size], %) /// |> tangentialArc(endAbsolute = [-size, size])
/// |> close() /// |> close()
/// |> extrude(length = 65) /// |> extrude(length = 65)
/// ///

View File

@ -1705,6 +1705,127 @@ pub(crate) async fn inner_arc_to(
Ok(new_sketch) Ok(new_sketch)
} }
/// Draw a tangential arc to a specific point.
pub async fn tangential_arc(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
let sketch =
args.get_unlabeled_kw_arg_typed("sketch", &RuntimeType::Primitive(PrimitiveType::Sketch), exec_state)?;
let end = args.get_kw_arg_opt("end")?;
let end_absolute = args.get_kw_arg_opt("endAbsolute")?;
let radius = args.get_kw_arg_opt("radius")?;
let angle = args.get_kw_arg_opt("angle")?;
let tag = args.get_kw_arg_opt(NEW_TAG_KW)?;
let new_sketch = inner_tangential_arc(sketch, end_absolute, end, radius, angle, tag, exec_state, args).await?;
Ok(KclValue::Sketch {
value: Box::new(new_sketch),
})
}
/// Starting at the current sketch's origin, draw a curved line segment along
/// some part of an imaginary circle until it reaches the desired (x, y)
/// coordinates.
///
/// When using radius and angle, draw a curved line segment along part of an
/// imaginary circle. The arc is constructed such that the last line segment is
/// placed tangent to the imaginary circle of the specified radius. The
/// resulting arc is the segment of the imaginary circle from that tangent point
/// for 'angle' degrees along the imaginary circle.
///
/// ```no_run
/// exampleSketch = startSketchOn(XZ)
/// |> startProfileAt([0, 0], %)
/// |> angledLine(
/// angle = 45,
/// length = 10,
/// )
/// |> tangentialArc(end = [0, -10])
/// |> line(end = [-10, 0])
/// |> close()
///
/// example = extrude(exampleSketch, length = 10)
/// ```
///
/// ```no_run
/// exampleSketch = startSketchOn(XZ)
/// |> startProfileAt([0, 0], %)
/// |> angledLine(
/// angle = 60,
/// length = 10,
/// )
/// |> tangentialArc(endAbsolute = [15, 15])
/// |> line(end = [10, -15])
/// |> close()
///
/// example = extrude(exampleSketch, length = 10)
/// ```
///
/// ```no_run
/// exampleSketch = startSketchOn(XZ)
/// |> startProfileAt([0, 0], %)
/// |> angledLine(
/// angle = 60,
/// length = 10,
/// )
/// |> tangentialArc(radius = 10, angle = -120)
/// |> angledLine(
/// angle = -60,
/// length = 10,
/// )
/// |> close()
///
/// example = extrude(exampleSketch, length = 10)
/// ```
#[stdlib {
name = "tangentialArc",
keywords = true,
unlabeled_first = true,
args = {
sketch = { docs = "Which sketch should this path be added to?"},
end_absolute = { docs = "Which absolute point should this arc go to? Incompatible with `end`, `radius`, and `offset`."},
end = { docs = "How far away (along the X and Y axes) should this arc go? Incompatible with `endAbsolute`, `radius`, and `offset`.", include_in_snippet = true },
radius = { docs = "Radius of the imaginary circle. `angle` must be given. Incompatible with `end` and `endAbsolute`."},
angle = { docs = "Offset of the arc in degrees. `radius` must be given. Incompatible with `end` and `endAbsolute`."},
tag = { docs = "Create a new tag which refers to this arc"},
}
}]
#[allow(clippy::too_many_arguments)]
async fn inner_tangential_arc(
sketch: Sketch,
end_absolute: Option<[f64; 2]>,
end: Option<[f64; 2]>,
radius: Option<f64>,
angle: Option<f64>,
tag: Option<TagNode>,
exec_state: &mut ExecState,
args: Args,
) -> Result<Sketch, KclError> {
match (end_absolute, end, radius, angle) {
(Some(point), None, None, None) => {
inner_tangential_arc_to_point(sketch, point, true, tag, exec_state, args).await
}
(None, Some(point), None, None) => {
inner_tangential_arc_to_point(sketch, point, false, tag, exec_state, args).await
}
(None, None, Some(radius), Some(angle)) => {
let data = TangentialArcData::RadiusAndOffset { radius, offset: angle };
inner_tangential_arc_radius_angle(data, sketch, tag, exec_state, args).await
}
(Some(_), Some(_), None, None) => Err(KclError::Semantic(KclErrorDetails {
source_ranges: vec![args.source_range],
message: "You cannot give both `end` and `endAbsolute` params, you have to choose one or the other"
.to_owned(),
})),
(None, None, Some(_), None) | (None, None, None, Some(_)) => Err(KclError::Semantic(KclErrorDetails {
source_ranges: vec![args.source_range],
message: "You must supply both `radius` and `angle` arguments".to_owned(),
})),
(_, _, _, _) => Err(KclError::Semantic(KclErrorDetails {
source_ranges: vec![args.source_range],
message: "You must supply `end`, `endAbsolute`, or both `radius` and `angle` arguments".to_owned(),
})),
}
}
/// Data to draw a tangential arc. /// Data to draw a tangential arc.
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, JsonSchema, ts_rs::TS)] #[derive(Debug, Clone, Deserialize, Serialize, PartialEq, JsonSchema, ts_rs::TS)]
#[ts(export)] #[ts(export)]
@ -1719,44 +1840,13 @@ pub enum TangentialArcData {
}, },
} }
/// Draw a tangential arc.
pub async fn tangential_arc(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
let (data, sketch, tag): (TangentialArcData, Sketch, Option<TagNode>) =
args.get_data_and_sketch_and_tag(exec_state)?;
let new_sketch = inner_tangential_arc(data, sketch, tag, exec_state, args).await?;
Ok(KclValue::Sketch {
value: Box::new(new_sketch),
})
}
/// Draw a curved line segment along part of an imaginary circle. /// Draw a curved line segment along part of an imaginary circle.
/// ///
/// The arc is constructed such that the last line segment is placed tangent /// The arc is constructed such that the last line segment is placed tangent
/// to the imaginary circle of the specified radius. The resulting arc is the /// to the imaginary circle of the specified radius. The resulting arc is the
/// segment of the imaginary circle from that tangent point for 'offset' /// segment of the imaginary circle from that tangent point for 'angle'
/// degrees along the imaginary circle. /// degrees along the imaginary circle.
/// async fn inner_tangential_arc_radius_angle(
/// ```no_run
/// exampleSketch = startSketchOn(XZ)
/// |> startProfileAt([0, 0], %)
/// |> angledLine(
/// angle = 60,
/// length = 10,
/// )
/// |> tangentialArc({ radius = 10, offset = -120 }, %)
/// |> angledLine(
/// angle = -60,
/// length = 10,
/// )
/// |> close()
///
/// example = extrude(exampleSketch, length = 10)
/// ```
#[stdlib {
name = "tangentialArc",
}]
async fn inner_tangential_arc(
data: TangentialArcData, data: TangentialArcData,
sketch: Sketch, sketch: Sketch,
tag: Option<TagNode>, tag: Option<TagNode>,
@ -1847,49 +1937,10 @@ fn tan_arc_to(sketch: &Sketch, to: &[f64; 2]) -> ModelingCmd {
}) })
} }
/// Draw a tangential arc to a specific point. async fn inner_tangential_arc_to_point(
pub async fn tangential_arc_to(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
let (to, sketch, tag): ([f64; 2], Sketch, Option<TagNode>) = args.get_data_and_sketch_and_tag(exec_state)?;
let new_sketch = inner_tangential_arc_to(to, sketch, tag, exec_state, args).await?;
Ok(KclValue::Sketch {
value: Box::new(new_sketch),
})
}
/// Draw a tangential arc to point some distance away..
pub async fn tangential_arc_to_relative(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
let (delta, sketch, tag): ([f64; 2], Sketch, Option<TagNode>) = args.get_data_and_sketch_and_tag(exec_state)?;
let new_sketch = inner_tangential_arc_to_relative(delta, sketch, tag, exec_state, args).await?;
Ok(KclValue::Sketch {
value: Box::new(new_sketch),
})
}
/// Starting at the current sketch's origin, draw a curved line segment along
/// some part of an imaginary circle until it reaches the desired (x, y)
/// coordinates.
///
/// ```no_run
/// exampleSketch = startSketchOn(XZ)
/// |> startProfileAt([0, 0], %)
/// |> angledLine(
/// angle = 60,
/// length = 10,
/// )
/// |> tangentialArcTo([15, 15], %)
/// |> line(end = [10, -15])
/// |> close()
///
/// example = extrude(exampleSketch, length = 10)
/// ```
#[stdlib {
name = "tangentialArcTo",
}]
async fn inner_tangential_arc_to(
to: [f64; 2],
sketch: Sketch, sketch: Sketch,
point: [f64; 2],
is_absolute: bool,
tag: Option<TagNode>, tag: Option<TagNode>,
exec_state: &mut ExecState, exec_state: &mut ExecState,
args: Args, args: Args,
@ -1897,6 +1948,12 @@ async fn inner_tangential_arc_to(
let from: Point2d = sketch.current_pen_position()?; let from: Point2d = sketch.current_pen_position()?;
let tangent_info = sketch.get_tangential_info_from_paths(); let tangent_info = sketch.get_tangential_info_from_paths();
let tan_previous_point = tangent_info.tan_previous_point(from.into()); let tan_previous_point = tangent_info.tan_previous_point(from.into());
let to = if is_absolute {
point
} else {
[from.x + point[0], from.y + point[1]]
};
let [to_x, to_y] = to; let [to_x, to_y] = to;
let result = get_tangential_arc_to_info(TangentialArcInfoInput { let result = get_tangential_arc_to_info(TangentialArcInfoInput {
arc_start_point: [from.x, from.y], arc_start_point: [from.x, from.y],
@ -1905,75 +1962,6 @@ async fn inner_tangential_arc_to(
obtuse: true, obtuse: true,
}); });
let delta = [to_x - from.x, to_y - from.y];
let id = exec_state.next_uuid();
args.batch_modeling_cmd(id, tan_arc_to(&sketch, &delta)).await?;
let current_path = Path::TangentialArcTo {
base: BasePath {
from: from.into(),
to,
tag: tag.clone(),
units: sketch.units,
geo_meta: GeoMeta {
id,
metadata: args.source_range.into(),
},
},
center: result.center,
ccw: result.ccw > 0,
};
let mut new_sketch = sketch.clone();
if let Some(tag) = &tag {
new_sketch.add_tag(tag, &current_path, exec_state);
}
new_sketch.paths.push(current_path);
Ok(new_sketch)
}
/// Starting at the current sketch's origin, draw a curved line segment along
/// some part of an imaginary circle until it reaches a point the given (x, y)
/// distance away.
///
/// ```no_run
/// exampleSketch = startSketchOn(XZ)
/// |> startProfileAt([0, 0], %)
/// |> angledLine(
/// angle = 45,
/// length = 10,
/// )
/// |> tangentialArcToRelative([0, -10], %)
/// |> line(end = [-10, 0])
/// |> close()
///
/// example = extrude(exampleSketch, length = 10)
/// ```
#[stdlib {
name = "tangentialArcToRelative",
}]
async fn inner_tangential_arc_to_relative(
delta: [f64; 2],
sketch: Sketch,
tag: Option<TagNode>,
exec_state: &mut ExecState,
args: Args,
) -> Result<Sketch, KclError> {
let from: Point2d = sketch.current_pen_position()?;
let to = [from.x + delta[0], from.y + delta[1]];
let tangent_info = sketch.get_tangential_info_from_paths();
let tan_previous_point = tangent_info.tan_previous_point(from.into());
let [dx, dy] = delta;
let result = get_tangential_arc_to_info(TangentialArcInfoInput {
arc_start_point: [from.x, from.y],
arc_end_point: [from.x + dx, from.y + dy],
tan_previous_point,
obtuse: true,
});
if result.center[0].is_infinite() { if result.center[0].is_infinite() {
return Err(KclError::Semantic(KclErrorDetails { return Err(KclError::Semantic(KclErrorDetails {
source_ranges: vec![args.source_range], source_ranges: vec![args.source_range],
@ -1990,6 +1978,11 @@ async fn inner_tangential_arc_to_relative(
})); }));
} }
let delta = if is_absolute {
[to_x - from.x, to_y - from.y]
} else {
point
};
let id = exec_state.next_uuid(); let id = exec_state.next_uuid();
args.batch_modeling_cmd(id, tan_arc_to(&sketch, &delta)).await?; args.batch_modeling_cmd(id, tan_arc_to(&sketch, &delta)).await?;

View File

@ -58,15 +58,9 @@ pub async fn sweep(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// sweepPath = startSketchOn(XZ) /// sweepPath = startSketchOn(XZ)
/// |> startProfileAt([0.05, 0.05], %) /// |> startProfileAt([0.05, 0.05], %)
/// |> line(end = [0, 7]) /// |> line(end = [0, 7])
/// |> tangentialArc({ /// |> tangentialArc(angle = 90, radius = 5)
/// offset: 90,
/// radius: 5
/// }, %)
/// |> line(end = [-3, 0]) /// |> line(end = [-3, 0])
/// |> tangentialArc({ /// |> tangentialArc(angle = -90, radius = 5)
/// offset: -90,
/// radius: 5
/// }, %)
/// |> line(end = [0, 7]) /// |> line(end = [0, 7])
/// ///
/// // Create a hole for the pipe. /// // Create a hole for the pipe.
@ -127,10 +121,7 @@ pub async fn sweep(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// sketch002 = startSketchOn(YZ) /// sketch002 = startSketchOn(YZ)
/// sweepPath = startProfileAt([0, 0], sketch002) /// sweepPath = startProfileAt([0, 0], sketch002)
/// |> yLine(length = 231.81) /// |> yLine(length = 231.81)
/// |> tangentialArc({ /// |> tangentialArc(radius = 80, angle = -90)
/// radius = 80,
/// offset = -90,
/// }, %)
/// |> xLine(length = 384.93) /// |> xLine(length = 384.93)
/// ///
/// sweep([rectangleSketch, circleSketch], path = sweepPath) /// sweep([rectangleSketch, circleSketch], path = sweepPath)
@ -144,10 +135,7 @@ pub async fn sweep(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// sketch002 = startSketchOn('YZ') /// sketch002 = startSketchOn('YZ')
/// sweepPath = startProfileAt([0, 0], sketch002) /// sweepPath = startProfileAt([0, 0], sketch002)
/// |> yLine(length = 231.81) /// |> yLine(length = 231.81)
/// |> tangentialArc({ /// |> tangentialArc(radius = 80, angle = -90)
/// radius = 80,
/// offset = -90,
/// }, %)
/// |> xLine(length = 384.93) /// |> xLine(length = 384.93)
/// ///
/// sweep(circleSketch, path = sweepPath, sectional = true) /// sweep(circleSketch, path = sweepPath, sectional = true)

View File

@ -67,15 +67,9 @@ pub async fn scale(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// sweepPath = startSketchOn('XZ') /// sweepPath = startSketchOn('XZ')
/// |> startProfileAt([0.05, 0.05], %) /// |> startProfileAt([0.05, 0.05], %)
/// |> line(end = [0, 7]) /// |> line(end = [0, 7])
/// |> tangentialArc({ /// |> tangentialArc(angle = 90, radius = 5)
/// offset: 90,
/// radius: 5
/// }, %)
/// |> line(end = [-3, 0]) /// |> line(end = [-3, 0])
/// |> tangentialArc({ /// |> tangentialArc(angle = -90, radius = 5)
/// offset: -90,
/// radius: 5
/// }, %)
/// |> line(end = [0, 7]) /// |> line(end = [0, 7])
/// ///
/// // Create a hole for the pipe. /// // Create a hole for the pipe.
@ -130,10 +124,7 @@ pub async fn scale(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
/// sketch002 = startSketchOn('YZ') /// sketch002 = startSketchOn('YZ')
/// sweepPath = startProfileAt([0, 0], sketch002) /// sweepPath = startProfileAt([0, 0], sketch002)
/// |> yLine(length = 231.81) /// |> yLine(length = 231.81)
/// |> tangentialArc({ /// |> tangentialArc(radius = 80, angle = -90)
/// radius = 80,
/// offset = -90,
/// }, %)
/// |> xLine(length = 384.93) /// |> xLine(length = 384.93)
/// ///
/// parts = sweep([rectangleSketch, circleSketch], path = sweepPath) /// parts = sweep([rectangleSketch, circleSketch], path = sweepPath)
@ -241,15 +232,9 @@ pub async fn translate(exec_state: &mut ExecState, args: Args) -> Result<KclValu
/// sweepPath = startSketchOn('XZ') /// sweepPath = startSketchOn('XZ')
/// |> startProfileAt([0.05, 0.05], %) /// |> startProfileAt([0.05, 0.05], %)
/// |> line(end = [0, 7]) /// |> line(end = [0, 7])
/// |> tangentialArc({ /// |> tangentialArc(angle = 90, radius = 5)
/// offset: 90,
/// radius: 5
/// }, %)
/// |> line(end = [-3, 0]) /// |> line(end = [-3, 0])
/// |> tangentialArc({ /// |> tangentialArc(angle = -90, radius = 5)
/// offset: -90,
/// radius: 5
/// }, %)
/// |> line(end = [0, 7]) /// |> line(end = [0, 7])
/// ///
/// // Create a hole for the pipe. /// // Create a hole for the pipe.
@ -318,10 +303,7 @@ pub async fn translate(exec_state: &mut ExecState, args: Args) -> Result<KclValu
/// sketch002 = startSketchOn('YZ') /// sketch002 = startSketchOn('YZ')
/// sweepPath = startProfileAt([0, 0], sketch002) /// sweepPath = startProfileAt([0, 0], sketch002)
/// |> yLine(length = 231.81) /// |> yLine(length = 231.81)
/// |> tangentialArc({ /// |> tangentialArc(radius = 80, angle = -90)
/// radius = 80,
/// offset = -90,
/// }, %)
/// |> xLine(length = 384.93) /// |> xLine(length = 384.93)
/// ///
/// parts = sweep([rectangleSketch, circleSketch], path = sweepPath) /// parts = sweep([rectangleSketch, circleSketch], path = sweepPath)
@ -575,15 +557,9 @@ pub async fn rotate(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// sweepPath = startSketchOn('XZ') /// sweepPath = startSketchOn('XZ')
/// |> startProfileAt([0.05, 0.05], %) /// |> startProfileAt([0.05, 0.05], %)
/// |> line(end = [0, 7]) /// |> line(end = [0, 7])
/// |> tangentialArc({ /// |> tangentialArc(angle = 90, radius = 5)
/// offset: 90,
/// radius: 5
/// }, %)
/// |> line(end = [-3, 0]) /// |> line(end = [-3, 0])
/// |> tangentialArc({ /// |> tangentialArc(angle = -90, radius = 5)
/// offset: -90,
/// radius: 5
/// }, %)
/// |> line(end = [0, 7]) /// |> line(end = [0, 7])
/// ///
/// // Create a hole for the pipe. /// // Create a hole for the pipe.
@ -614,15 +590,9 @@ pub async fn rotate(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// sweepPath = startSketchOn('XZ') /// sweepPath = startSketchOn('XZ')
/// |> startProfileAt([0.05, 0.05], %) /// |> startProfileAt([0.05, 0.05], %)
/// |> line(end = [0, 7]) /// |> line(end = [0, 7])
/// |> tangentialArc({ /// |> tangentialArc(angle = 90, radius = 5)
/// offset: 90,
/// radius: 5
/// }, %)
/// |> line(end = [-3, 0]) /// |> line(end = [-3, 0])
/// |> tangentialArc({ /// |> tangentialArc(angle = -90, radius = 5)
/// offset: -90,
/// radius: 5
/// }, %)
/// |> line(end = [0, 7]) /// |> line(end = [0, 7])
/// ///
/// // Create a hole for the pipe. /// // Create a hole for the pipe.
@ -651,15 +621,9 @@ pub async fn rotate(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// sweepPath = startSketchOn('XZ') /// sweepPath = startSketchOn('XZ')
/// |> startProfileAt([0.05, 0.05], %) /// |> startProfileAt([0.05, 0.05], %)
/// |> line(end = [0, 7]) /// |> line(end = [0, 7])
/// |> tangentialArc({ /// |> tangentialArc(angle = 90, radius = 5)
/// offset: 90,
/// radius: 5
/// }, %)
/// |> line(end = [-3, 0]) /// |> line(end = [-3, 0])
/// |> tangentialArc({ /// |> tangentialArc(angle = -90, radius = 5)
/// offset: -90,
/// radius: 5
/// }, %)
/// |> line(end = [0, 7]) /// |> line(end = [0, 7])
/// ///
/// // Create a hole for the pipe. /// // Create a hole for the pipe.
@ -716,10 +680,7 @@ pub async fn rotate(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// sketch002 = startSketchOn('YZ') /// sketch002 = startSketchOn('YZ')
/// sweepPath = startProfileAt([0, 0], sketch002) /// sweepPath = startProfileAt([0, 0], sketch002)
/// |> yLine(length = 231.81) /// |> yLine(length = 231.81)
/// |> tangentialArc({ /// |> tangentialArc(radius = 80, angle = -90)
/// radius = 80,
/// offset = -90,
/// }, %)
/// |> xLine(length = 384.93) /// |> xLine(length = 384.93)
/// ///
/// parts = sweep([rectangleSketch, circleSketch], path = sweepPath) /// parts = sweep([rectangleSketch, circleSketch], path = sweepPath)
@ -846,15 +807,9 @@ mod tests {
const PIPE: &str = r#"sweepPath = startSketchOn('XZ') const PIPE: &str = r#"sweepPath = startSketchOn('XZ')
|> startProfileAt([0.05, 0.05], %) |> startProfileAt([0.05, 0.05], %)
|> line(end = [0, 7]) |> line(end = [0, 7])
|> tangentialArc({ |> tangentialArc(angle = 90, radius = 5)
offset: 90,
radius: 5
}, %)
|> line(end = [-3, 0]) |> line(end = [-3, 0])
|> tangentialArc({ |> tangentialArc(angle = -90, radius = 5)
offset: -90,
radius: 5
}, %)
|> line(end = [0, 7]) |> line(end = [0, 7])
// Create a hole for the pipe. // Create a hole for the pipe.

View File

@ -103,9 +103,9 @@ export fn circle(
/// sketch0011 = startSketchOn(XY) /// sketch0011 = startSketchOn(XY)
/// |> startProfileAt([6.77, 0], %) /// |> startProfileAt([6.77, 0], %)
/// |> yLine(length = 1.27) /// |> yLine(length = 1.27)
/// |> tangentialArcTo([5.96, 2.37], %) /// |> tangentialArc(endAbsolute = [5.96, 2.37])
/// |> tangentialArcTo([-6.2, 2.44], %) /// |> tangentialArc(endAbsolute = [-6.2, 2.44])
/// |> tangentialArcTo([-6.6, 1.82], %) /// |> tangentialArc(endAbsolute = [-6.6, 1.82])
/// |> yLine(length = -1.82) /// |> yLine(length = -1.82)
/// |> mirror2d( axis = X ) /// |> mirror2d( axis = X )
/// |> extrude(length = 10) /// |> extrude(length = 10)

View File

@ -12,8 +12,8 @@ flowchart LR
subgraph path10 [Path] subgraph path10 [Path]
10["Path<br>[479, 508, 0]"] 10["Path<br>[479, 508, 0]"]
11["Segment<br>[514, 539, 0]"] 11["Segment<br>[514, 539, 0]"]
12["Segment<br>[545, 571, 0]"] 12["Segment<br>[545, 580, 0]"]
13["Segment<br>[577, 609, 0]"] 13["Segment<br>[586, 627, 0]"]
end end
1["Plane<br>[12, 31, 0]"] 1["Plane<br>[12, 31, 0]"]
9["Plane<br>[453, 473, 0]"] 9["Plane<br>[453, 473, 0]"]

View File

@ -816,116 +816,47 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"elements": [ "label": {
{ "commentStart": 0,
"commentStart": 0, "end": 0,
"end": 0, "name": "endAbsolute",
"raw": "0", "start": 0,
"start": 0, "type": "Identifier"
"type": "Literal", },
"type": "Literal", "arg": {
"value": { "commentStart": 0,
"value": 0.0, "elements": [
"suffix": "None" {
}
},
{
"commentStart": 0,
"end": 0,
"raw": "0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
}
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "tangentialArcTo",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
},
{
"arguments": [
{
"commentStart": 0,
"elements": [
{
"argument": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "6.8", "raw": "0",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 6.8, "value": 0.0,
"suffix": "None" "suffix": "None"
} }
}, },
"commentStart": 0, {
"end": 0, "commentStart": 0,
"operator": "-", "end": 0,
"start": 0, "raw": "0",
"type": "UnaryExpression", "start": 0,
"type": "UnaryExpression" "type": "Literal",
}, "type": "Literal",
{ "value": {
"commentStart": 0, "value": 0.0,
"end": 0, "suffix": "None"
"raw": "8.17", }
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 8.17,
"suffix": "None"
} }
} ],
], "end": 0,
"end": 0, "start": 0,
"start": 0, "type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression"
"type": "ArrayExpression" }
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
} }
], ],
"callee": { "callee": {
@ -935,7 +866,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "tangentialArcTo", "name": "tangentialArc",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -946,8 +877,85 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "endAbsolute",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"elements": [
{
"argument": {
"commentStart": 0,
"end": 0,
"raw": "6.8",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 6.8,
"suffix": "None"
}
},
"commentStart": 0,
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
},
{
"commentStart": 0,
"end": 0,
"raw": "8.17",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 8.17,
"suffix": "None"
}
}
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
}
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "tangentialArc",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
} }
], ],
"commentStart": 0, "commentStart": 0,

View File

@ -8,5 +8,5 @@ sketch003 = startSketchOn('YZ')
sketch004 = startSketchOn('-XZ') sketch004 = startSketchOn('-XZ')
|> startProfileAt([0, 14.36], %) |> startProfileAt([0, 14.36], %)
|> line(end = [15.49, 0.05]) |> line(end = [15.49, 0.05])
|> tangentialArcTo([0, 0], %) |> tangentialArc(endAbsolute = [0, 0])
|> tangentialArcTo([-6.8, 8.17], %) |> tangentialArc(endAbsolute = [-6.8, 8.17])

View File

@ -12,5 +12,5 @@ sketch003 = startSketchOn(YZ)
sketch004 = startSketchOn(-XZ) sketch004 = startSketchOn(-XZ)
|> startProfileAt([0, 14.36], %) |> startProfileAt([0, 14.36], %)
|> line(end = [15.49, 0.05]) |> line(end = [15.49, 0.05])
|> tangentialArcTo([0, 0], %) |> tangentialArc(endAbsolute = [0, 0])
|> tangentialArcTo([-6.8, 8.17], %) |> tangentialArc(endAbsolute = [-6.8, 8.17])

View File

@ -3,48 +3,48 @@ flowchart LR
subgraph path2 [Path] subgraph path2 [Path]
2["Path<br>[422, 459, 0]"] 2["Path<br>[422, 459, 0]"]
3["Segment<br>[465, 505, 0]"] 3["Segment<br>[465, 505, 0]"]
4["Segment<br>[511, 569, 0]"] 4["Segment<br>[511, 562, 0]"]
5["Segment<br>[575, 611, 0]"] 5["Segment<br>[568, 604, 0]"]
6["Segment<br>[617, 676, 0]"] 6["Segment<br>[610, 662, 0]"]
7["Segment<br>[682, 747, 0]"] 7["Segment<br>[668, 733, 0]"]
8["Segment<br>[753, 812, 0]"] 8["Segment<br>[739, 791, 0]"]
9["Segment<br>[818, 876, 0]"] 9["Segment<br>[797, 855, 0]"]
10["Segment<br>[882, 940, 0]"] 10["Segment<br>[861, 912, 0]"]
11["Segment<br>[946, 988, 0]"] 11["Segment<br>[918, 960, 0]"]
12["Segment<br>[994, 1052, 0]"] 12["Segment<br>[966, 1017, 0]"]
13["Segment<br>[1058, 1094, 0]"] 13["Segment<br>[1023, 1059, 0]"]
14["Segment<br>[1100, 1159, 0]"] 14["Segment<br>[1065, 1117, 0]"]
15["Segment<br>[1165, 1234, 0]"] 15["Segment<br>[1123, 1192, 0]"]
16["Segment<br>[1240, 1300, 0]"] 16["Segment<br>[1198, 1251, 0]"]
17["Segment<br>[1306, 1345, 0]"] 17["Segment<br>[1257, 1296, 0]"]
18["Segment<br>[1351, 1410, 0]"] 18["Segment<br>[1302, 1354, 0]"]
19["Segment<br>[1416, 1458, 0]"] 19["Segment<br>[1360, 1402, 0]"]
20["Segment<br>[1464, 1523, 0]"] 20["Segment<br>[1408, 1460, 0]"]
21["Segment<br>[1529, 1590, 0]"] 21["Segment<br>[1466, 1527, 0]"]
22["Segment<br>[1596, 1656, 0]"] 22["Segment<br>[1533, 1586, 0]"]
23["Segment<br>[1662, 1792, 0]"] 23["Segment<br>[1592, 1722, 0]"]
24["Segment<br>[1798, 1858, 0]"] 24["Segment<br>[1728, 1781, 0]"]
25["Segment<br>[1864, 1903, 0]"] 25["Segment<br>[1787, 1826, 0]"]
26["Segment<br>[1909, 1968, 0]"] 26["Segment<br>[1832, 1884, 0]"]
27["Segment<br>[1974, 1982, 0]"] 27["Segment<br>[1890, 1898, 0]"]
28[Solid2d] 28[Solid2d]
end end
subgraph path30 [Path] subgraph path30 [Path]
30["Path<br>[2015, 2040, 0]"] 30["Path<br>[1931, 1956, 0]"]
31["Segment<br>[2046, 2065, 0]"] 31["Segment<br>[1962, 1981, 0]"]
32["Segment<br>[2071, 2129, 0]"] 32["Segment<br>[1987, 2038, 0]"]
33["Segment<br>[2135, 2177, 0]"] 33["Segment<br>[2044, 2086, 0]"]
34["Segment<br>[2183, 2242, 0]"] 34["Segment<br>[2092, 2144, 0]"]
35["Segment<br>[2248, 2268, 0]"] 35["Segment<br>[2150, 2170, 0]"]
36["Segment<br>[2274, 2334, 0]"] 36["Segment<br>[2176, 2229, 0]"]
37["Segment<br>[2340, 2385, 0]"] 37["Segment<br>[2235, 2280, 0]"]
38["Segment<br>[2391, 2450, 0]"] 38["Segment<br>[2286, 2338, 0]"]
39["Segment<br>[2456, 2464, 0]"] 39["Segment<br>[2344, 2352, 0]"]
40[Solid2d] 40[Solid2d]
end end
1["Plane<br>[399, 416, 0]"] 1["Plane<br>[399, 416, 0]"]
29["Plane<br>[1992, 2009, 0]"] 29["Plane<br>[1908, 1925, 0]"]
41["Sweep Extrusion<br>[2510, 2531, 0]"] 41["Sweep Extrusion<br>[2398, 2419, 0]"]
42[Wall] 42[Wall]
43[Wall] 43[Wall]
44[Wall] 44[Wall]

File diff suppressed because it is too large Load Diff

View File

@ -10,41 +10,41 @@ corner_radius = 5.0
brace_base = startSketchOn(XY) brace_base = startSketchOn(XY)
|> startProfileAt([corner_radius, 0], %) |> startProfileAt([corner_radius, 0], %)
|> line(end = [width - corner_radius, 0.0]) |> line(end = [width - corner_radius, 0.0])
|> tangentialArcToRelative([corner_radius, corner_radius], %) |> tangentialArc(end = [corner_radius, corner_radius])
|> yLine(length = 25.0 - corner_radius) |> yLine(length = 25.0 - corner_radius)
|> tangentialArcToRelative([-corner_radius, corner_radius], %) |> tangentialArc(end = [-corner_radius, corner_radius])
|> xLine(length = -(d_wrist_circumference[0] - (corner_radius * 2))) |> xLine(length = -(d_wrist_circumference[0] - (corner_radius * 2)))
|> tangentialArcToRelative([-corner_radius, corner_radius], %) |> tangentialArc(end = [-corner_radius, corner_radius])
|> yLine(length = length - 25.0 - 23.0 - (corner_radius * 2)) |> yLine(length = length - 25.0 - 23.0 - (corner_radius * 2))
|> tangentialArcToRelative([corner_radius, corner_radius], %) |> tangentialArc(end = [corner_radius, corner_radius])
|> xLine(length = 15.0 - (corner_radius * 2)) |> xLine(length = 15.0 - (corner_radius * 2))
|> tangentialArcToRelative([corner_radius, corner_radius], %) |> tangentialArc(end = [corner_radius, corner_radius])
|> yLine(length = 23.0 - corner_radius) |> yLine(length = 23.0 - corner_radius)
|> tangentialArcToRelative([-corner_radius, corner_radius], %) |> tangentialArc(end = [-corner_radius, corner_radius])
|> xLine(length = -(hand_thickness + 15.0 + 15.0 - (corner_radius * 2))) |> xLine(length = -(hand_thickness + 15.0 + 15.0 - (corner_radius * 2)))
|> tangentialArcToRelative([-corner_radius, -corner_radius], %) |> tangentialArc(end = [-corner_radius, -corner_radius])
|> yLine(length = -(23.0 - corner_radius)) |> yLine(length = -(23.0 - corner_radius))
|> tangentialArcToRelative([corner_radius, -corner_radius], %) |> tangentialArc(end = [corner_radius, -corner_radius])
|> xLine(length = 15.0 - (corner_radius * 2)) |> xLine(length = 15.0 - (corner_radius * 2))
|> tangentialArcToRelative([corner_radius, -corner_radius], %) |> tangentialArc(end = [corner_radius, -corner_radius])
|> yLine(length = -(length - 25.0 - 23.0 - (corner_radius * 2))) |> yLine(length = -(length - 25.0 - 23.0 - (corner_radius * 2)))
|> tangentialArcToRelative([-corner_radius, -corner_radius], %) |> tangentialArc(end = [-corner_radius, -corner_radius])
|> xLine(length = -(d_wrist_circumference[1] + d_wrist_circumference[2] + d_wrist_circumference[3] - hand_thickness - corner_radius)) |> xLine(length = -(d_wrist_circumference[1] + d_wrist_circumference[2] + d_wrist_circumference[3] - hand_thickness - corner_radius))
|> tangentialArcToRelative([-corner_radius, -corner_radius], %) |> tangentialArc(end = [-corner_radius, -corner_radius])
|> yLine(length = -(25.0 - corner_radius)) |> yLine(length = -(25.0 - corner_radius))
|> tangentialArcToRelative([corner_radius, -corner_radius], %) |> tangentialArc(end = [corner_radius, -corner_radius])
|> close(%) |> close(%)
inner = startSketchOn(XY) inner = startSketchOn(XY)
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> xLine(length = 1.0) |> xLine(length = 1.0)
|> tangentialArcToRelative([corner_radius, corner_radius], %) |> tangentialArc(end = [corner_radius, corner_radius])
|> yLine(length = 25.0 - (corner_radius * 2)) |> yLine(length = 25.0 - (corner_radius * 2))
|> tangentialArcToRelative([-corner_radius, corner_radius], %) |> tangentialArc(end = [-corner_radius, corner_radius])
|> xLine(length = -1.0) |> xLine(length = -1.0)
|> tangentialArcToRelative([-corner_radius, -corner_radius], %) |> tangentialArc(end = [-corner_radius, -corner_radius])
|> yLine(length = -(25.0 - (corner_radius * 2))) |> yLine(length = -(25.0 - (corner_radius * 2)))
|> tangentialArcToRelative([corner_radius, -corner_radius], %) |> tangentialArc(end = [corner_radius, -corner_radius])
|> close(%) |> close(%)
final = brace_base final = brace_base

View File

@ -14,41 +14,41 @@ corner_radius = 5.0
brace_base = startSketchOn(XY) brace_base = startSketchOn(XY)
|> startProfileAt([corner_radius, 0], %) |> startProfileAt([corner_radius, 0], %)
|> line(end = [width - corner_radius, 0.0]) |> line(end = [width - corner_radius, 0.0])
|> tangentialArcToRelative([corner_radius, corner_radius], %) |> tangentialArc(end = [corner_radius, corner_radius])
|> yLine(length = 25.0 - corner_radius) |> yLine(length = 25.0 - corner_radius)
|> tangentialArcToRelative([-corner_radius, corner_radius], %) |> tangentialArc(end = [-corner_radius, corner_radius])
|> xLine(length = -(d_wrist_circumference[0] - (corner_radius * 2))) |> xLine(length = -(d_wrist_circumference[0] - (corner_radius * 2)))
|> tangentialArcToRelative([-corner_radius, corner_radius], %) |> tangentialArc(end = [-corner_radius, corner_radius])
|> yLine(length = length - 25.0 - 23.0 - (corner_radius * 2)) |> yLine(length = length - 25.0 - 23.0 - (corner_radius * 2))
|> tangentialArcToRelative([corner_radius, corner_radius], %) |> tangentialArc(end = [corner_radius, corner_radius])
|> xLine(length = 15.0 - (corner_radius * 2)) |> xLine(length = 15.0 - (corner_radius * 2))
|> tangentialArcToRelative([corner_radius, corner_radius], %) |> tangentialArc(end = [corner_radius, corner_radius])
|> yLine(length = 23.0 - corner_radius) |> yLine(length = 23.0 - corner_radius)
|> tangentialArcToRelative([-corner_radius, corner_radius], %) |> tangentialArc(end = [-corner_radius, corner_radius])
|> xLine(length = -(hand_thickness + 15.0 + 15.0 - (corner_radius * 2))) |> xLine(length = -(hand_thickness + 15.0 + 15.0 - (corner_radius * 2)))
|> tangentialArcToRelative([-corner_radius, -corner_radius], %) |> tangentialArc(end = [-corner_radius, -corner_radius])
|> yLine(length = -(23.0 - corner_radius)) |> yLine(length = -(23.0 - corner_radius))
|> tangentialArcToRelative([corner_radius, -corner_radius], %) |> tangentialArc(end = [corner_radius, -corner_radius])
|> xLine(length = 15.0 - (corner_radius * 2)) |> xLine(length = 15.0 - (corner_radius * 2))
|> tangentialArcToRelative([corner_radius, -corner_radius], %) |> tangentialArc(end = [corner_radius, -corner_radius])
|> yLine(length = -(length - 25.0 - 23.0 - (corner_radius * 2))) |> yLine(length = -(length - 25.0 - 23.0 - (corner_radius * 2)))
|> tangentialArcToRelative([-corner_radius, -corner_radius], %) |> tangentialArc(end = [-corner_radius, -corner_radius])
|> xLine(length = -(d_wrist_circumference[1] + d_wrist_circumference[2] + d_wrist_circumference[3] - hand_thickness - corner_radius)) |> xLine(length = -(d_wrist_circumference[1] + d_wrist_circumference[2] + d_wrist_circumference[3] - hand_thickness - corner_radius))
|> tangentialArcToRelative([-corner_radius, -corner_radius], %) |> tangentialArc(end = [-corner_radius, -corner_radius])
|> yLine(length = -(25.0 - corner_radius)) |> yLine(length = -(25.0 - corner_radius))
|> tangentialArcToRelative([corner_radius, -corner_radius], %) |> tangentialArc(end = [corner_radius, -corner_radius])
|> close(%) |> close(%)
inner = startSketchOn(XY) inner = startSketchOn(XY)
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> xLine(length = 1.0) |> xLine(length = 1.0)
|> tangentialArcToRelative([corner_radius, corner_radius], %) |> tangentialArc(end = [corner_radius, corner_radius])
|> yLine(length = 25.0 - (corner_radius * 2)) |> yLine(length = 25.0 - (corner_radius * 2))
|> tangentialArcToRelative([-corner_radius, corner_radius], %) |> tangentialArc(end = [-corner_radius, corner_radius])
|> xLine(length = -1.0) |> xLine(length = -1.0)
|> tangentialArcToRelative([-corner_radius, -corner_radius], %) |> tangentialArc(end = [-corner_radius, -corner_radius])
|> yLine(length = -(25.0 - (corner_radius * 2))) |> yLine(length = -(25.0 - (corner_radius * 2)))
|> tangentialArcToRelative([corner_radius, -corner_radius], %) |> tangentialArc(end = [corner_radius, -corner_radius])
|> close(%) |> close(%)
final = brace_base final = brace_base

View File

@ -3,237 +3,237 @@ flowchart LR
subgraph path2 [Path] subgraph path2 [Path]
2["Path<br>[361, 394, 5]"] 2["Path<br>[361, 394, 5]"]
3["Segment<br>[402, 428, 5]"] 3["Segment<br>[402, 428, 5]"]
4["Segment<br>[436, 489, 5]"] 4["Segment<br>[436, 498, 5]"]
5["Segment<br>[497, 550, 5]"] 5["Segment<br>[506, 568, 5]"]
6["Segment<br>[558, 612, 5]"] 6["Segment<br>[576, 639, 5]"]
7["Segment<br>[620, 645, 5]"] 7["Segment<br>[647, 672, 5]"]
8["Segment<br>[653, 673, 5]"] 8["Segment<br>[680, 700, 5]"]
9["Segment<br>[681, 705, 5]"] 9["Segment<br>[708, 732, 5]"]
10["Segment<br>[713, 766, 5]"] 10["Segment<br>[740, 802, 5]"]
11["Segment<br>[774, 799, 5]"] 11["Segment<br>[810, 835, 5]"]
12["Segment<br>[807, 827, 5]"] 12["Segment<br>[843, 863, 5]"]
13["Segment<br>[835, 859, 5]"] 13["Segment<br>[871, 895, 5]"]
14["Segment<br>[867, 919, 5]"] 14["Segment<br>[903, 964, 5]"]
15["Segment<br>[927, 979, 5]"] 15["Segment<br>[972, 1033, 5]"]
16["Segment<br>[987, 1012, 5]"] 16["Segment<br>[1041, 1066, 5]"]
17["Segment<br>[1020, 1044, 5]"] 17["Segment<br>[1074, 1098, 5]"]
18["Segment<br>[1052, 1105, 5]"] 18["Segment<br>[1106, 1168, 5]"]
19["Segment<br>[1113, 1138, 5]"] 19["Segment<br>[1176, 1201, 5]"]
20["Segment<br>[1146, 1173, 5]"] 20["Segment<br>[1209, 1236, 5]"]
21["Segment<br>[1181, 1233, 5]"] 21["Segment<br>[1244, 1305, 5]"]
22["Segment<br>[1241, 1276, 5]"] 22["Segment<br>[1313, 1357, 5]"]
23["Segment<br>[1284, 1291, 5]"] 23["Segment<br>[1365, 1372, 5]"]
24[Solid2d] 24[Solid2d]
end end
subgraph path89 [Path] subgraph path89 [Path]
89["Path<br>[361, 394, 5]"] 89["Path<br>[361, 394, 5]"]
90["Segment<br>[402, 428, 5]"] 90["Segment<br>[402, 428, 5]"]
91["Segment<br>[436, 489, 5]"] 91["Segment<br>[436, 498, 5]"]
92["Segment<br>[497, 550, 5]"] 92["Segment<br>[506, 568, 5]"]
93["Segment<br>[558, 612, 5]"] 93["Segment<br>[576, 639, 5]"]
94["Segment<br>[620, 645, 5]"] 94["Segment<br>[647, 672, 5]"]
95["Segment<br>[653, 673, 5]"] 95["Segment<br>[680, 700, 5]"]
96["Segment<br>[681, 705, 5]"] 96["Segment<br>[708, 732, 5]"]
97["Segment<br>[713, 766, 5]"] 97["Segment<br>[740, 802, 5]"]
98["Segment<br>[774, 799, 5]"] 98["Segment<br>[810, 835, 5]"]
99["Segment<br>[807, 827, 5]"] 99["Segment<br>[843, 863, 5]"]
100["Segment<br>[835, 859, 5]"] 100["Segment<br>[871, 895, 5]"]
101["Segment<br>[867, 919, 5]"] 101["Segment<br>[903, 964, 5]"]
102["Segment<br>[927, 979, 5]"] 102["Segment<br>[972, 1033, 5]"]
103["Segment<br>[987, 1012, 5]"] 103["Segment<br>[1041, 1066, 5]"]
104["Segment<br>[1020, 1044, 5]"] 104["Segment<br>[1074, 1098, 5]"]
105["Segment<br>[1052, 1105, 5]"] 105["Segment<br>[1106, 1168, 5]"]
106["Segment<br>[1113, 1138, 5]"] 106["Segment<br>[1176, 1201, 5]"]
107["Segment<br>[1146, 1173, 5]"] 107["Segment<br>[1209, 1236, 5]"]
108["Segment<br>[1181, 1233, 5]"] 108["Segment<br>[1244, 1305, 5]"]
109["Segment<br>[1241, 1276, 5]"] 109["Segment<br>[1313, 1357, 5]"]
110["Segment<br>[1284, 1291, 5]"] 110["Segment<br>[1365, 1372, 5]"]
111[Solid2d] 111[Solid2d]
end end
subgraph path176 [Path] subgraph path176 [Path]
176["Path<br>[361, 394, 5]"] 176["Path<br>[361, 394, 5]"]
177["Segment<br>[402, 428, 5]"] 177["Segment<br>[402, 428, 5]"]
178["Segment<br>[436, 489, 5]"] 178["Segment<br>[436, 498, 5]"]
179["Segment<br>[497, 550, 5]"] 179["Segment<br>[506, 568, 5]"]
180["Segment<br>[558, 612, 5]"] 180["Segment<br>[576, 639, 5]"]
181["Segment<br>[620, 645, 5]"] 181["Segment<br>[647, 672, 5]"]
182["Segment<br>[653, 673, 5]"] 182["Segment<br>[680, 700, 5]"]
183["Segment<br>[681, 705, 5]"] 183["Segment<br>[708, 732, 5]"]
184["Segment<br>[713, 766, 5]"] 184["Segment<br>[740, 802, 5]"]
185["Segment<br>[774, 799, 5]"] 185["Segment<br>[810, 835, 5]"]
186["Segment<br>[807, 827, 5]"] 186["Segment<br>[843, 863, 5]"]
187["Segment<br>[835, 859, 5]"] 187["Segment<br>[871, 895, 5]"]
188["Segment<br>[867, 919, 5]"] 188["Segment<br>[903, 964, 5]"]
189["Segment<br>[927, 979, 5]"] 189["Segment<br>[972, 1033, 5]"]
190["Segment<br>[987, 1012, 5]"] 190["Segment<br>[1041, 1066, 5]"]
191["Segment<br>[1020, 1044, 5]"] 191["Segment<br>[1074, 1098, 5]"]
192["Segment<br>[1052, 1105, 5]"] 192["Segment<br>[1106, 1168, 5]"]
193["Segment<br>[1113, 1138, 5]"] 193["Segment<br>[1176, 1201, 5]"]
194["Segment<br>[1146, 1173, 5]"] 194["Segment<br>[1209, 1236, 5]"]
195["Segment<br>[1181, 1233, 5]"] 195["Segment<br>[1244, 1305, 5]"]
196["Segment<br>[1241, 1276, 5]"] 196["Segment<br>[1313, 1357, 5]"]
197["Segment<br>[1284, 1291, 5]"] 197["Segment<br>[1365, 1372, 5]"]
198[Solid2d] 198[Solid2d]
end end
subgraph path262 [Path] subgraph path262 [Path]
262["Path<br>[361, 394, 5]"] 262["Path<br>[361, 394, 5]"]
263["Segment<br>[402, 428, 5]"] 263["Segment<br>[402, 428, 5]"]
264["Segment<br>[436, 489, 5]"] 264["Segment<br>[436, 498, 5]"]
265["Segment<br>[497, 550, 5]"] 265["Segment<br>[506, 568, 5]"]
266["Segment<br>[558, 612, 5]"] 266["Segment<br>[576, 639, 5]"]
267["Segment<br>[620, 645, 5]"] 267["Segment<br>[647, 672, 5]"]
268["Segment<br>[653, 673, 5]"] 268["Segment<br>[680, 700, 5]"]
269["Segment<br>[681, 705, 5]"] 269["Segment<br>[708, 732, 5]"]
270["Segment<br>[713, 766, 5]"] 270["Segment<br>[740, 802, 5]"]
271["Segment<br>[774, 799, 5]"] 271["Segment<br>[810, 835, 5]"]
272["Segment<br>[807, 827, 5]"] 272["Segment<br>[843, 863, 5]"]
273["Segment<br>[835, 859, 5]"] 273["Segment<br>[871, 895, 5]"]
274["Segment<br>[867, 919, 5]"] 274["Segment<br>[903, 964, 5]"]
275["Segment<br>[927, 979, 5]"] 275["Segment<br>[972, 1033, 5]"]
276["Segment<br>[987, 1012, 5]"] 276["Segment<br>[1041, 1066, 5]"]
277["Segment<br>[1020, 1044, 5]"] 277["Segment<br>[1074, 1098, 5]"]
278["Segment<br>[1052, 1105, 5]"] 278["Segment<br>[1106, 1168, 5]"]
279["Segment<br>[1113, 1138, 5]"] 279["Segment<br>[1176, 1201, 5]"]
280["Segment<br>[1146, 1173, 5]"] 280["Segment<br>[1209, 1236, 5]"]
281["Segment<br>[1181, 1233, 5]"] 281["Segment<br>[1244, 1305, 5]"]
282["Segment<br>[1241, 1276, 5]"] 282["Segment<br>[1313, 1357, 5]"]
283["Segment<br>[1284, 1291, 5]"] 283["Segment<br>[1365, 1372, 5]"]
284[Solid2d] 284[Solid2d]
end end
subgraph path349 [Path] subgraph path349 [Path]
349["Path<br>[361, 394, 5]"] 349["Path<br>[361, 394, 5]"]
350["Segment<br>[402, 428, 5]"] 350["Segment<br>[402, 428, 5]"]
351["Segment<br>[436, 489, 5]"] 351["Segment<br>[436, 498, 5]"]
352["Segment<br>[497, 550, 5]"] 352["Segment<br>[506, 568, 5]"]
353["Segment<br>[558, 612, 5]"] 353["Segment<br>[576, 639, 5]"]
354["Segment<br>[620, 645, 5]"] 354["Segment<br>[647, 672, 5]"]
355["Segment<br>[653, 673, 5]"] 355["Segment<br>[680, 700, 5]"]
356["Segment<br>[681, 705, 5]"] 356["Segment<br>[708, 732, 5]"]
357["Segment<br>[713, 766, 5]"] 357["Segment<br>[740, 802, 5]"]
358["Segment<br>[774, 799, 5]"] 358["Segment<br>[810, 835, 5]"]
359["Segment<br>[807, 827, 5]"] 359["Segment<br>[843, 863, 5]"]
360["Segment<br>[835, 859, 5]"] 360["Segment<br>[871, 895, 5]"]
361["Segment<br>[867, 919, 5]"] 361["Segment<br>[903, 964, 5]"]
362["Segment<br>[927, 979, 5]"] 362["Segment<br>[972, 1033, 5]"]
363["Segment<br>[987, 1012, 5]"] 363["Segment<br>[1041, 1066, 5]"]
364["Segment<br>[1020, 1044, 5]"] 364["Segment<br>[1074, 1098, 5]"]
365["Segment<br>[1052, 1105, 5]"] 365["Segment<br>[1106, 1168, 5]"]
366["Segment<br>[1113, 1138, 5]"] 366["Segment<br>[1176, 1201, 5]"]
367["Segment<br>[1146, 1173, 5]"] 367["Segment<br>[1209, 1236, 5]"]
368["Segment<br>[1181, 1233, 5]"] 368["Segment<br>[1244, 1305, 5]"]
369["Segment<br>[1241, 1276, 5]"] 369["Segment<br>[1313, 1357, 5]"]
370["Segment<br>[1284, 1291, 5]"] 370["Segment<br>[1365, 1372, 5]"]
371[Solid2d] 371[Solid2d]
end end
subgraph path435 [Path] subgraph path435 [Path]
435["Path<br>[361, 394, 5]"] 435["Path<br>[361, 394, 5]"]
436["Segment<br>[402, 428, 5]"] 436["Segment<br>[402, 428, 5]"]
437["Segment<br>[436, 489, 5]"] 437["Segment<br>[436, 498, 5]"]
438["Segment<br>[497, 550, 5]"] 438["Segment<br>[506, 568, 5]"]
439["Segment<br>[558, 612, 5]"] 439["Segment<br>[576, 639, 5]"]
440["Segment<br>[620, 645, 5]"] 440["Segment<br>[647, 672, 5]"]
441["Segment<br>[653, 673, 5]"] 441["Segment<br>[680, 700, 5]"]
442["Segment<br>[681, 705, 5]"] 442["Segment<br>[708, 732, 5]"]
443["Segment<br>[713, 766, 5]"] 443["Segment<br>[740, 802, 5]"]
444["Segment<br>[774, 799, 5]"] 444["Segment<br>[810, 835, 5]"]
445["Segment<br>[807, 827, 5]"] 445["Segment<br>[843, 863, 5]"]
446["Segment<br>[835, 859, 5]"] 446["Segment<br>[871, 895, 5]"]
447["Segment<br>[867, 919, 5]"] 447["Segment<br>[903, 964, 5]"]
448["Segment<br>[927, 979, 5]"] 448["Segment<br>[972, 1033, 5]"]
449["Segment<br>[987, 1012, 5]"] 449["Segment<br>[1041, 1066, 5]"]
450["Segment<br>[1020, 1044, 5]"] 450["Segment<br>[1074, 1098, 5]"]
451["Segment<br>[1052, 1105, 5]"] 451["Segment<br>[1106, 1168, 5]"]
452["Segment<br>[1113, 1138, 5]"] 452["Segment<br>[1176, 1201, 5]"]
453["Segment<br>[1146, 1173, 5]"] 453["Segment<br>[1209, 1236, 5]"]
454["Segment<br>[1181, 1233, 5]"] 454["Segment<br>[1244, 1305, 5]"]
455["Segment<br>[1241, 1276, 5]"] 455["Segment<br>[1313, 1357, 5]"]
456["Segment<br>[1284, 1291, 5]"] 456["Segment<br>[1365, 1372, 5]"]
457[Solid2d] 457[Solid2d]
end end
subgraph path522 [Path] subgraph path522 [Path]
522["Path<br>[1685, 1709, 5]"] 522["Path<br>[1766, 1790, 5]"]
end end
subgraph path523 [Path] subgraph path523 [Path]
523["Path<br>[1717, 1847, 5]"] 523["Path<br>[1798, 1928, 5]"]
524["Segment<br>[1717, 1847, 5]"] 524["Segment<br>[1798, 1928, 5]"]
525["Segment<br>[1717, 1847, 5]"] 525["Segment<br>[1798, 1928, 5]"]
526["Segment<br>[1717, 1847, 5]"] 526["Segment<br>[1798, 1928, 5]"]
527["Segment<br>[1717, 1847, 5]"] 527["Segment<br>[1798, 1928, 5]"]
528["Segment<br>[1717, 1847, 5]"] 528["Segment<br>[1798, 1928, 5]"]
529["Segment<br>[1717, 1847, 5]"] 529["Segment<br>[1798, 1928, 5]"]
530["Segment<br>[1717, 1847, 5]"] 530["Segment<br>[1798, 1928, 5]"]
531[Solid2d] 531[Solid2d]
end end
subgraph path553 [Path] subgraph path553 [Path]
553["Path<br>[1685, 1709, 5]"] 553["Path<br>[1766, 1790, 5]"]
end end
subgraph path554 [Path] subgraph path554 [Path]
554["Path<br>[1717, 1847, 5]"] 554["Path<br>[1798, 1928, 5]"]
555["Segment<br>[1717, 1847, 5]"] 555["Segment<br>[1798, 1928, 5]"]
556["Segment<br>[1717, 1847, 5]"] 556["Segment<br>[1798, 1928, 5]"]
557["Segment<br>[1717, 1847, 5]"] 557["Segment<br>[1798, 1928, 5]"]
558["Segment<br>[1717, 1847, 5]"] 558["Segment<br>[1798, 1928, 5]"]
559["Segment<br>[1717, 1847, 5]"] 559["Segment<br>[1798, 1928, 5]"]
560["Segment<br>[1717, 1847, 5]"] 560["Segment<br>[1798, 1928, 5]"]
561["Segment<br>[1717, 1847, 5]"] 561["Segment<br>[1798, 1928, 5]"]
562[Solid2d] 562[Solid2d]
end end
subgraph path585 [Path] subgraph path585 [Path]
585["Path<br>[2123, 2150, 5]"] 585["Path<br>[2204, 2231, 5]"]
586["Segment<br>[2158, 2180, 5]"] 586["Segment<br>[2239, 2261, 5]"]
587["Segment<br>[2188, 2210, 5]"] 587["Segment<br>[2269, 2291, 5]"]
588["Segment<br>[2218, 2240, 5]"] 588["Segment<br>[2299, 2321, 5]"]
589["Segment<br>[2248, 2271, 5]"] 589["Segment<br>[2329, 2352, 5]"]
590["Segment<br>[2279, 2302, 5]"] 590["Segment<br>[2360, 2383, 5]"]
591["Segment<br>[2310, 2345, 5]"] 591["Segment<br>[2391, 2426, 5]"]
592["Segment<br>[2353, 2360, 5]"] 592["Segment<br>[2434, 2441, 5]"]
593[Solid2d] 593[Solid2d]
end end
subgraph path618 [Path] subgraph path618 [Path]
618["Path<br>[2632, 2661, 5]"] 618["Path<br>[2713, 2742, 5]"]
619["Segment<br>[2669, 2704, 5]"] 619["Segment<br>[2750, 2785, 5]"]
620["Segment<br>[2712, 2737, 5]"] 620["Segment<br>[2793, 2818, 5]"]
621["Segment<br>[2745, 2781, 5]"] 621["Segment<br>[2826, 2862, 5]"]
622["Segment<br>[2789, 2813, 5]"] 622["Segment<br>[2870, 2894, 5]"]
623["Segment<br>[2821, 2855, 5]"] 623["Segment<br>[2902, 2936, 5]"]
624["Segment<br>[2863, 2898, 5]"] 624["Segment<br>[2944, 2979, 5]"]
625["Segment<br>[2906, 2913, 5]"] 625["Segment<br>[2987, 2994, 5]"]
626[Solid2d] 626[Solid2d]
end end
subgraph path650 [Path] subgraph path650 [Path]
650["Path<br>[3188, 3215, 5]"] 650["Path<br>[3269, 3296, 5]"]
651["Segment<br>[3223, 3242, 5]"] 651["Segment<br>[3304, 3323, 5]"]
652["Segment<br>[3250, 3340, 5]"] 652["Segment<br>[3331, 3421, 5]"]
end end
subgraph path654 [Path] subgraph path654 [Path]
654["Path<br>[3440, 3473, 5]"] 654["Path<br>[3521, 3554, 5]"]
655["Segment<br>[3481, 3500, 5]"] 655["Segment<br>[3562, 3581, 5]"]
656["Segment<br>[3508, 3530, 5]"] 656["Segment<br>[3589, 3611, 5]"]
657["Segment<br>[3538, 3561, 5]"] 657["Segment<br>[3619, 3642, 5]"]
658["Segment<br>[3569, 3589, 5]"] 658["Segment<br>[3650, 3670, 5]"]
659["Segment<br>[3597, 3621, 5]"] 659["Segment<br>[3678, 3702, 5]"]
660["Segment<br>[3629, 3652, 5]"] 660["Segment<br>[3710, 3733, 5]"]
661["Segment<br>[3660, 3667, 5]"] 661["Segment<br>[3741, 3748, 5]"]
662[Solid2d] 662[Solid2d]
end end
subgraph path688 [Path] subgraph path688 [Path]
688["Path<br>[3188, 3215, 5]"] 688["Path<br>[3269, 3296, 5]"]
689["Segment<br>[3223, 3242, 5]"] 689["Segment<br>[3304, 3323, 5]"]
690["Segment<br>[3250, 3340, 5]"] 690["Segment<br>[3331, 3421, 5]"]
end end
subgraph path692 [Path] subgraph path692 [Path]
692["Path<br>[3440, 3473, 5]"] 692["Path<br>[3521, 3554, 5]"]
693["Segment<br>[3481, 3500, 5]"] 693["Segment<br>[3562, 3581, 5]"]
694["Segment<br>[3508, 3530, 5]"] 694["Segment<br>[3589, 3611, 5]"]
695["Segment<br>[3538, 3561, 5]"] 695["Segment<br>[3619, 3642, 5]"]
696["Segment<br>[3569, 3589, 5]"] 696["Segment<br>[3650, 3670, 5]"]
697["Segment<br>[3597, 3621, 5]"] 697["Segment<br>[3678, 3702, 5]"]
698["Segment<br>[3629, 3652, 5]"] 698["Segment<br>[3710, 3733, 5]"]
699["Segment<br>[3660, 3667, 5]"] 699["Segment<br>[3741, 3748, 5]"]
700[Solid2d] 700[Solid2d]
end end
1["Plane<br>[333, 353, 5]"] 1["Plane<br>[333, 353, 5]"]
25["Sweep Extrusion<br>[1379, 1417, 5]"] 25["Sweep Extrusion<br>[1460, 1498, 5]"]
26[Wall] 26[Wall]
27[Wall] 27[Wall]
28[Wall] 28[Wall]
@ -297,7 +297,7 @@ flowchart LR
86["SweepEdge Opposite"] 86["SweepEdge Opposite"]
87["SweepEdge Adjacent"] 87["SweepEdge Adjacent"]
88["Plane<br>[333, 353, 5]"] 88["Plane<br>[333, 353, 5]"]
112["Sweep Extrusion<br>[1455, 1494, 5]"] 112["Sweep Extrusion<br>[1536, 1575, 5]"]
113[Wall] 113[Wall]
114[Wall] 114[Wall]
115[Wall] 115[Wall]
@ -361,7 +361,7 @@ flowchart LR
173["SweepEdge Opposite"] 173["SweepEdge Opposite"]
174["SweepEdge Adjacent"] 174["SweepEdge Adjacent"]
175["Plane<br>[823, 865, 0]"] 175["Plane<br>[823, 865, 0]"]
199["Sweep Extrusion<br>[1379, 1417, 5]"] 199["Sweep Extrusion<br>[1460, 1498, 5]"]
200[Wall] 200[Wall]
201[Wall] 201[Wall]
202[Wall] 202[Wall]
@ -424,7 +424,7 @@ flowchart LR
259["SweepEdge Adjacent"] 259["SweepEdge Adjacent"]
260["SweepEdge Opposite"] 260["SweepEdge Opposite"]
261["SweepEdge Adjacent"] 261["SweepEdge Adjacent"]
285["Sweep Extrusion<br>[1455, 1494, 5]"] 285["Sweep Extrusion<br>[1536, 1575, 5]"]
286[Wall] 286[Wall]
287[Wall] 287[Wall]
288[Wall] 288[Wall]
@ -488,7 +488,7 @@ flowchart LR
346["SweepEdge Opposite"] 346["SweepEdge Opposite"]
347["SweepEdge Adjacent"] 347["SweepEdge Adjacent"]
348["Plane<br>[875, 916, 0]"] 348["Plane<br>[875, 916, 0]"]
372["Sweep Extrusion<br>[1379, 1417, 5]"] 372["Sweep Extrusion<br>[1460, 1498, 5]"]
373[Wall] 373[Wall]
374[Wall] 374[Wall]
375[Wall] 375[Wall]
@ -551,7 +551,7 @@ flowchart LR
432["SweepEdge Adjacent"] 432["SweepEdge Adjacent"]
433["SweepEdge Opposite"] 433["SweepEdge Opposite"]
434["SweepEdge Adjacent"] 434["SweepEdge Adjacent"]
458["Sweep Extrusion<br>[1455, 1494, 5]"] 458["Sweep Extrusion<br>[1536, 1575, 5]"]
459[Wall] 459[Wall]
460[Wall] 460[Wall]
461[Wall] 461[Wall]
@ -615,7 +615,7 @@ flowchart LR
519["SweepEdge Opposite"] 519["SweepEdge Opposite"]
520["SweepEdge Adjacent"] 520["SweepEdge Adjacent"]
521["Plane<br>[975, 1017, 0]"] 521["Plane<br>[975, 1017, 0]"]
532["Sweep Extrusion<br>[1949, 1973, 5]"] 532["Sweep Extrusion<br>[2030, 2054, 5]"]
533[Wall] 533[Wall]
534[Wall] 534[Wall]
535[Wall] 535[Wall]
@ -636,7 +636,7 @@ flowchart LR
550["SweepEdge Adjacent"] 550["SweepEdge Adjacent"]
551["SweepEdge Opposite"] 551["SweepEdge Opposite"]
552["SweepEdge Adjacent"] 552["SweepEdge Adjacent"]
563["Sweep Extrusion<br>[2015, 2039, 5]"] 563["Sweep Extrusion<br>[2096, 2120, 5]"]
564[Wall] 564[Wall]
565[Wall] 565[Wall]
566[Wall] 566[Wall]
@ -658,7 +658,7 @@ flowchart LR
582["SweepEdge Opposite"] 582["SweepEdge Opposite"]
583["SweepEdge Adjacent"] 583["SweepEdge Adjacent"]
584["Plane<br>[1068, 1135, 0]"] 584["Plane<br>[1068, 1135, 0]"]
594["Sweep Extrusion<br>[2523, 2547, 5]"] 594["Sweep Extrusion<br>[2604, 2628, 5]"]
595[Wall] 595[Wall]
596[Wall] 596[Wall]
597[Wall] 597[Wall]
@ -679,10 +679,10 @@ flowchart LR
612["SweepEdge Adjacent"] 612["SweepEdge Adjacent"]
613["SweepEdge Opposite"] 613["SweepEdge Opposite"]
614["SweepEdge Adjacent"] 614["SweepEdge Adjacent"]
615["Sweep Extrusion<br>[2523, 2547, 5]"] 615["Sweep Extrusion<br>[2604, 2628, 5]"]
616["Sweep Extrusion<br>[2523, 2547, 5]"] 616["Sweep Extrusion<br>[2604, 2628, 5]"]
617["Plane<br>[1205, 1272, 0]"] 617["Plane<br>[1205, 1272, 0]"]
627["Sweep Extrusion<br>[3083, 3107, 5]"] 627["Sweep Extrusion<br>[3164, 3188, 5]"]
628[Wall] 628[Wall]
629[Wall] 629[Wall]
630[Wall] 630[Wall]
@ -703,10 +703,10 @@ flowchart LR
645["SweepEdge Adjacent"] 645["SweepEdge Adjacent"]
646["SweepEdge Opposite"] 646["SweepEdge Opposite"]
647["SweepEdge Adjacent"] 647["SweepEdge Adjacent"]
648["Sweep Extrusion<br>[3083, 3107, 5]"] 648["Sweep Extrusion<br>[3164, 3188, 5]"]
649["Plane<br>[3748, 3783, 5]"] 649["Plane<br>[3829, 3864, 5]"]
653["Plane<br>[3814, 3843, 5]"] 653["Plane<br>[3895, 3924, 5]"]
663["Sweep Sweep<br>[3855, 3882, 5]"] 663["Sweep Sweep<br>[3936, 3963, 5]"]
664[Wall] 664[Wall]
665[Wall] 665[Wall]
666[Wall] 666[Wall]
@ -730,9 +730,9 @@ flowchart LR
684["SweepEdge Adjacent"] 684["SweepEdge Adjacent"]
685["SweepEdge Opposite"] 685["SweepEdge Opposite"]
686["SweepEdge Adjacent"] 686["SweepEdge Adjacent"]
687["Plane<br>[3748, 3783, 5]"] 687["Plane<br>[3829, 3864, 5]"]
691["Plane<br>[3814, 3843, 5]"] 691["Plane<br>[3895, 3924, 5]"]
701["Sweep Sweep<br>[3855, 3882, 5]"] 701["Sweep Sweep<br>[3936, 3963, 5]"]
702[Wall] 702[Wall]
703[Wall] 703[Wall]
704[Wall] 704[Wall]
@ -760,14 +760,14 @@ flowchart LR
726["StartSketchOnPlane<br>[333, 353, 5]"] 726["StartSketchOnPlane<br>[333, 353, 5]"]
727["StartSketchOnPlane<br>[333, 353, 5]"] 727["StartSketchOnPlane<br>[333, 353, 5]"]
728["StartSketchOnPlane<br>[333, 353, 5]"] 728["StartSketchOnPlane<br>[333, 353, 5]"]
729["StartSketchOnPlane<br>[1657, 1677, 5]"] 729["StartSketchOnPlane<br>[1738, 1758, 5]"]
730["StartSketchOnPlane<br>[1657, 1677, 5]"] 730["StartSketchOnPlane<br>[1738, 1758, 5]"]
731["StartSketchOnPlane<br>[2095, 2115, 5]"] 731["StartSketchOnPlane<br>[2176, 2196, 5]"]
732["StartSketchOnPlane<br>[2604, 2624, 5]"] 732["StartSketchOnPlane<br>[2685, 2705, 5]"]
733["StartSketchOnPlane<br>[3160, 3180, 5]"] 733["StartSketchOnPlane<br>[3241, 3261, 5]"]
734["StartSketchOnPlane<br>[3412, 3432, 5]"] 734["StartSketchOnPlane<br>[3493, 3513, 5]"]
735["StartSketchOnPlane<br>[3160, 3180, 5]"] 735["StartSketchOnPlane<br>[3241, 3261, 5]"]
736["StartSketchOnPlane<br>[3412, 3432, 5]"] 736["StartSketchOnPlane<br>[3493, 3513, 5]"]
1 --- 2 1 --- 2
2 --- 3 2 --- 3
2 --- 4 2 --- 4

View File

@ -9,8 +9,8 @@ description: Operations executed bench.kcl
"type": "FunctionCall", "type": "FunctionCall",
"name": "divider", "name": "divider",
"functionSourceRange": [ "functionSourceRange": [
1331, 1412,
1606, 1687,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -25,7 +25,7 @@ description: Operations executed bench.kcl
"name": "dividerSketch", "name": "dividerSketch",
"functionSourceRange": [ "functionSourceRange": [
309, 309,
1312, 1393,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -85,7 +85,7 @@ description: Operations executed bench.kcl
"name": "dividerSketch", "name": "dividerSketch",
"functionSourceRange": [ "functionSourceRange": [
309, 309,
1312, 1393,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -260,8 +260,8 @@ description: Operations executed bench.kcl
"type": "FunctionCall", "type": "FunctionCall",
"name": "divider", "name": "divider",
"functionSourceRange": [ "functionSourceRange": [
1331, 1412,
1606, 1687,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -276,7 +276,7 @@ description: Operations executed bench.kcl
"name": "dividerSketch", "name": "dividerSketch",
"functionSourceRange": [ "functionSourceRange": [
309, 309,
1312, 1393,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -336,7 +336,7 @@ description: Operations executed bench.kcl
"name": "dividerSketch", "name": "dividerSketch",
"functionSourceRange": [ "functionSourceRange": [
309, 309,
1312, 1393,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -511,8 +511,8 @@ description: Operations executed bench.kcl
"type": "FunctionCall", "type": "FunctionCall",
"name": "divider", "name": "divider",
"functionSourceRange": [ "functionSourceRange": [
1331, 1412,
1606, 1687,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -527,7 +527,7 @@ description: Operations executed bench.kcl
"name": "dividerSketch", "name": "dividerSketch",
"functionSourceRange": [ "functionSourceRange": [
309, 309,
1312, 1393,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -587,7 +587,7 @@ description: Operations executed bench.kcl
"name": "dividerSketch", "name": "dividerSketch",
"functionSourceRange": [ "functionSourceRange": [
309, 309,
1312, 1393,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -762,8 +762,8 @@ description: Operations executed bench.kcl
"type": "FunctionCall", "type": "FunctionCall",
"name": "connector", "name": "connector",
"functionSourceRange": [ "functionSourceRange": [
1889, 1970,
2052, 2133,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -777,8 +777,8 @@ description: Operations executed bench.kcl
"type": "FunctionCall", "type": "FunctionCall",
"name": "connectorSketch", "name": "connectorSketch",
"functionSourceRange": [ "functionSourceRange": [
1626, 1707,
1868, 1949,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -842,8 +842,8 @@ description: Operations executed bench.kcl
"type": "FunctionCall", "type": "FunctionCall",
"name": "connectorSketch", "name": "connectorSketch",
"functionSourceRange": [ "functionSourceRange": [
1626, 1707,
1868, 1949,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -935,8 +935,8 @@ description: Operations executed bench.kcl
"type": "FunctionCall", "type": "FunctionCall",
"name": "seatSlats", "name": "seatSlats",
"functionSourceRange": [ "functionSourceRange": [
2474, 2555,
2560, 2641,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -950,8 +950,8 @@ description: Operations executed bench.kcl
"type": "FunctionCall", "type": "FunctionCall",
"name": "seatSlatSketch", "name": "seatSlatSketch",
"functionSourceRange": [ "functionSourceRange": [
2071, 2152,
2453, 2534,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -1060,8 +1060,8 @@ description: Operations executed bench.kcl
"type": "FunctionCall", "type": "FunctionCall",
"name": "backSlats", "name": "backSlats",
"functionSourceRange": [ "functionSourceRange": [
3029, 3110,
3120, 3201,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -1075,8 +1075,8 @@ description: Operations executed bench.kcl
"type": "FunctionCall", "type": "FunctionCall",
"name": "backSlatsSketch", "name": "backSlatsSketch",
"functionSourceRange": [ "functionSourceRange": [
2580, 2661,
3008, 3089,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -1154,8 +1154,8 @@ description: Operations executed bench.kcl
"type": "FunctionCall", "type": "FunctionCall",
"name": "armRest", "name": "armRest",
"functionSourceRange": [ "functionSourceRange": [
3707, 3788,
3895, 3976,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -1194,8 +1194,8 @@ description: Operations executed bench.kcl
"type": "FunctionCall", "type": "FunctionCall",
"name": "armRestPath", "name": "armRestPath",
"functionSourceRange": [ "functionSourceRange": [
3136, 3217,
3361, 3442,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -1257,8 +1257,8 @@ description: Operations executed bench.kcl
"type": "FunctionCall", "type": "FunctionCall",
"name": "armRestProfile", "name": "armRestProfile",
"functionSourceRange": [ "functionSourceRange": [
3380, 3461,
3688, 3769,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -1318,8 +1318,8 @@ description: Operations executed bench.kcl
"type": "FunctionCall", "type": "FunctionCall",
"name": "armRest", "name": "armRest",
"functionSourceRange": [ "functionSourceRange": [
3707, 3788,
3895, 3976,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -1358,8 +1358,8 @@ description: Operations executed bench.kcl
"type": "FunctionCall", "type": "FunctionCall",
"name": "armRestPath", "name": "armRestPath",
"functionSourceRange": [ "functionSourceRange": [
3136, 3217,
3361, 3442,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -1421,8 +1421,8 @@ description: Operations executed bench.kcl
"type": "FunctionCall", "type": "FunctionCall",
"name": "armRestProfile", "name": "armRestProfile",
"functionSourceRange": [ "functionSourceRange": [
3380, 3461,
3688, 3769,
5 5
], ],
"unlabeledArg": null, "unlabeledArg": null,

View File

@ -152,51 +152,51 @@ flowchart LR
335["Segment<br>[793, 840, 8]"] 335["Segment<br>[793, 840, 8]"]
336["Segment<br>[848, 884, 8]"] 336["Segment<br>[848, 884, 8]"]
337["Segment<br>[892, 922, 8]"] 337["Segment<br>[892, 922, 8]"]
338["Segment<br>[930, 983, 8]"] 338["Segment<br>[930, 975, 8]"]
339["Segment<br>[991, 1031, 8]"] 339["Segment<br>[983, 1023, 8]"]
340["Segment<br>[1039, 1074, 8]"] 340["Segment<br>[1031, 1066, 8]"]
341["Segment<br>[1082, 1120, 8]"] 341["Segment<br>[1074, 1112, 8]"]
342["Segment<br>[1128, 1150, 8]"] 342["Segment<br>[1120, 1142, 8]"]
343["Segment<br>[1158, 1165, 8]"] 343["Segment<br>[1150, 1157, 8]"]
344[Solid2d] 344[Solid2d]
end end
subgraph path365 [Path] subgraph path365 [Path]
365["Path<br>[511, 592, 7]"] 365["Path<br>[511, 592, 7]"]
366["Segment<br>[598, 699, 7]"] 366["Segment<br>[598, 699, 7]"]
367["Segment<br>[705, 790, 7]"] 367["Segment<br>[705, 763, 7]"]
368["Segment<br>[796, 880, 7]"] 368["Segment<br>[769, 853, 7]"]
369["Segment<br>[886, 972, 7]"] 369["Segment<br>[859, 918, 7]"]
370["Segment<br>[978, 1063, 7]"] 370["Segment<br>[924, 1009, 7]"]
371["Segment<br>[1069, 1155, 7]"] 371["Segment<br>[1015, 1074, 7]"]
372["Segment<br>[1161, 1284, 7]"] 372["Segment<br>[1080, 1203, 7]"]
373["Segment<br>[1290, 1376, 7]"] 373["Segment<br>[1209, 1268, 7]"]
374["Segment<br>[1382, 1517, 7]"] 374["Segment<br>[1274, 1409, 7]"]
375["Segment<br>[1523, 1609, 7]"] 375["Segment<br>[1415, 1474, 7]"]
376["Segment<br>[1615, 1739, 7]"] 376["Segment<br>[1480, 1604, 7]"]
377["Segment<br>[1745, 1831, 7]"] 377["Segment<br>[1610, 1669, 7]"]
378["Segment<br>[1837, 1922, 7]"] 378["Segment<br>[1675, 1760, 7]"]
379["Segment<br>[1928, 2014, 7]"] 379["Segment<br>[1766, 1825, 7]"]
380["Segment<br>[2020, 2105, 7]"] 380["Segment<br>[1831, 1916, 7]"]
381["Segment<br>[2111, 2196, 7]"] 381["Segment<br>[1922, 1980, 7]"]
382["Segment<br>[2202, 2209, 7]"] 382["Segment<br>[1986, 1993, 7]"]
383[Solid2d] 383[Solid2d]
end end
subgraph path439 [Path] subgraph path439 [Path]
439["Path<br>[487, 544, 9]"] 439["Path<br>[487, 544, 9]"]
440["Segment<br>[550, 684, 9]"] 440["Segment<br>[550, 684, 9]"]
441["Segment<br>[690, 745, 9]"] 441["Segment<br>[690, 737, 9]"]
442["Segment<br>[751, 848, 9]"] 442["Segment<br>[743, 840, 9]"]
443["Segment<br>[854, 886, 9]"] 443["Segment<br>[846, 878, 9]"]
444["Segment<br>[892, 924, 9]"] 444["Segment<br>[884, 916, 9]"]
445["Segment<br>[930, 961, 9]"] 445["Segment<br>[922, 953, 9]"]
446["Segment<br>[967, 1082, 9]"] 446["Segment<br>[959, 1074, 9]"]
447["Segment<br>[1088, 1120, 9]"] 447["Segment<br>[1080, 1112, 9]"]
448["Segment<br>[1126, 1158, 9]"] 448["Segment<br>[1118, 1150, 9]"]
449["Segment<br>[1164, 1195, 9]"] 449["Segment<br>[1156, 1187, 9]"]
450["Segment<br>[1201, 1294, 9]"] 450["Segment<br>[1193, 1286, 9]"]
451["Segment<br>[1300, 1355, 9]"] 451["Segment<br>[1292, 1339, 9]"]
452["Segment<br>[1361, 1434, 9]"] 452["Segment<br>[1345, 1418, 9]"]
453["Segment<br>[1440, 1447, 9]"] 453["Segment<br>[1424, 1431, 9]"]
454[Solid2d] 454[Solid2d]
end end
1["Plane<br>[548, 565, 6]"] 1["Plane<br>[548, 565, 6]"]
@ -425,7 +425,7 @@ flowchart LR
331["SweepEdge Adjacent"] 331["SweepEdge Adjacent"]
332["SweepEdge Adjacent"] 332["SweepEdge Adjacent"]
333["Plane<br>[711, 737, 8]"] 333["Plane<br>[711, 737, 8]"]
345["Sweep Revolve<br>[1173, 1190, 8]"] 345["Sweep Revolve<br>[1165, 1182, 8]"]
346[Wall] 346[Wall]
347[Wall] 347[Wall]
348[Wall] 348[Wall]
@ -445,7 +445,7 @@ flowchart LR
362["SweepEdge Adjacent"] 362["SweepEdge Adjacent"]
363["SweepEdge Adjacent"] 363["SweepEdge Adjacent"]
364["Plane<br>[488, 505, 7]"] 364["Plane<br>[488, 505, 7]"]
384["Sweep Revolve<br>[2247, 2297, 7]"] 384["Sweep Revolve<br>[2031, 2081, 7]"]
385[Wall] 385[Wall]
386[Wall] 386[Wall]
387[Wall] 387[Wall]
@ -500,7 +500,7 @@ flowchart LR
436["SweepEdge Opposite"] 436["SweepEdge Opposite"]
437["SweepEdge Adjacent"] 437["SweepEdge Adjacent"]
438["Plane<br>[464, 481, 9]"] 438["Plane<br>[464, 481, 9]"]
455["Sweep Revolve<br>[1490, 1519, 9]"] 455["Sweep Revolve<br>[1474, 1503, 9]"]
456[Wall] 456[Wall]
457[Wall] 457[Wall]
458[Wall] 458[Wall]

View File

@ -2129,7 +2129,7 @@ description: Operations executed car-wheel-assembly.kcl
"name": "lug", "name": "lug",
"functionSourceRange": [ "functionSourceRange": [
669, 669,
1280, 1272,
8 8
], ],
"unlabeledArg": null, "unlabeledArg": null,

View File

@ -3,43 +3,43 @@ flowchart LR
subgraph path2 [Path] subgraph path2 [Path]
2["Path<br>[631, 865, 0]"] 2["Path<br>[631, 865, 0]"]
3["Segment<br>[875, 1008, 0]"] 3["Segment<br>[875, 1008, 0]"]
4["Segment<br>[1018, 1109, 0]"] 4["Segment<br>[1018, 1070, 0]"]
5["Segment<br>[1119, 1174, 0]"] 5["Segment<br>[1080, 1127, 0]"]
6["Segment<br>[1184, 1275, 0]"] 6["Segment<br>[1137, 1189, 0]"]
7["Segment<br>[1285, 1340, 0]"] 7["Segment<br>[1199, 1246, 0]"]
8["Segment<br>[1350, 1406, 0]"] 8["Segment<br>[1256, 1321, 0]"]
9["Segment<br>[1416, 1424, 0]"] 9["Segment<br>[1331, 1339, 0]"]
10[Solid2d] 10[Solid2d]
end end
subgraph path11 [Path] subgraph path11 [Path]
11["Path<br>[1439, 1489, 0]"] 11["Path<br>[1354, 1404, 0]"]
12["Segment<br>[1439, 1489, 0]"] 12["Segment<br>[1354, 1404, 0]"]
13[Solid2d] 13[Solid2d]
end end
subgraph path15 [Path] subgraph path15 [Path]
15["Path<br>[631, 865, 0]"] 15["Path<br>[631, 865, 0]"]
16["Segment<br>[875, 1008, 0]"] 16["Segment<br>[875, 1008, 0]"]
17["Segment<br>[1018, 1109, 0]"] 17["Segment<br>[1018, 1070, 0]"]
18["Segment<br>[1119, 1174, 0]"] 18["Segment<br>[1080, 1127, 0]"]
19["Segment<br>[1184, 1275, 0]"] 19["Segment<br>[1137, 1189, 0]"]
20["Segment<br>[1285, 1340, 0]"] 20["Segment<br>[1199, 1246, 0]"]
21["Segment<br>[1350, 1406, 0]"] 21["Segment<br>[1256, 1321, 0]"]
22["Segment<br>[1416, 1424, 0]"] 22["Segment<br>[1331, 1339, 0]"]
23[Solid2d] 23[Solid2d]
end end
subgraph path24 [Path] subgraph path24 [Path]
24["Path<br>[1439, 1489, 0]"] 24["Path<br>[1354, 1404, 0]"]
25["Segment<br>[1439, 1489, 0]"] 25["Segment<br>[1354, 1404, 0]"]
26[Solid2d] 26[Solid2d]
end end
subgraph path28 [Path] subgraph path28 [Path]
28["Path<br>[631, 865, 0]"] 28["Path<br>[631, 865, 0]"]
35["Segment<br>[1416, 1424, 0]"] 35["Segment<br>[1331, 1339, 0]"]
36[Solid2d] 36[Solid2d]
end end
subgraph path37 [Path] subgraph path37 [Path]
37["Path<br>[1439, 1489, 0]"] 37["Path<br>[1354, 1404, 0]"]
38["Segment<br>[1439, 1489, 0]"] 38["Segment<br>[1354, 1404, 0]"]
39[Solid2d] 39[Solid2d]
end end
1["Plane<br>[587, 620, 0]"] 1["Plane<br>[587, 620, 0]"]
@ -51,7 +51,7 @@ flowchart LR
32["SweepEdge Opposite"] 32["SweepEdge Opposite"]
33["SweepEdge Opposite"] 33["SweepEdge Opposite"]
34["SweepEdge Opposite"] 34["SweepEdge Opposite"]
40["Sweep Loft<br>[1619, 1708, 0]"] 40["Sweep Loft<br>[1534, 1623, 0]"]
41[Wall] 41[Wall]
42[Wall] 42[Wall]
43[Wall] 43[Wall]

View File

@ -866,310 +866,433 @@ description: Result of parsing cycloidal-gear.kcl
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"end": 0, "label": {
"properties": [ "commentStart": 0,
{ "end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"left": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"key": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "radius", "name": "gearPitch",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [],
"start": 0, "start": 0,
"type": "ObjectProperty", "type": "Name",
"type": "Name"
},
"operator": "*",
"right": {
"commentStart": 0,
"end": 0,
"raw": "1.67",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": { "value": {
"value": 1.67,
"suffix": "None"
}
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "60",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 60.0,
"suffix": "None"
}
}
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "tangentialArc",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "gearPitch",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"argument": {
"commentStart": 0,
"end": 0,
"raw": "180",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 180.0,
"suffix": "None"
}
},
"commentStart": 0,
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
}
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "tangentialArc",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"left": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"left": { "name": "gearPitch",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"operator": "*",
"right": {
"commentStart": 0,
"end": 0,
"raw": "1.67",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 1.67,
"suffix": "None"
}
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "60",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 60.0,
"suffix": "None"
}
}
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "tangentialArc",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "gearPitch",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"argument": {
"commentStart": 0,
"end": 0,
"raw": "180",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 180.0,
"suffix": "None"
}
},
"commentStart": 0,
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
}
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "tangentialArc",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "endAbsolute",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"elements": [
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
],
"callee": {
"abs_path": false, "abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "gearPitch", "name": "profileStartX",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [],
"start": 0, "start": 0,
"type": "Name",
"type": "Name" "type": "Name"
}, },
"operator": "*", "commentStart": 0,
"right": { "end": 0,
"commentStart": 0, "start": 0,
"end": 0, "type": "CallExpression",
"raw": "1.67", "type": "CallExpression"
"start": 0, },
"type": "Literal", {
"type": "Literal", "arguments": [
"value": { {
"value": 1.67, "commentStart": 0,
"suffix": "None" "end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
} }
}, ],
"start": 0, "callee": {
"type": "BinaryExpression",
"type": "BinaryExpression"
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "offset",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "60",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 60.0,
"suffix": "None"
}
}
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "tangentialArc",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
},
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "gearPitch",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "offset",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"argument": {
"commentStart": 0,
"end": 0,
"raw": "180",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 180.0,
"suffix": "None"
}
},
"commentStart": 0,
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
}
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "tangentialArc",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
},
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"left": {
"abs_path": false, "abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "gearPitch", "name": "profileStartY",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [], "path": [],
"start": 0, "start": 0,
"type": "Name",
"type": "Name" "type": "Name"
}, },
"operator": "*",
"right": {
"commentStart": 0,
"end": 0,
"raw": "1.67",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 1.67,
"suffix": "None"
}
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "offset",
"start": 0, "start": 0,
"type": "Identifier" "type": "CallExpression",
}, "type": "CallExpression"
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "60",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 60.0,
"suffix": "None"
}
} }
} ],
], "end": 0,
"start": 0, "start": 0,
"type": "ObjectExpression", "type": "ArrayExpression",
"type": "ObjectExpression" "type": "ArrayExpression"
}, }
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
} }
], ],
"callee": { "callee": {
@ -1190,212 +1313,9 @@ description: Result of parsing cycloidal-gear.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
}, "unlabeled": null
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "gearPitch",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "offset",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"argument": {
"commentStart": 0,
"end": 0,
"raw": "180",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 180.0,
"suffix": "None"
}
},
"commentStart": 0,
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
}
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "tangentialArc",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
},
{
"arguments": [
{
"commentStart": 0,
"elements": [
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "profileStartX",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
},
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "profileStartY",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
}
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "tangentialArcTo",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
}, },
{ {
"arguments": [ "arguments": [

View File

@ -10,7 +10,7 @@ description: Operations executed cycloidal-gear.kcl
"name": "cycloidalGear", "name": "cycloidalGear",
"functionSourceRange": [ "functionSourceRange": [
265, 265,
1729, 1644,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -25,7 +25,7 @@ description: Operations executed cycloidal-gear.kcl
"name": "gearSketch", "name": "gearSketch",
"functionSourceRange": [ "functionSourceRange": [
491, 491,
1520, 1435,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -186,7 +186,7 @@ description: Operations executed cycloidal-gear.kcl
"name": "gearSketch", "name": "gearSketch",
"functionSourceRange": [ "functionSourceRange": [
491, 491,
1520, 1435,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -342,7 +342,7 @@ description: Operations executed cycloidal-gear.kcl
"name": "gearSketch", "name": "gearSketch",
"functionSourceRange": [ "functionSourceRange": [
491, 491,
1520, 1435,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,

View File

@ -102,14 +102,14 @@ flowchart LR
subgraph path276 [Path] subgraph path276 [Path]
276["Path<br>[6877, 6927, 0]"] 276["Path<br>[6877, 6927, 0]"]
277["Segment<br>[6933, 6970, 0]"] 277["Segment<br>[6933, 6970, 0]"]
278["Segment<br>[6976, 7060, 0]"] 278["Segment<br>[6976, 7069, 0]"]
279["Segment<br>[7066, 7102, 0]"] 279["Segment<br>[7075, 7111, 0]"]
280["Segment<br>[7108, 7200, 0]"] 280["Segment<br>[7117, 7218, 0]"]
281["Segment<br>[7206, 7242, 0]"] 281["Segment<br>[7224, 7260, 0]"]
end end
subgraph path283 [Path] subgraph path283 [Path]
283["Path<br>[7305, 7416, 0]"] 283["Path<br>[7323, 7434, 0]"]
284["Segment<br>[7305, 7416, 0]"] 284["Segment<br>[7323, 7434, 0]"]
285[Solid2d] 285[Solid2d]
end end
1["Plane<br>[565, 582, 0]"] 1["Plane<br>[565, 582, 0]"]
@ -310,8 +310,8 @@ flowchart LR
273["SweepEdge Adjacent"] 273["SweepEdge Adjacent"]
274["Sweep Extrusion<br>[6482, 6510, 0]"] 274["Sweep Extrusion<br>[6482, 6510, 0]"]
275["Plane<br>[6803, 6854, 0]"] 275["Plane<br>[6803, 6854, 0]"]
282["Plane<br>[7264, 7281, 0]"] 282["Plane<br>[7282, 7299, 0]"]
286["Sweep Sweep<br>[7430, 7483, 0]"] 286["Sweep Sweep<br>[7448, 7501, 0]"]
287[Wall] 287[Wall]
288["Cap Start"] 288["Cap Start"]
289["Cap Start"] 289["Cap Start"]

View File

@ -10274,84 +10274,87 @@ description: Result of parsing dual-basin-utility-sink.kcl
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"elements": [ "label": {
{ "commentStart": 0,
"commentStart": 0, "end": 0,
"end": 0, "name": "endAbsolute",
"left": { "start": 0,
"abs_path": false, "type": "Identifier"
},
"arg": {
"commentStart": 0,
"elements": [
{
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": { "left": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "handleFillet", "name": {
"commentStart": 0,
"end": 0,
"name": "handleFillet",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier" "type": "Name",
"type": "Name"
},
"operator": "+",
"right": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "handleOffset",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}, },
"path": [],
"start": 0, "start": 0,
"type": "Name", "type": "BinaryExpression",
"type": "Name" "type": "BinaryExpression"
}, },
"operator": "+", {
"right": { "argument": {
"abs_path": false, "abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "handleDepth",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": { "operator": "-",
"commentStart": 0,
"end": 0,
"name": "handleOffset",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Name", "type": "UnaryExpression",
"type": "Name" "type": "UnaryExpression"
}, }
"start": 0, ],
"type": "BinaryExpression", "end": 0,
"type": "BinaryExpression" "start": 0,
}, "type": "ArrayExpression",
{ "type": "ArrayExpression"
"argument": { }
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "handleDepth",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"commentStart": 0,
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
}
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
} }
], ],
"callee": { "callee": {
@ -10361,7 +10364,7 @@ description: Result of parsing dual-basin-utility-sink.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "tangentialArcTo", "name": "tangentialArc",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -10372,8 +10375,9 @@ description: Result of parsing dual-basin-utility-sink.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
}, },
{ {
"arguments": [ "arguments": [
@ -10429,84 +10433,87 @@ description: Result of parsing dual-basin-utility-sink.kcl
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"elements": [ "label": {
{ "commentStart": 0,
"commentStart": 0, "end": 0,
"end": 0, "name": "endAbsolute",
"left": { "start": 0,
"abs_path": false, "type": "Identifier"
},
"arg": {
"commentStart": 0,
"elements": [
{
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": { "left": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "handleOffset", "name": {
"commentStart": 0,
"end": 0,
"name": "handleOffset",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier" "type": "Name",
"type": "Name"
},
"operator": "+",
"right": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "handleWidth",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}, },
"path": [],
"start": 0, "start": 0,
"type": "Name", "type": "BinaryExpression",
"type": "Name" "type": "BinaryExpression"
}, },
"operator": "+", {
"right": { "argument": {
"abs_path": false, "abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "handleLengthSegmentA",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": { "operator": "-",
"commentStart": 0,
"end": 0,
"name": "handleWidth",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Name", "type": "UnaryExpression",
"type": "Name" "type": "UnaryExpression"
}, }
"start": 0, ],
"type": "BinaryExpression", "end": 0,
"type": "BinaryExpression" "start": 0,
}, "type": "ArrayExpression",
{ "type": "ArrayExpression"
"argument": { }
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "handleLengthSegmentA",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"commentStart": 0,
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
}
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
} }
], ],
"callee": { "callee": {
@ -10516,7 +10523,7 @@ description: Result of parsing dual-basin-utility-sink.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "tangentialArcTo", "name": "tangentialArc",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -10527,8 +10534,9 @@ description: Result of parsing dual-basin-utility-sink.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
}, },
{ {
"arguments": [ "arguments": [

View File

@ -3,170 +3,170 @@ flowchart LR
subgraph path2 [Path] subgraph path2 [Path]
2["Path<br>[817, 852, 0]"] 2["Path<br>[817, 852, 0]"]
3["Segment<br>[860, 886, 0]"] 3["Segment<br>[860, 886, 0]"]
4["Segment<br>[894, 957, 0]"] 4["Segment<br>[894, 955, 0]"]
5["Segment<br>[965, 1024, 0]"] 5["Segment<br>[963, 1022, 0]"]
6["Segment<br>[1032, 1094, 0]"] 6["Segment<br>[1030, 1090, 0]"]
7["Segment<br>[1102, 1161, 0]"] 7["Segment<br>[1098, 1157, 0]"]
end end
subgraph path9 [Path] subgraph path9 [Path]
9["Path<br>[1263, 1325, 0]"] 9["Path<br>[1259, 1321, 0]"]
10["Segment<br>[1263, 1325, 0]"] 10["Segment<br>[1259, 1321, 0]"]
11[Solid2d] 11[Solid2d]
end end
subgraph path12 [Path] subgraph path12 [Path]
12["Path<br>[1338, 1416, 0]"] 12["Path<br>[1334, 1412, 0]"]
13["Segment<br>[1338, 1416, 0]"] 13["Segment<br>[1334, 1412, 0]"]
14[Solid2d] 14[Solid2d]
end end
subgraph path22 [Path] subgraph path22 [Path]
22["Path<br>[817, 852, 0]"] 22["Path<br>[817, 852, 0]"]
23["Segment<br>[860, 886, 0]"] 23["Segment<br>[860, 886, 0]"]
24["Segment<br>[894, 957, 0]"] 24["Segment<br>[894, 955, 0]"]
25["Segment<br>[965, 1024, 0]"] 25["Segment<br>[963, 1022, 0]"]
26["Segment<br>[1032, 1094, 0]"] 26["Segment<br>[1030, 1090, 0]"]
27["Segment<br>[1102, 1161, 0]"] 27["Segment<br>[1098, 1157, 0]"]
end end
subgraph path29 [Path] subgraph path29 [Path]
29["Path<br>[1263, 1325, 0]"] 29["Path<br>[1259, 1321, 0]"]
30["Segment<br>[1263, 1325, 0]"] 30["Segment<br>[1259, 1321, 0]"]
31[Solid2d] 31[Solid2d]
end end
subgraph path32 [Path] subgraph path32 [Path]
32["Path<br>[1338, 1416, 0]"] 32["Path<br>[1334, 1412, 0]"]
33["Segment<br>[1338, 1416, 0]"] 33["Segment<br>[1334, 1412, 0]"]
34[Solid2d] 34[Solid2d]
end end
subgraph path42 [Path] subgraph path42 [Path]
42["Path<br>[817, 852, 0]"] 42["Path<br>[817, 852, 0]"]
43["Segment<br>[860, 886, 0]"] 43["Segment<br>[860, 886, 0]"]
44["Segment<br>[894, 957, 0]"] 44["Segment<br>[894, 955, 0]"]
45["Segment<br>[965, 1024, 0]"] 45["Segment<br>[963, 1022, 0]"]
46["Segment<br>[1032, 1094, 0]"] 46["Segment<br>[1030, 1090, 0]"]
47["Segment<br>[1102, 1161, 0]"] 47["Segment<br>[1098, 1157, 0]"]
end end
subgraph path49 [Path] subgraph path49 [Path]
49["Path<br>[1263, 1325, 0]"] 49["Path<br>[1259, 1321, 0]"]
50["Segment<br>[1263, 1325, 0]"] 50["Segment<br>[1259, 1321, 0]"]
51[Solid2d] 51[Solid2d]
end end
subgraph path52 [Path] subgraph path52 [Path]
52["Path<br>[1338, 1416, 0]"] 52["Path<br>[1334, 1412, 0]"]
53["Segment<br>[1338, 1416, 0]"] 53["Segment<br>[1334, 1412, 0]"]
54[Solid2d] 54[Solid2d]
end end
subgraph path62 [Path] subgraph path62 [Path]
62["Path<br>[817, 852, 0]"] 62["Path<br>[817, 852, 0]"]
63["Segment<br>[860, 886, 0]"] 63["Segment<br>[860, 886, 0]"]
64["Segment<br>[894, 957, 0]"] 64["Segment<br>[894, 955, 0]"]
65["Segment<br>[965, 1024, 0]"] 65["Segment<br>[963, 1022, 0]"]
66["Segment<br>[1032, 1094, 0]"] 66["Segment<br>[1030, 1090, 0]"]
67["Segment<br>[1102, 1161, 0]"] 67["Segment<br>[1098, 1157, 0]"]
end end
subgraph path69 [Path] subgraph path69 [Path]
69["Path<br>[1263, 1325, 0]"] 69["Path<br>[1259, 1321, 0]"]
70["Segment<br>[1263, 1325, 0]"] 70["Segment<br>[1259, 1321, 0]"]
71[Solid2d] 71[Solid2d]
end end
subgraph path72 [Path] subgraph path72 [Path]
72["Path<br>[1338, 1416, 0]"] 72["Path<br>[1334, 1412, 0]"]
73["Segment<br>[1338, 1416, 0]"] 73["Segment<br>[1334, 1412, 0]"]
74[Solid2d] 74[Solid2d]
end end
subgraph path82 [Path] subgraph path82 [Path]
82["Path<br>[1743, 1778, 0]"] 82["Path<br>[1739, 1774, 0]"]
83["Segment<br>[1784, 1818, 0]"] 83["Segment<br>[1780, 1814, 0]"]
84["Segment<br>[1824, 1871, 0]"] 84["Segment<br>[1820, 1859, 0]"]
85["Segment<br>[1877, 1923, 0]"] 85["Segment<br>[1865, 1903, 0]"]
86["Segment<br>[1929, 1976, 0]"] 86["Segment<br>[1909, 1948, 0]"]
87["Segment<br>[1982, 2016, 0]"] 87["Segment<br>[1954, 1988, 0]"]
88["Segment<br>[2022, 2065, 0]"] 88["Segment<br>[1994, 2037, 0]"]
89["Segment<br>[2071, 2104, 0]"] 89["Segment<br>[2043, 2076, 0]"]
90["Segment<br>[2110, 2157, 0]"] 90["Segment<br>[2082, 2121, 0]"]
91["Segment<br>[2163, 2210, 0]"] 91["Segment<br>[2127, 2166, 0]"]
92["Segment<br>[2216, 2263, 0]"] 92["Segment<br>[2172, 2211, 0]"]
93["Segment<br>[2269, 2312, 0]"] 93["Segment<br>[2217, 2260, 0]"]
94["Segment<br>[2318, 2369, 0]"] 94["Segment<br>[2266, 2317, 0]"]
95["Segment<br>[2375, 2419, 0]"] 95["Segment<br>[2323, 2367, 0]"]
96["Segment<br>[2425, 2472, 0]"] 96["Segment<br>[2373, 2412, 0]"]
97["Segment<br>[2478, 2524, 0]"] 97["Segment<br>[2418, 2456, 0]"]
98["Segment<br>[2530, 2586, 0]"] 98["Segment<br>[2462, 2527, 0]"]
99["Segment<br>[2592, 2599, 0]"] 99["Segment<br>[2533, 2540, 0]"]
100[Solid2d] 100[Solid2d]
end end
subgraph path101 [Path] subgraph path101 [Path]
101["Path<br>[2671, 2744, 0]"] 101["Path<br>[2612, 2685, 0]"]
102["Segment<br>[2671, 2744, 0]"] 102["Segment<br>[2612, 2685, 0]"]
103[Solid2d] 103[Solid2d]
end end
subgraph path104 [Path] subgraph path104 [Path]
104["Path<br>[2759, 2832, 0]"] 104["Path<br>[2700, 2773, 0]"]
105["Segment<br>[2759, 2832, 0]"] 105["Segment<br>[2700, 2773, 0]"]
106[Solid2d] 106[Solid2d]
end end
subgraph path107 [Path] subgraph path107 [Path]
107["Path<br>[2847, 2920, 0]"] 107["Path<br>[2788, 2861, 0]"]
108["Segment<br>[2847, 2920, 0]"] 108["Segment<br>[2788, 2861, 0]"]
109[Solid2d] 109[Solid2d]
end end
subgraph path110 [Path] subgraph path110 [Path]
110["Path<br>[2935, 3008, 0]"] 110["Path<br>[2876, 2949, 0]"]
111["Segment<br>[2935, 3008, 0]"] 111["Segment<br>[2876, 2949, 0]"]
112[Solid2d] 112[Solid2d]
end end
subgraph path113 [Path] subgraph path113 [Path]
113["Path<br>[3062, 3201, 0]"] 113["Path<br>[3003, 3142, 0]"]
114["Segment<br>[3062, 3201, 0]"] 114["Segment<br>[3003, 3142, 0]"]
115[Solid2d] 115[Solid2d]
end end
subgraph path116 [Path] subgraph path116 [Path]
116["Path<br>[3216, 3353, 0]"] 116["Path<br>[3157, 3294, 0]"]
117["Segment<br>[3216, 3353, 0]"] 117["Segment<br>[3157, 3294, 0]"]
118[Solid2d] 118[Solid2d]
end end
subgraph path119 [Path] subgraph path119 [Path]
119["Path<br>[3368, 3515, 0]"] 119["Path<br>[3309, 3456, 0]"]
120["Segment<br>[3368, 3515, 0]"] 120["Segment<br>[3309, 3456, 0]"]
121[Solid2d] 121[Solid2d]
end end
subgraph path122 [Path] subgraph path122 [Path]
122["Path<br>[3530, 3676, 0]"] 122["Path<br>[3471, 3617, 0]"]
123["Segment<br>[3530, 3676, 0]"] 123["Segment<br>[3471, 3617, 0]"]
124[Solid2d] 124[Solid2d]
end end
1["Plane<br>[784, 809, 0]"] 1["Plane<br>[784, 809, 0]"]
8["Plane<br>[1238, 1255, 0]"] 8["Plane<br>[1234, 1251, 0]"]
15["Sweep Sweep<br>[1428, 1451, 0]"] 15["Sweep Sweep<br>[1424, 1447, 0]"]
16[Wall] 16[Wall]
17["Cap Start"] 17["Cap Start"]
18["Cap End"] 18["Cap End"]
19["SweepEdge Opposite"] 19["SweepEdge Opposite"]
20["SweepEdge Adjacent"] 20["SweepEdge Adjacent"]
21["Plane<br>[784, 809, 0]"] 21["Plane<br>[784, 809, 0]"]
28["Plane<br>[1238, 1255, 0]"] 28["Plane<br>[1234, 1251, 0]"]
35["Sweep Sweep<br>[1428, 1451, 0]"] 35["Sweep Sweep<br>[1424, 1447, 0]"]
36[Wall] 36[Wall]
37["Cap Start"] 37["Cap Start"]
38["Cap End"] 38["Cap End"]
39["SweepEdge Opposite"] 39["SweepEdge Opposite"]
40["SweepEdge Adjacent"] 40["SweepEdge Adjacent"]
41["Plane<br>[784, 809, 0]"] 41["Plane<br>[784, 809, 0]"]
48["Plane<br>[1238, 1255, 0]"] 48["Plane<br>[1234, 1251, 0]"]
55["Sweep Sweep<br>[1428, 1451, 0]"] 55["Sweep Sweep<br>[1424, 1447, 0]"]
56[Wall] 56[Wall]
57["Cap Start"] 57["Cap Start"]
58["Cap End"] 58["Cap End"]
59["SweepEdge Opposite"] 59["SweepEdge Opposite"]
60["SweepEdge Adjacent"] 60["SweepEdge Adjacent"]
61["Plane<br>[784, 809, 0]"] 61["Plane<br>[784, 809, 0]"]
68["Plane<br>[1238, 1255, 0]"] 68["Plane<br>[1234, 1251, 0]"]
75["Sweep Sweep<br>[1428, 1451, 0]"] 75["Sweep Sweep<br>[1424, 1447, 0]"]
76[Wall] 76[Wall]
77["Cap Start"] 77["Cap Start"]
78["Cap End"] 78["Cap End"]
79["SweepEdge Opposite"] 79["SweepEdge Opposite"]
80["SweepEdge Adjacent"] 80["SweepEdge Adjacent"]
81["Plane<br>[1720, 1737, 0]"] 81["Plane<br>[1716, 1733, 0]"]
125["Sweep Extrusion<br>[3732, 3761, 0]"] 125["Sweep Extrusion<br>[3673, 3702, 0]"]
126[Wall] 126[Wall]
127[Wall] 127[Wall]
128[Wall] 128[Wall]
@ -217,10 +217,10 @@ flowchart LR
173["SweepEdge Adjacent"] 173["SweepEdge Adjacent"]
174["SweepEdge Opposite"] 174["SweepEdge Opposite"]
175["SweepEdge Adjacent"] 175["SweepEdge Adjacent"]
176["EdgeCut Fillet<br>[3767, 3901, 0]"] 176["EdgeCut Fillet<br>[3708, 3842, 0]"]
177["EdgeCut Fillet<br>[3767, 3901, 0]"] 177["EdgeCut Fillet<br>[3708, 3842, 0]"]
178["EdgeCut Fillet<br>[3907, 4041, 0]"] 178["EdgeCut Fillet<br>[3848, 3982, 0]"]
179["EdgeCut Fillet<br>[3907, 4041, 0]"] 179["EdgeCut Fillet<br>[3848, 3982, 0]"]
1 --- 2 1 --- 2
2 --- 3 2 --- 3
2 --- 4 2 --- 4

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,7 @@ description: Operations executed exhaust-manifold.kcl
"name": "primaryTube", "name": "primaryTube",
"functionSourceRange": [ "functionSourceRange": [
330, 330,
1468, 1464,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -317,7 +317,7 @@ description: Operations executed exhaust-manifold.kcl
"name": "primaryTube", "name": "primaryTube",
"functionSourceRange": [ "functionSourceRange": [
330, 330,
1468, 1464,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -624,7 +624,7 @@ description: Operations executed exhaust-manifold.kcl
"name": "primaryTube", "name": "primaryTube",
"functionSourceRange": [ "functionSourceRange": [
330, 330,
1468, 1464,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -931,7 +931,7 @@ description: Operations executed exhaust-manifold.kcl
"name": "primaryTube", "name": "primaryTube",
"functionSourceRange": [ "functionSourceRange": [
330, 330,
1468, 1464,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,

View File

@ -28,9 +28,9 @@ description: Variables in memory after executing exhaust-manifold.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 1811, "commentStart": 1807,
"end": 1817, "end": 1813,
"start": 1811, "start": 1807,
"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": 2009, "commentStart": 1981,
"end": 2015, "end": 1987,
"start": 2009, "start": 1981,
"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": 2058, "commentStart": 2030,
"end": 2064, "end": 2036,
"start": 2058, "start": 2030,
"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": 2097, "commentStart": 2069,
"end": 2103, "end": 2075,
"start": 2097, "start": 2069,
"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": 2305, "commentStart": 2253,
"end": 2311, "end": 2259,
"start": 2305, "start": 2253,
"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": 2362, "commentStart": 2310,
"end": 2368, "end": 2316,
"start": 2362, "start": 2310,
"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": 2412, "commentStart": 2360,
"end": 2418, "end": 2366,
"start": 2412, "start": 2360,
"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": 1811, "commentStart": 1807,
"end": 1817, "end": 1813,
"start": 1811, "start": 1807,
"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": 2009, "commentStart": 1981,
"end": 2015, "end": 1987,
"start": 2009, "start": 1981,
"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": 2058, "commentStart": 2030,
"end": 2064, "end": 2036,
"start": 2058, "start": 2030,
"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": 2097, "commentStart": 2069,
"end": 2103, "end": 2075,
"start": 2097, "start": 2069,
"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": 2305, "commentStart": 2253,
"end": 2311, "end": 2259,
"start": 2305, "start": 2253,
"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": 2362, "commentStart": 2310,
"end": 2368, "end": 2316,
"start": 2362, "start": 2310,
"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": 2412, "commentStart": 2360,
"end": 2418, "end": 2366,
"start": 2412, "start": 2360,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg09" "value": "seg09"
}, },

View File

@ -1,76 +1,76 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path2 [Path] subgraph path2 [Path]
2["Path<br>[1444, 1498, 0]"] 2["Path<br>[1445, 1499, 0]"]
3["Segment<br>[1504, 1536, 0]"] 3["Segment<br>[1505, 1537, 0]"]
4["Segment<br>[1542, 1579, 0]"] 4["Segment<br>[1543, 1580, 0]"]
5["Segment<br>[1585, 1618, 0]"] 5["Segment<br>[1586, 1619, 0]"]
6["Segment<br>[1624, 1724, 0]"] 6["Segment<br>[1625, 1725, 0]"]
7["Segment<br>[1730, 1737, 0]"] 7["Segment<br>[1731, 1738, 0]"]
8[Solid2d] 8[Solid2d]
end end
subgraph path9 [Path] subgraph path9 [Path]
9["Path<br>[1001, 1042, 0]"] 9["Path<br>[1001, 1042, 0]"]
10["Segment<br>[1050, 1090, 0]"] 10["Segment<br>[1050, 1090, 0]"]
11["Segment<br>[1098, 1152, 0]"] 11["Segment<br>[1098, 1144, 0]"]
12["Segment<br>[1160, 1201, 0]"] 12["Segment<br>[1152, 1193, 0]"]
13["Segment<br>[1209, 1265, 0]"] 13["Segment<br>[1201, 1266, 0]"]
14["Segment<br>[1273, 1280, 0]"] 14["Segment<br>[1274, 1281, 0]"]
15[Solid2d] 15[Solid2d]
end end
subgraph path16 [Path] subgraph path16 [Path]
16["Path<br>[1001, 1042, 0]"] 16["Path<br>[1001, 1042, 0]"]
17["Segment<br>[1050, 1090, 0]"] 17["Segment<br>[1050, 1090, 0]"]
18["Segment<br>[1098, 1152, 0]"] 18["Segment<br>[1098, 1144, 0]"]
19["Segment<br>[1160, 1201, 0]"] 19["Segment<br>[1152, 1193, 0]"]
20["Segment<br>[1209, 1265, 0]"] 20["Segment<br>[1201, 1266, 0]"]
21["Segment<br>[1273, 1280, 0]"] 21["Segment<br>[1274, 1281, 0]"]
22[Solid2d] 22[Solid2d]
end end
subgraph path23 [Path] subgraph path23 [Path]
23["Path<br>[1001, 1042, 0]"] 23["Path<br>[1001, 1042, 0]"]
24["Segment<br>[1050, 1090, 0]"] 24["Segment<br>[1050, 1090, 0]"]
25["Segment<br>[1098, 1152, 0]"] 25["Segment<br>[1098, 1144, 0]"]
26["Segment<br>[1160, 1201, 0]"] 26["Segment<br>[1152, 1193, 0]"]
27["Segment<br>[1209, 1265, 0]"] 27["Segment<br>[1201, 1266, 0]"]
28["Segment<br>[1273, 1280, 0]"] 28["Segment<br>[1274, 1281, 0]"]
29[Solid2d] 29[Solid2d]
end end
subgraph path49 [Path] subgraph path49 [Path]
49["Path<br>[2740, 2793, 0]"] 49["Path<br>[2741, 2794, 0]"]
50["Segment<br>[2799, 2858, 0]"] 50["Segment<br>[2800, 2859, 0]"]
51["Segment<br>[2864, 2899, 0]"] 51["Segment<br>[2865, 2900, 0]"]
52["Segment<br>[2905, 2938, 0]"] 52["Segment<br>[2906, 2939, 0]"]
53["Segment<br>[2944, 3003, 0]"] 53["Segment<br>[2945, 3004, 0]"]
54["Segment<br>[3009, 3045, 0]"] 54["Segment<br>[3010, 3046, 0]"]
55["Segment<br>[3051, 3075, 0]"] 55["Segment<br>[3052, 3076, 0]"]
56["Segment<br>[3081, 3088, 0]"] 56["Segment<br>[3082, 3089, 0]"]
57[Solid2d] 57[Solid2d]
end end
subgraph path83 [Path] subgraph path83 [Path]
83["Path<br>[3707, 3754, 0]"] 83["Path<br>[3708, 3755, 0]"]
84["Segment<br>[3760, 3810, 0]"] 84["Segment<br>[3761, 3811, 0]"]
85["Segment<br>[3816, 3915, 0]"] 85["Segment<br>[3817, 3916, 0]"]
86["Segment<br>[3921, 3972, 0]"] 86["Segment<br>[3922, 3973, 0]"]
87["Segment<br>[3978, 4076, 0]"] 87["Segment<br>[3979, 4077, 0]"]
88["Segment<br>[4082, 4135, 0]"] 88["Segment<br>[4083, 4136, 0]"]
89["Segment<br>[4141, 4241, 0]"] 89["Segment<br>[4142, 4242, 0]"]
90["Segment<br>[4247, 4321, 0]"] 90["Segment<br>[4248, 4322, 0]"]
91["Segment<br>[4327, 4428, 0]"] 91["Segment<br>[4328, 4429, 0]"]
92["Segment<br>[4434, 4441, 0]"] 92["Segment<br>[4435, 4442, 0]"]
93[Solid2d] 93[Solid2d]
end end
subgraph path121 [Path] subgraph path121 [Path]
121["Path<br>[1001, 1042, 0]"] 121["Path<br>[1001, 1042, 0]"]
122["Segment<br>[1050, 1090, 0]"] 122["Segment<br>[1050, 1090, 0]"]
123["Segment<br>[1098, 1152, 0]"] 123["Segment<br>[1098, 1144, 0]"]
124["Segment<br>[1160, 1201, 0]"] 124["Segment<br>[1152, 1193, 0]"]
125["Segment<br>[1209, 1265, 0]"] 125["Segment<br>[1201, 1266, 0]"]
126["Segment<br>[1273, 1280, 0]"] 126["Segment<br>[1274, 1281, 0]"]
127[Solid2d] 127[Solid2d]
end end
1["Plane<br>[1373, 1390, 0]"] 1["Plane<br>[1374, 1391, 0]"]
30["Sweep Extrusion<br>[2312, 2362, 0]"] 30["Sweep Extrusion<br>[2313, 2363, 0]"]
31[Wall] 31[Wall]
32[Wall] 32[Wall]
33[Wall] 33[Wall]
@ -88,8 +88,8 @@ flowchart LR
45["SweepEdge Adjacent"] 45["SweepEdge Adjacent"]
46["SweepEdge Opposite"] 46["SweepEdge Opposite"]
47["SweepEdge Adjacent"] 47["SweepEdge Adjacent"]
48["Plane<br>[2637, 2679, 0]"] 48["Plane<br>[2638, 2680, 0]"]
58["Sweep Extrusion<br>[3122, 3166, 0]"] 58["Sweep Extrusion<br>[3123, 3167, 0]"]
59[Wall] 59[Wall]
60[Wall] 60[Wall]
61[Wall] 61[Wall]
@ -113,8 +113,8 @@ flowchart LR
79["SweepEdge Adjacent"] 79["SweepEdge Adjacent"]
80["SweepEdge Opposite"] 80["SweepEdge Opposite"]
81["SweepEdge Adjacent"] 81["SweepEdge Adjacent"]
82["Plane<br>[3633, 3659, 0]"] 82["Plane<br>[3634, 3660, 0]"]
94["Sweep Extrusion<br>[4497, 4539, 0]"] 94["Sweep Extrusion<br>[4498, 4540, 0]"]
95[Wall] 95[Wall]
96[Wall] 96[Wall]
97[Wall] 97[Wall]
@ -141,7 +141,7 @@ flowchart LR
118["SweepEdge Adjacent"] 118["SweepEdge Adjacent"]
119["SweepEdge Opposite"] 119["SweepEdge Opposite"]
120["SweepEdge Adjacent"] 120["SweepEdge Adjacent"]
128["Sweep Extrusion<br>[4767, 4817, 0]"] 128["Sweep Extrusion<br>[4768, 4818, 0]"]
129[Wall] 129[Wall]
130[Wall] 130[Wall]
131[Wall] 131[Wall]
@ -154,12 +154,12 @@ flowchart LR
138["SweepEdge Adjacent"] 138["SweepEdge Adjacent"]
139["SweepEdge Opposite"] 139["SweepEdge Opposite"]
140["SweepEdge Adjacent"] 140["SweepEdge Adjacent"]
141["EdgeCut Fillet<br>[2399, 2540, 0]"] 141["EdgeCut Fillet<br>[2400, 2541, 0]"]
142["EdgeCut Fillet<br>[2399, 2540, 0]"] 142["EdgeCut Fillet<br>[2400, 2541, 0]"]
143["EdgeCut Fillet<br>[3209, 3340, 0]"] 143["EdgeCut Fillet<br>[3210, 3341, 0]"]
144["EdgeCut Fillet<br>[3209, 3340, 0]"] 144["EdgeCut Fillet<br>[3210, 3341, 0]"]
145["StartSketchOnPlane<br>[2623, 2680, 0]"] 145["StartSketchOnPlane<br>[2624, 2681, 0]"]
146["StartSketchOnFace<br>[4598, 4630, 0]"] 146["StartSketchOnFace<br>[4599, 4631, 0]"]
1 --- 2 1 --- 2
1 --- 9 1 --- 9
1 --- 16 1 --- 16

View File

@ -1887,94 +1887,72 @@ description: Result of parsing food-service-spatula.kcl
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"end": 0, "label": {
"properties": [ "commentStart": 0,
{ "end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"left": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"key": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "radius", "name": "width",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"path": [],
"start": 0, "start": 0,
"type": "ObjectProperty", "type": "Name",
"type": "Name"
},
"operator": "/",
"right": {
"commentStart": 0,
"end": 0,
"raw": "2",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": { "value": {
"commentStart": 0, "value": 2.0,
"end": 0, "suffix": "None"
"left": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "width",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"operator": "/",
"right": {
"commentStart": 0,
"end": 0,
"raw": "2",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 2.0,
"suffix": "None"
}
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
} }
}, },
{ "start": 0,
"commentStart": 0, "type": "BinaryExpression",
"end": 0, "type": "BinaryExpression"
"key": { }
"commentStart": 0,
"end": 0,
"name": "offset",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "180",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 180.0,
"suffix": "None"
}
}
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
}, },
{ {
"commentStart": 0, "type": "LabeledArg",
"end": 0, "label": {
"start": 0, "commentStart": 0,
"type": "PipeSubstitution", "end": 0,
"type": "PipeSubstitution" "name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "180",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 180.0,
"suffix": "None"
}
}
} }
], ],
"callee": { "callee": {
@ -1995,8 +1973,9 @@ description: Result of parsing food-service-spatula.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
}, },
{ {
"arguments": [ "arguments": [
@ -2086,82 +2065,85 @@ description: Result of parsing food-service-spatula.kcl
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"elements": [ "label": {
{ "commentStart": 0,
"arguments": [ "end": 0,
{ "name": "endAbsolute",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"elements": [
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
],
"callee": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "profileStartX",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "PipeSubstitution", "type": "Name"
"type": "PipeSubstitution" },
}
],
"callee": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "profileStartX",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Name" "type": "CallExpression",
"type": "CallExpression"
}, },
"commentStart": 0, {
"end": 0, "arguments": [
"start": 0, {
"type": "CallExpression", "commentStart": 0,
"type": "CallExpression" "end": 0,
}, "start": 0,
{ "type": "PipeSubstitution",
"arguments": [ "type": "PipeSubstitution"
{ }
],
"callee": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "profileStartY",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "PipeSubstitution", "type": "Name"
"type": "PipeSubstitution" },
}
],
"callee": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "profileStartY",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Name" "type": "CallExpression",
}, "type": "CallExpression"
"commentStart": 0, }
"end": 0, ],
"start": 0, "end": 0,
"type": "CallExpression", "start": 0,
"type": "CallExpression" "type": "ArrayExpression",
} "type": "ArrayExpression"
], }
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
} }
], ],
"callee": { "callee": {
@ -2171,7 +2153,7 @@ description: Result of parsing food-service-spatula.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "tangentialArcTo", "name": "tangentialArc",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -2182,8 +2164,9 @@ description: Result of parsing food-service-spatula.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
}, },
{ {
"arguments": [], "arguments": [],

View File

@ -25,7 +25,7 @@ description: Operations executed food-service-spatula.kcl
"name": "slot", "name": "slot",
"functionSourceRange": [ "functionSourceRange": [
462, 462,
1302, 1303,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -79,7 +79,7 @@ description: Operations executed food-service-spatula.kcl
"name": "slot", "name": "slot",
"functionSourceRange": [ "functionSourceRange": [
462, 462,
1302, 1303,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -133,7 +133,7 @@ description: Operations executed food-service-spatula.kcl
"name": "slot", "name": "slot",
"functionSourceRange": [ "functionSourceRange": [
462, 462,
1302, 1303,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -719,7 +719,7 @@ description: Operations executed food-service-spatula.kcl
"name": "slot", "name": "slot",
"functionSourceRange": [ "functionSourceRange": [
462, 462,
1302, 1303,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,

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": 1569, "commentStart": 1570,
"end": 1578, "end": 1579,
"start": 1569, "start": 1570,
"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": 1569, "commentStart": 1570,
"end": 1578, "end": 1579,
"start": 1569, "start": 1570,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "backEdge" "value": "backEdge"
}, },
@ -297,9 +297,9 @@ description: Variables in memory after executing food-service-spatula.kcl
-30.0 -30.0
], ],
"tag": { "tag": {
"commentStart": 1569, "commentStart": 1570,
"end": 1578, "end": 1579,
"start": 1569, "start": 1570,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "backEdge" "value": "backEdge"
}, },
@ -547,9 +547,9 @@ description: Variables in memory after executing food-service-spatula.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 4308, "commentStart": 4309,
"end": 4320, "end": 4321,
"start": 4308, "start": 4309,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "gripEdgeTop" "value": "gripEdgeTop"
}, },
@ -709,9 +709,9 @@ description: Variables in memory after executing food-service-spatula.kcl
7.0 7.0
], ],
"tag": { "tag": {
"commentStart": 4308, "commentStart": 4309,
"end": 4320, "end": 4321,
"start": 4308, "start": 4309,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "gripEdgeTop" "value": "gripEdgeTop"
}, },
@ -1051,9 +1051,9 @@ description: Variables in memory after executing food-service-spatula.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 4308, "commentStart": 4309,
"end": 4320, "end": 4321,
"start": 4308, "start": 4309,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "gripEdgeTop" "value": "gripEdgeTop"
}, },
@ -1213,9 +1213,9 @@ description: Variables in memory after executing food-service-spatula.kcl
7.0 7.0
], ],
"tag": { "tag": {
"commentStart": 4308, "commentStart": 4309,
"end": 4320, "end": 4321,
"start": 4308, "start": 4309,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "gripEdgeTop" "value": "gripEdgeTop"
}, },
@ -1529,9 +1529,9 @@ description: Variables in memory after executing food-service-spatula.kcl
7.0 7.0
], ],
"tag": { "tag": {
"commentStart": 4308, "commentStart": 4309,
"end": 4320, "end": 4321,
"start": 4308, "start": 4309,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "gripEdgeTop" "value": "gripEdgeTop"
}, },
@ -1718,9 +1718,9 @@ description: Variables in memory after executing food-service-spatula.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 2840, "commentStart": 2841,
"end": 2857, "end": 2858,
"start": 2840, "start": 2841,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "handleBottomEdge" "value": "handleBottomEdge"
}, },
@ -1745,9 +1745,9 @@ description: Variables in memory after executing food-service-spatula.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 2988, "commentStart": 2989,
"end": 3002, "end": 3003,
"start": 2988, "start": 2989,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "handleTopEdge" "value": "handleTopEdge"
}, },
@ -1789,9 +1789,9 @@ description: Variables in memory after executing food-service-spatula.kcl
3.5 3.5
], ],
"tag": { "tag": {
"commentStart": 2840, "commentStart": 2841,
"end": 2857, "end": 2858,
"start": 2840, "start": 2841,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "handleBottomEdge" "value": "handleBottomEdge"
}, },
@ -1852,9 +1852,9 @@ description: Variables in memory after executing food-service-spatula.kcl
91.3213 91.3213
], ],
"tag": { "tag": {
"commentStart": 2988, "commentStart": 2989,
"end": 3002, "end": 3003,
"start": 2988, "start": 2989,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "handleTopEdge" "value": "handleTopEdge"
}, },
@ -2203,9 +2203,9 @@ description: Variables in memory after executing food-service-spatula.kcl
3.5 3.5
], ],
"tag": { "tag": {
"commentStart": 2840, "commentStart": 2841,
"end": 2857, "end": 2858,
"start": 2840, "start": 2841,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "handleBottomEdge" "value": "handleBottomEdge"
}, },
@ -2266,9 +2266,9 @@ description: Variables in memory after executing food-service-spatula.kcl
91.3213 91.3213
], ],
"tag": { "tag": {
"commentStart": 2988, "commentStart": 2989,
"end": 3002, "end": 3003,
"start": 2988, "start": 2989,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "handleTopEdge" "value": "handleTopEdge"
}, },
@ -2525,9 +2525,9 @@ description: Variables in memory after executing food-service-spatula.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 4308, "commentStart": 4309,
"end": 4320, "end": 4321,
"start": 4308, "start": 4309,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "gripEdgeTop" "value": "gripEdgeTop"
}, },
@ -2687,9 +2687,9 @@ description: Variables in memory after executing food-service-spatula.kcl
7.0 7.0
], ],
"tag": { "tag": {
"commentStart": 4308, "commentStart": 4309,
"end": 4320, "end": 4321,
"start": 4308, "start": 4309,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "gripEdgeTop" "value": "gripEdgeTop"
}, },
@ -3354,9 +3354,9 @@ description: Variables in memory after executing food-service-spatula.kcl
-30.0 -30.0
], ],
"tag": { "tag": {
"commentStart": 1569, "commentStart": 1570,
"end": 1578, "end": 1579,
"start": 1569, "start": 1570,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "backEdge" "value": "backEdge"
}, },

View File

@ -61,63 +61,63 @@ flowchart LR
143["Segment<br>[3558, 3576, 0]"] 143["Segment<br>[3558, 3576, 0]"]
144["Segment<br>[3582, 3602, 0]"] 144["Segment<br>[3582, 3602, 0]"]
145["Segment<br>[3608, 3628, 0]"] 145["Segment<br>[3608, 3628, 0]"]
146["Segment<br>[3634, 3682, 0]"] 146["Segment<br>[3634, 3674, 0]"]
147["Segment<br>[3688, 3744, 0]"] 147["Segment<br>[3680, 3736, 0]"]
148["Segment<br>[3750, 3757, 0]"] 148["Segment<br>[3742, 3749, 0]"]
149[Solid2d] 149[Solid2d]
end end
subgraph path166 [Path] subgraph path166 [Path]
166["Path<br>[3861, 3920, 0]"] 166["Path<br>[3853, 3912, 0]"]
167["Segment<br>[3861, 3920, 0]"] 167["Segment<br>[3853, 3912, 0]"]
168[Solid2d] 168[Solid2d]
end end
subgraph path169 [Path] subgraph path169 [Path]
169["Path<br>[3931, 3968, 0]"] 169["Path<br>[3923, 3960, 0]"]
170["Segment<br>[3931, 3968, 0]"] 170["Segment<br>[3923, 3960, 0]"]
171[Solid2d] 171[Solid2d]
end end
subgraph path178 [Path] subgraph path178 [Path]
178["Path<br>[4110, 4148, 0]"] 178["Path<br>[4102, 4140, 0]"]
179["Segment<br>[4110, 4148, 0]"] 179["Segment<br>[4102, 4140, 0]"]
180[Solid2d] 180[Solid2d]
end end
subgraph path192 [Path] subgraph path192 [Path]
192["Path<br>[4421, 4459, 0]"] 192["Path<br>[4413, 4451, 0]"]
193["Segment<br>[4421, 4459, 0]"] 193["Segment<br>[4413, 4451, 0]"]
194[Solid2d] 194[Solid2d]
end end
subgraph path203 [Path] subgraph path203 [Path]
203["Path<br>[4711, 4763, 0]"] 203["Path<br>[4703, 4755, 0]"]
204["Segment<br>[4711, 4763, 0]"] 204["Segment<br>[4703, 4755, 0]"]
205[Solid2d] 205[Solid2d]
end end
subgraph path213 [Path] subgraph path213 [Path]
213["Path<br>[5010, 5054, 0]"] 213["Path<br>[5002, 5046, 0]"]
214["Segment<br>[5060, 5100, 0]"] 214["Segment<br>[5052, 5092, 0]"]
215["Segment<br>[5106, 5125, 0]"] 215["Segment<br>[5098, 5117, 0]"]
216["Segment<br>[5131, 5150, 0]"] 216["Segment<br>[5123, 5142, 0]"]
217["Segment<br>[5156, 5175, 0]"] 217["Segment<br>[5148, 5167, 0]"]
218["Segment<br>[5181, 5206, 0]"] 218["Segment<br>[5173, 5198, 0]"]
219["Segment<br>[5212, 5352, 0]"] 219["Segment<br>[5204, 5344, 0]"]
220["Segment<br>[5358, 5414, 0]"] 220["Segment<br>[5350, 5406, 0]"]
221["Segment<br>[5420, 5427, 0]"] 221["Segment<br>[5412, 5419, 0]"]
222[Solid2d] 222[Solid2d]
end end
subgraph path239 [Path] subgraph path239 [Path]
239["Path<br>[5557, 5586, 0]"] 239["Path<br>[5549, 5578, 0]"]
240["Segment<br>[5592, 5613, 0]"] 240["Segment<br>[5584, 5605, 0]"]
241["Segment<br>[5619, 5650, 0]"] 241["Segment<br>[5611, 5651, 0]"]
242["Segment<br>[5656, 5687, 0]"] 242["Segment<br>[5657, 5697, 0]"]
243["Segment<br>[5693, 5725, 0]"] 243["Segment<br>[5703, 5744, 0]"]
244["Segment<br>[5731, 5753, 0]"] 244["Segment<br>[5750, 5772, 0]"]
245["Segment<br>[5759, 5780, 0]"] 245["Segment<br>[5778, 5799, 0]"]
246["Segment<br>[5786, 5811, 0]"] 246["Segment<br>[5805, 5830, 0]"]
247["Segment<br>[5817, 5848, 0]"] 247["Segment<br>[5836, 5876, 0]"]
248["Segment<br>[5854, 5886, 0]"] 248["Segment<br>[5882, 5923, 0]"]
249["Segment<br>[5892, 5924, 0]"] 249["Segment<br>[5929, 5970, 0]"]
250["Segment<br>[5930, 5951, 0]"] 250["Segment<br>[5976, 5997, 0]"]
251["Segment<br>[5957, 6013, 0]"] 251["Segment<br>[6003, 6059, 0]"]
252["Segment<br>[6019, 6026, 0]"] 252["Segment<br>[6065, 6072, 0]"]
253[Solid2d] 253[Solid2d]
end end
1["Plane<br>[242, 259, 0]"] 1["Plane<br>[242, 259, 0]"]
@ -215,7 +215,7 @@ flowchart LR
137["SweepEdge Adjacent"] 137["SweepEdge Adjacent"]
138["SweepEdge Adjacent"] 138["SweepEdge Adjacent"]
139["Plane<br>[3427, 3444, 0]"] 139["Plane<br>[3427, 3444, 0]"]
150["Sweep Revolve<br>[3763, 3780, 0]"] 150["Sweep Revolve<br>[3755, 3772, 0]"]
151[Wall] 151[Wall]
152[Wall] 152[Wall]
153[Wall] 153[Wall]
@ -230,40 +230,40 @@ flowchart LR
162["SweepEdge Adjacent"] 162["SweepEdge Adjacent"]
163["SweepEdge Adjacent"] 163["SweepEdge Adjacent"]
164["SweepEdge Adjacent"] 164["SweepEdge Adjacent"]
165["Plane<br>[3824, 3854, 0]"] 165["Plane<br>[3816, 3846, 0]"]
172["Sweep Extrusion<br>[3987, 4021, 0]"] 172["Sweep Extrusion<br>[3979, 4013, 0]"]
173[Wall] 173[Wall]
174["Cap Start"] 174["Cap Start"]
175["Cap End"] 175["Cap End"]
176["SweepEdge Opposite"] 176["SweepEdge Opposite"]
177["SweepEdge Adjacent"] 177["SweepEdge Adjacent"]
181["Sweep Extrusion<br>[4297, 4332, 0]"] 181["Sweep Extrusion<br>[4289, 4324, 0]"]
182[Wall] 182[Wall]
183["SweepEdge Opposite"] 183["SweepEdge Opposite"]
184["SweepEdge Adjacent"] 184["SweepEdge Adjacent"]
185["Sweep Extrusion<br>[4297, 4332, 0]"] 185["Sweep Extrusion<br>[4289, 4324, 0]"]
186["Sweep Extrusion<br>[4297, 4332, 0]"] 186["Sweep Extrusion<br>[4289, 4324, 0]"]
187["Sweep Extrusion<br>[4297, 4332, 0]"] 187["Sweep Extrusion<br>[4289, 4324, 0]"]
188["Sweep Extrusion<br>[4297, 4332, 0]"] 188["Sweep Extrusion<br>[4289, 4324, 0]"]
189["Sweep Extrusion<br>[4297, 4332, 0]"] 189["Sweep Extrusion<br>[4289, 4324, 0]"]
190["Sweep Extrusion<br>[4297, 4332, 0]"] 190["Sweep Extrusion<br>[4289, 4324, 0]"]
191["Sweep Extrusion<br>[4297, 4332, 0]"] 191["Sweep Extrusion<br>[4289, 4324, 0]"]
195["Sweep Extrusion<br>[4608, 4643, 0]"] 195["Sweep Extrusion<br>[4600, 4635, 0]"]
196[Wall] 196[Wall]
197["SweepEdge Opposite"] 197["SweepEdge Opposite"]
198["SweepEdge Adjacent"] 198["SweepEdge Adjacent"]
199["Sweep Extrusion<br>[4608, 4643, 0]"] 199["Sweep Extrusion<br>[4600, 4635, 0]"]
200["Sweep Extrusion<br>[4608, 4643, 0]"] 200["Sweep Extrusion<br>[4600, 4635, 0]"]
201["Sweep Extrusion<br>[4608, 4643, 0]"] 201["Sweep Extrusion<br>[4600, 4635, 0]"]
202["Plane<br>[4688, 4705, 0]"] 202["Plane<br>[4680, 4697, 0]"]
206["Sweep Extrusion<br>[4859, 4900, 0]"] 206["Sweep Extrusion<br>[4851, 4892, 0]"]
207[Wall] 207[Wall]
208["Cap Start"] 208["Cap Start"]
209["Cap End"] 209["Cap End"]
210["SweepEdge Opposite"] 210["SweepEdge Opposite"]
211["SweepEdge Adjacent"] 211["SweepEdge Adjacent"]
212["Plane<br>[4987, 5004, 0]"] 212["Plane<br>[4979, 4996, 0]"]
223["Sweep Revolve<br>[5433, 5450, 0]"] 223["Sweep Revolve<br>[5425, 5442, 0]"]
224[Wall] 224[Wall]
225[Wall] 225[Wall]
226[Wall] 226[Wall]
@ -278,8 +278,8 @@ flowchart LR
235["SweepEdge Adjacent"] 235["SweepEdge Adjacent"]
236["SweepEdge Adjacent"] 236["SweepEdge Adjacent"]
237["SweepEdge Adjacent"] 237["SweepEdge Adjacent"]
238["Plane<br>[5505, 5550, 0]"] 238["Plane<br>[5497, 5542, 0]"]
254["Sweep Extrusion<br>[6040, 6085, 0]"] 254["Sweep Extrusion<br>[6086, 6131, 0]"]
255[Wall] 255[Wall]
256[Wall] 256[Wall]
257[Wall] 257[Wall]
@ -320,10 +320,10 @@ flowchart LR
292["SweepEdge Adjacent"] 292["SweepEdge Adjacent"]
293["StartSketchOnPlane<br>[2337, 2379, 0]"] 293["StartSketchOnPlane<br>[2337, 2379, 0]"]
294["StartSketchOnFace<br>[2507, 2539, 0]"] 294["StartSketchOnFace<br>[2507, 2539, 0]"]
295["StartSketchOnPlane<br>[3810, 3855, 0]"] 295["StartSketchOnPlane<br>[3802, 3847, 0]"]
296["StartSketchOnFace<br>[4072, 4104, 0]"] 296["StartSketchOnFace<br>[4064, 4096, 0]"]
297["StartSketchOnFace<br>[4383, 4415, 0]"] 297["StartSketchOnFace<br>[4375, 4407, 0]"]
298["StartSketchOnPlane<br>[5491, 5551, 0]"] 298["StartSketchOnPlane<br>[5483, 5543, 0]"]
1 --- 2 1 --- 2
2 --- 3 2 --- 3
2 --- 4 2 --- 4

View File

@ -5466,78 +5466,56 @@ description: Result of parsing french-press.kcl
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"end": 0, "label": {
"properties": [ "commentStart": 0,
{ "end": 0,
"commentStart": 0, "name": "radius",
"end": 0, "start": 0,
"key": { "type": "Identifier"
"commentStart": 0, },
"end": 0, "arg": {
"name": "radius", "commentStart": 0,
"start": 0, "end": 0,
"type": "Identifier" "raw": "0.6",
}, "start": 0,
"start": 0, "type": "Literal",
"type": "ObjectProperty", "type": "Literal",
"value": { "value": {
"commentStart": 0, "value": 0.6,
"end": 0, "suffix": "None"
"raw": "0.6",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.6,
"suffix": "None"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "offset",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"argument": {
"commentStart": 0,
"end": 0,
"raw": "90",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 90.0,
"suffix": "None"
}
},
"commentStart": 0,
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
}
} }
], }
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
}, },
{ {
"commentStart": 0, "type": "LabeledArg",
"end": 0, "label": {
"start": 0, "commentStart": 0,
"type": "PipeSubstitution", "end": 0,
"type": "PipeSubstitution" "name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"argument": {
"commentStart": 0,
"end": 0,
"raw": "90",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 90.0,
"suffix": "None"
}
},
"commentStart": 0,
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
}
} }
], ],
"callee": { "callee": {
@ -5558,8 +5536,9 @@ description: Result of parsing french-press.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
}, },
{ {
"arguments": [ "arguments": [
@ -8602,44 +8581,47 @@ description: Result of parsing french-press.kcl
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"elements": [ "label": {
{ "commentStart": 0,
"commentStart": 0, "end": 0,
"end": 0, "name": "endAbsolute",
"raw": "4.1", "start": 0,
"start": 0, "type": "Identifier"
"type": "Literal", },
"type": "Literal", "arg": {
"value": { "commentStart": 0,
"value": 4.1, "elements": [
"suffix": "None" {
"commentStart": 0,
"end": 0,
"raw": "4.1",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 4.1,
"suffix": "None"
}
},
{
"commentStart": 0,
"end": 0,
"raw": "5.26",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 5.26,
"suffix": "None"
}
} }
}, ],
{ "end": 0,
"commentStart": 0, "start": 0,
"end": 0, "type": "ArrayExpression",
"raw": "5.26", "type": "ArrayExpression"
"start": 0, }
"type": "Literal",
"type": "Literal",
"value": {
"value": 5.26,
"suffix": "None"
}
}
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
} }
], ],
"callee": { "callee": {
@ -8649,7 +8631,7 @@ description: Result of parsing french-press.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "tangentialArcTo", "name": "tangentialArc",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -8660,50 +8642,54 @@ description: Result of parsing french-press.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
}, },
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"elements": [ "label": {
{ "commentStart": 0,
"commentStart": 0, "end": 0,
"end": 0, "name": "endAbsolute",
"raw": "4.17", "start": 0,
"start": 0, "type": "Identifier"
"type": "Literal", },
"type": "Literal", "arg": {
"value": { "commentStart": 0,
"value": 4.17, "elements": [
"suffix": "None" {
"commentStart": 0,
"end": 0,
"raw": "4.17",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 4.17,
"suffix": "None"
}
},
{
"commentStart": 0,
"end": 0,
"raw": "1.6",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 1.6,
"suffix": "None"
}
} }
}, ],
{ "end": 0,
"commentStart": 0, "start": 0,
"end": 0, "type": "ArrayExpression",
"raw": "1.6", "type": "ArrayExpression"
"start": 0, }
"type": "Literal",
"type": "Literal",
"value": {
"value": 1.6,
"suffix": "None"
}
}
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
} }
], ],
"callee": { "callee": {
@ -8713,7 +8699,7 @@ description: Result of parsing french-press.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "tangentialArcTo", "name": "tangentialArc",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -8724,50 +8710,54 @@ description: Result of parsing french-press.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
}, },
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"elements": [ "label": {
{ "commentStart": 0,
"commentStart": 0, "end": 0,
"end": 0, "name": "endAbsolute",
"raw": "3.13", "start": 0,
"start": 0, "type": "Identifier"
"type": "Literal", },
"type": "Literal", "arg": {
"value": { "commentStart": 0,
"value": 3.13, "elements": [
"suffix": "None" {
"commentStart": 0,
"end": 0,
"raw": "3.13",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 3.13,
"suffix": "None"
}
},
{
"commentStart": 0,
"end": 0,
"raw": "0.61",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.61,
"suffix": "None"
}
} }
}, ],
{ "end": 0,
"commentStart": 0, "start": 0,
"end": 0, "type": "ArrayExpression",
"raw": "0.61", "type": "ArrayExpression"
"start": 0, }
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.61,
"suffix": "None"
}
}
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
} }
], ],
"callee": { "callee": {
@ -8777,7 +8767,7 @@ description: Result of parsing french-press.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "tangentialArcTo", "name": "tangentialArc",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -8788,8 +8778,9 @@ description: Result of parsing french-press.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
}, },
{ {
"arguments": [ "arguments": [
@ -9014,44 +9005,47 @@ description: Result of parsing french-press.kcl
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"elements": [ "label": {
{ "commentStart": 0,
"commentStart": 0, "end": 0,
"end": 0, "name": "endAbsolute",
"raw": "3.63", "start": 0,
"start": 0, "type": "Identifier"
"type": "Literal", },
"type": "Literal", "arg": {
"value": { "commentStart": 0,
"value": 3.63, "elements": [
"suffix": "None" {
"commentStart": 0,
"end": 0,
"raw": "3.63",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 3.63,
"suffix": "None"
}
},
{
"commentStart": 0,
"end": 0,
"raw": "1.6",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 1.6,
"suffix": "None"
}
} }
}, ],
{ "end": 0,
"commentStart": 0, "start": 0,
"end": 0, "type": "ArrayExpression",
"raw": "1.6", "type": "ArrayExpression"
"start": 0, }
"type": "Literal",
"type": "Literal",
"value": {
"value": 1.6,
"suffix": "None"
}
}
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
} }
], ],
"callee": { "callee": {
@ -9061,7 +9055,7 @@ description: Result of parsing french-press.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "tangentialArcTo", "name": "tangentialArc",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -9072,50 +9066,54 @@ description: Result of parsing french-press.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
}, },
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"elements": [ "label": {
{ "commentStart": 0,
"commentStart": 0, "end": 0,
"end": 0, "name": "endAbsolute",
"raw": "3.56", "start": 0,
"start": 0, "type": "Identifier"
"type": "Literal", },
"type": "Literal", "arg": {
"value": { "commentStart": 0,
"value": 3.56, "elements": [
"suffix": "None" {
"commentStart": 0,
"end": 0,
"raw": "3.56",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 3.56,
"suffix": "None"
}
},
{
"commentStart": 0,
"end": 0,
"raw": "5.15",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 5.15,
"suffix": "None"
}
} }
}, ],
{ "end": 0,
"commentStart": 0, "start": 0,
"end": 0, "type": "ArrayExpression",
"raw": "5.15", "type": "ArrayExpression"
"start": 0, }
"type": "Literal",
"type": "Literal",
"value": {
"value": 5.15,
"suffix": "None"
}
}
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
} }
], ],
"callee": { "callee": {
@ -9125,7 +9123,7 @@ description: Result of parsing french-press.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "tangentialArcTo", "name": "tangentialArc",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -9136,50 +9134,54 @@ description: Result of parsing french-press.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
}, },
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"elements": [ "label": {
{ "commentStart": 0,
"commentStart": 0, "end": 0,
"end": 0, "name": "endAbsolute",
"raw": "2.72", "start": 0,
"start": 0, "type": "Identifier"
"type": "Literal", },
"type": "Literal", "arg": {
"value": { "commentStart": 0,
"value": 2.72, "elements": [
"suffix": "None" {
"commentStart": 0,
"end": 0,
"raw": "2.72",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 2.72,
"suffix": "None"
}
},
{
"commentStart": 0,
"end": 0,
"raw": "5.88",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 5.88,
"suffix": "None"
}
} }
}, ],
{ "end": 0,
"commentStart": 0, "start": 0,
"end": 0, "type": "ArrayExpression",
"raw": "5.88", "type": "ArrayExpression"
"start": 0, }
"type": "Literal",
"type": "Literal",
"value": {
"value": 5.88,
"suffix": "None"
}
}
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
} }
], ],
"callee": { "callee": {
@ -9189,7 +9191,7 @@ description: Result of parsing french-press.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "tangentialArcTo", "name": "tangentialArc",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -9200,8 +9202,9 @@ description: Result of parsing french-press.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
}, },
{ {
"arguments": [ "arguments": [

View File

@ -10,30 +10,30 @@ flowchart LR
end end
subgraph path24 [Path] subgraph path24 [Path]
24["Path<br>[859, 913, 0]"] 24["Path<br>[859, 913, 0]"]
25["Segment<br>[921, 969, 0]"] 25["Segment<br>[921, 962, 0]"]
26["Segment<br>[977, 1009, 0]"] 26["Segment<br>[970, 1002, 0]"]
27["Segment<br>[1017, 1065, 0]"] 27["Segment<br>[1010, 1051, 0]"]
28["Segment<br>[1073, 1098, 0]"] 28["Segment<br>[1059, 1084, 0]"]
29["Segment<br>[1106, 1155, 0]"] 29["Segment<br>[1092, 1134, 0]"]
30["Segment<br>[1163, 1196, 0]"] 30["Segment<br>[1142, 1175, 0]"]
31["Segment<br>[1204, 1253, 0]"] 31["Segment<br>[1183, 1225, 0]"]
32["Segment<br>[1261, 1268, 0]"] 32["Segment<br>[1233, 1240, 0]"]
33[Solid2d] 33[Solid2d]
end end
subgraph path62 [Path] subgraph path62 [Path]
62["Path<br>[1581, 1624, 0]"] 62["Path<br>[1553, 1596, 0]"]
63["Segment<br>[1630, 1663, 0]"] 63["Segment<br>[1602, 1635, 0]"]
64["Segment<br>[1669, 1718, 0]"] 64["Segment<br>[1641, 1683, 0]"]
65["Segment<br>[1724, 1768, 0]"] 65["Segment<br>[1689, 1733, 0]"]
66["Segment<br>[1774, 1781, 0]"] 66["Segment<br>[1739, 1746, 0]"]
67[Solid2d] 67[Solid2d]
end end
subgraph path84 [Path] subgraph path84 [Path]
84["Path<br>[1916, 1958, 0]"] 84["Path<br>[1881, 1923, 0]"]
85["Segment<br>[1964, 1998, 0]"] 85["Segment<br>[1929, 1963, 0]"]
86["Segment<br>[2004, 2054, 0]"] 86["Segment<br>[1969, 2012, 0]"]
87["Segment<br>[2060, 2103, 0]"] 87["Segment<br>[2018, 2061, 0]"]
88["Segment<br>[2109, 2116, 0]"] 88["Segment<br>[2067, 2074, 0]"]
89[Solid2d] 89[Solid2d]
end end
1["Plane<br>[562, 579, 0]"] 1["Plane<br>[562, 579, 0]"]
@ -53,7 +53,7 @@ flowchart LR
21["SweepEdge Opposite"] 21["SweepEdge Opposite"]
22["SweepEdge Adjacent"] 22["SweepEdge Adjacent"]
23["Plane<br>[834, 851, 0]"] 23["Plane<br>[834, 851, 0]"]
34["Sweep Extrusion<br>[1276, 1299, 0]"] 34["Sweep Extrusion<br>[1248, 1271, 0]"]
35[Wall] 35[Wall]
36[Wall] 36[Wall]
37[Wall] 37[Wall]
@ -80,8 +80,8 @@ flowchart LR
58["SweepEdge Adjacent"] 58["SweepEdge Adjacent"]
59["SweepEdge Opposite"] 59["SweepEdge Opposite"]
60["SweepEdge Adjacent"] 60["SweepEdge Adjacent"]
61["Plane<br>[1558, 1575, 0]"] 61["Plane<br>[1530, 1547, 0]"]
68["Sweep Extrusion<br>[1787, 1810, 0]"] 68["Sweep Extrusion<br>[1752, 1775, 0]"]
69[Wall] 69[Wall]
70[Wall] 70[Wall]
71[Wall] 71[Wall]
@ -96,8 +96,8 @@ flowchart LR
80["SweepEdge Adjacent"] 80["SweepEdge Adjacent"]
81["SweepEdge Opposite"] 81["SweepEdge Opposite"]
82["SweepEdge Adjacent"] 82["SweepEdge Adjacent"]
83["Plane<br>[1893, 1910, 0]"] 83["Plane<br>[1858, 1875, 0]"]
90["Sweep Extrusion<br>[2122, 2145, 0]"] 90["Sweep Extrusion<br>[2080, 2103, 0]"]
91[Wall] 91[Wall]
92[Wall] 92[Wall]
93[Wall] 93[Wall]

View File

@ -852,44 +852,47 @@ description: Result of parsing gear-rack.kcl
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"elements": [ "label": {
{ "commentStart": 0,
"commentStart": 0, "end": 0,
"end": 0, "name": "end",
"raw": "0.157636", "start": 0,
"start": 0, "type": "Identifier"
"type": "Literal", },
"type": "Literal", "arg": {
"value": { "commentStart": 0,
"value": 0.157636, "elements": [
"suffix": "None" {
"commentStart": 0,
"end": 0,
"raw": "0.157636",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.157636,
"suffix": "None"
}
},
{
"commentStart": 0,
"end": 0,
"raw": "0.110378",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.110378,
"suffix": "None"
}
} }
}, ],
{ "end": 0,
"commentStart": 0, "start": 0,
"end": 0, "type": "ArrayExpression",
"raw": "0.110378", "type": "ArrayExpression"
"start": 0, }
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.110378,
"suffix": "None"
}
}
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
} }
], ],
"callee": { "callee": {
@ -899,7 +902,7 @@ description: Result of parsing gear-rack.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "tangentialArcToRelative", "name": "tangentialArc",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -910,8 +913,9 @@ description: Result of parsing gear-rack.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
}, },
{ {
"arguments": [ "arguments": [
@ -984,44 +988,47 @@ description: Result of parsing gear-rack.kcl
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"elements": [ "label": {
{ "commentStart": 0,
"commentStart": 0, "end": 0,
"end": 0, "name": "end",
"raw": "0.157636", "start": 0,
"start": 0, "type": "Identifier"
"type": "Literal", },
"type": "Literal", "arg": {
"value": { "commentStart": 0,
"value": 0.157636, "elements": [
"suffix": "None" {
"commentStart": 0,
"end": 0,
"raw": "0.157636",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.157636,
"suffix": "None"
}
},
{
"commentStart": 0,
"end": 0,
"raw": "0.110378",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.110378,
"suffix": "None"
}
} }
}, ],
{ "end": 0,
"commentStart": 0, "start": 0,
"end": 0, "type": "ArrayExpression",
"raw": "0.110378", "type": "ArrayExpression"
"start": 0, }
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.110378,
"suffix": "None"
}
}
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
} }
], ],
"callee": { "callee": {
@ -1031,7 +1038,7 @@ description: Result of parsing gear-rack.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "tangentialArcToRelative", "name": "tangentialArc",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -1042,8 +1049,9 @@ description: Result of parsing gear-rack.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
}, },
{ {
"arguments": [ "arguments": [
@ -1116,52 +1124,55 @@ description: Result of parsing gear-rack.kcl
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"elements": [ "label": {
{ "commentStart": 0,
"commentStart": 0, "end": 0,
"end": 0, "name": "end",
"raw": "0.157636", "start": 0,
"start": 0, "type": "Identifier"
"type": "Literal", },
"type": "Literal", "arg": {
"value": { "commentStart": 0,
"value": 0.157636, "elements": [
"suffix": "None" {
}
},
{
"argument": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "0.110378", "raw": "0.157636",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 0.110378, "value": 0.157636,
"suffix": "None" "suffix": "None"
} }
}, },
"commentStart": 0, {
"end": 0, "argument": {
"operator": "-", "commentStart": 0,
"start": 0, "end": 0,
"type": "UnaryExpression", "raw": "0.110378",
"type": "UnaryExpression" "start": 0,
} "type": "Literal",
], "type": "Literal",
"end": 0, "value": {
"start": 0, "value": 0.110378,
"type": "ArrayExpression", "suffix": "None"
"type": "ArrayExpression" }
}, },
{ "commentStart": 0,
"commentStart": 0, "end": 0,
"end": 0, "operator": "-",
"start": 0, "start": 0,
"type": "PipeSubstitution", "type": "UnaryExpression",
"type": "PipeSubstitution" "type": "UnaryExpression"
}
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
}
} }
], ],
"callee": { "callee": {
@ -1171,7 +1182,7 @@ description: Result of parsing gear-rack.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "tangentialArcToRelative", "name": "tangentialArc",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -1182,8 +1193,9 @@ description: Result of parsing gear-rack.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
}, },
{ {
"arguments": [ "arguments": [
@ -1264,52 +1276,55 @@ description: Result of parsing gear-rack.kcl
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"elements": [ "label": {
{ "commentStart": 0,
"commentStart": 0, "end": 0,
"end": 0, "name": "end",
"raw": "0.157636", "start": 0,
"start": 0, "type": "Identifier"
"type": "Literal", },
"type": "Literal", "arg": {
"value": { "commentStart": 0,
"value": 0.157636, "elements": [
"suffix": "None" {
}
},
{
"argument": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "0.110378", "raw": "0.157636",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 0.110378, "value": 0.157636,
"suffix": "None" "suffix": "None"
} }
}, },
"commentStart": 0, {
"end": 0, "argument": {
"operator": "-", "commentStart": 0,
"start": 0, "end": 0,
"type": "UnaryExpression", "raw": "0.110378",
"type": "UnaryExpression" "start": 0,
} "type": "Literal",
], "type": "Literal",
"end": 0, "value": {
"start": 0, "value": 0.110378,
"type": "ArrayExpression", "suffix": "None"
"type": "ArrayExpression" }
}, },
{ "commentStart": 0,
"commentStart": 0, "end": 0,
"end": 0, "operator": "-",
"start": 0, "start": 0,
"type": "PipeSubstitution", "type": "UnaryExpression",
"type": "PipeSubstitution" "type": "UnaryExpression"
}
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
}
} }
], ],
"callee": { "callee": {
@ -1319,7 +1334,7 @@ description: Result of parsing gear-rack.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "tangentialArcToRelative", "name": "tangentialArc",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -1330,8 +1345,9 @@ description: Result of parsing gear-rack.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
}, },
{ {
"arguments": [], "arguments": [],
@ -1896,52 +1912,55 @@ description: Result of parsing gear-rack.kcl
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"elements": [ "label": {
{ "commentStart": 0,
"commentStart": 0, "end": 0,
"end": 0, "name": "end",
"raw": "0.157636", "start": 0,
"start": 0, "type": "Identifier"
"type": "Literal", },
"type": "Literal", "arg": {
"value": { "commentStart": 0,
"value": 0.157636, "elements": [
"suffix": "None" {
}
},
{
"argument": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "0.110378", "raw": "0.157636",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 0.110378, "value": 0.157636,
"suffix": "None" "suffix": "None"
} }
}, },
"commentStart": 0, {
"end": 0, "argument": {
"operator": "-", "commentStart": 0,
"start": 0, "end": 0,
"type": "UnaryExpression", "raw": "0.110378",
"type": "UnaryExpression" "start": 0,
} "type": "Literal",
], "type": "Literal",
"end": 0, "value": {
"start": 0, "value": 0.110378,
"type": "ArrayExpression", "suffix": "None"
"type": "ArrayExpression" }
}, },
{ "commentStart": 0,
"commentStart": 0, "end": 0,
"end": 0, "operator": "-",
"start": 0, "start": 0,
"type": "PipeSubstitution", "type": "UnaryExpression",
"type": "PipeSubstitution" "type": "UnaryExpression"
}
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
}
} }
], ],
"callee": { "callee": {
@ -1951,7 +1970,7 @@ description: Result of parsing gear-rack.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "tangentialArcToRelative", "name": "tangentialArc",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -1962,8 +1981,9 @@ description: Result of parsing gear-rack.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
}, },
{ {
"arguments": [ "arguments": [
@ -2406,60 +2426,63 @@ description: Result of parsing gear-rack.kcl
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"elements": [ "label": {
{ "commentStart": 0,
"argument": { "end": 0,
"name": "end",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"elements": [
{
"argument": {
"commentStart": 0,
"end": 0,
"raw": "0.157636",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.157636,
"suffix": "None"
}
},
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "0.157636", "operator": "-",
"start": 0, "start": 0,
"type": "Literal", "type": "UnaryExpression",
"type": "Literal", "type": "UnaryExpression"
"value": {
"value": 0.157636,
"suffix": "None"
}
}, },
"commentStart": 0, {
"end": 0, "argument": {
"operator": "-", "commentStart": 0,
"start": 0, "end": 0,
"type": "UnaryExpression", "raw": "0.110378",
"type": "UnaryExpression" "start": 0,
}, "type": "Literal",
{ "type": "Literal",
"argument": { "value": {
"value": 0.110378,
"suffix": "None"
}
},
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "0.110378", "operator": "-",
"start": 0, "start": 0,
"type": "Literal", "type": "UnaryExpression",
"type": "Literal", "type": "UnaryExpression"
"value": { }
"value": 0.110378, ],
"suffix": "None" "end": 0,
} "start": 0,
}, "type": "ArrayExpression",
"commentStart": 0, "type": "ArrayExpression"
"end": 0, }
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
}
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
} }
], ],
"callee": { "callee": {
@ -2469,7 +2492,7 @@ description: Result of parsing gear-rack.kcl
"name": { "name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "tangentialArcToRelative", "name": "tangentialArc",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
@ -2480,8 +2503,9 @@ description: Result of parsing gear-rack.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
}, },
{ {
"arguments": [ "arguments": [

View File

@ -57,7 +57,7 @@ description: Operations executed gear-rack.kcl
"name": "tooth", "name": "tooth",
"functionSourceRange": [ "functionSourceRange": [
813, 813,
1322, 1294,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,

View File

@ -5,11 +5,11 @@ flowchart LR
3["Segment<br>[507, 538, 0]"] 3["Segment<br>[507, 538, 0]"]
4["Segment<br>[544, 576, 0]"] 4["Segment<br>[544, 576, 0]"]
5["Segment<br>[582, 632, 0]"] 5["Segment<br>[582, 632, 0]"]
6["Segment<br>[638, 692, 0]"] 6["Segment<br>[638, 684, 0]"]
7["Segment<br>[698, 720, 0]"] 7["Segment<br>[690, 712, 0]"]
end end
1["Plane<br>[439, 457, 0]"] 1["Plane<br>[439, 457, 0]"]
8["Sweep Extrusion<br>[774, 802, 0]"] 8["Sweep Extrusion<br>[766, 794, 0]"]
1 --- 2 1 --- 2
2 --- 3 2 --- 3
2 --- 4 2 --- 4

View File

@ -608,74 +608,52 @@ description: Result of parsing i-beam.kcl
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"end": 0, "label": {
"properties": [ "commentStart": 0,
{ "end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"key": { "name": "rootRadius",
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"start": 0, "start": 0,
"type": "ObjectProperty", "type": "Identifier"
"value": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "rootRadius",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
}, },
{ "path": [],
"commentStart": 0, "start": 0,
"end": 0, "type": "Name",
"key": { "type": "Name"
"commentStart": 0, }
"end": 0,
"name": "offset",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "90",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 90.0,
"suffix": "None"
}
}
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
}, },
{ {
"commentStart": 0, "type": "LabeledArg",
"end": 0, "label": {
"start": 0, "commentStart": 0,
"type": "PipeSubstitution", "end": 0,
"type": "PipeSubstitution" "name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "90",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 90.0,
"suffix": "None"
}
}
} }
], ],
"callee": { "callee": {
@ -696,8 +674,9 @@ description: Result of parsing i-beam.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
}, },
{ {
"arguments": [ "arguments": [

View File

@ -33,325 +33,325 @@ flowchart LR
61["Path<br>[2010, 2069, 0]"] 61["Path<br>[2010, 2069, 0]"]
62["Segment<br>[2077, 2169, 0]"] 62["Segment<br>[2077, 2169, 0]"]
63["Segment<br>[2177, 2251, 0]"] 63["Segment<br>[2177, 2251, 0]"]
64["Segment<br>[2259, 2306, 0]"] 64["Segment<br>[2259, 2298, 0]"]
65["Segment<br>[2314, 2421, 0]"] 65["Segment<br>[2306, 2413, 0]"]
66["Segment<br>[2429, 2476, 0]"] 66["Segment<br>[2421, 2460, 0]"]
67["Segment<br>[2484, 2601, 0]"] 67["Segment<br>[2468, 2585, 0]"]
68["Segment<br>[2609, 2656, 0]"] 68["Segment<br>[2593, 2632, 0]"]
69["Segment<br>[2664, 2749, 0]"] 69["Segment<br>[2640, 2725, 0]"]
70["Segment<br>[2757, 2764, 0]"] 70["Segment<br>[2733, 2740, 0]"]
71[Solid2d] 71[Solid2d]
end end
subgraph path100 [Path] subgraph path100 [Path]
100["Path<br>[2010, 2069, 0]"] 100["Path<br>[2010, 2069, 0]"]
101["Segment<br>[2077, 2169, 0]"] 101["Segment<br>[2077, 2169, 0]"]
102["Segment<br>[2177, 2251, 0]"] 102["Segment<br>[2177, 2251, 0]"]
103["Segment<br>[2259, 2306, 0]"] 103["Segment<br>[2259, 2298, 0]"]
104["Segment<br>[2314, 2421, 0]"] 104["Segment<br>[2306, 2413, 0]"]
105["Segment<br>[2429, 2476, 0]"] 105["Segment<br>[2421, 2460, 0]"]
106["Segment<br>[2484, 2601, 0]"] 106["Segment<br>[2468, 2585, 0]"]
107["Segment<br>[2609, 2656, 0]"] 107["Segment<br>[2593, 2632, 0]"]
108["Segment<br>[2664, 2749, 0]"] 108["Segment<br>[2640, 2725, 0]"]
109["Segment<br>[2757, 2764, 0]"] 109["Segment<br>[2733, 2740, 0]"]
110[Solid2d] 110[Solid2d]
end end
subgraph path139 [Path] subgraph path139 [Path]
139["Path<br>[2010, 2069, 0]"] 139["Path<br>[2010, 2069, 0]"]
140["Segment<br>[2077, 2169, 0]"] 140["Segment<br>[2077, 2169, 0]"]
141["Segment<br>[2177, 2251, 0]"] 141["Segment<br>[2177, 2251, 0]"]
142["Segment<br>[2259, 2306, 0]"] 142["Segment<br>[2259, 2298, 0]"]
143["Segment<br>[2314, 2421, 0]"] 143["Segment<br>[2306, 2413, 0]"]
144["Segment<br>[2429, 2476, 0]"] 144["Segment<br>[2421, 2460, 0]"]
145["Segment<br>[2484, 2601, 0]"] 145["Segment<br>[2468, 2585, 0]"]
146["Segment<br>[2609, 2656, 0]"] 146["Segment<br>[2593, 2632, 0]"]
147["Segment<br>[2664, 2749, 0]"] 147["Segment<br>[2640, 2725, 0]"]
148["Segment<br>[2757, 2764, 0]"] 148["Segment<br>[2733, 2740, 0]"]
149[Solid2d] 149[Solid2d]
end end
subgraph path178 [Path] subgraph path178 [Path]
178["Path<br>[2010, 2069, 0]"] 178["Path<br>[2010, 2069, 0]"]
179["Segment<br>[2077, 2169, 0]"] 179["Segment<br>[2077, 2169, 0]"]
180["Segment<br>[2177, 2251, 0]"] 180["Segment<br>[2177, 2251, 0]"]
181["Segment<br>[2259, 2306, 0]"] 181["Segment<br>[2259, 2298, 0]"]
182["Segment<br>[2314, 2421, 0]"] 182["Segment<br>[2306, 2413, 0]"]
183["Segment<br>[2429, 2476, 0]"] 183["Segment<br>[2421, 2460, 0]"]
184["Segment<br>[2484, 2601, 0]"] 184["Segment<br>[2468, 2585, 0]"]
185["Segment<br>[2609, 2656, 0]"] 185["Segment<br>[2593, 2632, 0]"]
186["Segment<br>[2664, 2749, 0]"] 186["Segment<br>[2640, 2725, 0]"]
187["Segment<br>[2757, 2764, 0]"] 187["Segment<br>[2733, 2740, 0]"]
188[Solid2d] 188[Solid2d]
end end
subgraph path217 [Path] subgraph path217 [Path]
217["Path<br>[2010, 2069, 0]"] 217["Path<br>[2010, 2069, 0]"]
218["Segment<br>[2077, 2169, 0]"] 218["Segment<br>[2077, 2169, 0]"]
219["Segment<br>[2177, 2251, 0]"] 219["Segment<br>[2177, 2251, 0]"]
220["Segment<br>[2259, 2306, 0]"] 220["Segment<br>[2259, 2298, 0]"]
221["Segment<br>[2314, 2421, 0]"] 221["Segment<br>[2306, 2413, 0]"]
222["Segment<br>[2429, 2476, 0]"] 222["Segment<br>[2421, 2460, 0]"]
223["Segment<br>[2484, 2601, 0]"] 223["Segment<br>[2468, 2585, 0]"]
224["Segment<br>[2609, 2656, 0]"] 224["Segment<br>[2593, 2632, 0]"]
225["Segment<br>[2664, 2749, 0]"] 225["Segment<br>[2640, 2725, 0]"]
226["Segment<br>[2757, 2764, 0]"] 226["Segment<br>[2733, 2740, 0]"]
227[Solid2d] 227[Solid2d]
end end
subgraph path256 [Path] subgraph path256 [Path]
256["Path<br>[2010, 2069, 0]"] 256["Path<br>[2010, 2069, 0]"]
257["Segment<br>[2077, 2169, 0]"] 257["Segment<br>[2077, 2169, 0]"]
258["Segment<br>[2177, 2251, 0]"] 258["Segment<br>[2177, 2251, 0]"]
259["Segment<br>[2259, 2306, 0]"] 259["Segment<br>[2259, 2298, 0]"]
260["Segment<br>[2314, 2421, 0]"] 260["Segment<br>[2306, 2413, 0]"]
261["Segment<br>[2429, 2476, 0]"] 261["Segment<br>[2421, 2460, 0]"]
262["Segment<br>[2484, 2601, 0]"] 262["Segment<br>[2468, 2585, 0]"]
263["Segment<br>[2609, 2656, 0]"] 263["Segment<br>[2593, 2632, 0]"]
264["Segment<br>[2664, 2749, 0]"] 264["Segment<br>[2640, 2725, 0]"]
265["Segment<br>[2757, 2764, 0]"] 265["Segment<br>[2733, 2740, 0]"]
266[Solid2d] 266[Solid2d]
end end
subgraph path295 [Path] subgraph path295 [Path]
295["Path<br>[2010, 2069, 0]"] 295["Path<br>[2010, 2069, 0]"]
296["Segment<br>[2077, 2169, 0]"] 296["Segment<br>[2077, 2169, 0]"]
297["Segment<br>[2177, 2251, 0]"] 297["Segment<br>[2177, 2251, 0]"]
298["Segment<br>[2259, 2306, 0]"] 298["Segment<br>[2259, 2298, 0]"]
299["Segment<br>[2314, 2421, 0]"] 299["Segment<br>[2306, 2413, 0]"]
300["Segment<br>[2429, 2476, 0]"] 300["Segment<br>[2421, 2460, 0]"]
301["Segment<br>[2484, 2601, 0]"] 301["Segment<br>[2468, 2585, 0]"]
302["Segment<br>[2609, 2656, 0]"] 302["Segment<br>[2593, 2632, 0]"]
303["Segment<br>[2664, 2749, 0]"] 303["Segment<br>[2640, 2725, 0]"]
304["Segment<br>[2757, 2764, 0]"] 304["Segment<br>[2733, 2740, 0]"]
305[Solid2d] 305[Solid2d]
end end
subgraph path334 [Path] subgraph path334 [Path]
334["Path<br>[2010, 2069, 0]"] 334["Path<br>[2010, 2069, 0]"]
335["Segment<br>[2077, 2169, 0]"] 335["Segment<br>[2077, 2169, 0]"]
336["Segment<br>[2177, 2251, 0]"] 336["Segment<br>[2177, 2251, 0]"]
337["Segment<br>[2259, 2306, 0]"] 337["Segment<br>[2259, 2298, 0]"]
338["Segment<br>[2314, 2421, 0]"] 338["Segment<br>[2306, 2413, 0]"]
339["Segment<br>[2429, 2476, 0]"] 339["Segment<br>[2421, 2460, 0]"]
340["Segment<br>[2484, 2601, 0]"] 340["Segment<br>[2468, 2585, 0]"]
341["Segment<br>[2609, 2656, 0]"] 341["Segment<br>[2593, 2632, 0]"]
342["Segment<br>[2664, 2749, 0]"] 342["Segment<br>[2640, 2725, 0]"]
343["Segment<br>[2757, 2764, 0]"] 343["Segment<br>[2733, 2740, 0]"]
344[Solid2d] 344[Solid2d]
end end
subgraph path373 [Path] subgraph path373 [Path]
373["Path<br>[2010, 2069, 0]"] 373["Path<br>[2010, 2069, 0]"]
374["Segment<br>[2077, 2169, 0]"] 374["Segment<br>[2077, 2169, 0]"]
375["Segment<br>[2177, 2251, 0]"] 375["Segment<br>[2177, 2251, 0]"]
376["Segment<br>[2259, 2306, 0]"] 376["Segment<br>[2259, 2298, 0]"]
377["Segment<br>[2314, 2421, 0]"] 377["Segment<br>[2306, 2413, 0]"]
378["Segment<br>[2429, 2476, 0]"] 378["Segment<br>[2421, 2460, 0]"]
379["Segment<br>[2484, 2601, 0]"] 379["Segment<br>[2468, 2585, 0]"]
380["Segment<br>[2609, 2656, 0]"] 380["Segment<br>[2593, 2632, 0]"]
381["Segment<br>[2664, 2749, 0]"] 381["Segment<br>[2640, 2725, 0]"]
382["Segment<br>[2757, 2764, 0]"] 382["Segment<br>[2733, 2740, 0]"]
383[Solid2d] 383[Solid2d]
end end
subgraph path412 [Path] subgraph path412 [Path]
412["Path<br>[2010, 2069, 0]"] 412["Path<br>[2010, 2069, 0]"]
413["Segment<br>[2077, 2169, 0]"] 413["Segment<br>[2077, 2169, 0]"]
414["Segment<br>[2177, 2251, 0]"] 414["Segment<br>[2177, 2251, 0]"]
415["Segment<br>[2259, 2306, 0]"] 415["Segment<br>[2259, 2298, 0]"]
416["Segment<br>[2314, 2421, 0]"] 416["Segment<br>[2306, 2413, 0]"]
417["Segment<br>[2429, 2476, 0]"] 417["Segment<br>[2421, 2460, 0]"]
418["Segment<br>[2484, 2601, 0]"] 418["Segment<br>[2468, 2585, 0]"]
419["Segment<br>[2609, 2656, 0]"] 419["Segment<br>[2593, 2632, 0]"]
420["Segment<br>[2664, 2749, 0]"] 420["Segment<br>[2640, 2725, 0]"]
421["Segment<br>[2757, 2764, 0]"] 421["Segment<br>[2733, 2740, 0]"]
422[Solid2d] 422[Solid2d]
end end
subgraph path451 [Path] subgraph path451 [Path]
451["Path<br>[2010, 2069, 0]"] 451["Path<br>[2010, 2069, 0]"]
452["Segment<br>[2077, 2169, 0]"] 452["Segment<br>[2077, 2169, 0]"]
453["Segment<br>[2177, 2251, 0]"] 453["Segment<br>[2177, 2251, 0]"]
454["Segment<br>[2259, 2306, 0]"] 454["Segment<br>[2259, 2298, 0]"]
455["Segment<br>[2314, 2421, 0]"] 455["Segment<br>[2306, 2413, 0]"]
456["Segment<br>[2429, 2476, 0]"] 456["Segment<br>[2421, 2460, 0]"]
457["Segment<br>[2484, 2601, 0]"] 457["Segment<br>[2468, 2585, 0]"]
458["Segment<br>[2609, 2656, 0]"] 458["Segment<br>[2593, 2632, 0]"]
459["Segment<br>[2664, 2749, 0]"] 459["Segment<br>[2640, 2725, 0]"]
460["Segment<br>[2757, 2764, 0]"] 460["Segment<br>[2733, 2740, 0]"]
461[Solid2d] 461[Solid2d]
end end
subgraph path490 [Path] subgraph path490 [Path]
490["Path<br>[2010, 2069, 0]"] 490["Path<br>[2010, 2069, 0]"]
491["Segment<br>[2077, 2169, 0]"] 491["Segment<br>[2077, 2169, 0]"]
492["Segment<br>[2177, 2251, 0]"] 492["Segment<br>[2177, 2251, 0]"]
493["Segment<br>[2259, 2306, 0]"] 493["Segment<br>[2259, 2298, 0]"]
494["Segment<br>[2314, 2421, 0]"] 494["Segment<br>[2306, 2413, 0]"]
495["Segment<br>[2429, 2476, 0]"] 495["Segment<br>[2421, 2460, 0]"]
496["Segment<br>[2484, 2601, 0]"] 496["Segment<br>[2468, 2585, 0]"]
497["Segment<br>[2609, 2656, 0]"] 497["Segment<br>[2593, 2632, 0]"]
498["Segment<br>[2664, 2749, 0]"] 498["Segment<br>[2640, 2725, 0]"]
499["Segment<br>[2757, 2764, 0]"] 499["Segment<br>[2733, 2740, 0]"]
500[Solid2d] 500[Solid2d]
end end
subgraph path529 [Path] subgraph path529 [Path]
529["Path<br>[2010, 2069, 0]"] 529["Path<br>[2010, 2069, 0]"]
530["Segment<br>[2077, 2169, 0]"] 530["Segment<br>[2077, 2169, 0]"]
531["Segment<br>[2177, 2251, 0]"] 531["Segment<br>[2177, 2251, 0]"]
532["Segment<br>[2259, 2306, 0]"] 532["Segment<br>[2259, 2298, 0]"]
533["Segment<br>[2314, 2421, 0]"] 533["Segment<br>[2306, 2413, 0]"]
534["Segment<br>[2429, 2476, 0]"] 534["Segment<br>[2421, 2460, 0]"]
535["Segment<br>[2484, 2601, 0]"] 535["Segment<br>[2468, 2585, 0]"]
536["Segment<br>[2609, 2656, 0]"] 536["Segment<br>[2593, 2632, 0]"]
537["Segment<br>[2664, 2749, 0]"] 537["Segment<br>[2640, 2725, 0]"]
538["Segment<br>[2757, 2764, 0]"] 538["Segment<br>[2733, 2740, 0]"]
539[Solid2d] 539[Solid2d]
end end
subgraph path568 [Path] subgraph path568 [Path]
568["Path<br>[2010, 2069, 0]"] 568["Path<br>[2010, 2069, 0]"]
569["Segment<br>[2077, 2169, 0]"] 569["Segment<br>[2077, 2169, 0]"]
570["Segment<br>[2177, 2251, 0]"] 570["Segment<br>[2177, 2251, 0]"]
571["Segment<br>[2259, 2306, 0]"] 571["Segment<br>[2259, 2298, 0]"]
572["Segment<br>[2314, 2421, 0]"] 572["Segment<br>[2306, 2413, 0]"]
573["Segment<br>[2429, 2476, 0]"] 573["Segment<br>[2421, 2460, 0]"]
574["Segment<br>[2484, 2601, 0]"] 574["Segment<br>[2468, 2585, 0]"]
575["Segment<br>[2609, 2656, 0]"] 575["Segment<br>[2593, 2632, 0]"]
576["Segment<br>[2664, 2749, 0]"] 576["Segment<br>[2640, 2725, 0]"]
577["Segment<br>[2757, 2764, 0]"] 577["Segment<br>[2733, 2740, 0]"]
578[Solid2d] 578[Solid2d]
end end
subgraph path607 [Path] subgraph path607 [Path]
607["Path<br>[2010, 2069, 0]"] 607["Path<br>[2010, 2069, 0]"]
608["Segment<br>[2077, 2169, 0]"] 608["Segment<br>[2077, 2169, 0]"]
609["Segment<br>[2177, 2251, 0]"] 609["Segment<br>[2177, 2251, 0]"]
610["Segment<br>[2259, 2306, 0]"] 610["Segment<br>[2259, 2298, 0]"]
611["Segment<br>[2314, 2421, 0]"] 611["Segment<br>[2306, 2413, 0]"]
612["Segment<br>[2429, 2476, 0]"] 612["Segment<br>[2421, 2460, 0]"]
613["Segment<br>[2484, 2601, 0]"] 613["Segment<br>[2468, 2585, 0]"]
614["Segment<br>[2609, 2656, 0]"] 614["Segment<br>[2593, 2632, 0]"]
615["Segment<br>[2664, 2749, 0]"] 615["Segment<br>[2640, 2725, 0]"]
616["Segment<br>[2757, 2764, 0]"] 616["Segment<br>[2733, 2740, 0]"]
617[Solid2d] 617[Solid2d]
end end
subgraph path646 [Path] subgraph path646 [Path]
646["Path<br>[2010, 2069, 0]"] 646["Path<br>[2010, 2069, 0]"]
647["Segment<br>[2077, 2169, 0]"] 647["Segment<br>[2077, 2169, 0]"]
648["Segment<br>[2177, 2251, 0]"] 648["Segment<br>[2177, 2251, 0]"]
649["Segment<br>[2259, 2306, 0]"] 649["Segment<br>[2259, 2298, 0]"]
650["Segment<br>[2314, 2421, 0]"] 650["Segment<br>[2306, 2413, 0]"]
651["Segment<br>[2429, 2476, 0]"] 651["Segment<br>[2421, 2460, 0]"]
652["Segment<br>[2484, 2601, 0]"] 652["Segment<br>[2468, 2585, 0]"]
653["Segment<br>[2609, 2656, 0]"] 653["Segment<br>[2593, 2632, 0]"]
654["Segment<br>[2664, 2749, 0]"] 654["Segment<br>[2640, 2725, 0]"]
655["Segment<br>[2757, 2764, 0]"] 655["Segment<br>[2733, 2740, 0]"]
656[Solid2d] 656[Solid2d]
end end
subgraph path685 [Path] subgraph path685 [Path]
685["Path<br>[2010, 2069, 0]"] 685["Path<br>[2010, 2069, 0]"]
686["Segment<br>[2077, 2169, 0]"] 686["Segment<br>[2077, 2169, 0]"]
687["Segment<br>[2177, 2251, 0]"] 687["Segment<br>[2177, 2251, 0]"]
688["Segment<br>[2259, 2306, 0]"] 688["Segment<br>[2259, 2298, 0]"]
689["Segment<br>[2314, 2421, 0]"] 689["Segment<br>[2306, 2413, 0]"]
690["Segment<br>[2429, 2476, 0]"] 690["Segment<br>[2421, 2460, 0]"]
691["Segment<br>[2484, 2601, 0]"] 691["Segment<br>[2468, 2585, 0]"]
692["Segment<br>[2609, 2656, 0]"] 692["Segment<br>[2593, 2632, 0]"]
693["Segment<br>[2664, 2749, 0]"] 693["Segment<br>[2640, 2725, 0]"]
694["Segment<br>[2757, 2764, 0]"] 694["Segment<br>[2733, 2740, 0]"]
695[Solid2d] 695[Solid2d]
end end
subgraph path724 [Path] subgraph path724 [Path]
724["Path<br>[2010, 2069, 0]"] 724["Path<br>[2010, 2069, 0]"]
725["Segment<br>[2077, 2169, 0]"] 725["Segment<br>[2077, 2169, 0]"]
726["Segment<br>[2177, 2251, 0]"] 726["Segment<br>[2177, 2251, 0]"]
727["Segment<br>[2259, 2306, 0]"] 727["Segment<br>[2259, 2298, 0]"]
728["Segment<br>[2314, 2421, 0]"] 728["Segment<br>[2306, 2413, 0]"]
729["Segment<br>[2429, 2476, 0]"] 729["Segment<br>[2421, 2460, 0]"]
730["Segment<br>[2484, 2601, 0]"] 730["Segment<br>[2468, 2585, 0]"]
731["Segment<br>[2609, 2656, 0]"] 731["Segment<br>[2593, 2632, 0]"]
732["Segment<br>[2664, 2749, 0]"] 732["Segment<br>[2640, 2725, 0]"]
733["Segment<br>[2757, 2764, 0]"] 733["Segment<br>[2733, 2740, 0]"]
734[Solid2d] 734[Solid2d]
end end
subgraph path763 [Path] subgraph path763 [Path]
763["Path<br>[2010, 2069, 0]"] 763["Path<br>[2010, 2069, 0]"]
764["Segment<br>[2077, 2169, 0]"] 764["Segment<br>[2077, 2169, 0]"]
765["Segment<br>[2177, 2251, 0]"] 765["Segment<br>[2177, 2251, 0]"]
766["Segment<br>[2259, 2306, 0]"] 766["Segment<br>[2259, 2298, 0]"]
767["Segment<br>[2314, 2421, 0]"] 767["Segment<br>[2306, 2413, 0]"]
768["Segment<br>[2429, 2476, 0]"] 768["Segment<br>[2421, 2460, 0]"]
769["Segment<br>[2484, 2601, 0]"] 769["Segment<br>[2468, 2585, 0]"]
770["Segment<br>[2609, 2656, 0]"] 770["Segment<br>[2593, 2632, 0]"]
771["Segment<br>[2664, 2749, 0]"] 771["Segment<br>[2640, 2725, 0]"]
772["Segment<br>[2757, 2764, 0]"] 772["Segment<br>[2733, 2740, 0]"]
773[Solid2d] 773[Solid2d]
end end
subgraph path802 [Path] subgraph path802 [Path]
802["Path<br>[2010, 2069, 0]"] 802["Path<br>[2010, 2069, 0]"]
803["Segment<br>[2077, 2169, 0]"] 803["Segment<br>[2077, 2169, 0]"]
804["Segment<br>[2177, 2251, 0]"] 804["Segment<br>[2177, 2251, 0]"]
805["Segment<br>[2259, 2306, 0]"] 805["Segment<br>[2259, 2298, 0]"]
806["Segment<br>[2314, 2421, 0]"] 806["Segment<br>[2306, 2413, 0]"]
807["Segment<br>[2429, 2476, 0]"] 807["Segment<br>[2421, 2460, 0]"]
808["Segment<br>[2484, 2601, 0]"] 808["Segment<br>[2468, 2585, 0]"]
809["Segment<br>[2609, 2656, 0]"] 809["Segment<br>[2593, 2632, 0]"]
810["Segment<br>[2664, 2749, 0]"] 810["Segment<br>[2640, 2725, 0]"]
811["Segment<br>[2757, 2764, 0]"] 811["Segment<br>[2733, 2740, 0]"]
812[Solid2d] 812[Solid2d]
end end
subgraph path841 [Path] subgraph path841 [Path]
841["Path<br>[2010, 2069, 0]"] 841["Path<br>[2010, 2069, 0]"]
842["Segment<br>[2077, 2169, 0]"] 842["Segment<br>[2077, 2169, 0]"]
843["Segment<br>[2177, 2251, 0]"] 843["Segment<br>[2177, 2251, 0]"]
844["Segment<br>[2259, 2306, 0]"] 844["Segment<br>[2259, 2298, 0]"]
845["Segment<br>[2314, 2421, 0]"] 845["Segment<br>[2306, 2413, 0]"]
846["Segment<br>[2429, 2476, 0]"] 846["Segment<br>[2421, 2460, 0]"]
847["Segment<br>[2484, 2601, 0]"] 847["Segment<br>[2468, 2585, 0]"]
848["Segment<br>[2609, 2656, 0]"] 848["Segment<br>[2593, 2632, 0]"]
849["Segment<br>[2664, 2749, 0]"] 849["Segment<br>[2640, 2725, 0]"]
850["Segment<br>[2757, 2764, 0]"] 850["Segment<br>[2733, 2740, 0]"]
851[Solid2d] 851[Solid2d]
end end
subgraph path880 [Path] subgraph path880 [Path]
880["Path<br>[5020, 5107, 0]"] 880["Path<br>[4996, 5083, 0]"]
881["Segment<br>[5115, 5144, 0]"] 881["Segment<br>[5091, 5120, 0]"]
882["Segment<br>[5152, 5180, 0]"] 882["Segment<br>[5128, 5156, 0]"]
883["Segment<br>[5188, 5266, 0]"] 883["Segment<br>[5164, 5242, 0]"]
884["Segment<br>[5274, 5321, 0]"] 884["Segment<br>[5250, 5297, 0]"]
885["Segment<br>[5329, 5357, 0]"] 885["Segment<br>[5305, 5333, 0]"]
886["Segment<br>[5365, 5394, 0]"] 886["Segment<br>[5341, 5370, 0]"]
887["Segment<br>[5402, 5431, 0]"] 887["Segment<br>[5378, 5407, 0]"]
888["Segment<br>[5439, 5505, 0]"] 888["Segment<br>[5415, 5481, 0]"]
889["Segment<br>[5513, 5541, 0]"] 889["Segment<br>[5489, 5517, 0]"]
890["Segment<br>[5549, 5578, 0]"] 890["Segment<br>[5525, 5554, 0]"]
891["Segment<br>[5586, 5648, 0]"] 891["Segment<br>[5562, 5624, 0]"]
892["Segment<br>[5656, 5684, 0]"] 892["Segment<br>[5632, 5660, 0]"]
893["Segment<br>[5692, 5726, 0]"] 893["Segment<br>[5668, 5702, 0]"]
894["Segment<br>[5734, 5764, 0]"] 894["Segment<br>[5710, 5740, 0]"]
895["Segment<br>[5772, 5881, 0]"] 895["Segment<br>[5748, 5857, 0]"]
896["Segment<br>[5889, 5896, 0]"] 896["Segment<br>[5865, 5872, 0]"]
897[Solid2d] 897[Solid2d]
end end
subgraph path950 [Path] subgraph path950 [Path]
950["Path<br>[6096, 6194, 0]"] 950["Path<br>[6072, 6170, 0]"]
951["Segment<br>[6202, 6321, 0]"] 951["Segment<br>[6178, 6297, 0]"]
952["Segment<br>[6329, 6376, 0]"] 952["Segment<br>[6305, 6352, 0]"]
953["Segment<br>[6384, 6505, 0]"] 953["Segment<br>[6360, 6481, 0]"]
954["Segment<br>[6513, 6520, 0]"] 954["Segment<br>[6489, 6496, 0]"]
955[Solid2d] 955[Solid2d]
end end
subgraph path972 [Path] subgraph path972 [Path]
972["Path<br>[6628, 6725, 0]"] 972["Path<br>[6604, 6701, 0]"]
973["Segment<br>[6733, 6852, 0]"] 973["Segment<br>[6709, 6828, 0]"]
974["Segment<br>[6860, 6908, 0]"] 974["Segment<br>[6836, 6884, 0]"]
975["Segment<br>[6916, 7037, 0]"] 975["Segment<br>[6892, 7013, 0]"]
976["Segment<br>[7045, 7052, 0]"] 976["Segment<br>[7021, 7028, 0]"]
977[Solid2d] 977[Solid2d]
end end
subgraph path994 [Path] subgraph path994 [Path]
994["Path<br>[6096, 6194, 0]"] 994["Path<br>[6072, 6170, 0]"]
995["Segment<br>[6202, 6321, 0]"] 995["Segment<br>[6178, 6297, 0]"]
996["Segment<br>[6329, 6376, 0]"] 996["Segment<br>[6305, 6352, 0]"]
997["Segment<br>[6384, 6505, 0]"] 997["Segment<br>[6360, 6481, 0]"]
998["Segment<br>[6513, 6520, 0]"] 998["Segment<br>[6489, 6496, 0]"]
999[Solid2d] 999[Solid2d]
end end
subgraph path1016 [Path] subgraph path1016 [Path]
1016["Path<br>[6628, 6725, 0]"] 1016["Path<br>[6604, 6701, 0]"]
1017["Segment<br>[6733, 6852, 0]"] 1017["Segment<br>[6709, 6828, 0]"]
1018["Segment<br>[6860, 6908, 0]"] 1018["Segment<br>[6836, 6884, 0]"]
1019["Segment<br>[6916, 7037, 0]"] 1019["Segment<br>[6892, 7013, 0]"]
1020["Segment<br>[7045, 7052, 0]"] 1020["Segment<br>[7021, 7028, 0]"]
1021[Solid2d] 1021[Solid2d]
end end
1["Plane<br>[532, 549, 0]"] 1["Plane<br>[532, 549, 0]"]
@ -395,7 +395,7 @@ flowchart LR
58["SweepEdge Opposite"] 58["SweepEdge Opposite"]
59["SweepEdge Adjacent"] 59["SweepEdge Adjacent"]
60["Plane<br>[1971, 1994, 0]"] 60["Plane<br>[1971, 1994, 0]"]
72["Sweep Extrusion<br>[2772, 2798, 0]"] 72["Sweep Extrusion<br>[2748, 2774, 0]"]
73[Wall] 73[Wall]
74[Wall] 74[Wall]
75[Wall] 75[Wall]
@ -423,7 +423,7 @@ flowchart LR
97["SweepEdge Opposite"] 97["SweepEdge Opposite"]
98["SweepEdge Adjacent"] 98["SweepEdge Adjacent"]
99["Plane<br>[1971, 1994, 0]"] 99["Plane<br>[1971, 1994, 0]"]
111["Sweep Extrusion<br>[2772, 2798, 0]"] 111["Sweep Extrusion<br>[2748, 2774, 0]"]
112[Wall] 112[Wall]
113[Wall] 113[Wall]
114[Wall] 114[Wall]
@ -451,7 +451,7 @@ flowchart LR
136["SweepEdge Opposite"] 136["SweepEdge Opposite"]
137["SweepEdge Adjacent"] 137["SweepEdge Adjacent"]
138["Plane<br>[1971, 1994, 0]"] 138["Plane<br>[1971, 1994, 0]"]
150["Sweep Extrusion<br>[2772, 2798, 0]"] 150["Sweep Extrusion<br>[2748, 2774, 0]"]
151[Wall] 151[Wall]
152[Wall] 152[Wall]
153[Wall] 153[Wall]
@ -479,7 +479,7 @@ flowchart LR
175["SweepEdge Opposite"] 175["SweepEdge Opposite"]
176["SweepEdge Adjacent"] 176["SweepEdge Adjacent"]
177["Plane<br>[1971, 1994, 0]"] 177["Plane<br>[1971, 1994, 0]"]
189["Sweep Extrusion<br>[2772, 2798, 0]"] 189["Sweep Extrusion<br>[2748, 2774, 0]"]
190[Wall] 190[Wall]
191[Wall] 191[Wall]
192[Wall] 192[Wall]
@ -507,7 +507,7 @@ flowchart LR
214["SweepEdge Opposite"] 214["SweepEdge Opposite"]
215["SweepEdge Adjacent"] 215["SweepEdge Adjacent"]
216["Plane<br>[1971, 1994, 0]"] 216["Plane<br>[1971, 1994, 0]"]
228["Sweep Extrusion<br>[2772, 2798, 0]"] 228["Sweep Extrusion<br>[2748, 2774, 0]"]
229[Wall] 229[Wall]
230[Wall] 230[Wall]
231[Wall] 231[Wall]
@ -535,7 +535,7 @@ flowchart LR
253["SweepEdge Opposite"] 253["SweepEdge Opposite"]
254["SweepEdge Adjacent"] 254["SweepEdge Adjacent"]
255["Plane<br>[1971, 1994, 0]"] 255["Plane<br>[1971, 1994, 0]"]
267["Sweep Extrusion<br>[2772, 2798, 0]"] 267["Sweep Extrusion<br>[2748, 2774, 0]"]
268[Wall] 268[Wall]
269[Wall] 269[Wall]
270[Wall] 270[Wall]
@ -563,7 +563,7 @@ flowchart LR
292["SweepEdge Opposite"] 292["SweepEdge Opposite"]
293["SweepEdge Adjacent"] 293["SweepEdge Adjacent"]
294["Plane<br>[1971, 1994, 0]"] 294["Plane<br>[1971, 1994, 0]"]
306["Sweep Extrusion<br>[2772, 2798, 0]"] 306["Sweep Extrusion<br>[2748, 2774, 0]"]
307[Wall] 307[Wall]
308[Wall] 308[Wall]
309[Wall] 309[Wall]
@ -591,7 +591,7 @@ flowchart LR
331["SweepEdge Opposite"] 331["SweepEdge Opposite"]
332["SweepEdge Adjacent"] 332["SweepEdge Adjacent"]
333["Plane<br>[1971, 1994, 0]"] 333["Plane<br>[1971, 1994, 0]"]
345["Sweep Extrusion<br>[2772, 2798, 0]"] 345["Sweep Extrusion<br>[2748, 2774, 0]"]
346[Wall] 346[Wall]
347[Wall] 347[Wall]
348[Wall] 348[Wall]
@ -619,7 +619,7 @@ flowchart LR
370["SweepEdge Opposite"] 370["SweepEdge Opposite"]
371["SweepEdge Adjacent"] 371["SweepEdge Adjacent"]
372["Plane<br>[1971, 1994, 0]"] 372["Plane<br>[1971, 1994, 0]"]
384["Sweep Extrusion<br>[2772, 2798, 0]"] 384["Sweep Extrusion<br>[2748, 2774, 0]"]
385[Wall] 385[Wall]
386[Wall] 386[Wall]
387[Wall] 387[Wall]
@ -647,7 +647,7 @@ flowchart LR
409["SweepEdge Opposite"] 409["SweepEdge Opposite"]
410["SweepEdge Adjacent"] 410["SweepEdge Adjacent"]
411["Plane<br>[1971, 1994, 0]"] 411["Plane<br>[1971, 1994, 0]"]
423["Sweep Extrusion<br>[2772, 2798, 0]"] 423["Sweep Extrusion<br>[2748, 2774, 0]"]
424[Wall] 424[Wall]
425[Wall] 425[Wall]
426[Wall] 426[Wall]
@ -675,7 +675,7 @@ flowchart LR
448["SweepEdge Opposite"] 448["SweepEdge Opposite"]
449["SweepEdge Adjacent"] 449["SweepEdge Adjacent"]
450["Plane<br>[1971, 1994, 0]"] 450["Plane<br>[1971, 1994, 0]"]
462["Sweep Extrusion<br>[2772, 2798, 0]"] 462["Sweep Extrusion<br>[2748, 2774, 0]"]
463[Wall] 463[Wall]
464[Wall] 464[Wall]
465[Wall] 465[Wall]
@ -703,7 +703,7 @@ flowchart LR
487["SweepEdge Opposite"] 487["SweepEdge Opposite"]
488["SweepEdge Adjacent"] 488["SweepEdge Adjacent"]
489["Plane<br>[1971, 1994, 0]"] 489["Plane<br>[1971, 1994, 0]"]
501["Sweep Extrusion<br>[2772, 2798, 0]"] 501["Sweep Extrusion<br>[2748, 2774, 0]"]
502[Wall] 502[Wall]
503[Wall] 503[Wall]
504[Wall] 504[Wall]
@ -731,7 +731,7 @@ flowchart LR
526["SweepEdge Opposite"] 526["SweepEdge Opposite"]
527["SweepEdge Adjacent"] 527["SweepEdge Adjacent"]
528["Plane<br>[1971, 1994, 0]"] 528["Plane<br>[1971, 1994, 0]"]
540["Sweep Extrusion<br>[2772, 2798, 0]"] 540["Sweep Extrusion<br>[2748, 2774, 0]"]
541[Wall] 541[Wall]
542[Wall] 542[Wall]
543[Wall] 543[Wall]
@ -759,7 +759,7 @@ flowchart LR
565["SweepEdge Opposite"] 565["SweepEdge Opposite"]
566["SweepEdge Adjacent"] 566["SweepEdge Adjacent"]
567["Plane<br>[1971, 1994, 0]"] 567["Plane<br>[1971, 1994, 0]"]
579["Sweep Extrusion<br>[2772, 2798, 0]"] 579["Sweep Extrusion<br>[2748, 2774, 0]"]
580[Wall] 580[Wall]
581[Wall] 581[Wall]
582[Wall] 582[Wall]
@ -787,7 +787,7 @@ flowchart LR
604["SweepEdge Opposite"] 604["SweepEdge Opposite"]
605["SweepEdge Adjacent"] 605["SweepEdge Adjacent"]
606["Plane<br>[1971, 1994, 0]"] 606["Plane<br>[1971, 1994, 0]"]
618["Sweep Extrusion<br>[2772, 2798, 0]"] 618["Sweep Extrusion<br>[2748, 2774, 0]"]
619[Wall] 619[Wall]
620[Wall] 620[Wall]
621[Wall] 621[Wall]
@ -815,7 +815,7 @@ flowchart LR
643["SweepEdge Opposite"] 643["SweepEdge Opposite"]
644["SweepEdge Adjacent"] 644["SweepEdge Adjacent"]
645["Plane<br>[1971, 1994, 0]"] 645["Plane<br>[1971, 1994, 0]"]
657["Sweep Extrusion<br>[2772, 2798, 0]"] 657["Sweep Extrusion<br>[2748, 2774, 0]"]
658[Wall] 658[Wall]
659[Wall] 659[Wall]
660[Wall] 660[Wall]
@ -843,7 +843,7 @@ flowchart LR
682["SweepEdge Opposite"] 682["SweepEdge Opposite"]
683["SweepEdge Adjacent"] 683["SweepEdge Adjacent"]
684["Plane<br>[1971, 1994, 0]"] 684["Plane<br>[1971, 1994, 0]"]
696["Sweep Extrusion<br>[2772, 2798, 0]"] 696["Sweep Extrusion<br>[2748, 2774, 0]"]
697[Wall] 697[Wall]
698[Wall] 698[Wall]
699[Wall] 699[Wall]
@ -871,7 +871,7 @@ flowchart LR
721["SweepEdge Opposite"] 721["SweepEdge Opposite"]
722["SweepEdge Adjacent"] 722["SweepEdge Adjacent"]
723["Plane<br>[1971, 1994, 0]"] 723["Plane<br>[1971, 1994, 0]"]
735["Sweep Extrusion<br>[2772, 2798, 0]"] 735["Sweep Extrusion<br>[2748, 2774, 0]"]
736[Wall] 736[Wall]
737[Wall] 737[Wall]
738[Wall] 738[Wall]
@ -899,7 +899,7 @@ flowchart LR
760["SweepEdge Opposite"] 760["SweepEdge Opposite"]
761["SweepEdge Adjacent"] 761["SweepEdge Adjacent"]
762["Plane<br>[1971, 1994, 0]"] 762["Plane<br>[1971, 1994, 0]"]
774["Sweep Extrusion<br>[2772, 2798, 0]"] 774["Sweep Extrusion<br>[2748, 2774, 0]"]
775[Wall] 775[Wall]
776[Wall] 776[Wall]
777[Wall] 777[Wall]
@ -927,7 +927,7 @@ flowchart LR
799["SweepEdge Opposite"] 799["SweepEdge Opposite"]
800["SweepEdge Adjacent"] 800["SweepEdge Adjacent"]
801["Plane<br>[1971, 1994, 0]"] 801["Plane<br>[1971, 1994, 0]"]
813["Sweep Extrusion<br>[2772, 2798, 0]"] 813["Sweep Extrusion<br>[2748, 2774, 0]"]
814[Wall] 814[Wall]
815[Wall] 815[Wall]
816[Wall] 816[Wall]
@ -955,7 +955,7 @@ flowchart LR
838["SweepEdge Opposite"] 838["SweepEdge Opposite"]
839["SweepEdge Adjacent"] 839["SweepEdge Adjacent"]
840["Plane<br>[1971, 1994, 0]"] 840["Plane<br>[1971, 1994, 0]"]
852["Sweep Extrusion<br>[2772, 2798, 0]"] 852["Sweep Extrusion<br>[2748, 2774, 0]"]
853[Wall] 853[Wall]
854[Wall] 854[Wall]
855[Wall] 855[Wall]
@ -982,8 +982,8 @@ flowchart LR
876["SweepEdge Adjacent"] 876["SweepEdge Adjacent"]
877["SweepEdge Opposite"] 877["SweepEdge Opposite"]
878["SweepEdge Adjacent"] 878["SweepEdge Adjacent"]
879["Plane<br>[4989, 5012, 0]"] 879["Plane<br>[4965, 4988, 0]"]
898["Sweep Extrusion<br>[5904, 5928, 0]"] 898["Sweep Extrusion<br>[5880, 5904, 0]"]
899[Wall] 899[Wall]
900[Wall] 900[Wall]
901[Wall] 901[Wall]
@ -1034,8 +1034,8 @@ flowchart LR
946["SweepEdge Adjacent"] 946["SweepEdge Adjacent"]
947["SweepEdge Opposite"] 947["SweepEdge Opposite"]
948["SweepEdge Adjacent"] 948["SweepEdge Adjacent"]
949["Plane<br>[6065, 6088, 0]"] 949["Plane<br>[6041, 6064, 0]"]
956["Sweep Extrusion<br>[6528, 6552, 0]"] 956["Sweep Extrusion<br>[6504, 6528, 0]"]
957[Wall] 957[Wall]
958[Wall] 958[Wall]
959[Wall] 959[Wall]
@ -1050,8 +1050,8 @@ flowchart LR
968["SweepEdge Adjacent"] 968["SweepEdge Adjacent"]
969["SweepEdge Opposite"] 969["SweepEdge Opposite"]
970["SweepEdge Adjacent"] 970["SweepEdge Adjacent"]
971["Plane<br>[6597, 6620, 0]"] 971["Plane<br>[6573, 6596, 0]"]
978["Sweep Extrusion<br>[7060, 7084, 0]"] 978["Sweep Extrusion<br>[7036, 7060, 0]"]
979[Wall] 979[Wall]
980[Wall] 980[Wall]
981[Wall] 981[Wall]
@ -1066,8 +1066,8 @@ flowchart LR
990["SweepEdge Adjacent"] 990["SweepEdge Adjacent"]
991["SweepEdge Opposite"] 991["SweepEdge Opposite"]
992["SweepEdge Adjacent"] 992["SweepEdge Adjacent"]
993["Plane<br>[6065, 6088, 0]"] 993["Plane<br>[6041, 6064, 0]"]
1000["Sweep Extrusion<br>[6528, 6552, 0]"] 1000["Sweep Extrusion<br>[6504, 6528, 0]"]
1001[Wall] 1001[Wall]
1002[Wall] 1002[Wall]
1003[Wall] 1003[Wall]
@ -1082,8 +1082,8 @@ flowchart LR
1012["SweepEdge Adjacent"] 1012["SweepEdge Adjacent"]
1013["SweepEdge Opposite"] 1013["SweepEdge Opposite"]
1014["SweepEdge Adjacent"] 1014["SweepEdge Adjacent"]
1015["Plane<br>[6597, 6620, 0]"] 1015["Plane<br>[6573, 6596, 0]"]
1022["Sweep Extrusion<br>[7060, 7084, 0]"] 1022["Sweep Extrusion<br>[7036, 7060, 0]"]
1023[Wall] 1023[Wall]
1024[Wall] 1024[Wall]
1025[Wall] 1025[Wall]

View File

@ -3106,70 +3106,48 @@ description: Result of parsing keyboard.kcl
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"end": 0, "label": {
"properties": [ "commentStart": 0,
{ "end": 0,
"commentStart": 0, "name": "radius",
"end": 0, "start": 0,
"key": { "type": "Identifier"
"commentStart": 0, },
"end": 0, "arg": {
"name": "radius", "commentStart": 0,
"start": 0, "end": 0,
"type": "Identifier" "raw": "0.1",
}, "start": 0,
"start": 0, "type": "Literal",
"type": "ObjectProperty", "type": "Literal",
"value": { "value": {
"commentStart": 0, "value": 0.1,
"end": 0, "suffix": "None"
"raw": "0.1",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.1,
"suffix": "None"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "offset",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "90",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 90.0,
"suffix": "None"
}
}
} }
], }
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
}, },
{ {
"commentStart": 0, "type": "LabeledArg",
"end": 0, "label": {
"start": 0, "commentStart": 0,
"type": "PipeSubstitution", "end": 0,
"type": "PipeSubstitution" "name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "90",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 90.0,
"suffix": "None"
}
}
} }
], ],
"callee": { "callee": {
@ -3190,8 +3168,9 @@ description: Result of parsing keyboard.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
}, },
{ {
"arguments": [ "arguments": [
@ -3355,70 +3334,48 @@ description: Result of parsing keyboard.kcl
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"end": 0, "label": {
"properties": [ "commentStart": 0,
{ "end": 0,
"commentStart": 0, "name": "radius",
"end": 0, "start": 0,
"key": { "type": "Identifier"
"commentStart": 0, },
"end": 0, "arg": {
"name": "radius", "commentStart": 0,
"start": 0, "end": 0,
"type": "Identifier" "raw": "0.1",
}, "start": 0,
"start": 0, "type": "Literal",
"type": "ObjectProperty", "type": "Literal",
"value": { "value": {
"commentStart": 0, "value": 0.1,
"end": 0, "suffix": "None"
"raw": "0.1",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.1,
"suffix": "None"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "offset",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "90",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 90.0,
"suffix": "None"
}
}
} }
], }
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
}, },
{ {
"commentStart": 0, "type": "LabeledArg",
"end": 0, "label": {
"start": 0, "commentStart": 0,
"type": "PipeSubstitution", "end": 0,
"type": "PipeSubstitution" "name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "90",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 90.0,
"suffix": "None"
}
}
} }
], ],
"callee": { "callee": {
@ -3439,8 +3396,9 @@ description: Result of parsing keyboard.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
}, },
{ {
"arguments": [ "arguments": [
@ -3596,70 +3554,48 @@ description: Result of parsing keyboard.kcl
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 0, "type": "LabeledArg",
"end": 0, "label": {
"properties": [ "commentStart": 0,
{ "end": 0,
"commentStart": 0, "name": "radius",
"end": 0, "start": 0,
"key": { "type": "Identifier"
"commentStart": 0, },
"end": 0, "arg": {
"name": "radius", "commentStart": 0,
"start": 0, "end": 0,
"type": "Identifier" "raw": "0.1",
}, "start": 0,
"start": 0, "type": "Literal",
"type": "ObjectProperty", "type": "Literal",
"value": { "value": {
"commentStart": 0, "value": 0.1,
"end": 0, "suffix": "None"
"raw": "0.1",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.1,
"suffix": "None"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "offset",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "90",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 90.0,
"suffix": "None"
}
}
} }
], }
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
}, },
{ {
"commentStart": 0, "type": "LabeledArg",
"end": 0, "label": {
"start": 0, "commentStart": 0,
"type": "PipeSubstitution", "end": 0,
"type": "PipeSubstitution" "name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "90",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 90.0,
"suffix": "None"
}
}
} }
], ],
"callee": { "callee": {
@ -3680,8 +3616,9 @@ description: Result of parsing keyboard.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpressionKw",
"type": "CallExpression" "type": "CallExpressionKw",
"unlabeled": null
}, },
{ {
"arguments": [ "arguments": [

View File

@ -213,7 +213,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn", "name": "keyFn",
"functionSourceRange": [ "functionSourceRange": [
1904, 1904,
3056, 3032,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -550,7 +550,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn", "name": "keyFn",
"functionSourceRange": [ "functionSourceRange": [
1904, 1904,
3056, 3032,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -887,7 +887,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn", "name": "keyFn",
"functionSourceRange": [ "functionSourceRange": [
1904, 1904,
3056, 3032,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -1224,7 +1224,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn", "name": "keyFn",
"functionSourceRange": [ "functionSourceRange": [
1904, 1904,
3056, 3032,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -1561,7 +1561,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn", "name": "keyFn",
"functionSourceRange": [ "functionSourceRange": [
1904, 1904,
3056, 3032,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -1898,7 +1898,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn", "name": "keyFn",
"functionSourceRange": [ "functionSourceRange": [
1904, 1904,
3056, 3032,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -2235,7 +2235,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn", "name": "keyFn",
"functionSourceRange": [ "functionSourceRange": [
1904, 1904,
3056, 3032,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -2572,7 +2572,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn", "name": "keyFn",
"functionSourceRange": [ "functionSourceRange": [
1904, 1904,
3056, 3032,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -2909,7 +2909,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn", "name": "keyFn",
"functionSourceRange": [ "functionSourceRange": [
1904, 1904,
3056, 3032,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -3246,7 +3246,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn", "name": "keyFn",
"functionSourceRange": [ "functionSourceRange": [
1904, 1904,
3056, 3032,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -3583,7 +3583,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn", "name": "keyFn",
"functionSourceRange": [ "functionSourceRange": [
1904, 1904,
3056, 3032,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -3920,7 +3920,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn", "name": "keyFn",
"functionSourceRange": [ "functionSourceRange": [
1904, 1904,
3056, 3032,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -4257,7 +4257,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn", "name": "keyFn",
"functionSourceRange": [ "functionSourceRange": [
1904, 1904,
3056, 3032,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -4594,7 +4594,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn", "name": "keyFn",
"functionSourceRange": [ "functionSourceRange": [
1904, 1904,
3056, 3032,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -4931,7 +4931,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn", "name": "keyFn",
"functionSourceRange": [ "functionSourceRange": [
1904, 1904,
3056, 3032,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -5268,7 +5268,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn", "name": "keyFn",
"functionSourceRange": [ "functionSourceRange": [
1904, 1904,
3056, 3032,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -5605,7 +5605,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn", "name": "keyFn",
"functionSourceRange": [ "functionSourceRange": [
1904, 1904,
3056, 3032,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -5942,7 +5942,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn", "name": "keyFn",
"functionSourceRange": [ "functionSourceRange": [
1904, 1904,
3056, 3032,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -6279,7 +6279,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn", "name": "keyFn",
"functionSourceRange": [ "functionSourceRange": [
1904, 1904,
3056, 3032,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -6616,7 +6616,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn", "name": "keyFn",
"functionSourceRange": [ "functionSourceRange": [
1904, 1904,
3056, 3032,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -6953,7 +6953,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn", "name": "keyFn",
"functionSourceRange": [ "functionSourceRange": [
1904, 1904,
3056, 3032,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -7307,8 +7307,8 @@ description: Operations executed keyboard.kcl
"type": "FunctionCall", "type": "FunctionCall",
"name": "z", "name": "z",
"functionSourceRange": [ "functionSourceRange": [
4958, 4934,
5978, 5954,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -7549,8 +7549,8 @@ description: Operations executed keyboard.kcl
"type": "FunctionCall", "type": "FunctionCall",
"name": "o", "name": "o",
"functionSourceRange": [ "functionSourceRange": [
6025, 6001,
7134, 7110,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
@ -8015,8 +8015,8 @@ description: Operations executed keyboard.kcl
"type": "FunctionCall", "type": "FunctionCall",
"name": "o", "name": "o",
"functionSourceRange": [ "functionSourceRange": [
6025, 6001,
7134, 7110,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,

View File

@ -36,59 +36,59 @@ flowchart LR
end end
subgraph path118 [Path] subgraph path118 [Path]
118["Path<br>[2063, 2088, 0]"] 118["Path<br>[2063, 2088, 0]"]
119["Segment<br>[2094, 2144, 0]"] 119["Segment<br>[2094, 2136, 0]"]
120["Segment<br>[2150, 2190, 0]"] 120["Segment<br>[2142, 2182, 0]"]
121["Segment<br>[2196, 2203, 0]"] 121["Segment<br>[2188, 2195, 0]"]
122[Solid2d] 122[Solid2d]
end end
subgraph path135 [Path] subgraph path135 [Path]
135["Path<br>[2332, 2357, 0]"] 135["Path<br>[2324, 2349, 0]"]
136["Segment<br>[2363, 2390, 0]"] 136["Segment<br>[2355, 2382, 0]"]
137["Segment<br>[2396, 2430, 0]"] 137["Segment<br>[2388, 2422, 0]"]
138["Segment<br>[2436, 2471, 0]"] 138["Segment<br>[2428, 2463, 0]"]
139["Segment<br>[2477, 2558, 0]"] 139["Segment<br>[2469, 2550, 0]"]
140["Segment<br>[2564, 2593, 0]"] 140["Segment<br>[2556, 2585, 0]"]
141["Segment<br>[2599, 2652, 0]"] 141["Segment<br>[2591, 2644, 0]"]
142["Segment<br>[2658, 2685, 0]"] 142["Segment<br>[2650, 2677, 0]"]
143["Segment<br>[2691, 2720, 0]"] 143["Segment<br>[2683, 2712, 0]"]
144["Segment<br>[2726, 2850, 0]"] 144["Segment<br>[2718, 2851, 0]"]
145["Segment<br>[2856, 2901, 0]"] 145["Segment<br>[2857, 2911, 0]"]
146["Segment<br>[2907, 2929, 0]"] 146["Segment<br>[2917, 2939, 0]"]
147["Segment<br>[2935, 2954, 0]"] 147["Segment<br>[2945, 2964, 0]"]
148[Solid2d] 148[Solid2d]
end end
subgraph path189 [Path] subgraph path189 [Path]
189["Path<br>[3282, 3307, 0]"] 189["Path<br>[3292, 3317, 0]"]
190["Segment<br>[3313, 3340, 0]"] 190["Segment<br>[3323, 3350, 0]"]
191["Segment<br>[3346, 3377, 0]"] 191["Segment<br>[3356, 3387, 0]"]
192["Segment<br>[3383, 3507, 0]"] 192["Segment<br>[3393, 3526, 0]"]
193["Segment<br>[3513, 3558, 0]"] 193["Segment<br>[3532, 3586, 0]"]
194["Segment<br>[3564, 3600, 0]"] 194["Segment<br>[3592, 3628, 0]"]
195["Segment<br>[3606, 3613, 0]"] 195["Segment<br>[3634, 3641, 0]"]
196[Solid2d] 196[Solid2d]
end end
subgraph path218 [Path] subgraph path218 [Path]
218["Path<br>[3701, 3751, 0]"] 218["Path<br>[3729, 3779, 0]"]
219["Segment<br>[3757, 3789, 0]"] 219["Segment<br>[3785, 3817, 0]"]
220["Segment<br>[3795, 3822, 0]"] 220["Segment<br>[3823, 3850, 0]"]
221["Segment<br>[3828, 3850, 0]"] 221["Segment<br>[3856, 3878, 0]"]
222["Segment<br>[3856, 3863, 0]"] 222["Segment<br>[3884, 3891, 0]"]
223[Solid2d] 223[Solid2d]
end end
subgraph path239 [Path] subgraph path239 [Path]
239["Path<br>[3951, 3976, 0]"] 239["Path<br>[3979, 4004, 0]"]
240["Segment<br>[3982, 4016, 0]"] 240["Segment<br>[4010, 4044, 0]"]
241["Segment<br>[4022, 4049, 0]"] 241["Segment<br>[4050, 4077, 0]"]
242["Segment<br>[4055, 4077, 0]"] 242["Segment<br>[4083, 4105, 0]"]
243["Segment<br>[4083, 4090, 0]"] 243["Segment<br>[4111, 4118, 0]"]
244[Solid2d] 244[Solid2d]
end end
subgraph path261 [Path] subgraph path261 [Path]
261["Path<br>[4450, 4499, 0]"] 261["Path<br>[4478, 4527, 0]"]
262["Segment<br>[4505, 4537, 0]"] 262["Segment<br>[4533, 4565, 0]"]
263["Segment<br>[4543, 4591, 0]"] 263["Segment<br>[4571, 4619, 0]"]
264["Segment<br>[4597, 4631, 0]"] 264["Segment<br>[4625, 4659, 0]"]
265["Segment<br>[4637, 4644, 0]"] 265["Segment<br>[4665, 4672, 0]"]
266[Solid2d] 266[Solid2d]
end end
1["Plane<br>[338, 356, 0]"] 1["Plane<br>[338, 356, 0]"]
@ -178,7 +178,7 @@ flowchart LR
115["SweepEdge Opposite"] 115["SweepEdge Opposite"]
116["SweepEdge Adjacent"] 116["SweepEdge Adjacent"]
117["Plane<br>[2031, 2057, 0]"] 117["Plane<br>[2031, 2057, 0]"]
123["Sweep Extrusion<br>[2209, 2240, 0]"] 123["Sweep Extrusion<br>[2201, 2232, 0]"]
124[Wall] 124[Wall]
125[Wall] 125[Wall]
126[Wall] 126[Wall]
@ -190,7 +190,7 @@ flowchart LR
132["SweepEdge Adjacent"] 132["SweepEdge Adjacent"]
133["SweepEdge Opposite"] 133["SweepEdge Opposite"]
134["SweepEdge Adjacent"] 134["SweepEdge Adjacent"]
149["Sweep Extrusion<br>[2960, 2991, 0]"] 149["Sweep Extrusion<br>[2970, 3001, 0]"]
150[Wall] 150[Wall]
151[Wall] 151[Wall]
152[Wall] 152[Wall]
@ -229,8 +229,8 @@ flowchart LR
185["SweepEdge Adjacent"] 185["SweepEdge Adjacent"]
186["SweepEdge Opposite"] 186["SweepEdge Opposite"]
187["SweepEdge Adjacent"] 187["SweepEdge Adjacent"]
188["Plane<br>[3249, 3276, 0]"] 188["Plane<br>[3259, 3286, 0]"]
197["Sweep Extrusion<br>[3619, 3650, 0]"] 197["Sweep Extrusion<br>[3647, 3678, 0]"]
198[Wall] 198[Wall]
199[Wall] 199[Wall]
200[Wall] 200[Wall]
@ -251,7 +251,7 @@ flowchart LR
215["SweepEdge Adjacent"] 215["SweepEdge Adjacent"]
216["SweepEdge Opposite"] 216["SweepEdge Opposite"]
217["SweepEdge Adjacent"] 217["SweepEdge Adjacent"]
224["Sweep Extrusion<br>[3869, 3900, 0]"] 224["Sweep Extrusion<br>[3897, 3928, 0]"]
225[Wall] 225[Wall]
226[Wall] 226[Wall]
227[Wall] 227[Wall]
@ -266,7 +266,7 @@ flowchart LR
236["SweepEdge Adjacent"] 236["SweepEdge Adjacent"]
237["SweepEdge Opposite"] 237["SweepEdge Opposite"]
238["SweepEdge Adjacent"] 238["SweepEdge Adjacent"]
245["Sweep Extrusion<br>[4096, 4146, 0]"] 245["Sweep Extrusion<br>[4124, 4174, 0]"]
246[Wall] 246[Wall]
247[Wall] 247[Wall]
248[Wall] 248[Wall]
@ -281,8 +281,8 @@ flowchart LR
257["SweepEdge Adjacent"] 257["SweepEdge Adjacent"]
258["SweepEdge Opposite"] 258["SweepEdge Opposite"]
259["SweepEdge Adjacent"] 259["SweepEdge Adjacent"]
260["Plane<br>[4417, 4444, 0]"] 260["Plane<br>[4445, 4472, 0]"]
267["Sweep Extrusion<br>[4650, 4682, 0]"] 267["Sweep Extrusion<br>[4678, 4710, 0]"]
268[Wall] 268[Wall]
269[Wall] 269[Wall]
270[Wall] 270[Wall]
@ -297,9 +297,9 @@ flowchart LR
279["SweepEdge Adjacent"] 279["SweepEdge Adjacent"]
280["SweepEdge Opposite"] 280["SweepEdge Opposite"]
281["SweepEdge Adjacent"] 281["SweepEdge Adjacent"]
282["StartSketchOnFace<br>[2295, 2326, 0]"] 282["StartSketchOnFace<br>[2287, 2318, 0]"]
283["StartSketchOnFace<br>[3664, 3695, 0]"] 283["StartSketchOnFace<br>[3692, 3723, 0]"]
284["StartSketchOnFace<br>[3914, 3945, 0]"] 284["StartSketchOnFace<br>[3942, 3973, 0]"]
1 --- 2 1 --- 2
2 --- 3 2 --- 3
2 --- 4 2 --- 4

File diff suppressed because it is too large Load Diff

View File

@ -2067,9 +2067,9 @@ description: Variables in memory after executing poopy-shoe.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 2947, "commentStart": 2957,
"end": 2953, "end": 2963,
"start": 2947, "start": 2957,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg04" "value": "seg04"
}, },
@ -2309,9 +2309,9 @@ description: Variables in memory after executing poopy-shoe.kcl
0.0 0.0
], ],
"tag": { "tag": {
"commentStart": 2947, "commentStart": 2957,
"end": 2953, "end": 2963,
"start": 2947, "start": 2957,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg04" "value": "seg04"
}, },
@ -2854,9 +2854,9 @@ description: Variables in memory after executing poopy-shoe.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 3593, "commentStart": 3621,
"end": 3599, "end": 3627,
"start": 3593, "start": 3621,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg03" "value": "seg03"
}, },
@ -2970,9 +2970,9 @@ description: Variables in memory after executing poopy-shoe.kcl
1.0 1.0
], ],
"tag": { "tag": {
"commentStart": 3593, "commentStart": 3621,
"end": 3599, "end": 3627,
"start": 3593, "start": 3621,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg03" "value": "seg03"
}, },
@ -3247,9 +3247,9 @@ description: Variables in memory after executing poopy-shoe.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 3593, "commentStart": 3621,
"end": 3599, "end": 3627,
"start": 3593, "start": 3621,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg03" "value": "seg03"
}, },
@ -3363,9 +3363,9 @@ description: Variables in memory after executing poopy-shoe.kcl
1.0 1.0
], ],
"tag": { "tag": {
"commentStart": 3593, "commentStart": 3621,
"end": 3599, "end": 3627,
"start": 3593, "start": 3621,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg03" "value": "seg03"
}, },
@ -3724,9 +3724,9 @@ description: Variables in memory after executing poopy-shoe.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 2947, "commentStart": 2957,
"end": 2953, "end": 2963,
"start": 2947, "start": 2957,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg04" "value": "seg04"
}, },
@ -3966,9 +3966,9 @@ description: Variables in memory after executing poopy-shoe.kcl
0.0 0.0
], ],
"tag": { "tag": {
"commentStart": 2947, "commentStart": 2957,
"end": 2953, "end": 2963,
"start": 2947, "start": 2957,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg04" "value": "seg04"
}, },

View File

@ -3,52 +3,52 @@ flowchart LR
subgraph path2 [Path] subgraph path2 [Path]
2["Path<br>[1228, 1309, 0]"] 2["Path<br>[1228, 1309, 0]"]
3["Segment<br>[1315, 1343, 0]"] 3["Segment<br>[1315, 1343, 0]"]
4["Segment<br>[1349, 1437, 0]"] 4["Segment<br>[1349, 1410, 0]"]
5["Segment<br>[1443, 1524, 0]"] 5["Segment<br>[1416, 1497, 0]"]
6["Segment<br>[1530, 1619, 0]"] 6["Segment<br>[1503, 1565, 0]"]
7["Segment<br>[1625, 1661, 0]"] 7["Segment<br>[1571, 1607, 0]"]
8["Segment<br>[1667, 1696, 0]"] 8["Segment<br>[1613, 1642, 0]"]
9["Segment<br>[1702, 1791, 0]"] 9["Segment<br>[1648, 1710, 0]"]
10["Segment<br>[1797, 1851, 0]"] 10["Segment<br>[1716, 1770, 0]"]
11["Segment<br>[1857, 1945, 0]"] 11["Segment<br>[1776, 1837, 0]"]
12["Segment<br>[1951, 1979, 0]"] 12["Segment<br>[1843, 1871, 0]"]
13["Segment<br>[1985, 2024, 0]"] 13["Segment<br>[1877, 1916, 0]"]
14["Segment<br>[2030, 2073, 0]"] 14["Segment<br>[1922, 1965, 0]"]
15["Segment<br>[2079, 2168, 0]"] 15["Segment<br>[1971, 2033, 0]"]
16["Segment<br>[2174, 2233, 0]"] 16["Segment<br>[2039, 2098, 0]"]
17["Segment<br>[2239, 2327, 0]"] 17["Segment<br>[2104, 2165, 0]"]
18["Segment<br>[2333, 2369, 0]"] 18["Segment<br>[2171, 2207, 0]"]
19["Segment<br>[2375, 2405, 0]"] 19["Segment<br>[2213, 2243, 0]"]
20["Segment<br>[2411, 2499, 0]"] 20["Segment<br>[2249, 2310, 0]"]
21["Segment<br>[2505, 2564, 0]"] 21["Segment<br>[2316, 2375, 0]"]
22["Segment<br>[2570, 2659, 0]"] 22["Segment<br>[2381, 2443, 0]"]
23["Segment<br>[2665, 2708, 0]"] 23["Segment<br>[2449, 2492, 0]"]
24["Segment<br>[2714, 2784, 0]"] 24["Segment<br>[2498, 2568, 0]"]
25["Segment<br>[2790, 2797, 0]"] 25["Segment<br>[2574, 2581, 0]"]
26[Solid2d] 26[Solid2d]
end end
subgraph path94 [Path] subgraph path94 [Path]
94["Path<br>[3129, 3218, 0]"] 94["Path<br>[2913, 3002, 0]"]
95["Segment<br>[3129, 3218, 0]"] 95["Segment<br>[2913, 3002, 0]"]
96[Solid2d] 96[Solid2d]
end end
subgraph path102 [Path] subgraph path102 [Path]
102["Path<br>[3493, 3581, 0]"] 102["Path<br>[3277, 3365, 0]"]
103["Segment<br>[3493, 3581, 0]"] 103["Segment<br>[3277, 3365, 0]"]
104[Solid2d] 104[Solid2d]
end end
subgraph path110 [Path] subgraph path110 [Path]
110["Path<br>[3863, 4043, 0]"] 110["Path<br>[3647, 3827, 0]"]
111["Segment<br>[3863, 4043, 0]"] 111["Segment<br>[3647, 3827, 0]"]
112[Solid2d] 112[Solid2d]
end end
subgraph path120 [Path] subgraph path120 [Path]
120["Path<br>[4459, 4515, 0]"] 120["Path<br>[4243, 4299, 0]"]
121["Segment<br>[4459, 4515, 0]"] 121["Segment<br>[4243, 4299, 0]"]
122[Solid2d] 122[Solid2d]
end end
1["Plane<br>[1205, 1222, 0]"] 1["Plane<br>[1205, 1222, 0]"]
27["Sweep Extrusion<br>[2803, 2836, 0]"] 27["Sweep Extrusion<br>[2587, 2620, 0]"]
28[Wall] 28[Wall]
29[Wall] 29[Wall]
30[Wall] 30[Wall]
@ -111,35 +111,35 @@ flowchart LR
87["SweepEdge Adjacent"] 87["SweepEdge Adjacent"]
88["SweepEdge Opposite"] 88["SweepEdge Opposite"]
89["SweepEdge Adjacent"] 89["SweepEdge Adjacent"]
90["EdgeCut Fillet<br>[2842, 3013, 0]"] 90["EdgeCut Fillet<br>[2626, 2797, 0]"]
91["EdgeCut Fillet<br>[2842, 3013, 0]"] 91["EdgeCut Fillet<br>[2626, 2797, 0]"]
92["EdgeCut Fillet<br>[2842, 3013, 0]"] 92["EdgeCut Fillet<br>[2626, 2797, 0]"]
93["EdgeCut Fillet<br>[2842, 3013, 0]"] 93["EdgeCut Fillet<br>[2626, 2797, 0]"]
97["Sweep Extrusion<br>[3347, 3375, 0]"] 97["Sweep Extrusion<br>[3131, 3159, 0]"]
98[Wall] 98[Wall]
99["SweepEdge Opposite"] 99["SweepEdge Opposite"]
100["SweepEdge Adjacent"] 100["SweepEdge Adjacent"]
101["Sweep Extrusion<br>[3347, 3375, 0]"] 101["Sweep Extrusion<br>[3131, 3159, 0]"]
105["Sweep Extrusion<br>[3710, 3738, 0]"] 105["Sweep Extrusion<br>[3494, 3522, 0]"]
106[Wall] 106[Wall]
107["SweepEdge Opposite"] 107["SweepEdge Opposite"]
108["SweepEdge Adjacent"] 108["SweepEdge Adjacent"]
109["Sweep Extrusion<br>[3710, 3738, 0]"] 109["Sweep Extrusion<br>[3494, 3522, 0]"]
113["Sweep Extrusion<br>[4297, 4325, 0]"] 113["Sweep Extrusion<br>[4081, 4109, 0]"]
114[Wall] 114[Wall]
115["SweepEdge Opposite"] 115["SweepEdge Opposite"]
116["SweepEdge Adjacent"] 116["SweepEdge Adjacent"]
117["Sweep Extrusion<br>[4297, 4325, 0]"] 117["Sweep Extrusion<br>[4081, 4109, 0]"]
118["Sweep Extrusion<br>[4297, 4325, 0]"] 118["Sweep Extrusion<br>[4081, 4109, 0]"]
119["Sweep Extrusion<br>[4297, 4325, 0]"] 119["Sweep Extrusion<br>[4081, 4109, 0]"]
123["Sweep Extrusion<br>[4521, 4549, 0]"] 123["Sweep Extrusion<br>[4305, 4333, 0]"]
124[Wall] 124[Wall]
125["SweepEdge Opposite"] 125["SweepEdge Opposite"]
126["SweepEdge Adjacent"] 126["SweepEdge Adjacent"]
127["StartSketchOnFace<br>[3087, 3123, 0]"] 127["StartSketchOnFace<br>[2871, 2907, 0]"]
128["StartSketchOnFace<br>[3451, 3487, 0]"] 128["StartSketchOnFace<br>[3235, 3271, 0]"]
129["StartSketchOnFace<br>[3821, 3857, 0]"] 129["StartSketchOnFace<br>[3605, 3641, 0]"]
130["StartSketchOnFace<br>[4417, 4453, 0]"] 130["StartSketchOnFace<br>[4201, 4237, 0]"]
1 --- 2 1 --- 2
2 --- 3 2 --- 3
2 --- 4 2 --- 4

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 61 KiB

View File

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

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