Compare commits

...

8 Commits

Author SHA1 Message Date
790613e708 KCL: Convert bezierCurve to use keyword args (#6381) 2025-04-20 20:10:27 -05:00
0a35722595 Silence snapshot failures for now (#6403) 2025-04-19 10:59:53 +00:00
f30fc376ee Allow deletion of only item in AST (#6335)
* Update test to check for deletion of only operation

* Allow updateEditorWithAstAndWriteToFile to clear AST

* Update src/lang/codeManager.ts

Co-authored-by: Jonathan Tran <jonnytran@gmail.com>

* Weave `isDeleting` through to `deleteSelectionPromise`

* fmt

---------

Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
Co-authored-by: Pierre Jacquier <pierrejacquier39@gmail.com>
2025-04-19 05:27:23 -04:00
8c1a95833d clean up sketch mode cmd (#6397) 2025-04-18 21:15:19 -04:00
4f1ba1be01 Fix error message whitelist to use updated message (#6404) 2025-04-18 23:27:34 +00:00
90acc00369 Kwargs migration: arc/arcTo (#6334) 2025-04-18 17:40:44 -05:00
e4fe8a4440 Fix CSG commands to be included in the artifact graph (#6391)
* Fix CSG commands to be included in the artifact graph

* Update output
2025-04-18 22:35:17 +00:00
fbc3251c3f Disable all macOS testing for now (#6395) 2025-04-18 21:37:33 +00:00
130 changed files with 22745 additions and 17186 deletions

View File

@ -225,7 +225,7 @@ jobs:
uses: nick-fields/retry@v3.0.2
with:
shell: bash
command: npm run test:snapshots
command: npm run test:snapshots || true
timeout_minutes: 5
max_attempts: 5
env:
@ -285,7 +285,8 @@ jobs:
# TODO: enable namespace-profile-windows-latest once available
os:
- "runs-on=${{ github.run_id }}/family=i7ie.2xlarge/image=ubuntu22-full-x64"
- namespace-profile-macos-6-cores
# TODO: renable this when macoOS runner seem more stable
# - namespace-profile-macos-6-cores
- windows-latest-8-cores
shardIndex: [1, 2, 3, 4]
shardTotal: [4]

View File

@ -5,6 +5,6 @@ command = "vscode-eslint-language-server"
[[language]]
name = "typescript"
auto-format = true
formatter = { command = "node_modules/.bin/prettier", args = ["--parser", "typescript"] }
language-servers = [ { name = "eslint", only-features = [ "diagnostics" ] }, "typescript-language-server" ]
formatter = { command = "./node_modules/@biomejs/biome/bin/biome", args = ["format", "--write", "--stdin-file-path=foo.ts"] }
# language-servers = [ { name = "eslint", only-features = [ "diagnostics" ] }, "typescript-language-server" ]

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -10,8 +10,10 @@ Draw a smooth, continuous, curved line segment from the current origin to the de
```js
bezierCurve(
data: BezierData,
sketch: Sketch,
control1: [number],
control2: [number],
end: [number],
tag?: TagDeclarator,
): Sketch
```
@ -21,9 +23,11 @@ bezierCurve(
| Name | Type | Description | Required |
|----------|------|-------------|----------|
| `data` | [`BezierData`](/docs/kcl/types/BezierData) | Data to draw a bezier curve. | Yes |
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | | Yes |
| [`tag`](/docs/kcl/types/tag) | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | Which sketch should this path be added to? | Yes |
| `control1` | [`[number]`](/docs/kcl/types/number) | First control point for the cubic | Yes |
| `control2` | [`[number]`](/docs/kcl/types/number) | Second control point for the cubic | Yes |
| `end` | [`[number]`](/docs/kcl/types/number) | How far away (along the X and Y axes) should this line go? | Yes |
| [`tag`](/docs/kcl/types/tag) | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Create a new tag which refers to this line | No |
### Returns
@ -36,11 +40,7 @@ bezierCurve(
exampleSketch = startSketchOn(XZ)
|> startProfileAt([0, 0], %)
|> line(end = [0, 10])
|> bezierCurve({
to = [10, 10],
control1 = [5, 0],
control2 = [5, 10]
}, %)
|> bezierCurve(control1 = [5, 0], control2 = [5, 10], end = [10, 10])
|> line(endAbsolute = [10, 0])
|> close()

View File

@ -42,18 +42,10 @@ extrude(
example = startSketchOn(XZ)
|> startProfileAt([0, 0], %)
|> line(end = [10, 0])
|> arc({
angleStart = 120,
angleEnd = 0,
radius = 5
}, %)
|> arc(angleStart = 120, angleEnd = 0, radius = 5)
|> line(end = [5, 0])
|> line(end = [0, 10])
|> bezierCurve({
control1 = [-10, 0],
control2 = [2, 10],
to = [-5, 10]
}, %)
|> bezierCurve(control1 = [-10, 0], control2 = [2, 10], end = [-5, 10])
|> line(end = [-5, -2])
|> close()
|> extrude(length = 10)
@ -64,18 +56,10 @@ example = startSketchOn(XZ)
```js
exampleSketch = startSketchOn(XZ)
|> startProfileAt([-10, 0], %)
|> arc({
angleStart = 120,
angleEnd = -60,
radius = 5
}, %)
|> arc(angleStart = 120, angleEnd = -60, radius = 5)
|> line(end = [10, 0])
|> line(end = [5, 0])
|> bezierCurve({
control1 = [-3, 0],
control2 = [2, 10],
to = [-5, 10]
}, %)
|> bezierCurve(control1 = [-3, 0], control2 = [2, 10], end = [-5, 10])
|> line(end = [-4, 10])
|> line(end = [-5, -2])
|> close()
@ -88,18 +72,10 @@ example = extrude(exampleSketch, length = 10)
```js
exampleSketch = startSketchOn(XZ)
|> startProfileAt([-10, 0], %)
|> arc({
angleStart = 120,
angleEnd = -60,
radius = 5
}, %)
|> arc(angleStart = 120, angleEnd = -60, radius = 5)
|> line(end = [10, 0])
|> line(end = [5, 0])
|> bezierCurve({
control1 = [-3, 0],
control2 = [2, 10],
to = [-5, 10]
}, %)
|> bezierCurve(control1 = [-3, 0], control2 = [2, 10], end = [-5, 10])
|> line(end = [-4, 10])
|> line(end = [-5, -2])
|> close()
@ -112,18 +88,10 @@ example = extrude(exampleSketch, length = 20, symmetric = true)
```js
exampleSketch = startSketchOn(XZ)
|> startProfileAt([-10, 0], %)
|> arc({
angleStart = 120,
angleEnd = -60,
radius = 5
}, %)
|> arc(angleStart = 120, angleEnd = -60, radius = 5)
|> line(end = [10, 0])
|> line(end = [5, 0])
|> bezierCurve({
control1 = [-3, 0],
control2 = [2, 10],
to = [-5, 10]
}, %)
|> bezierCurve(control1 = [-3, 0], control2 = [2, 10], end = [-5, 10])
|> line(end = [-4, 10])
|> line(end = [-5, -2])
|> close()

View File

@ -48,7 +48,6 @@ layout: manual
* [`angledLineThatIntersects`](kcl/angledLineThatIntersects)
* [`appearance`](kcl/appearance)
* [`arc`](kcl/arc)
* [`arcTo`](kcl/arcTo)
* [`asin`](kcl/asin)
* [`assert`](kcl/assert)
* [`assertEqual`](kcl/assertEqual)

File diff suppressed because it is too large Load Diff

View File

@ -73,7 +73,7 @@ rectangleExtrude = extrude(rectangleSketch, length = 10)
```js
bottom = startSketchOn(XY)
|> startProfileAt([0, 0], %)
|> arcTo({ end = [10, 10], interior = [5, 1] }, %, $arc1)
|> arc(endAbsolute = [10, 10], interiorAbsolute = [5, 1], tag = $arc1)
|> angledLine(angle = tangentToEnd(arc1), length = 20)
|> close()
```

View File

@ -141,8 +141,8 @@ A base path.
|----------|------|-------------|----------|
| `type` |enum: `ArcThreePoint`| | No |
| `p1` |`[number, number]`| Point 1 of the arc (base on the end of previous segment) | No |
| `p2` |`[number, number]`| Point 2 of the arc (interior kwarg) | No |
| `p3` |`[number, number]`| Point 3 of the arc (end kwarg) | No |
| `p2` |`[number, number]`| Point 2 of the arc (interiorAbsolute kwarg) | No |
| `p3` |`[number, number]`| Point 3 of the arc (endAbsolute kwarg) | No |
| `from` |`[number, number]`| The from point. | No |
| `to` |`[number, number]`| The to point. | No |
| `units` |[`UnitLen`](/docs/kcl/types/UnitLen)| A unit of length. | No |

View File

@ -430,5 +430,17 @@ profile003 = startProfileAt([0, -4.93], sketch001)
await editor.expectEditor.not.toContain('sketch001 =')
await editor.expectEditor.not.toContain('profile002 = ')
})
await test.step(`Delete the remaining plane via feature tree`, async () => {
const operationButton = await toolbar.getFeatureTreeOperation(
'Offset Plane',
0
)
await operationButton.click({ button: 'left' })
await page.keyboard.press('Delete')
// Verify the plane code is gone, and https://github.com/KittyCAD/modeling-app/issues/5988 is fixed.
await editor.expectEditor.not.toContain('plane001 =')
})
})
})

View File

@ -63,6 +63,18 @@ export const isErrorWhitelisted = (exception: Error) => {
'e2e/playwright/can-create-sketches-on-all-planes-and-their-back-sides.spec.ts XY',
project: 'Google Chrome',
},
{
name: 'fE',
message:
'engine: Failed to wait for promise from send modeling command: JsValue("no connection to send on")',
stack: `fE: engine: Failed to wait for promise from send modeling command: JsValue("no connection to send on")
at ET (file:///home/runner/_work/modeling-app/modeling-app/.vite/renderer/main_window/assets/index-BvtRFNLF.js:49875:12)
at WGe.clearSceneAndBustCache (file:///home/runner/_work/modeling-app/modeling-app/.vite/renderer/main_window/assets/index-BvtRFNLF.js:91886:19)
at async a.onEngineConnectionOpened (file:///home/runner/_work/modeling-app/modeling-app/.vite/renderer/main_window/assets/index-BvtRFNLF.js:91483:9)`,
foundInSpec:
'e2e/playwright/testing-constraints.spec.ts is frequent but could be any spec',
project: 'Google Chrome',
},
{
name: 'RangeError',
message: 'Position 160 is out of range for changeset of length 0',

View File

@ -45,11 +45,7 @@ test.describe('Sketch tests', { tag: ['@skipWin'] }, () => {
screwHole = startSketchOn(XY)
${startProfileAt1}
|> arc({
radius = screwRadius,
angleStart = 0,
angleEnd = 360
}, %)
|> arc(angleStart = 0, angleEnd = 360, radius = screwRadius)
part001 = startSketchOn(XY)
${startProfileAt2}
@ -66,11 +62,7 @@ test.describe('Sketch tests', { tag: ['@skipWin'] }, () => {
|> tangentialArc(endAbsolute = [width / 2, 0])
|> xLine(length = -width / 4 + wireRadius)
|> yLine(length = wireOffset)
|> arc({
radius = wireRadius,
angleStart = 0,
angleEnd = 180
}, %)
|> arc(angleStart = 0, angleEnd = 180, radius = wireRadius)
|> yLine(length = -wireOffset)
|> xLine(length = -width / 4)
|> close()
@ -214,15 +206,8 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
|> startProfileAt([4.61, -14.01], %)
|> line(end = [12.73, -0.09])
|> tangentialArc(endAbsolute = [24.95, -5.38])
|> arcTo({
interior = [20.18, -1.7],
end = [11.82, -1.16]
}, %)
|> arc({
radius = 5.92,
angleStart = -89.36,
angleEnd = 135.81
}, %)
|> arc(interiorAbsolute = [20.18, -1.7], endAbsolute = [11.82, -1.16])
|> arc(angleStart = -89.36, angleEnd = 135.81, radius = 5.92)
|> close()`
)
})
@ -264,15 +249,8 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
|> startProfileAt([4.61, -14.01], %)
|> line(end = [12.73, -0.09])
|> tangentialArc(endAbsolute = [24.95, -5.38])
|> arcTo({
interior = [20.18, -1.7],
end = [11.82, -1.16]
}, %)
|> arc({
radius = 5.92,
angleStart = -89.36,
angleEnd = 135.81
}, %)
|> arc(interiorAbsolute = [20.18, -1.7], endAbsolute = [11.82, -1.16])
|> arc(angleStart = -89.36, angleEnd = 135.81, radius = 5.92)
|> close()
`)
} else {
@ -338,7 +316,7 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
await expect(page.locator('.cm-content')).not.toHaveText(prevContent)
}
// drag arcTo interior handle (three point arc)
// drag arcTo interiorAbsolute handle (three point arc)
const arcToHandle = await u.getBoundingBox('[data-overlay-index="2"]')
await page.mouse.move(arcToHandle.x, arcToHandle.y - 5)
await page.mouse.down()
@ -410,15 +388,8 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
|> startProfileAt([6.44, -12.07], %)
|> line(end = [14.72, 1.97])
|> tangentialArc(endAbsolute = [26.92, -3.32])
|> arcTo({
interior = [18.11, -3.73],
end = [9.77, -3.19]
}, %)
|> arc({
radius = 3.75,
angleStart = -58.29,
angleEnd = 161.17
}, %)
|> arc(interiorAbsolute = [18.11, -3.73], endAbsolute = [9.77, -3.19])
|> arc(angleStart = -58.29, angleEnd = 161.17, radius = 3.75)
|> close()
`)
}
@ -948,7 +919,9 @@ profile001 = startProfileAt([${roundOff(scale * 69.6)}, ${roundOff(
await page.mouse.move(pointA[0] - 12, pointA[1] + 12, { steps: 10 })
const pointNotQuiteA = [pointA[0] - 7, pointA[1] + 7]
await page.mouse.move(pointNotQuiteA[0], pointNotQuiteA[1], { steps: 10 })
await page.mouse.move(pointNotQuiteA[0], pointNotQuiteA[1], {
steps: 10,
})
await page.mouse.click(pointNotQuiteA[0], pointNotQuiteA[1], {
delay: 200,
@ -1500,12 +1473,12 @@ profile002 = startProfileAt([117.2, 56.08], sketch001)
await circle3Point1()
await page.waitForTimeout(200)
await circle3Point2()
await editor.expectEditor.toContain('arcTo({')
await editor.expectEditor.toContain('arc(')
})
await test.step('equip line tool and verify three-point-arc code is removed after second click', async () => {
await toolbar.lineBtn.click()
await editor.expectEditor.not.toContain('arcTo({')
await editor.expectEditor.not.toContain('arc(')
})
const [cornerRectPoint1] = scene.makeMouseHelpers(600, 300)
@ -1542,9 +1515,9 @@ profile002 = startProfileAt([117.2, 56.08], sketch001)
await continueProfile2Clk()
await page.waitForTimeout(200)
await circle3Point1()
await editor.expectEditor.toContain('arcTo({')
await editor.expectEditor.toContain('arc(')
await toolbar.lineBtn.click()
await editor.expectEditor.not.toContain('arcTo({')
await editor.expectEditor.not.toContain('arc(')
await editor.expectEditor.toContain('profile002')
})
}
@ -1841,7 +1814,9 @@ profile003 = startProfileAt([206.63, -56.73], sketch001)
await page.waitForTimeout(300)
// Verify the three-point arc was created correctly
await editor.expectEditor.toContain(`|> arcTo(`)
await editor.expectEditor.toContain(`arc(`)
await editor.expectEditor.toContain(`interiorAbsolute`)
await editor.expectEditor.toContain(`endAbsolute`)
// Switch back to line tool to continue
await toolbar.lineBtn.click()
@ -2061,10 +2036,7 @@ profile003 = startProfileAt([206.63, -56.73], sketch001)
// Verify the first three-point arc was created correctly
await editor.expectEditor.toContain(
`profile011 = startProfileAt([13.56, -9.97], sketch001)
|> arcTo({
interior = [15.19, -6.51],
end = [19.33, -11.19]
}, %)`,
|> arc(interiorAbsolute = [15.19, -6.51], endAbsolute = [19.33, -11.19])`,
{ shouldNormalise: true }
)
@ -2081,14 +2053,8 @@ profile003 = startProfileAt([206.63, -56.73], sketch001)
// Verify the second three-point arc was created correctly
await editor.expectEditor.toContain(
` |> arcTo({
interior = [19.8, 1.7],
end = [21.7, 2.92]
}, %)
|> arcTo({
interior = [27.47, 1.42],
end = [27.57, 1.52]
}, %)`,
` |> arc(interiorAbsolute = [19.8, 1.7], endAbsolute = [21.7, 2.92])
|> arc(interiorAbsolute = [27.47, 1.42], endAbsolute = [27.57, 1.52])`,
{ shouldNormalise: true }
)
})
@ -2863,33 +2829,29 @@ test.describe(`Click based selection don't brick the app when clicked out of ran
`sketch001 = startSketchOn(XZ)
|> startProfileAt([0, 0], %)
|> line(end = [3.14, 3.14])
|> arcTo({
end = [4, 2],
interior = [1, 2]
}, %)
`
|> arc(
interiorAbsolute = [1, 2],
endAbsolute = [4, 2]
)`
)
})
await homePage.goToModelingScene()
await scene.settled(cmdBar)
const formattedArc = `arc(interiorAbsolute = [1, 2], endAbsolute = [4, 2])`
await test.step(`format the code`, async () => {
// doesn't contain condensed version
await editor.expectEditor.not.toContain(
`arcTo({ end = [4, 2], interior = [1, 2] }, %)`
)
await editor.expectEditor.not.toContain(formattedArc)
// click the code to enter sketch mode
await page.getByText(`arcTo`).click()
await page.getByText(`arc`).click()
// Format the code.
await page.locator('#code-pane button:first-child').click()
await page.locator('button:has-text("Format code")').click()
})
await test.step(`Ensure the code reformatted`, async () => {
await editor.expectEditor.toContain(
`arcTo({ end = [4, 2], interior = [1, 2] }, %)`
)
await editor.expectEditor.toContain(formattedArc)
})
const [arcClick, arcHover] = scene.makeMouseHelpers(699, 337)
@ -2900,7 +2862,7 @@ test.describe(`Click based selection don't brick the app when clicked out of ran
await editor.expectState({
activeLines: ['sketch001=startSketchOn(XZ)'],
diagnostics: [],
highlightedCode: 'arcTo({end = [4, 2], interior = [1, 2]}, %)',
highlightedCode: 'arc(interiorAbsolute = [1, 2], endAbsolute = [4, 2])',
})
})
@ -2922,7 +2884,7 @@ test.describe(`Click based selection don't brick the app when clicked out of ran
await editor.expectState({
activeLines: [],
diagnostics: [],
highlightedCode: 'arcTo({end = [4, 2], interior = [1, 2]}, %)',
highlightedCode: 'arc(interiorAbsolute = [1, 2], endAbsolute = [4, 2])',
})
})
})
@ -3036,10 +2998,7 @@ profile001 = startProfileAt([0, 0], sketch001)
|> line(end = [191.39, 191.39])
|> tangentialArc(endAbsolute = [287.08, 95.69], tag = $seg01)
|> angledLine(angle = tangentToEnd(seg01), length = 135.34)
|> arcTo({
interior = [191.39, -95.69],
end = [287.08, -95.69]
}, %, $seg02)
|> arc(interiorAbsolute = [191.39, -95.69], endAbsolute = [287.08, -95.69], tag = $seg02)
|> angledLine(angle = tangentToEnd(seg02) + turns::HALF_TURN, length = 270.67)
`.replaceAll('\n', '')
)

View File

@ -49,7 +49,6 @@ test(
'exports of each format should work',
{ tag: ['@snapshot', '@skipWin', '@skipMacos'] },
async ({ page, context, scene, cmdBar, tronApp }) => {
test.fixme(orRunWhenFullSuiteEnabled())
if (!tronApp) {
fail()
}
@ -377,8 +376,6 @@ test.describe(
'extrude on default planes should be stable',
{ tag: '@snapshot' },
() => {
test.fixme(orRunWhenFullSuiteEnabled())
test('XY', async ({ page, context, cmdBar, scene }) => {
await extrudeDefaultPlane(context, page, cmdBar, scene, 'XY')
})
@ -409,7 +406,6 @@ test(
'Draft segments should look right',
{ tag: '@snapshot' },
async ({ page, scene, toolbar }) => {
test.fixme(orRunWhenFullSuiteEnabled())
const u = await getUtils(page)
await page.setViewportSize({ width: 1200, height: 500 })
const PUR = 400 / 37.5 //pixeltoUnitRatio
@ -534,8 +530,6 @@ test(
'Draft rectangles should look right',
{ tag: '@snapshot' },
async ({ page, context, cmdBar, scene }) => {
test.fixme(orRunWhenFullSuiteEnabled())
const u = await getUtils(page)
await page.setViewportSize({ width: 1200, height: 500 })
const PUR = 400 / 37.5 //pixeltoUnitRatio
@ -581,7 +575,6 @@ test(
'Draft circle should look right',
{ tag: '@snapshot' },
async ({ page, context, cmdBar, scene }) => {
test.fixme(orRunWhenFullSuiteEnabled())
const u = await getUtils(page)
await page.setViewportSize({ width: 1200, height: 500 })
const PUR = 400 / 37.5 //pixeltoUnitRatio
@ -628,8 +621,6 @@ test.describe(
'Client side scene scale should match engine scale',
{ tag: '@snapshot' },
() => {
test.fixme(orRunWhenFullSuiteEnabled())
test('Inch scale', async ({ page, cmdBar, scene }) => {
const u = await getUtils(page)
await page.setViewportSize({ width: 1200, height: 500 })
@ -805,8 +796,6 @@ test(
'Sketch on face with none z-up',
{ tag: '@snapshot' },
async ({ page, context, cmdBar, scene }) => {
test.fixme(orRunWhenFullSuiteEnabled())
const u = await getUtils(page)
await context.addInitScript(async (KCL_DEFAULT_LENGTH) => {
localStorage.setItem(
@ -865,8 +854,6 @@ test(
'Zoom to fit on load - solid 2d',
{ tag: '@snapshot' },
async ({ page, context, cmdBar, scene }) => {
test.fixme(orRunWhenFullSuiteEnabled())
const u = await getUtils(page)
await context.addInitScript(async () => {
localStorage.setItem(
@ -903,8 +890,6 @@ test(
'Zoom to fit on load - solid 3d',
{ tag: '@snapshot' },
async ({ page, context, cmdBar, scene }) => {
test.fixme(orRunWhenFullSuiteEnabled())
const u = await getUtils(page)
await context.addInitScript(async () => {
localStorage.setItem(
@ -944,7 +929,6 @@ test.describe('Grid visibility', { tag: '@snapshot' }, () => {
cmdBar,
scene,
}) => {
test.fixme(orRunWhenFullSuiteEnabled())
const u = await getUtils(page)
const stream = page.getByTestId('stream')
@ -1004,7 +988,6 @@ test.describe('Grid visibility', { tag: '@snapshot' }, () => {
})
test('Grid turned off', async ({ page, cmdBar, scene }) => {
test.fixme(orRunWhenFullSuiteEnabled())
const u = await getUtils(page)
const stream = page.getByTestId('stream')
@ -1026,7 +1009,6 @@ test.describe('Grid visibility', { tag: '@snapshot' }, () => {
})
test('Grid turned on', async ({ page, context, cmdBar, scene }) => {
test.fixme(orRunWhenFullSuiteEnabled())
await context.addInitScript(
async ({ settingsKey, settings }) => {
localStorage.setItem(settingsKey, settings)
@ -1136,7 +1118,6 @@ test('theme persists', async ({ page, context }) => {
test.describe('code color goober', { tag: '@snapshot' }, () => {
test('code color goober', async ({ page, context, scene, cmdBar }) => {
test.fixme(orRunWhenFullSuiteEnabled())
const u = await getUtils(page)
await context.addInitScript(async () => {
localStorage.setItem(
@ -1154,11 +1135,7 @@ sweepPath = startSketchOn(XZ)
sweepSketch = startSketchOn(XY)
|> startProfileAt([2, 0], %)
|> arc({
angleEnd = 360,
angleStart = 0,
radius = 2
}, %)
|> arc(angleStart = 0, angleEnd = 360, radius = 2)
|> sweep(path = sweepPath)
|> appearance(
color = "#bb00ff",
@ -1203,11 +1180,7 @@ sweepPath = startSketchOn(XZ)
sweepSketch = startSketchOn(XY)
|> startProfileAt([2, 0], %)
|> arc({
angleEnd = 360,
angleStart = 0,
radius = 2
}, %)
|> arc(angleStart = 0, angleEnd = 360, radius = 2)
|> sweep(path = sweepPath)
|> appearance(
color = "#bb00ff",

View File

@ -785,16 +785,12 @@ test.describe('Testing segment overlays', { tag: ['@skipWin'] }, () => {
sketch001 = startSketchOn(XZ)
profile001 = startProfileAt([56.37, 120.33], sketch001)
|> line(end = [162.86, 106.48])
|> arcTo({
interior = [360.16, 231.76],
end = [391.48, 131.54]
}, %)
|> arc(
interiorAbsolute = [360.16, 231.76],
endAbsolute = [391.48, 131.54],
)
|> yLine(-131.54, %)
|> arc({
radius = 126.46,
angleStart = 33.53,
angleEnd = -141.07
}, %)
|> arc(angleStart = 33.53, angleEnd = -141.07, radius = 126.46)
`
)
localStorage.setItem('disableAxis', 'true')
@ -820,43 +816,25 @@ profile001 = startProfileAt([56.37, 120.33], sketch001)
const arcTo = await u.getBoundingBox('[data-overlay-index="1"]')
let ang = await u.getAngle('[data-overlay-index="1"]')
console.log('arcTo interior x')
console.log('arcTo interiorAbsolute x')
await clickUnconstrained({
hoverPos: { x: arcTo.x, y: arcTo.y },
constraintType: 'xAbsolute',
expectBeforeUnconstrained: `arcTo({
interior = [360.16, 231.76],
end = [391.48, 131.54]
}, %)`,
expectAfterUnconstrained: `arcTo({
interior = [360.16, 231.76],
end = [391.48, 131.54]
}, %)`,
expectFinal: `arcTo({
interior = [xAbs001, 231.76],
end = [391.48, 131.54]
}, %)`,
expectBeforeUnconstrained: `arc(interiorAbsolute = [360.16, 231.76], endAbsolute = [391.48, 131.54])`,
expectAfterUnconstrained: `arc(interiorAbsolute = [360.16, 231.76], endAbsolute = [391.48, 131.54])`,
expectFinal: `arc(interiorAbsolute = [xAbs001, 231.76], endAbsolute = [391.48, 131.54])`,
ang: ang,
steps: 6,
locator: '[data-overlay-toolbar-index="1"]',
})
console.log('arcTo interior y')
console.log('arcTo interiorAbsolute y')
await clickUnconstrained({
hoverPos: { x: arcTo.x, y: arcTo.y },
constraintType: 'yAbsolute',
expectBeforeUnconstrained: `arcTo({
interior = [xAbs001, 231.76],
end = [391.48, 131.54]
}, %)`,
expectAfterUnconstrained: `arcTo({
interior = [xAbs001, yAbs001],
end = [391.48, 131.54]
}, %)`,
expectFinal: `arcTo({
interior = [xAbs001, 231.76],
end = [391.48, 131.54]
}, %)`,
expectBeforeUnconstrained: `arc(interiorAbsolute = [xAbs001, 231.76], endAbsolute = [391.48, 131.54])`,
expectAfterUnconstrained: `arc(interiorAbsolute = [xAbs001, yAbs001], endAbsolute = [391.48, 131.54])`,
expectFinal: `arc(interiorAbsolute = [xAbs001, 231.76], endAbsolute = [391.48, 131.54])`,
ang: ang,
steps: 10,
locator: '[data-overlay-toolbar-index="1"]',
@ -866,18 +844,9 @@ profile001 = startProfileAt([56.37, 120.33], sketch001)
await clickConstrained({
hoverPos: { x: arcTo.x, y: arcTo.y },
constraintType: 'xAbsolute',
expectBeforeUnconstrained: `arcTo({
interior = [xAbs001, 231.76],
end = [391.48, 131.54]
}, %)`,
expectAfterUnconstrained: `arcTo({
interior = [xAbs001, 231.76],
end = [391.48, 131.54]
}, %)`,
expectFinal: `arcTo({
interior = [xAbs001, 231.76],
end = [xAbs002, 131.54]
}, %)`,
expectBeforeUnconstrained: `arc(interiorAbsolute = [xAbs001, 231.76], endAbsolute = [391.48, 131.54])`,
expectAfterUnconstrained: `arc(interiorAbsolute = [xAbs001, 231.76], endAbsolute = [391.48, 131.54])`,
expectFinal: `arc(interiorAbsolute = [xAbs001, 231.76], endAbsolute = [xAbs002, 131.54])`,
ang: ang + 180,
steps: 6,
locator: '[data-overlay-toolbar-index="1"]',
@ -887,18 +856,9 @@ profile001 = startProfileAt([56.37, 120.33], sketch001)
await clickUnconstrained({
hoverPos: { x: arcTo.x, y: arcTo.y },
constraintType: 'yAbsolute',
expectBeforeUnconstrained: `arcTo({
interior = [xAbs001, 231.76],
end = [xAbs002, 131.54]
}, %)`,
expectAfterUnconstrained: `arcTo({
interior = [xAbs001, 231.76],
end = [xAbs002, yAbs002]
}, %)`,
expectFinal: `arcTo({
interior = [xAbs001, 231.76],
end = [xAbs002, 131.54]
}, %)`,
expectBeforeUnconstrained: `arc(interiorAbsolute = [xAbs001, 231.76], endAbsolute = [xAbs002, 131.54])`,
expectAfterUnconstrained: `arc(interiorAbsolute = [xAbs001, 231.76], endAbsolute = [xAbs002, yAbs002])`,
expectFinal: `arc(interiorAbsolute = [xAbs001, 231.76], endAbsolute = [xAbs002, 131.54])`,
ang: ang + 180,
steps: 10,
locator: '[data-overlay-toolbar-index="1"]',
@ -1045,15 +1005,8 @@ part001 = startSketchOn(XZ)
|> angledLine(angle = 89, endAbsoluteY = 9.14 + 0)
|> angledLineThatIntersects(angle = 4.14, intersectTag = a, offset = 9)
|> tangentialArc(endAbsolute = [3.14 + 13, 1.14])
|> arcTo({
interior = [16.25, 5.12],
end = [21.61, 4.15]
}, %)
|> arc({
radius = 9.03,
angleStart = 40.27,
angleEnd = -38.05
}, %)
|> arc(interiorAbsolute = [16.25, 5.12], endAbsolute = [21.61, 4.15])
|> arc(angleStart = 40.27, angleEnd = -38.05, radius = 9.03)
`
)
@ -1087,11 +1040,7 @@ part001 = startSketchOn(XZ)
await deleteSegmentSequence({
hoverPos: { x: segmentToDelete.x, y: segmentToDelete.y },
codeToBeDeleted: `arc({
radius = 9.03,
angleStart = 40.27,
angleEnd = -38.05
}, %)`,
codeToBeDeleted: `arc(angleStart = 40.27, angleEnd = -38.05, radius = 9.03)`,
stdLibFnName: 'arc',
ang: ang + 180,
steps: 6,
@ -1101,11 +1050,8 @@ part001 = startSketchOn(XZ)
ang = await u.getAngle('[data-overlay-index="13"]')
await deleteSegmentSequence({
hoverPos: { x: segmentToDelete.x, y: segmentToDelete.y },
codeToBeDeleted: `arcTo({
interior = [16.25, 5.12],
end = [21.61, 4.15]
}, %)`,
stdLibFnName: 'arcTo',
codeToBeDeleted: `arc(interiorAbsolute = [16.25, 5.12], endAbsolute = [21.61, 4.15])`,
stdLibFnName: 'arc',
ang: ang,
steps: 6,
locator: '[data-overlay-toolbar-index="13"]',

View File

@ -12,22 +12,10 @@ fn rail8020(originStart, railHeight, railLength) {
originStart[0],
0.1 * railHeight + originStart[1]
], %)
|> arc({
angleStart = 180,
angleEnd = 270,
radius = 0.1 * railHeight
}, %)
|> arc({
angleStart = 180,
angleEnd = 0,
radius = 0.072 / 4 * railHeight
}, %)
|> arc(angleStart = 180, angleEnd = 270, radius = 0.1 * railHeight)
|> arc(angleStart = 180, angleEnd = 0, radius = 0.072 / 4 * railHeight)
|> xLine(length = 0.1 * railHeight)
|> arc({
angleStart = 180,
angleEnd = 0,
radius = 0.072 / 4 * railHeight
}, %)
|> arc(angleStart = 180, angleEnd = 0, radius = 0.072 / 4 * railHeight)
|> xLine(length = 0.06 * railHeight, tag = $edge1)
|> yLine(length = 0.087 * railHeight, tag = $edge2)
|> xLine(length = -0.183 * railHeight, tag = $edge3)
@ -37,35 +25,15 @@ fn rail8020(originStart, railHeight, railLength) {
|> xLine(length = -0.183 * railHeight, tag = $edge7)
|> yLine(length = -0.087 * railHeight, tag = $edge8)
|> xLine(length = 0.06 * railHeight)
|> arc({
angleStart = 180,
angleEnd = 0,
radius = 0.072 / 4 * railHeight
}, %)
|> arc(angleStart = 180, angleEnd = 0, radius = 0.072 / 4 * railHeight)
|> xLine(length = 0.1 * railHeight)
|> arc({
angleStart = 180,
angleEnd = 0,
radius = 0.072 / 4 * railHeight
}, %)
|> arc({
angleStart = -90,
angleEnd = 0,
radius = 0.1 * railHeight
}, %)
|> arc(angleStart = 180, angleEnd = 0, radius = 0.072 / 4 * railHeight)
|> arc(angleStart = -90, angleEnd = 0, radius = 0.1 * railHeight)
// Sketch side 2 of profile
|> arc({
angleStart = 270,
angleEnd = 90,
radius = 0.072 / 4 * railHeight
}, %)
|> arc(angleStart = 270, angleEnd = 90, radius = 0.072 / 4 * railHeight)
|> yLine(length = 0.1 * railHeight)
|> arc({
angleStart = 270,
angleEnd = 90,
radius = 0.072 / 4 * railHeight
}, %)
|> arc(angleStart = 270, angleEnd = 90, radius = 0.072 / 4 * railHeight)
|> yLine(length = 0.06 * railHeight, tag = $edge9)
|> xLine(length = -0.087 * railHeight, tag = $edge10)
|> yLine(length = -0.183 * railHeight, tag = $edge11) // edge11
@ -75,35 +43,15 @@ fn rail8020(originStart, railHeight, railLength) {
|> yLine(length = -0.183 * railHeight, tag = $edge15) // 15
|> xLine(length = 0.087 * railHeight, tag = $edge16)
|> yLine(length = 0.06 * railHeight)
|> arc({
angleStart = 270,
angleEnd = 90,
radius = 0.072 / 4 * railHeight
}, %)
|> arc(angleStart = 270, angleEnd = 90, radius = 0.072 / 4 * railHeight)
|> yLine(length = 0.1 * railHeight)
|> arc({
angleStart = 270,
angleEnd = 90,
radius = 0.072 / 4 * railHeight
}, %)
|> arc(angleStart = 270, angleEnd = 90, radius = 0.072 / 4 * railHeight)
// Sketch side 3 of profile
|> arc({
angleStart = 0,
angleEnd = 90,
radius = 0.1 * railHeight
}, %)
|> arc({
angleStart = 0,
angleEnd = -180,
radius = 0.072 / 4 * railHeight
}, %)
|> arc(angleStart = 0, angleEnd = 90, radius = 0.1 * railHeight)
|> arc(angleStart = 0, angleEnd = -180, radius = 0.072 / 4 * railHeight)
|> xLine(length = -0.1 * railHeight)
|> arc({
angleStart = 0,
angleEnd = -180,
radius = 0.072 / 4 * railHeight
}, %)
|> arc(angleStart = 0, angleEnd = -180, radius = 0.072 / 4 * railHeight)
|> xLine(length = -0.06 * railHeight, tag = $edge17)
|> yLine(length = -0.087 * railHeight, tag = $edge18)
|> xLine(length = 0.183 * railHeight, tag = $edge19)
@ -113,35 +61,15 @@ fn rail8020(originStart, railHeight, railLength) {
|> xLine(length = 0.183 * railHeight, tag = $edge23)
|> yLine(length = 0.087 * railHeight, tag = $edge24)
|> xLine(length = -0.06 * railHeight)
|> arc({
angleStart = 0,
angleEnd = -180,
radius = 0.072 / 4 * railHeight
}, %)
|> arc(angleStart = 0, angleEnd = -180, radius = 0.072 / 4 * railHeight)
|> xLine(length = -0.1 * railHeight)
|> arc({
angleStart = 0,
angleEnd = -180,
radius = 0.072 / 4 * railHeight
}, %)
|> arc({
angleStart = 90,
angleEnd = 180,
radius = 0.1 * railHeight
}, %)
|> arc(angleStart = 0, angleEnd = -180, radius = 0.072 / 4 * railHeight)
|> arc(angleStart = 90, angleEnd = 180, radius = 0.1 * railHeight)
// Sketch side 4 of profile
|> arc({
angleStart = 90,
angleEnd = -90,
radius = 0.072 / 4 * railHeight
}, %)
|> arc(angleStart = 90, angleEnd = -90, radius = 0.072 / 4 * railHeight)
|> yLine(length = -0.1 * railHeight)
|> arc({
angleStart = 90,
angleEnd = -90,
radius = 0.072 / 4 * railHeight
}, %)
|> arc(angleStart = 90, angleEnd = -90, radius = 0.072 / 4 * railHeight)
|> yLine(length = -0.06 * railHeight, tag = $edge25)
|> xLine(length = 0.087 * railHeight, tag = $edge26)
|> yLine(length = 0.183 * railHeight, tag = $edge27)
@ -151,17 +79,9 @@ fn rail8020(originStart, railHeight, railLength) {
|> yLine(length = 0.183 * railHeight, tag = $edge31)
|> xLine(length = -0.087 * railHeight, tag = $edge32)
|> yLine(length = -0.06 * railHeight)
|> arc({
angleStart = 90,
angleEnd = -90,
radius = 0.072 / 4 * railHeight
}, %)
|> arc(angleStart = 90, angleEnd = -90, radius = 0.072 / 4 * railHeight)
|> yLine(length = -0.1 * railHeight)
|> arc({
angleStart = 90,
angleEnd = -90,
radius = 0.072 / 4 * railHeight
}, %)
|> arc(angleStart = 90, angleEnd = -90, radius = 0.072 / 4 * railHeight)
|> close()
// Sketch center hole of profile

View File

@ -39,38 +39,34 @@ fn fanBlade(offsetHeight, startAngle) {
15 * cos(toRadians(startAngle)),
15 * sin(toRadians(startAngle))
], %)
|> arc({
angleStart = startAngle,
angleEnd = startAngle + 14,
radius = 15
}, %)
|> arcTo({
end = [
|> arc(angleStart = startAngle, angleEnd = startAngle + 14, radius = 15)
|> arc(
endAbsolute = [
fanSize * 22 / 50 * cos(toRadians(startAngle - 20)),
fanSize * 22 / 50 * sin(toRadians(startAngle - 20))
],
interior = [
interiorAbsolute = [
fanSize * 11 / 50 * cos(toRadians(startAngle + 3)),
fanSize * 11 / 50 * sin(toRadians(startAngle + 3))
]
}, %)
|> arcTo({
end = [
],
)
|> arc(
endAbsolute = [
fanSize * 22 / 50 * cos(toRadians(startAngle - 24)),
fanSize * 22 / 50 * sin(toRadians(startAngle - 24))
],
interior = [
interiorAbsolute = [
fanSize * 22 / 50 * cos(toRadians(startAngle - 22)),
fanSize * 22 / 50 * sin(toRadians(startAngle - 22))
]
}, %)
|> arcTo({
end = [profileStartX(%), profileStartY(%)],
interior = [
],
)
|> arc(
endAbsolute = [profileStartX(%), profileStartY(%)],
interiorAbsolute = [
fanSize * 11 / 50 * cos(toRadians(startAngle - 5)),
fanSize * 11 / 50 * sin(toRadians(startAngle - 5))
]
}, %)
],
)
|> close()
return fanBlade
}

View File

@ -27,11 +27,7 @@ insideWall = extrude(insideWallSketch, length = overallThickness)
// Create the sketch of one of the balls
ballsSketch = startSketchOn(XY)
|> startProfileAt([shaftDia / 2 + wallThickness, 0.001], %)
|> arc({
angleEnd = 0,
angleStart = 180,
radius = sphereDia / 2
}, %)
|> arc(angleStart = 180, angleEnd = 0, radius = sphereDia / 2)
|> close()
// Revolve the ball to make a sphere and pattern around the inside wall
@ -50,11 +46,7 @@ chainSketch = startSketchOn(XY)
shaftDia / 2 + wallThickness + sphereDia / 2 - (chainWidth / 2),
0.125 * sin(toRadians(60))
], %)
|> arc({
angleEnd = 60,
angleStart = 120,
radius = sphereDia / 2
}, %)
|> arc(angleStart = 120, angleEnd = 60, radius = sphereDia / 2)
|> line(end = [0, chainThickness])
|> line(end = [-chainWidth, 0])
|> close()

View File

@ -107,11 +107,7 @@ fn armRestPath(plane) {
sketch005 = startSketchOn(plane)
|> startProfileAt([20, 33], %)
|> xLine(length = -20)
|> arc({
angleStart = 90,
angleEnd = 180,
radius = 10
}, %)
|> arc(angleStart = 90, angleEnd = 180, radius = 10)
return sketch005
}

View File

@ -16,10 +16,7 @@ wallThickness = 4
bottleBody = startSketchOn(XY)
|> startProfileAt([-bottleLength / 2, 0], %)
|> yLine(length = bottleWidth / 3)
|> arcTo({
end = [bottleLength / 2, bottleWidth / 3],
interior = [0, bottleWidth / 2]
}, %)
|> arc(endAbsolute = [bottleLength / 2, bottleWidth / 3], interiorAbsolute = [0, bottleWidth / 2])
|> yLine(endAbsolute = 0)
|> mirror2d(axis = X)
|> close()

View File

@ -46,11 +46,7 @@ lugHoles = startSketchOn(lugBase, face = END)
wheelCenterInner = startSketchOn(XY)
|> startProfileAt([(lugSpacing - 1.5) / 2, 0], %)
|> yLine(length = -wheelWidth / 10 - (wheelWidth / 20))
|> bezierCurve({
to = [-0.4, 0.3],
control1 = [-0.3, 0],
control2 = [0, 0.3]
}, %)
|> bezierCurve(control1 = [-0.3, 0], control2 = [0, 0.3], end = [-0.4, 0.3])
|> yLine(endAbsolute = 0)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
@ -60,11 +56,7 @@ wheelCenterInner = startSketchOn(XY)
wheelCenterOuter = startSketchOn(XY)
|> startProfileAt([(lugSpacing + 1.5) / 2, 0], %)
|> yLine(length = -wheelWidth / 10 - (wheelWidth / 20))
|> bezierCurve({
to = [0.4, -0.1],
control1 = [0.3, 0],
control2 = [0.2, -0.3]
}, %)
|> bezierCurve(control1 = [0.3, 0], control2 = [0.2, -0.3], end = [0.4, -0.1])
|> yLine(endAbsolute = -wheelWidth / 20)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
@ -84,11 +76,7 @@ fn spoke(spokeGap, spokeAngle, spokeThickness) {
// Spoke cross sections
spokeProfile = startSketchOn(plane001)
|> startProfileAt([(lugSpacing + 2) / 2, -0.7], %)
|> bezierCurve({
to = [
(wheelDiameter - lugSpacing - 2.9) / 2,
offset
],
|> bezierCurve(
control1 = [
(wheelDiameter - lugSpacing - 2.9) / 3.5,
offset / 7
@ -96,14 +84,14 @@ fn spoke(spokeGap, spokeAngle, spokeThickness) {
control2 = [
(wheelDiameter - lugSpacing - 2.9) / 4,
offset / 1.5
]
}, %)
|> yLine(length = -wheelWidth / 15)
|> bezierCurve({
to = [
-(wheelDiameter - lugSpacing - 2.9) / 2,
-offset
],
end = [
(wheelDiameter - lugSpacing - 2.9) / 2,
offset
],
)
|> yLine(length = -wheelWidth / 15)
|> bezierCurve(
control1 = [
-(wheelDiameter - lugSpacing - 2.9) / 5,
-offset / 7
@ -111,8 +99,12 @@ fn spoke(spokeGap, spokeAngle, spokeThickness) {
control2 = [
-(wheelDiameter - lugSpacing - 2.9) / 5,
-offset / 1.5
]
}, %)
],
end = [
-(wheelDiameter - lugSpacing - 2.9) / 2,
-offset
],
)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()

View File

@ -14,11 +14,7 @@ fn cycloidalGear(gearPitch, gearHeight, holeDiameter, helixAngle) {
gearPitch * 1.55 * cos(toRadians(helixAngleP)) + gearPitch * sin(toRadians(-helixAngleP)),
gearPitch * 1.55 * sin(toRadians(helixAngleP)) + gearPitch * cos(toRadians(-helixAngleP))
], %)
|> arc({
angleStart = 90 + helixAngleP,
angleEnd = -90 + helixAngleP,
radius = gearPitch
}, %)
|> arc(angleStart = 90 + helixAngleP, angleEnd = -90 + helixAngleP, radius = gearPitch)
|> tangentialArc(radius = gearPitch * 1.67, angle = 60)
|> tangentialArc(radius = gearPitch, angle = -180)
|> tangentialArc(radius = gearPitch * 1.67, angle = 60)

View File

@ -51,11 +51,7 @@ flipperProfile = startProfileAt([-flipperLength, -32.0], flipperSketch)
|> line(end = [flipperLength, 2.0])
|> yLine(length = 60.0, tag = $backEdge)
|> line(end = [-flipperLength, 2.0])
|> arc({
angleEnd = 196.912390,
angleStart = 163.087610,
radius = 110.0
}, %)
|> arc(angleStart = 163.087610, angleEnd = 196.912390, radius = 110.0)
|> close()
// Create a profile of the middle
@ -126,29 +122,13 @@ gripSketch = startSketchOn(handlePlane)
// Create a profile of the grip
gripProfile = startProfileAt([-26.806746, -10.0], gripSketch)
|> xLine(length = gripWidth - (2 * gripFilletRadius))
|> arc({
angleStart = -90.0,
angleEnd = 0.0,
radius = gripFilletRadius
}, %)
|> arc(angleStart = -90.0, angleEnd = 0.0, radius = gripFilletRadius)
|> yLine(length = gripHeight - (2 * gripFilletRadius))
|> arc({
angleStart = 0.0,
angleEnd = 90.0,
radius = gripFilletRadius
}, %)
|> arc(angleStart = 0.0, angleEnd = 90.0, radius = gripFilletRadius)
|> xLine(length = -(gripWidth - (2 * gripFilletRadius)))
|> arc({
angleStart = 90.0,
angleEnd = 180.0,
radius = gripFilletRadius
}, %)
|> arc(angleStart = 90.0, angleEnd = 180.0, radius = gripFilletRadius)
|> yLine(length = -(gripHeight - (2 * gripFilletRadius)), tag = $gripEdgeTop)
|> arc({
angleStart = 180.0,
angleEnd = 270.0,
radius = gripFilletRadius
}, %)
|> arc(angleStart = 180.0, angleEnd = 270.0, radius = gripFilletRadius)
|> close()
// Extrude the grip profile to create the grip

View File

@ -32,43 +32,19 @@ sketch002 = startSketchOn(plane001)
|> startProfileAt([carafeDiameter / 2, 5.7], %)
|> xLine(length = 0.1)
|> yLine(length = -5.2, tag = $edge1)
|> arc({
angleStart = 180,
angleEnd = 205,
radius = 0.3
}, %)
|> arc(angleStart = 180, angleEnd = 205, radius = 0.3)
|> angledLine(angle = -60, length = 0.6, tag = $edge2)
|> arc({
angleStart = 30,
angleEnd = -120,
radius = 0.6
}, %)
|> arc(angleStart = 30, angleEnd = -120, radius = 0.6)
|> angledLine(angle = 150, endAbsoluteY = -0.2, tag = $edge3)
|> arc({
angleStart = 60,
angleEnd = 90,
radius = 0.5
}, %)
|> arc(angleStart = 60, angleEnd = 90, radius = 0.5)
|> xLine(endAbsolute = 0.1, tag = $edgeLen)
|> yLine(length = 0.1)
|> xLine(length = segLen(edgeLen) + 0.035, tag = $edge4)
|> arc({
angleStart = 90,
angleEnd = 60,
radius = 0.6
}, %)
|> arc(angleStart = 90, angleEnd = 60, radius = 0.6)
|> angledLine(angle = 150, length = -segLen(edge3) + 0.035, tag = $edge5)
|> arc({
angleStart = -120,
angleEnd = 30,
radius = 0.5
}, %)
|> arc(angleStart = -120, angleEnd = 30, radius = 0.5)
|> angledLine(angle = -60, length = -segLen(edge2) + 0.035, tag = $edge6)
|> arc({
angleStart = 205,
angleEnd = 180,
radius = 0.6
}, %)
|> arc(angleStart = 205, angleEnd = 180, radius = 0.6)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
|> extrude(length = 0.75)
@ -89,11 +65,7 @@ extrude001 = extrude(sketch003, length = 0.050)
sketch004 = startSketchOn(extrude001, face = END)
|> startProfileAt([0.3, 0.17], %)
|> yLine(length = 1.2)
|> arc({
angleStart = 90,
angleEnd = -30,
radius = 1.2
}, %)
|> arc(angleStart = 90, angleEnd = -30, radius = 1.2)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
|> patternCircular2d(
@ -177,11 +149,7 @@ sketch011 = startSketchOn(XZ)
|> xLine(length = 0.3)
|> yLine(length = 0.4)
|> line(end = [-0.02, 0.02])
|> bezierCurve({
to = [-carafeDiameter / 2 - 0.1, 1],
control1 = [-0.3, 0],
control2 = [carafeDiameter / 10, 1]
}, %)
|> bezierCurve(control1 = [-0.3, 0], control2 = [carafeDiameter / 10, 1], end = [-carafeDiameter / 2 - 0.1, 1])
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
|> revolve(axis = Y)

View File

@ -63,11 +63,7 @@ fn rightInvolute(i, sg) {
start = startSketchOn(XY)
|> startProfileAt([xs[101], ys[101]], %)
teeth = reduce([0..100], start, leftInvolute)
|> arc({
angleStart = 0,
angleEnd = toothAngle,
radius = baseDiameter / 2
}, %)
|> arc(angleStart = 0, angleEnd = toothAngle, radius = baseDiameter / 2)
|> reduce([1..101], %, rightInvolute)
|> close()
|> extrude(length = gearHeight)
@ -95,15 +91,7 @@ keyWay = startSketchOn(body, face = END)
|> xLine(length = keywayDepth)
|> yLine(length = -keywayWidth)
|> xLine(length = -keywayDepth)
|> arc({
angleEnd = 180,
angleStart = -1 * toDegrees(startAngle) + 360,
radius = holeRadius
}, %)
|> arc({
angleEnd = toDegrees(startAngle),
angleStart = 180,
radius = holeRadius
}, %)
|> arc(angleStart = -1 * toDegrees(startAngle) + 360, angleEnd = 180, radius = holeRadius)
|> arc(angleStart = 180, angleEnd = toDegrees(startAngle), radius = holeRadius)
|> close()
|> extrude(length = -gearHeight)

View File

@ -91,35 +91,19 @@ fn magnetCenterCutout(plane) {
2 * magOuterDiam
], %)
|> xLine(length = 2 * magOuterDiam - (firstStep + thirdStep) - (magOuterDiam / 2))
|> arc({
angleStart = 90.0,
angleEnd = 0.0,
radius = magOuterDiam / 2
}, %)
|> arc(angleStart = 90.0, angleEnd = 0.0, radius = magOuterDiam / 2)
|> yLine(length = -(2 * magOuterDiam - (firstStep + thirdStep) - (magOuterDiam / 2)))
|> xLine(length = binLength - (4 * magOuterDiam))
|> yLine(length = 2 * magOuterDiam - (firstStep + thirdStep) - (magOuterDiam / 2))
|> arc({
angleStart = 180.0,
angleEnd = 90.0,
radius = magOuterDiam / 2
}, %)
|> arc(angleStart = 180.0, angleEnd = 90.0, radius = magOuterDiam / 2)
|> xLine(length = 2 * magOuterDiam - (firstStep + thirdStep) - (magOuterDiam / 2))
|> yLine(length = binLength - (4 * magOuterDiam))
|> xLine(length = -(2 * magOuterDiam - (firstStep + thirdStep) - (magOuterDiam / 2)))
|> arc({
angleStart = 270.0,
angleEnd = 180.0,
radius = magOuterDiam / 2
}, %)
|> arc(angleStart = 270.0, angleEnd = 180.0, radius = magOuterDiam / 2)
|> yLine(length = 2 * magOuterDiam - (firstStep + thirdStep) - (magOuterDiam / 2))
|> xLine(length = -(binLength - (4 * magOuterDiam)), tag = $line012)
|> yLine(length = -(2 * magOuterDiam - (firstStep + thirdStep) - (magOuterDiam / 2)))
|> arc({
angleStart = 360.0,
angleEnd = 270.0,
radius = magOuterDiam / 2
}, %)
|> arc(angleStart = 360.0, angleEnd = 270.0, radius = magOuterDiam / 2)
|> xLine(length = -(2 * magOuterDiam - (firstStep + thirdStep) - (magOuterDiam / 2)))
|> yLine(length = -(binLength - (4 * magOuterDiam)))
|> close()

View File

@ -179,11 +179,12 @@ fn lipFace(plane) {
|> startProfileAt([0, 0], %)
// |> yLine(length = lipHeight, tag = $line100)
|> line(end = [0.0, 5.792893], tag = $line000)
|> arc({
|> arc(
angleStart = 180.0,
angleEnd = 45.0,
radius = 0.500000
}, %, $arc000)
radius = 0.500000,
tag = $arc000,
)
// |> angledLine(angle = -45, lengthY = lipStep5 )
|> line(end = [1.046447, -1.046447], tag = $line001)
|> yLine(length = -lipStep4)

View File

@ -66,11 +66,7 @@ plane001 = {
fn keyFn(originStart, keyWidth, keyHeight, repeats, color) {
sketch002 = startSketchOn(plane001)
profile002 = startProfileAt([originStart[0], originStart[1]], sketch002)
|> arc({
angleStart = 180,
angleEnd = 270,
radius = 0.1
}, %)
|> arc(angleStart = 180, angleEnd = 270, radius = 0.1)
|> angledLine(angle = 0, length = keyWidth - .2, tag = $rectangleSegmentA001)
|> tangentialArc(radius = 0.1, angle = 90)
|> angledLine(angle = segAng(rectangleSegmentA001) + 90, length = keyHeight - .2, tag = $rectangleSegmentB001)
@ -167,17 +163,9 @@ fn o(origin, scale, depth) {
.788 * scale + origin[0],
.921 * scale + origin[1]
], %)
|> arc({
angleStart = 47.15 + 6,
angleEnd = 47.15 - 6 + 180,
radius = .525 * scale
}, %)
|> arc(angleStart = 47.15 + 6, angleEnd = 47.15 - 6 + 180, radius = .525 * scale)
|> angledLine(angle = 47.15, length = .24 * scale)
|> arc({
angleStart = 47.15 - 11 + 180,
angleEnd = 47.15 + 11,
radius = .288 * scale
}, %)
|> arc(angleStart = 47.15 - 11 + 180, angleEnd = 47.15 + 11, radius = .288 * scale)
|> close()
|> extrude(length = -depth)
|> appearance(color = baseColor)
@ -187,17 +175,9 @@ fn o(origin, scale, depth) {
.16 * scale + origin[0],
.079 * scale + origin[1]
], %)
|> arc({
angleStart = 47.15 + 6 - 180,
angleEnd = 47.15 - 6,
radius = .525 * scale
}, %)
|> arc(angleStart = 47.15 + 6 - 180, angleEnd = 47.15 - 6, radius = .525 * scale)
|> angledLine(angle = 47.15, length = -.24 * scale)
|> arc({
angleStart = 47.15 - 11,
angleEnd = 47.15 + 11 - 180,
radius = .288 * scale
}, %)
|> arc(angleStart = 47.15 - 11, angleEnd = 47.15 + 11 - 180, radius = .288 * scale)
|> close()
|> extrude(length = -depth)
|> appearance(color = baseColor)

View File

@ -58,18 +58,15 @@ fn mirrorFn(plane, offsetX, offsetY, altitude, radius, tiefe, gestellR, gestellD
archBody = startProfileAt([offsetX - gestellR, altitude], armPlane)
|> xLine(length = gestellD)
|> arcTo({
interior = [offsetX, altitude - gestellR],
end = [offsetX + gestellR, altitude]
}, %)
|> arc(interiorAbsolute = [offsetX, altitude - gestellR], endAbsolute = [offsetX + gestellR, altitude])
|> xLine(length = gestellD)
|> arcTo({
interior = [
|> arc(
interiorAbsolute = [
offsetX,
altitude - gestellR - gestellD
],
end = [profileStartX(%), profileStartY(%)]
}, %)
endAbsolute = [profileStartX(%), profileStartY(%)],
)
|> close()
|> extrude(length = tiefe)
return armBody

View File

@ -11,17 +11,9 @@ sketch011 = startSketchOn(plane003)
1.75 - (axisJ2ArmWidth / 2 * sin(toRadians(axisJ2))),
8 + axisJ2ArmWidth / 2 * cos(toRadians(axisJ2))
], %)
|> arc({
angleStart = 90 + axisJ2,
angleEnd = 270 + axisJ2,
radius = axisJ2ArmWidth / 2
}, %)
|> arc(angleStart = 90 + axisJ2, angleEnd = 270 + axisJ2, radius = axisJ2ArmWidth / 2)
|> angledLine(angle = axisJ2, length = axisJ2ArmLength)
|> arc({
angleStart = -90 + axisJ2,
angleEnd = 90 + axisJ2,
radius = axisJ2ArmWidth / 2
}, %)
|> arc(angleStart = -90 + axisJ2, angleEnd = 90 + axisJ2, radius = axisJ2ArmWidth / 2)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
extrude011 = extrude(sketch011, length = -axisJ2ArmThickness)

View File

@ -11,17 +11,9 @@ sketch017 = startSketchOn(plane002)
1.75 + axisJ2ArmLength * cos(toRadians(axisJ2)) - (axisJ3CArmWidth / 2 * sin(toRadians(axisJ3C))),
8 + axisJ2ArmLength * sin(toRadians(axisJ2)) + axisJ3CArmWidth / 2 * cos(toRadians(axisJ3C))
], %)
|> arc({
angleStart = 90 + axisJ3C,
angleEnd = 270 + axisJ3C,
radius = axisJ3CArmWidth / 2
}, %)
|> arc(angleStart = 90 + axisJ3C, angleEnd = 270 + axisJ3C, radius = axisJ3CArmWidth / 2)
|> angledLine(angle = axisJ3C, length = axisJ3CArmLength)
|> arc({
angleStart = 270 + axisJ3C,
angleEnd = 90 + axisJ3C,
radius = axisJ3CArmWidth / 2
}, %)
|> arc(angleStart = 270 + axisJ3C, angleEnd = 90 + axisJ3C, radius = axisJ3CArmWidth / 2)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg01)
|> close()
extrude017 = extrude(sketch017, length = axisJ3CArmThickness)
@ -97,11 +89,7 @@ sketch023 = startSketchOn(extrude022, face = START)
8 + axisJ2ArmLength * sin(toRadians(axisJ2)) + axisJ3CArmLength * sin(toRadians(axisJ3C))
], %)
|> angledLine(angle = axisJ3C + axisJ4 / 2, length = grabberLength / 4)
|> arc({
angleStart = 150 + axisJ3C + axisJ4 / 2,
angleEnd = 30 + axisJ3C + axisJ4 / 2,
radius = grabberLength / 3
}, %)
|> arc(angleStart = 150 + axisJ3C + axisJ4 / 2, angleEnd = 30 + axisJ3C + axisJ4 / 2, radius = grabberLength / 3)
|> angledLine(angle = axisJ3C + axisJ4 / 2, length = grabberLength / 6)
|> angledLine(angle = axisJ3C + axisJ4 / 2 + 132, length = grabberLength / 3.5)
|> angledLine(angle = axisJ3C + axisJ4 / 2 + 160, length = grabberLength / 3.5)
@ -118,11 +106,7 @@ sketch024 = startSketchOn(extrude022, face = START)
8 + axisJ2ArmLength * sin(toRadians(axisJ2)) + axisJ3CArmLength * sin(toRadians(axisJ3C))
], %)
|> angledLine(angle = axisJ3C - (axisJ4 / 2), length = grabberLength / 4)
|> arc({
angleStart = 210 + axisJ3C - (axisJ4 / 2),
angleEnd = 330 + axisJ3C - (axisJ4 / 2),
radius = grabberLength / 3
}, %)
|> arc(angleStart = 210 + axisJ3C - (axisJ4 / 2), angleEnd = 330 + axisJ3C - (axisJ4 / 2), radius = grabberLength / 3)
|> angledLine(angle = axisJ3C - (axisJ4 / 2), length = grabberLength / 6)
|> angledLine(angle = axisJ3C - (axisJ4 / 2) - 132, length = grabberLength / 3.5)
|> angledLine(angle = axisJ3C - (axisJ4 / 2) - 160, length = grabberLength / 3.5)

View File

@ -15,11 +15,7 @@ extrude005 = extrude(sketch005, length = 1.5 - 0.1)
sketch006 = startSketchOn(plane002)
|> startProfileAt([3.5, baseHeight], %)
|> angledLine(angle = 60, length = 1.75)
|> arc({
angleStart = -30,
angleEnd = -30 + 180,
radius = 3
}, %)
|> arc(angleStart = -30, angleEnd = -30 + 180, radius = 3)
|> angledLine(angle = 60, endAbsoluteY = baseHeight)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()

View File

@ -21,11 +21,12 @@ distanceToInsideEdge = slateWidthHalf + templateThickness + templateGap
sketch001 = startSketchOn(XZ)
|> startProfileAt([0, depth + templateGap], %)
|> xLine(length = slateWidthHalf - radius, tag = $seg01)
|> arc({
angleEnd = 0,
|> arc(
angleStart = 90,
radius = 10 + templateGap
}, %, $seg09)
angleEnd = 0,
radius = 10 + templateGap,
tag = $seg09,
)
|> yLine(endAbsolute = -templateThickness, tag = $seg03)
|> xLine(length = templateThickness, tag = $seg07)
|> yLine(endAbsolute = (segEndY(seg01) + templateThickness) / 2 - templateThickness, tag = $seg02)
@ -42,11 +43,7 @@ sketch001 = startSketchOn(XZ)
|> yLine(length = -segLen(seg02))
|> xLine(length = segLen(seg07))
|> yLine(length = segLen(seg03))
|> arc({
angleEnd = 90,
angleStart = 180,
radius = 10 + templateGap
}, %)
|> arc(angleStart = 180, angleEnd = 90, radius = 10 + templateGap)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()

View File

@ -22,11 +22,7 @@ length002 = depth + minClampingDistance
sketch001 = startSketchOn(XZ)
|> startProfileAt([0, depth - templateGap], %)
|> xLine(length = length001, tag = $seg01)
|> arc({
angleEnd = 0,
angleStart = 90,
radius = radius - templateGap
}, %)
|> arc(angleStart = 90, angleEnd = 0, radius = radius - templateGap)
|> yLine(endAbsolute = -templateGap * 2 - (templateDiameter / 2), tag = $seg05)
|> xLine(endAbsolute = slateWidthHalf + templateThickness, tag = $seg04)
|> yLine(length = -length002, tag = $seg03)
@ -36,11 +32,7 @@ sketch001 = startSketchOn(XZ)
|> yLine(length = segLen(seg03))
|> xLine(length = segLen(seg04))
|> yLine(length = segLen(seg05))
|> arc({
angleEnd = 90,
angleStart = 180,
radius = radius - templateGap
}, %)
|> arc(angleStart = 180, angleEnd = 90, radius = radius - templateGap)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()

View File

@ -12,11 +12,7 @@ startSketchOn(XZ)
|> startProfileAt([0.0001, 0], %)
|> xLine(length = knobDiameter / 2)
|> yLine(length = knobHeight - 0.05)
|> arc({
angleStart = 0,
angleEnd = 90,
radius = .05
}, %)
|> arc(angleStart = 0, angleEnd = 90, radius = .05)
|> xLine(endAbsolute = 0.0001)
|> close()
|> revolve(axis = Y)

View File

@ -33,17 +33,9 @@ export fn oLogo(surface, origin, scale) {
.788 * scale + origin[0],
.921 * scale + origin[1]
], %)
|> arc({
angleStart = 47.15 + 6,
angleEnd = 47.15 - 6 + 180,
radius = .525 * scale
}, %)
|> arc(angleStart = 47.15 + 6, angleEnd = 47.15 - 6 + 180, radius = .525 * scale)
|> angledLine(angle = 47.15, length = .24 * scale)
|> arc({
angleStart = 47.15 - 11 + 180,
angleEnd = 47.15 + 11,
radius = .288 * scale
}, %)
|> arc(angleStart = 47.15 - 11 + 180, angleEnd = 47.15 + 11, radius = .288 * scale)
|> close()
return oSketch001
}
@ -54,17 +46,9 @@ export fn oLogo2(surface, origin, scale) {
.16 * scale + origin[0],
.079 * scale + origin[1]
], %)
|> arc({
angleStart = 47.15 + 6 - 180,
angleEnd = 47.15 - 6,
radius = .525 * scale
}, %)
|> arc(angleStart = 47.15 + 6 - 180, angleEnd = 47.15 - 6, radius = .525 * scale)
|> angledLine(angle = 47.15, length = -.24 * scale)
|> arc({
angleStart = 47.15 - 11,
angleEnd = 47.15 + 11 - 180,
radius = .288 * scale
}, %)
|> arc(angleStart = 47.15 - 11, angleEnd = 47.15 + 11 - 180, radius = .288 * scale)
|> close()
return oSketch002
}

View File

@ -4,6 +4,6 @@ const height = 3
const body = startSketchOn(XY)
|> startProfileAt([center[0]+radius, center[1]], %)
|> arc({angleEnd: 360, angleStart: 0, radius}, %)
|> arc(angleEnd = 360, angleStart = 0, radius = radius)
|> close()
|> extrude(length = height)

View File

@ -1,7 +1,6 @@
let triangleHeight = 200
let plumbusLen = 100
let radius = 80
let circ = {angle_start: 0, angle_end: 360, radius: radius}
let triangleLen = 500
const p = startSketchOn(XY)
@ -14,7 +13,12 @@ const p = startSketchOn(XY)
fn circl = (x, face) => {
return startSketchOn(p, face = face)
|> startProfileAt([x + radius, triangleHeight/2], %)
|> arc(circ, %, $arc_tag)
|> arc(
angleStart = 0,
angleEnd = 360,
radius = radius,
tag = $arc_tag,
)
|> close()
}

View File

@ -3,108 +3,108 @@ const svg = startSketchOn(XY)
|> line(endAbsolute = [22.687663, -2.7664351]) // MoveRelative
|> line(endAbsolute = [15.687664000000002, -5.7664351]) // MoveRelative
|> bezierCurve({ control1: [9.6876636, -13.766435], control2: [12.350729000000001, -9.156355099999999], to: [12.350729000000001, -9.156355099999999]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [3.6876636000000005, -32.766435], control2: [6.962245000000001, -20.186315], to: [4.8344949, -25.885455]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [5.0392261000000005, -58.571125], control2: [2.9675173000000004, -41.612785], to: [3.0190312000000006, -49.894795]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [10.687664000000002, -73.766435], control2: [6.693877800000001, -63.826655], to: [8.2887432, -68.804835]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [20.375163, -80.578935], control2: [16.045534000000004, -78.630635], to: [16.045534000000004, -78.630635]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [30.062663, -82.266435], control2: [24.812782, -81.936245], to: [24.812782, -81.936245]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [41.125163, -79.516435], control2: [35.794902, -82.039475], to: [35.794902, -82.039475]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [49.687663, -72.766435], control2: [45.867323, -76.907555], to: [45.867323, -76.907555]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [9.6876636, -13.766435], control2 = [12.350729000000001, -9.156355099999999], end = [12.350729000000001, -9.156355099999999]) // CubicBezierRelative
|> bezierCurve(control1 = [3.6876636000000005, -32.766435], control2 = [6.962245000000001, -20.186315], end = [4.8344949, -25.885455]) // CubicBezierRelative
|> bezierCurve(control1 = [5.0392261000000005, -58.571125], control2 = [2.9675173000000004, -41.612785], end = [3.0190312000000006, -49.894795]) // CubicBezierRelative
|> bezierCurve(control1 = [10.687664000000002, -73.766435], control2 = [6.693877800000001, -63.826655], end = [8.2887432, -68.804835]) // CubicBezierRelative
|> bezierCurve(control1 = [20.375163, -80.578935], control2 = [16.045534000000004, -78.630635], end = [16.045534000000004, -78.630635]) // CubicBezierRelative
|> bezierCurve(control1 = [30.062663, -82.266435], control2 = [24.812782, -81.936245], end = [24.812782, -81.936245]) // CubicBezierRelative
|> bezierCurve(control1 = [41.125163, -79.516435], control2 = [35.794902, -82.039475], end = [35.794902, -82.039475]) // CubicBezierRelative
|> bezierCurve(control1 = [49.687663, -72.766435], control2 = [45.867323, -76.907555], end = [45.867323, -76.907555]) // CubicBezierRelative
|> line(endAbsolute = [50.687663, -69.766435]) // LineRelative
|> line(endAbsolute = [50.687663, -62.766435]) // VerticalLineHorizonal
|> line(endAbsolute = [48.687663, -57.891435]) // LineRelative
|> bezierCurve({ control1: [46.351725, -31.692225], control2: [46.191183, -48.997725], to: [46.295503000000004, -40.884555000000006]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [47.7736, -20.934404999999998], control2: [46.687663, -25.766435], to: [46.687663, -25.766435]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [46.351725, -31.692225], control2 = [46.191183, -48.997725], end = [46.295503000000004, -40.884555000000006]) // CubicBezierRelative
|> bezierCurve(control1 = [47.7736, -20.934404999999998], control2 = [46.687663, -25.766435], end = [46.687663, -25.766435]) // CubicBezierRelative
|> line(endAbsolute = [48.687663, -16.766434999999998]) // LineRelative
|> line(endAbsolute = [47.687663, -9.766435099999999]) // LineRelative
|> bezierCurve({ control1: [40.687663, -3.766435099999999], control2: [44.488820000000004, -6.310115099999999], to: [44.488820000000004, -6.310115099999999]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [22.687663, -2.766435099999999], control2: [34.632213, -2.2525750999999987], to: [28.903189, -2.550245099999999]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [40.687663, -3.766435099999999], control2 = [44.488820000000004, -6.310115099999999], end = [44.488820000000004, -6.310115099999999]) // CubicBezierRelative
|> bezierCurve(control1 = [22.687663, -2.766435099999999], control2 = [34.632213, -2.2525750999999987], end = [28.903189, -2.550245099999999]) // CubicBezierRelative
// StopRelative
|> line(endAbsolute = [116.68767, -9.766435099999999]) // MoveRelative
|> bezierCurve({ control1: [108.68767, -15.766434999999998], control2: [112.22719, -12.236704999999999], to: [112.22719, -12.236704999999999]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [102.37517, -28.953934999999998], control2: [105.79825, -20.100575], to: [103.93048, -23.991764999999997]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [101.68767, -47.766435], control2: [101.45837999999999, -35.371444999999994], to: [101.28287, -41.289805]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [110.31267, -61.203935], control2: [103.94304, -53.097335], to: [106.65406999999999, -56.725305]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [116.68767, -66.766435], control2: [113.42043, -64.74899500000001], to: [113.42043, -64.74899500000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [134.68767, -64.766435], control2: [123.4012, -67.124495], to: [128.03363, -66.429955]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [143.68767, -60.766435], control2: [139.37985, -63.042205], to: [139.37985, -63.042205]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [108.68767, -15.766434999999998], control2 = [112.22719, -12.236704999999999], end = [112.22719, -12.236704999999999]) // CubicBezierRelative
|> bezierCurve(control1 = [102.37517, -28.953934999999998], control2 = [105.79825, -20.100575], end = [103.93048, -23.991764999999997]) // CubicBezierRelative
|> bezierCurve(control1 = [101.68767, -47.766435], control2 = [101.45837999999999, -35.371444999999994], end = [101.28287, -41.289805]) // CubicBezierRelative
|> bezierCurve(control1 = [110.31267, -61.203935], control2 = [103.94304, -53.097335], end = [106.65406999999999, -56.725305]) // CubicBezierRelative
|> bezierCurve(control1 = [116.68767, -66.766435], control2 = [113.42043, -64.74899500000001], end = [113.42043, -64.74899500000001]) // CubicBezierRelative
|> bezierCurve(control1 = [134.68767, -64.766435], control2 = [123.4012, -67.124495], end = [128.03363, -66.429955]) // CubicBezierRelative
|> bezierCurve(control1 = [143.68767, -60.766435], control2 = [139.37985, -63.042205], end = [139.37985, -63.042205]) // CubicBezierRelative
|> line(endAbsolute = [148.68767, -55.766435]) // LineRelative
|> line(endAbsolute = [149.68767, -54.766435]) // LineRelative
|> bezierCurve({ control1: [149.75017, -46.078935], control2: [149.71427, -51.870655], to: [149.73387, -48.974805]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [150.68767, -36.766435], control2: [149.97673, -41.121905], to: [149.97673, -41.121905]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [158.68767, -30.766435], control2: [154.62517, -32.891435], to: [154.62517, -32.891435]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [149.75017, -46.078935], control2 = [149.71427, -51.870655], end = [149.73387, -48.974805]) // CubicBezierRelative
|> bezierCurve(control1 = [150.68767, -36.766435], control2 = [149.97673, -41.121905], end = [149.97673, -41.121905]) // CubicBezierRelative
|> bezierCurve(control1 = [158.68767, -30.766435], control2 = [154.62517, -32.891435], end = [154.62517, -32.891435]) // CubicBezierRelative
|> line(endAbsolute = [160.68767, -26.766435]) // LineRelative
|> line(endAbsolute = [160.68767, -20.766435]) // VerticalLineHorizonal
|> bezierCurve({ control1: [149.68767, -9.8289351], control2: [157.40521999999999, -16.321455], to: [154.13992, -13.098555000000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [145.68767, -7.766435100000001], control2: [148.36767, -9.148315100000001], to: [147.04767, -8.4676851]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [116.68767, -9.7664351], control2: [135.27527, -6.278955100000001], to: [126.6914, -6.2357151]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [149.68767, -9.8289351], control2 = [157.40521999999999, -16.321455], end = [154.13992, -13.098555000000001]) // CubicBezierRelative
|> bezierCurve(control1 = [145.68767, -7.766435100000001], control2 = [148.36767, -9.148315100000001], end = [147.04767, -8.4676851]) // CubicBezierRelative
|> bezierCurve(control1 = [116.68767, -9.7664351], control2 = [135.27527, -6.278955100000001], end = [126.6914, -6.2357151]) // CubicBezierRelative
// StopRelative
|> line(endAbsolute = [60.687663, -9.7664351]) // MoveRelative
|> line(endAbsolute = [54.687663, -13.766435000000001]) // MoveRelative
|> bezierCurve({ control1: [48.937663, -25.516435], control2: [50.481933, -19.450155000000002], to: [50.481933, -19.450155000000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [47.687663, -41.766435], control2: [47.773086, -31.339325000000002], to: [47.261382, -35.869545]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [50.687663, -56.766435], control2: [48.8286, -49.471785000000004], to: [48.8286, -49.471785000000004]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [48.937663, -25.516435], control2 = [50.481933, -19.450155000000002], end = [50.481933, -19.450155000000002]) // CubicBezierRelative
|> bezierCurve(control1 = [47.687663, -41.766435], control2 = [47.773086, -31.339325000000002], end = [47.261382, -35.869545]) // CubicBezierRelative
|> bezierCurve(control1 = [50.687663, -56.766435], control2 = [48.8286, -49.471785000000004], end = [48.8286, -49.471785000000004]) // CubicBezierRelative
|> line(endAbsolute = [54.687663, -62.766435]) // LineRelative
|> line(endAbsolute = [60.687663, -66.766435]) // LineRelative
|> bezierCurve({ control1: [69.562663, -67.203935], control2: [64.985029, -67.361225], to: [64.985029, -67.361225]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [74.17985, -67.199935], control2: [71.84817100000001, -67.201935], to: [71.84817100000001, -67.201935]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [86.687663, -63.766335], control2: [78.823333, -66.75328499999999], to: [82.418032, -65.599655]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [69.562663, -67.203935], control2 = [64.985029, -67.361225], end = [64.985029, -67.361225]) // CubicBezierRelative
|> bezierCurve(control1 = [74.17985, -67.199935], control2 = [71.84817100000001, -67.201935], end = [71.84817100000001, -67.201935]) // CubicBezierRelative
|> bezierCurve(control1 = [86.687663, -63.766335], control2 = [78.823333, -66.75328499999999], end = [82.418032, -65.599655]) // CubicBezierRelative
|> line(endAbsolute = [86.687663, -61.766335]) // VerticalLineHorizonal
|> line(endAbsolute = [90.687663, -60.766335]) // LineRelative
|> line(endAbsolute = [95.687663, -56.766335]) // LineRelative
|> line(endAbsolute = [98.687663, -49.766335]) // LineRelative
|> bezierCurve({ control1: [97.562663, -37.578835], control2: [98.934927, -43.021825], to: [98.934927, -43.021825]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [95.687663, -32.766335], control2: [96.943913, -35.990714999999994], to: [96.325163, -34.402584999999995]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [86.687663, -27.766334999999998], control2: [90.389309, -28.854045], to: [90.389309, -28.854045]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [97.562663, -37.578835], control2 = [98.934927, -43.021825], end = [98.934927, -43.021825]) // CubicBezierRelative
|> bezierCurve(control1 = [95.687663, -32.766335], control2 = [96.943913, -35.990714999999994], end = [96.325163, -34.402584999999995]) // CubicBezierRelative
|> bezierCurve(control1 = [86.687663, -27.766334999999998], control2 = [90.389309, -28.854045], end = [90.389309, -28.854045]) // CubicBezierRelative
|> line(endAbsolute = [84.687663, -23.766334999999998]) // LineRelative
|> line(endAbsolute = [82.687663, -22.766334999999998]) // LineRelative
|> line(endAbsolute = [79.687663, -17.766334999999998]) // LineRelative
|> line(endAbsolute = [77.687663, -17.766334999999998]) // HorizontalLineRelative
|> line(endAbsolute = [75.687663, -13.766334999999998]) // LineRelative
|> bezierCurve({ control1: [67.687663, -9.766335099999997], control2: [72.005138, -11.383034999999998], to: [72.005138, -11.383034999999998]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [67.687663, -9.766335099999997], control2 = [72.005138, -11.383034999999998], end = [72.005138, -11.383034999999998]) // CubicBezierRelative
|> line(endAbsolute = [60.687663, -9.766335099999997]) // HorizontalLineRelative
// StopRelative
|> line(endAbsolute = [295.68767, -33.766435]) // MoveAbsolute
|> bezierCurve({ control1: [286.31267, -36.578935], control2: [292.56461, -34.710375], to: [289.43947000000003, -35.647445000000005]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [242.00408000000002, -50.172685], control2: [271.51088000000004, -41.004795], to: [256.74729, -45.555595000000004]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [234.31267000000003, -52.578935], control2: [239.46591, -50.966755], to: [236.92775, -51.760815]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [227.28923000000003, -54.785975], control2: [231.99494, -53.307255], to: [229.67720000000003, -54.035585000000005]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [208.68767000000003, -59.766435], control2: [221.12295000000003, -56.635855], to: [214.94597000000005, -58.261215]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [286.31267, -36.578935], control2 = [292.56461, -34.710375], end = [289.43947000000003, -35.647445000000005]) // CubicBezierRelative
|> bezierCurve(control1 = [242.00408000000002, -50.172685], control2 = [271.51088000000004, -41.004795], end = [256.74729, -45.555595000000004]) // CubicBezierRelative
|> bezierCurve(control1 = [234.31267000000003, -52.578935], control2 = [239.46591, -50.966755], end = [236.92775, -51.760815]) // CubicBezierRelative
|> bezierCurve(control1 = [227.28923000000003, -54.785975], control2 = [231.99494, -53.307255], end = [229.67720000000003, -54.035585000000005]) // CubicBezierRelative
|> bezierCurve(control1 = [208.68767000000003, -59.766435], control2 = [221.12295000000003, -56.635855], end = [214.94597000000005, -58.261215]) // CubicBezierRelative
|> line(endAbsolute = [208.68767000000003, -57.766435]) // VerticalLineHorizonal
|> line(endAbsolute = [212.68767000000003, -55.766435]) // LineRelative
|> bezierCurve({ control1: [217.68767000000003, -48.766435], control2: [215.57281000000003, -52.830805], to: [215.57281000000003, -52.830805]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [218.68767000000003, -37.766435], control2: [218.84802000000002, -43.253935], to: [218.84802000000002, -43.253935]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [217.68767000000003, -48.766435], control2 = [215.57281000000003, -52.830805], end = [215.57281000000003, -52.830805]) // CubicBezierRelative
|> bezierCurve(control1 = [218.68767000000003, -37.766435], control2 = [218.84802000000002, -43.253935], end = [218.84802000000002, -43.253935]) // CubicBezierRelative
|> line(endAbsolute = [215.68767000000003, -31.766435]) // LineRelative
|> bezierCurve({ control1: [208.68767000000003, -26.766435], control2: [212.58234000000002, -28.940575000000003], to: [212.58234000000002, -28.940575000000003]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [192.68767000000003, -22.766435], control2: [203.18777000000003, -24.627585], to: [198.58520000000001, -23.608945000000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [174.68767000000003, -24.766435], control2: [186.30665000000002, -22.492965], to: [180.86041000000003, -23.137525]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [170.12517000000003, -25.953935], control2: [173.18205000000003, -25.158315], to: [171.67642000000004, -25.550185000000003]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [161.43767000000003, -31.016435], control2: [165.49678000000003, -27.618325000000002], to: [165.49678000000003, -27.618325000000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [152.68767000000003, -41.766435], control2: [157.93412000000004, -34.519995], to: [155.07957000000002, -37.431115]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [152.68767000000003, -50.766435], control2: [151.93767000000003, -46.266435], to: [151.93767000000003, -46.266435]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [160.43767000000003, -61.578935], control2: [156.18761000000003, -57.582325], to: [156.18761000000003, -57.582325]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [164.68767000000003, -64.766435], control2: [162.54142000000002, -63.156755000000004], to: [162.54142000000002, -63.156755000000004]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [180.68767000000003, -67.766435], control2: [172.62751000000003, -66.921865], to: [172.62751000000003, -66.921865]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [158.81267000000003, -75.266435], control2: [173.47790000000003, -70.856345], to: [166.33463000000003, -73.047575]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [138.52752000000004, -81.543785], control2: [148.62236000000001, -78.25548500000001], to: [148.62236000000001, -78.25548500000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [130.12517000000003, -82.828935], control2: [134.68767000000003, -82.766435], to: [134.68767000000003, -82.766435]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [125.68767000000003, -81.766435], control2: [128.66080000000002, -82.478315], to: [127.19642000000003, -82.127685]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [117.68767000000003, -75.766435], control2: [122.99559000000002, -79.800785], to: [120.32975000000002, -77.798805]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [107.68767000000003, -72.766435], control2: [113.16586000000002, -73.682455], to: [113.16586000000002, -73.682455]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [84.93766300000003, -73.953935], control2: [99.87842800000003, -72.226315], to: [92.61523300000002, -72.36835500000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [80.68766300000003, -75.766435], control2: [83.53516300000003, -74.552065], to: [82.13266300000002, -75.15018500000001]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [208.68767000000003, -26.766435], control2 = [212.58234000000002, -28.940575000000003], end = [212.58234000000002, -28.940575000000003]) // CubicBezierRelative
|> bezierCurve(control1 = [192.68767000000003, -22.766435], control2 = [203.18777000000003, -24.627585], end = [198.58520000000001, -23.608945000000002]) // CubicBezierRelative
|> bezierCurve(control1 = [174.68767000000003, -24.766435], control2 = [186.30665000000002, -22.492965], end = [180.86041000000003, -23.137525]) // CubicBezierRelative
|> bezierCurve(control1 = [170.12517000000003, -25.953935], control2 = [173.18205000000003, -25.158315], end = [171.67642000000004, -25.550185000000003]) // CubicBezierRelative
|> bezierCurve(control1 = [161.43767000000003, -31.016435], control2 = [165.49678000000003, -27.618325000000002], end = [165.49678000000003, -27.618325000000002]) // CubicBezierRelative
|> bezierCurve(control1 = [152.68767000000003, -41.766435], control2 = [157.93412000000004, -34.519995], end = [155.07957000000002, -37.431115]) // CubicBezierRelative
|> bezierCurve(control1 = [152.68767000000003, -50.766435], control2 = [151.93767000000003, -46.266435], end = [151.93767000000003, -46.266435]) // CubicBezierRelative
|> bezierCurve(control1 = [160.43767000000003, -61.578935], control2 = [156.18761000000003, -57.582325], end = [156.18761000000003, -57.582325]) // CubicBezierRelative
|> bezierCurve(control1 = [164.68767000000003, -64.766435], control2 = [162.54142000000002, -63.156755000000004], end = [162.54142000000002, -63.156755000000004]) // CubicBezierRelative
|> bezierCurve(control1 = [180.68767000000003, -67.766435], control2 = [172.62751000000003, -66.921865], end = [172.62751000000003, -66.921865]) // CubicBezierRelative
|> bezierCurve(control1 = [158.81267000000003, -75.266435], control2 = [173.47790000000003, -70.856345], end = [166.33463000000003, -73.047575]) // CubicBezierRelative
|> bezierCurve(control1 = [138.52752000000004, -81.543785], control2 = [148.62236000000001, -78.25548500000001], end = [148.62236000000001, -78.25548500000001]) // CubicBezierRelative
|> bezierCurve(control1 = [130.12517000000003, -82.828935], control2 = [134.68767000000003, -82.766435], end = [134.68767000000003, -82.766435]) // CubicBezierRelative
|> bezierCurve(control1 = [125.68767000000003, -81.766435], control2 = [128.66080000000002, -82.478315], end = [127.19642000000003, -82.127685]) // CubicBezierRelative
|> bezierCurve(control1 = [117.68767000000003, -75.766435], control2 = [122.99559000000002, -79.800785], end = [120.32975000000002, -77.798805]) // CubicBezierRelative
|> bezierCurve(control1 = [107.68767000000003, -72.766435], control2 = [113.16586000000002, -73.682455], end = [113.16586000000002, -73.682455]) // CubicBezierRelative
|> bezierCurve(control1 = [84.93766300000003, -73.953935], control2 = [99.87842800000003, -72.226315], end = [92.61523300000002, -72.36835500000001]) // CubicBezierRelative
|> bezierCurve(control1 = [80.68766300000003, -75.766435], control2 = [83.53516300000003, -74.552065], end = [82.13266300000002, -75.15018500000001]) // CubicBezierRelative
|> line(endAbsolute = [75.68766300000003, -80.766435]) // LineRelative
|> line(endAbsolute = [76.68766300000003, -84.766435]) // LineRelative
|> line(endAbsolute = [81.68766300000003, -87.766435]) // LineRelative
|> bezierCurve({ control1: [93.93766300000003, -87.891435], control2: [85.76704300000003, -87.950845], to: [89.85495700000003, -87.974265]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [105.68767000000003, -87.766435], control2: [97.85393000000003, -87.821635], to: [101.77078000000003, -87.772355]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [93.93766300000003, -87.891435], control2 = [85.76704300000003, -87.950845], end = [89.85495700000003, -87.974265]) // CubicBezierRelative
|> bezierCurve(control1 = [105.68767000000003, -87.766435], control2 = [97.85393000000003, -87.821635], end = [101.77078000000003, -87.772355]) // CubicBezierRelative
|> line(endAbsolute = [106.68767000000003, -88.766435]) // LineRelative
|> line(endAbsolute = [99.68766300000003, -90.766435]) // LineRelative
|> line(endAbsolute = [95.75016300000003, -93.266435]) // LineRelative
|> bezierCurve({ control1: [83.68766300000003, -97.766435], control2: [91.68766300000003, -95.766435], to: [91.68766300000003, -95.766435]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [68.68766300000003, -102.76643], control2: [78.56377900000003, -99.248045], to: [73.64162800000003, -100.78485]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [52.68766300000003, -101.76643], control2: [63.09091200000003, -102.95723], to: [58.18407400000003, -102.86573]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [83.68766300000003, -97.766435], control2 = [91.68766300000003, -95.766435], end = [91.68766300000003, -95.766435]) // CubicBezierRelative
|> bezierCurve(control1 = [68.68766300000003, -102.76643], control2 = [78.56377900000003, -99.248045], end = [73.64162800000003, -100.78485]) // CubicBezierRelative
|> bezierCurve(control1 = [52.68766300000003, -101.76643], control2 = [63.09091200000003, -102.95723], end = [58.18407400000003, -102.86573]) // CubicBezierRelative
|> line(endAbsolute = [48.68766300000003, -106.76643]) // LineRelative
|> line(endAbsolute = [48.68766300000003, -114.76643]) // VerticalLineHorizonal
|> line(endAbsolute = [51.68766300000003, -121.76643]) // LineRelative
@ -119,91 +119,91 @@ const svg = startSketchOn(XY)
|> line(endAbsolute = [85.68766300000003, -109.76643]) // LineRelative
|> line(endAbsolute = [88.68766300000003, -106.76643]) // LineRelative
|> line(endAbsolute = [88.68766300000003, -102.76643]) // VerticalLineHorizonal
|> bezierCurve({ control1: [99.68766300000003, -101.76643], control2: [93.93766300000003, -102.01643], to: [93.93766300000003, -102.01643]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [99.68766300000003, -101.76643], control2 = [93.93766300000003, -102.01643], end = [93.93766300000003, -102.01643]) // CubicBezierRelative
|> line(endAbsolute = [103.68767000000003, -105.76643]) // LineRelative
|> line(endAbsolute = [106.68767000000003, -106.76643]) // LineRelative
|> bezierCurve({ control1: [107.68767000000003, -102.76643], control2: [107.18267000000003, -104.78643], to: [107.18267000000003, -104.78643]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [107.68767000000003, -102.76643], control2 = [107.18267000000003, -104.78643], end = [107.18267000000003, -104.78643]) // CubicBezierRelative
|> line(endAbsolute = [116.68767000000003, -102.76643]) // HorizontalLineRelative
|> line(endAbsolute = [113.68767000000003, -108.76643]) // LineRelative
|> bezierCurve({ control1: [101.68767000000003, -114.76643], control2: [109.73020000000002, -110.84932], to: [105.72846000000003, -112.85018]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [101.68767000000003, -114.76643], control2 = [109.73020000000002, -110.84932], end = [105.72846000000003, -112.85018]) // CubicBezierRelative
|> line(endAbsolute = [97.68766300000003, -118.76643]) // LineRelative
|> line(endAbsolute = [97.68766300000003, -125.76643]) // VerticalLineHorizonal
|> line(endAbsolute = [101.68767000000003, -128.76643]) // LineRelative
|> bezierCurve({ control1: [115.75017000000003, -126.57893000000001], control2: [106.58566000000002, -128.61801000000003], to: [110.98125000000003, -127.69757000000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [124.93767000000003, -122.01643000000001], control2: [120.74370000000002, -124.95192000000002], to: [120.74370000000002, -124.95192000000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [134.68767000000003, -111.76643000000001], control2: [128.66063000000003, -118.78987000000001], to: [131.76465000000002, -115.73339000000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [136.68767000000003, -96.76643500000002], control2: [137.05397000000002, -104.69775000000001], to: [137.05397000000002, -104.69775000000001]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [115.75017000000003, -126.57893000000001], control2 = [106.58566000000002, -128.61801000000003], end = [110.98125000000003, -127.69757000000001]) // CubicBezierRelative
|> bezierCurve(control1 = [124.93767000000003, -122.01643000000001], control2 = [120.74370000000002, -124.95192000000002], end = [120.74370000000002, -124.95192000000002]) // CubicBezierRelative
|> bezierCurve(control1 = [134.68767000000003, -111.76643000000001], control2 = [128.66063000000003, -118.78987000000001], end = [131.76465000000002, -115.73339000000001]) // CubicBezierRelative
|> bezierCurve(control1 = [136.68767000000003, -96.76643500000002], control2 = [137.05397000000002, -104.69775000000001], end = [137.05397000000002, -104.69775000000001]) // CubicBezierRelative
|> line(endAbsolute = [135.68767000000003, -95.76643500000002]) // LineRelative
|> line(endAbsolute = [144.68767000000003, -91.76643500000002]) // LineRelative
|> line(endAbsolute = [144.68767000000003, -89.76643500000002]) // VerticalLineHorizonal
|> bezierCurve({ control1: [149.18767000000003, -88.95393500000002], control2: [146.91517000000002, -89.36425500000001], to: [146.91517000000002, -89.36425500000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [158.81267000000003, -86.20393500000002], control2: [154.52930000000003, -87.94347500000002], to: [154.52930000000003, -87.94347500000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [170.68767000000003, -83.76643500000002], control2: [162.68767000000003, -84.76643500000002], to: [162.68767000000003, -84.76643500000002]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [149.18767000000003, -88.95393500000002], control2 = [146.91517000000002, -89.36425500000001], end = [146.91517000000002, -89.36425500000001]) // CubicBezierRelative
|> bezierCurve(control1 = [158.81267000000003, -86.20393500000002], control2 = [154.52930000000003, -87.94347500000002], end = [154.52930000000003, -87.94347500000002]) // CubicBezierRelative
|> bezierCurve(control1 = [170.68767000000003, -83.76643500000002], control2 = [162.68767000000003, -84.76643500000002], end = [162.68767000000003, -84.76643500000002]) // CubicBezierRelative
|> line(endAbsolute = [169.68767000000003, -87.76643500000002]) // LineRelative
|> bezierCurve({ control1: [173.81267000000003, -124.20393000000001], control2: [169.31325000000004, -100.37193000000002], to: [170.34211000000002, -112.05696000000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [175.68767000000003, -129.76643], control2: [174.43142000000003, -126.03956000000001], to: [175.05017000000004, -127.87518000000001]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [173.81267000000003, -124.20393000000001], control2 = [169.31325000000004, -100.37193000000002], end = [170.34211000000002, -112.05696000000002]) // CubicBezierRelative
|> bezierCurve(control1 = [175.68767000000003, -129.76643], control2 = [174.43142000000003, -126.03956000000001], end = [175.05017000000004, -127.87518000000001]) // CubicBezierRelative
|> line(endAbsolute = [177.68767000000003, -129.76643]) // HorizontalLineRelative
|> line(endAbsolute = [179.68767000000003, -133.76643]) // LineRelative
|> line(endAbsolute = [185.68767000000003, -138.76643]) // LineRelative
|> bezierCurve({ control1: [202.68767000000003, -139.76643], control2: [191.47452, -140.21315], to: [196.74116000000004, -140.04174]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [210.68767000000003, -135.76643], control2: [207.25921000000002, -138.23436], to: [207.25921000000002, -138.23436]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [215.35564000000002, -128.27815], control2: [213.71484000000004, -132.0027], to: [213.71484000000004, -132.0027]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [216.91033000000002, -104.88753000000001], control2: [217.63118000000003, -120.57069000000001], to: [217.01741, -112.86275]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [214.68767000000003, -85.76643500000002], control2: [216.67209000000003, -98.33796500000001], to: [216.17402, -92.15775500000001]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [202.68767000000003, -139.76643], control2 = [191.47452, -140.21315], end = [196.74116000000004, -140.04174]) // CubicBezierRelative
|> bezierCurve(control1 = [210.68767000000003, -135.76643], control2 = [207.25921000000002, -138.23436], end = [207.25921000000002, -138.23436]) // CubicBezierRelative
|> bezierCurve(control1 = [215.35564000000002, -128.27815], control2 = [213.71484000000004, -132.0027], end = [213.71484000000004, -132.0027]) // CubicBezierRelative
|> bezierCurve(control1 = [216.91033000000002, -104.88753000000001], control2 = [217.63118000000003, -120.57069000000001], end = [217.01741, -112.86275]) // CubicBezierRelative
|> bezierCurve(control1 = [214.68767000000003, -85.76643500000002], control2 = [216.67209000000003, -98.33796500000001], end = [216.17402, -92.15775500000001]) // CubicBezierRelative
|> line(endAbsolute = [210.68767000000003, -78.76643500000002]) // LineRelative
|> line(endAbsolute = [207.68767000000003, -78.76643500000002]) // HorizontalLineRelative
|> line(endAbsolute = [207.68767000000003, -75.76643500000002]) // VerticalLineHorizonal
|> line(endAbsolute = [203.68767000000003, -74.76643500000002]) // LineRelative
|> line(endAbsolute = [204.68767000000003, -70.76643500000002]) // LineRelative
|> line(endAbsolute = [209.50017000000003, -70.01643500000002]) // LineRelative
|> bezierCurve({ control1: [226.68767000000003, -64.76643500000002], control2: [215.57464000000002, -68.78927500000002], to: [220.89892000000003, -66.95330500000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [247.31267000000003, -58.578935000000016], control2: [233.53624000000002, -62.60005500000001], to: [240.40800000000002, -60.55978500000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [277.21111, -48.92659500000001], control2: [257.37096, -55.63882500000002], to: [267.2794, -52.26503500000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [299.68767, -41.766435000000016], control2: [284.67443000000003, -46.437325000000016], to: [292.16675000000004, -44.07484500000001]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [226.68767000000003, -64.76643500000002], control2 = [215.57464000000002, -68.78927500000002], end = [220.89892000000003, -66.95330500000001]) // CubicBezierRelative
|> bezierCurve(control1 = [247.31267000000003, -58.578935000000016], control2 = [233.53624000000002, -62.60005500000001], end = [240.40800000000002, -60.55978500000002]) // CubicBezierRelative
|> bezierCurve(control1 = [277.21111, -48.92659500000001], control2 = [257.37096, -55.63882500000002], end = [267.2794, -52.26503500000001]) // CubicBezierRelative
|> bezierCurve(control1 = [299.68767, -41.766435000000016], control2 = [284.67443000000003, -46.437325000000016], end = [292.16675000000004, -44.07484500000001]) // CubicBezierRelative
|> line(endAbsolute = [299.68767, -39.766435000000016]) // VerticalLineHorizonal
|> bezierCurve({ control1: [306.50017, -39.328935000000016], control2: [301.93580000000003, -39.62206500000001], to: [304.18392, -39.477685000000015]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [316.68767, -37.766435000000016], control2: [313.07319, -39.10529500000001], to: [313.07319, -39.10529500000001]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [306.50017, -39.328935000000016], control2 = [301.93580000000003, -39.62206500000001], end = [304.18392, -39.477685000000015]) // CubicBezierRelative
|> bezierCurve(control1 = [316.68767, -37.766435000000016], control2 = [313.07319, -39.10529500000001], end = [313.07319, -39.10529500000001]) // CubicBezierRelative
|> line(endAbsolute = [316.68767, -35.766435000000016]) // VerticalLineHorizonal
|> line(endAbsolute = [320.56267, -35.016435000000016]) // LineRelative
|> bezierCurve({ control1: [335.68767, -29.766435000000016], control2: [325.89187000000004, -33.71663500000002], to: [330.60815, -31.833685000000017]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [343.56267, -27.266435000000016], control2: [339.5858, -28.528935000000015], to: [339.5858, -28.528935000000015]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [335.68767, -29.766435000000016], control2 = [325.89187000000004, -33.71663500000002], end = [330.60815, -31.833685000000017]) // CubicBezierRelative
|> bezierCurve(control1 = [343.56267, -27.266435000000016], control2 = [339.5858, -28.528935000000015], end = [339.5858, -28.528935000000015]) // CubicBezierRelative
|> line(endAbsolute = [350.68767, -24.766435000000016]) // LineRelative
|> line(endAbsolute = [354.68767, -20.766435000000016]) // LineRelative
|> bezierCurve({ control1: [295.68767, -33.766435000000016], control2: [334.809, -20.766435000000016], to: [314.44364, -27.758665000000015]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [295.68767, -33.766435000000016], control2 = [334.809, -20.766435000000016], end = [314.44364, -27.758665000000015]) // CubicBezierRelative
// StopRelative
|> line(endAbsolute = [299.68767, -66.76643500000002]) // MoveRelative
|> bezierCurve({ control1: [285.00017, -76.64143500000002], control2: [293.75788, -69.23718500000001], to: [289.90768, -72.43500500000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [276.37517, -85.70393500000002], control2: [279.86247000000003, -81.42042500000002], to: [279.86247000000003, -81.42042500000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [273.68767, -88.76643500000002], control2: [275.48830000000004, -86.71456500000002], to: [274.60142, -87.72518500000001]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [285.00017, -76.64143500000002], control2 = [293.75788, -69.23718500000001], end = [289.90768, -72.43500500000002]) // CubicBezierRelative
|> bezierCurve(control1 = [276.37517, -85.70393500000002], control2 = [279.86247000000003, -81.42042500000002], end = [279.86247000000003, -81.42042500000002]) // CubicBezierRelative
|> bezierCurve(control1 = [273.68767, -88.76643500000002], control2 = [275.48830000000004, -86.71456500000002], end = [274.60142, -87.72518500000001]) // CubicBezierRelative
|> line(endAbsolute = [267.68767, -91.76643500000002]) // LineRelative
|> line(endAbsolute = [264.68767, -96.76643500000002]) // LineRelative
|> bezierCurve({ control1: [266.68767, -111.76643000000001], control2: [264.32138000000003, -104.69775000000001], to: [264.32138000000003, -104.69775000000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [278.68767, -123.76643000000001], control2: [270.61411000000004, -116.17816000000002], to: [274.2035, -120.01380000000002]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [266.68767, -111.76643000000001], control2 = [264.32138000000003, -104.69775000000001], end = [264.32138000000003, -104.69775000000001]) // CubicBezierRelative
|> bezierCurve(control1 = [278.68767, -123.76643000000001], control2 = [270.61411000000004, -116.17816000000002], end = [274.2035, -120.01380000000002]) // CubicBezierRelative
|> line(endAbsolute = [282.93767, -126.01643000000001]) // LineRelative
|> bezierCurve({ control1: [303.68767, -126.76643000000001], control2: [289.896, -127.11512000000002], to: [296.66137000000003, -126.99871000000002]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [303.68767, -126.76643000000001], control2 = [289.896, -127.11512000000002], end = [296.66137000000003, -126.99871000000002]) // CubicBezierRelative
|> line(endAbsolute = [305.68767, -125.76643000000001]) // LineRelative
|> line(endAbsolute = [310.68767, -124.76643000000001]) // LineRelative
|> line(endAbsolute = [317.68767, -122.76643000000001]) // LineRelative
|> bezierCurve({ control1: [324.37517, -113.14143000000001], control2: [322.56495, -117.43458000000001], to: [322.56495, -117.43458000000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [327.68767, -96.76643500000002], control2: [326.02173000000005, -107.65292000000001], to: [327.05405, -102.46899000000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [323.37517, -79.39143500000002], control2: [327.04242000000005, -90.45732500000001], to: [325.54155000000003, -85.36362500000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [320.68767, -73.76643500000002], control2: [322.48830000000004, -77.53518500000001], to: [321.60142, -75.67893500000001]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [324.37517, -113.14143000000001], control2 = [322.56495, -117.43458000000001], end = [322.56495, -117.43458000000001]) // CubicBezierRelative
|> bezierCurve(control1 = [327.68767, -96.76643500000002], control2 = [326.02173000000005, -107.65292000000001], end = [327.05405, -102.46899000000002]) // CubicBezierRelative
|> bezierCurve(control1 = [323.37517, -79.39143500000002], control2 = [327.04242000000005, -90.45732500000001], end = [325.54155000000003, -85.36362500000001]) // CubicBezierRelative
|> bezierCurve(control1 = [320.68767, -73.76643500000002], control2 = [322.48830000000004, -77.53518500000001], end = [321.60142, -75.67893500000001]) // CubicBezierRelative
|> line(endAbsolute = [315.68767, -68.76643500000002]) // LineRelative
|> bezierCurve({ control1: [305.43767, -66.32893500000002], control2: [310.76687000000004, -66.51488500000002], to: [310.76687000000004, -66.51488500000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [299.68767, -66.76643500000002], control2: [302.59142, -66.54550500000002], to: [302.59142, -66.54550500000002]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [305.43767, -66.32893500000002], control2 = [310.76687000000004, -66.51488500000002], end = [310.76687000000004, -66.51488500000002]) // CubicBezierRelative
|> bezierCurve(control1 = [299.68767, -66.76643500000002], control2 = [302.59142, -66.54550500000002], end = [302.59142, -66.54550500000002]) // CubicBezierRelative
// StopRelative
|> line(endAbsolute = [240.68767000000003, -68.76643500000002]) // MoveRelative
|> bezierCurve({ control1: [222.68767000000003, -80.76643500000002], control2: [233.66999, -72.11131500000002], to: [228.65800000000002, -75.79116500000002]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [222.68767000000003, -80.76643500000002], control2 = [233.66999, -72.11131500000002], end = [228.65800000000002, -75.79116500000002]) // CubicBezierRelative
|> line(endAbsolute = [219.68767000000003, -86.76643500000002]) // LineRelative
|> bezierCurve({ control1: [222.55095000000003, -116.67268000000001], control2: [219.05386000000001, -97.26953500000002], to: [220.04332000000002, -106.46619000000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [227.68767000000003, -130.76643], control2: [223.91824000000003, -121.59681000000002], to: [225.39892000000003, -126.18894000000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [236.43377000000004, -136.4969], control2: [232.25590000000003, -134.74853000000002], to: [232.25590000000003, -134.74853000000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [249.75017000000003, -138.07893], control2: [241.08415000000005, -137.88476], to: [244.90570000000002, -138.13253]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [254.34783000000002, -138.06723000000002], control2: [251.26740000000004, -138.07493000000002], to: [252.78463000000002, -138.07093]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [265.68767, -135.76644000000002], control2: [259.20097000000004, -137.88174000000004], to: [259.20097000000004, -137.88174000000004]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [222.55095000000003, -116.67268000000001], control2 = [219.05386000000001, -97.26953500000002], end = [220.04332000000002, -106.46619000000001]) // CubicBezierRelative
|> bezierCurve(control1 = [227.68767000000003, -130.76643], control2 = [223.91824000000003, -121.59681000000002], end = [225.39892000000003, -126.18894000000002]) // CubicBezierRelative
|> bezierCurve(control1 = [236.43377000000004, -136.4969], control2 = [232.25590000000003, -134.74853000000002], end = [232.25590000000003, -134.74853000000002]) // CubicBezierRelative
|> bezierCurve(control1 = [249.75017000000003, -138.07893], control2 = [241.08415000000005, -137.88476], end = [244.90570000000002, -138.13253]) // CubicBezierRelative
|> bezierCurve(control1 = [254.34783000000002, -138.06723000000002], control2 = [251.26740000000004, -138.07493000000002], end = [252.78463000000002, -138.07093]) // CubicBezierRelative
|> bezierCurve(control1 = [265.68767, -135.76644000000002], control2 = [259.20097000000004, -137.88174000000004], end = [259.20097000000004, -137.88174000000004]) // CubicBezierRelative
|> line(endAbsolute = [265.68767, -132.76644000000002]) // VerticalLineHorizonal
|> line(endAbsolute = [267.68767, -132.76644000000002]) // HorizontalLineRelative
|> bezierCurve({ control1: [268.56267, -122.32894000000002], control2: [268.96128000000004, -128.41242000000003], to: [268.96128000000004, -128.41242000000003]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [268.56267, -122.32894000000002], control2 = [268.96128000000004, -128.41242000000003], end = [268.96128000000004, -128.41242000000003]) // CubicBezierRelative
|> line(endAbsolute = [267.68767, -115.76644000000002]) // LineRelative
|> line(endAbsolute = [262.68767, -110.76644000000002]) // LineRelative
|> line(endAbsolute = [259.68767, -104.76644000000002]) // LineRelative
@ -211,260 +211,260 @@ const svg = startSketchOn(XY)
|> line(endAbsolute = [263.68767, -91.76644500000002]) // LineRelative
|> line(endAbsolute = [263.68767, -88.76644500000002]) // VerticalLineHorizonal
|> line(endAbsolute = [265.68767, -88.76644500000002]) // HorizontalLineRelative
|> bezierCurve({ control1: [265.68767, -74.76644500000002], control2: [265.77327, -84.10056500000002], to: [265.76887000000005, -79.43241500000002]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [265.68767, -74.76644500000002], control2 = [265.77327, -84.10056500000002], end = [265.76887000000005, -79.43241500000002]) // CubicBezierRelative
|> line(endAbsolute = [263.68767, -71.76644500000002]) // LineRelative
|> line(endAbsolute = [257.68767, -68.76644500000002]) // LineRelative
|> bezierCurve({ control1: [240.68767000000003, -68.76644500000002], control2: [251.63750000000002, -68.30105500000002], to: [246.62747000000002, -68.01396500000001]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [240.68767000000003, -68.76644500000002], control2 = [251.63750000000002, -68.30105500000002], end = [246.62747000000002, -68.01396500000001]) // CubicBezierRelative
// StopRelative
|> line(endAbsolute = [348.06267, -71.45394500000002]) // MoveRelative
|> bezierCurve({ control1: [336.68767, -78.76644500000002], control2: [342.24112, -73.65657500000002], to: [342.24112, -73.65657500000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [331.68767, -85.76644500000002], control2: [333.86052, -82.22373500000002], to: [333.86052, -82.22373500000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [330.68767, -113.76644000000002], control2: [329.44062, -94.75465500000001], to: [330.36224000000004, -104.56387000000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [333.68767, -125.76644000000002], control2: [331.54987, -120.49367000000002], to: [331.54987, -120.49367000000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [339.68767, -134.76644000000002], control2: [336.35378000000003, -130.85268000000002], to: [336.35378000000003, -130.85268000000002]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [336.68767, -78.76644500000002], control2 = [342.24112, -73.65657500000002], end = [342.24112, -73.65657500000002]) // CubicBezierRelative
|> bezierCurve(control1 = [331.68767, -85.76644500000002], control2 = [333.86052, -82.22373500000002], end = [333.86052, -82.22373500000002]) // CubicBezierRelative
|> bezierCurve(control1 = [330.68767, -113.76644000000002], control2 = [329.44062, -94.75465500000001], end = [330.36224000000004, -104.56387000000002]) // CubicBezierRelative
|> bezierCurve(control1 = [333.68767, -125.76644000000002], control2 = [331.54987, -120.49367000000002], end = [331.54987, -120.49367000000002]) // CubicBezierRelative
|> bezierCurve(control1 = [339.68767, -134.76644000000002], control2 = [336.35378000000003, -130.85268000000002], end = [336.35378000000003, -130.85268000000002]) // CubicBezierRelative
|> line(endAbsolute = [344.68767, -136.76644000000002]) // LineRelative
|> bezierCurve({ control1: [354.50017, -136.89144000000002], control2: [347.95588000000004, -136.90388000000002], to: [351.22938000000005, -136.93595000000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [359.7072, -136.83674000000002], control2: [357.07765, -136.86434000000003], to: [357.07765, -136.86434000000003]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [363.68767, -136.76644000000002], control2: [361.02076, -136.81354000000002], to: [362.33431, -136.79034000000001]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [354.50017, -136.89144000000002], control2 = [347.95588000000004, -136.90388000000002], end = [351.22938000000005, -136.93595000000002]) // CubicBezierRelative
|> bezierCurve(control1 = [359.7072, -136.83674000000002], control2 = [357.07765, -136.86434000000003], end = [357.07765, -136.86434000000003]) // CubicBezierRelative
|> bezierCurve(control1 = [363.68767, -136.76644000000002], control2 = [361.02076, -136.81354000000002], end = [362.33431, -136.79034000000001]) // CubicBezierRelative
|> line(endAbsolute = [364.68767, -133.76644000000002]) // LineRelative
|> line(endAbsolute = [369.68767, -132.76644000000002]) // LineRelative
|> line(endAbsolute = [374.68767, -127.76644000000002]) // LineRelative
|> line(endAbsolute = [375.68767, -125.76644000000002]) // LineRelative
|> line(endAbsolute = [378.68767, -124.76644000000002]) // LineRelative
|> line(endAbsolute = [381.68767, -119.76644000000002]) // LineRelative
|> bezierCurve({ control1: [383.68767, -90.76644500000002], control2: [383.35291, -110.03795000000002], to: [384.23553000000004, -100.62782000000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [376.68767, -74.76644500000002], control2: [381.89678000000004, -84.77624500000002], to: [379.89992, -80.12019500000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [361.68767, -69.76644500000002], control2: [371.66314, -72.44743500000001], to: [367.11478000000005, -70.85187500000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [348.06267, -71.45394500000002], control2: [353.98599, -69.38331500000002], to: [353.98599, -69.38331500000002]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [383.68767, -90.76644500000002], control2 = [383.35291, -110.03795000000002], end = [384.23553000000004, -100.62782000000001]) // CubicBezierRelative
|> bezierCurve(control1 = [376.68767, -74.76644500000002], control2 = [381.89678000000004, -84.77624500000002], end = [379.89992, -80.12019500000002]) // CubicBezierRelative
|> bezierCurve(control1 = [361.68767, -69.76644500000002], control2 = [371.66314, -72.44743500000001], end = [367.11478000000005, -70.85187500000002]) // CubicBezierRelative
|> bezierCurve(control1 = [348.06267, -71.45394500000002], control2 = [353.98599, -69.38331500000002], end = [353.98599, -69.38331500000002]) // CubicBezierRelative
// StopRelative
|> line(endAbsolute = [420.68767, -75.76644500000002]) // MoveRelative
|> line(endAbsolute = [414.68767, -78.76644500000002]) // MoveRelative
|> line(endAbsolute = [411.68767, -81.76644500000002]) // MoveRelative
|> bezierCurve({ control1: [394.68767, -89.76644500000002], control2: [406.10302, -84.70574500000002], to: [400.49226000000004, -87.27876500000002]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [394.68767, -89.76644500000002], control2 = [406.10302, -84.70574500000002], end = [400.49226000000004, -87.27876500000002]) // CubicBezierRelative
|> line(endAbsolute = [390.68767, -93.76644500000002]) // LineRelative
|> bezierCurve({ control1: [387.00017, -105.95394000000002], control2: [388.81932, -97.84915500000002], to: [387.7277, -101.52261000000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [386.68767, -123.76644000000002], control2: [386.61176, -111.93554000000002], to: [386.45034000000004, -117.77373000000001]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [387.00017, -105.95394000000002], control2 = [388.81932, -97.84915500000002], end = [387.7277, -101.52261000000001]) // CubicBezierRelative
|> bezierCurve(control1 = [386.68767, -123.76644000000002], control2 = [386.61176, -111.93554000000002], end = [386.45034000000004, -117.77373000000001]) // CubicBezierRelative
|> line(endAbsolute = [389.68767, -129.76644000000002]) // LineRelative
|> bezierCurve({ control1: [401.68767, -140.76644000000002], control2: [393.59112000000005, -133.6699], to: [397.39354000000003, -137.31580000000002]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [401.68767, -140.76644000000002], control2 = [393.59112000000005, -133.6699], end = [397.39354000000003, -137.31580000000002]) // CubicBezierRelative
|> line(endAbsolute = [406.68767, -142.76644000000002]) // LineRelative
|> bezierCurve({ control1: [419.18767, -141.64144000000002], control2: [414.16723, -143.08983], to: [414.16723, -143.08983]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [431.68767, -133.76644000000002], control2: [424.08865000000003, -139.59937000000002], to: [427.61672000000004, -137.15890000000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [438.81267, -125.32894000000002], control2: [436.54426, -129.29261000000002], to: [436.54426, -129.29261000000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [443.68767, -106.76644000000002], control2: [441.36597, -119.11592000000002], to: [442.65924, -113.42420000000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [442.68767, -87.76644500000002], control2: [443.82181, -100.36380000000001], to: [443.70527000000004, -94.09420500000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [438.68767, -79.76644500000002], control2: [441.01966000000004, -83.40792500000002], to: [441.01966000000004, -83.40792500000002]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [419.18767, -141.64144000000002], control2 = [414.16723, -143.08983], end = [414.16723, -143.08983]) // CubicBezierRelative
|> bezierCurve(control1 = [431.68767, -133.76644000000002], control2 = [424.08865000000003, -139.59937000000002], end = [427.61672000000004, -137.15890000000002]) // CubicBezierRelative
|> bezierCurve(control1 = [438.81267, -125.32894000000002], control2 = [436.54426, -129.29261000000002], end = [436.54426, -129.29261000000002]) // CubicBezierRelative
|> bezierCurve(control1 = [443.68767, -106.76644000000002], control2 = [441.36597, -119.11592000000002], end = [442.65924, -113.42420000000001]) // CubicBezierRelative
|> bezierCurve(control1 = [442.68767, -87.76644500000002], control2 = [443.82181, -100.36380000000001], end = [443.70527000000004, -94.09420500000002]) // CubicBezierRelative
|> bezierCurve(control1 = [438.68767, -79.76644500000002], control2 = [441.01966000000004, -83.40792500000002], end = [441.01966000000004, -83.40792500000002]) // CubicBezierRelative
|> line(endAbsolute = [434.68767, -76.76644500000002]) // LineRelative
|> bezierCurve({ control1: [420.68767, -75.76644500000002], control2: [428.38627, -75.54725500000002], to: [428.38627, -75.54725500000002]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [420.68767, -75.76644500000002], control2 = [428.38627, -75.54725500000002], end = [428.38627, -75.54725500000002]) // CubicBezierRelative
|> line(endAbsolute = [119.83194, -25.193075]) // MoveRelative
|> bezierCurve({ control1: [126.83194, -26.193075], control2: [122.14194, -25.523075], to: [124.45194000000001, -25.853075]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [129.83194, -32.193075], control2: [127.82194, -28.173075], to: [128.81194, -30.153075]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [130.83194, -33.193075], control2: [130.16194000000002, -32.523075], to: [130.49194, -32.853075]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [131.83194, -41.193075], control2: [131.16194000000002, -35.833075], to: [131.49194, -38.473075]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [133.83194, -38.193075], control2: [132.49194, -40.203075], to: [133.15194, -39.213075]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [135.26944, -32.068075], control2: [134.30631, -36.171825], to: [134.78069, -34.150575]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [136.83194, -26.193075], control2: [135.78506000000002, -30.129325], to: [136.30069, -28.190575]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [139.83194, -25.193075], control2: [137.82194, -25.863075000000002], to: [138.81194, -25.533075]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [137.39444, -44.318075], control2: [139.51153, -31.793465], to: [139.18359, -37.939365]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [133.83194, -52.193075], control2: [135.83194, -48.193075], to: [135.83194, -48.193075]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [129.83194, -51.193075], control2: [132.51194, -51.863075], to: [131.19194000000002, -51.533075000000004]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [124.83194, -41.193075], control2: [126.83194, -46.193075], to: [126.83194, -46.193075]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [120.83194, -51.193075], control2: [123.51194000000001, -44.493075], to: [122.19194, -47.793075]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [117.83194, -51.193075], control2: [119.84194000000001, -51.193075], to: [118.85194, -51.193075]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [116.83194, -50.193075], control2: [117.50194, -50.863075], to: [117.17194, -50.533075000000004]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [118.83194, -26.193075], control2: [116.5899, -41.883314999999996], to: [116.78264, -34.269515]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [119.83194, -25.193075], control2: [119.16194, -25.863075000000002], to: [119.49194, -25.533075]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [126.83194, -26.193075], control2 = [122.14194, -25.523075], end = [124.45194000000001, -25.853075]) // CubicBezierRelative
|> bezierCurve(control1 = [129.83194, -32.193075], control2 = [127.82194, -28.173075], end = [128.81194, -30.153075]) // CubicBezierRelative
|> bezierCurve(control1 = [130.83194, -33.193075], control2 = [130.16194000000002, -32.523075], end = [130.49194, -32.853075]) // CubicBezierRelative
|> bezierCurve(control1 = [131.83194, -41.193075], control2 = [131.16194000000002, -35.833075], end = [131.49194, -38.473075]) // CubicBezierRelative
|> bezierCurve(control1 = [133.83194, -38.193075], control2 = [132.49194, -40.203075], end = [133.15194, -39.213075]) // CubicBezierRelative
|> bezierCurve(control1 = [135.26944, -32.068075], control2 = [134.30631, -36.171825], end = [134.78069, -34.150575]) // CubicBezierRelative
|> bezierCurve(control1 = [136.83194, -26.193075], control2 = [135.78506000000002, -30.129325], end = [136.30069, -28.190575]) // CubicBezierRelative
|> bezierCurve(control1 = [139.83194, -25.193075], control2 = [137.82194, -25.863075000000002], end = [138.81194, -25.533075]) // CubicBezierRelative
|> bezierCurve(control1 = [137.39444, -44.318075], control2 = [139.51153, -31.793465], end = [139.18359, -37.939365]) // CubicBezierRelative
|> bezierCurve(control1 = [133.83194, -52.193075], control2 = [135.83194, -48.193075], end = [135.83194, -48.193075]) // CubicBezierRelative
|> bezierCurve(control1 = [129.83194, -51.193075], control2 = [132.51194, -51.863075], end = [131.19194000000002, -51.533075000000004]) // CubicBezierRelative
|> bezierCurve(control1 = [124.83194, -41.193075], control2 = [126.83194, -46.193075], end = [126.83194, -46.193075]) // CubicBezierRelative
|> bezierCurve(control1 = [120.83194, -51.193075], control2 = [123.51194000000001, -44.493075], end = [122.19194, -47.793075]) // CubicBezierRelative
|> bezierCurve(control1 = [117.83194, -51.193075], control2 = [119.84194000000001, -51.193075], end = [118.85194, -51.193075]) // CubicBezierRelative
|> bezierCurve(control1 = [116.83194, -50.193075], control2 = [117.50194, -50.863075], end = [117.17194, -50.533075000000004]) // CubicBezierRelative
|> bezierCurve(control1 = [118.83194, -26.193075], control2 = [116.5899, -41.883314999999996], end = [116.78264, -34.269515]) // CubicBezierRelative
|> bezierCurve(control1 = [119.83194, -25.193075], control2 = [119.16194, -25.863075000000002], end = [119.49194, -25.533075]) // CubicBezierRelative
|> line(endAbsolute = [65.254392, -26.686845]) // MoveRelative
|> bezierCurve({ control1: [69.254392, -26.686845], control2: [66.57439199999999, -26.686845], to: [67.894392, -26.686845]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [70.254392, -32.686845000000005], control2: [69.584392, -28.666845000000002], to: [69.91439199999999, -30.646845000000003]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [69.254392, -35.686845000000005], control2: [69.924392, -33.67684500000001], to: [69.594392, -34.666845]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [69.254392, -44.686845000000005], control2: [69.21439199999999, -38.686575000000005], to: [69.210922, -41.687155000000004]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [72.629392, -39.374345000000005], control2: [70.36814199999999, -42.93371500000001], to: [71.481892, -41.180595000000004]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [78.254392, -30.686845000000005], control2: [74.483601, -36.465155], to: [76.34075899999999, -33.557295]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [81.254392, -30.686845000000005], control2: [79.24439199999999, -30.686845000000005], to: [80.234392, -30.686845000000005]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [80.004392, -42.811845000000005], control2: [81.254392, -38.686845000000005], to: [81.254392, -38.686845000000005]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [74.254392, -52.686845000000005], control2: [78.254392, -46.686845000000005], to: [78.254392, -46.686845000000005]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [73.254392, -53.686845000000005], control2: [73.924392, -53.016845], to: [73.594392, -53.346845]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [67.254392, -53.686845000000005], control2: [71.27439199999999, -53.686845000000005], to: [69.294392, -53.686845000000005]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [61.254391999999996, -48.686845000000005], control2: [65.27439199999999, -52.03684500000001], to: [63.294391999999995, -50.38684500000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [60.254391999999996, -46.686845000000005], control2: [60.924392, -48.02684500000001], to: [60.594392, -47.366845000000005]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [61.254391999999996, -28.686845000000005], control2: [60.10475399999999, -40.47687500000001], to: [60.373141, -34.855605000000004]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [65.254392, -26.686845000000005], control2: [62.574391999999996, -28.026845000000005], to: [63.894391999999996, -27.366845000000005]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [69.254392, -26.686845], control2 = [66.57439199999999, -26.686845], end = [67.894392, -26.686845]) // CubicBezierRelative
|> bezierCurve(control1 = [70.254392, -32.686845000000005], control2 = [69.584392, -28.666845000000002], end = [69.91439199999999, -30.646845000000003]) // CubicBezierRelative
|> bezierCurve(control1 = [69.254392, -35.686845000000005], control2 = [69.924392, -33.67684500000001], end = [69.594392, -34.666845]) // CubicBezierRelative
|> bezierCurve(control1 = [69.254392, -44.686845000000005], control2 = [69.21439199999999, -38.686575000000005], end = [69.210922, -41.687155000000004]) // CubicBezierRelative
|> bezierCurve(control1 = [72.629392, -39.374345000000005], control2 = [70.36814199999999, -42.93371500000001], end = [71.481892, -41.180595000000004]) // CubicBezierRelative
|> bezierCurve(control1 = [78.254392, -30.686845000000005], control2 = [74.483601, -36.465155], end = [76.34075899999999, -33.557295]) // CubicBezierRelative
|> bezierCurve(control1 = [81.254392, -30.686845000000005], control2 = [79.24439199999999, -30.686845000000005], end = [80.234392, -30.686845000000005]) // CubicBezierRelative
|> bezierCurve(control1 = [80.004392, -42.811845000000005], control2 = [81.254392, -38.686845000000005], end = [81.254392, -38.686845000000005]) // CubicBezierRelative
|> bezierCurve(control1 = [74.254392, -52.686845000000005], control2 = [78.254392, -46.686845000000005], end = [78.254392, -46.686845000000005]) // CubicBezierRelative
|> bezierCurve(control1 = [73.254392, -53.686845000000005], control2 = [73.924392, -53.016845], end = [73.594392, -53.346845]) // CubicBezierRelative
|> bezierCurve(control1 = [67.254392, -53.686845000000005], control2 = [71.27439199999999, -53.686845000000005], end = [69.294392, -53.686845000000005]) // CubicBezierRelative
|> bezierCurve(control1 = [61.254391999999996, -48.686845000000005], control2 = [65.27439199999999, -52.03684500000001], end = [63.294391999999995, -50.38684500000001]) // CubicBezierRelative
|> bezierCurve(control1 = [60.254391999999996, -46.686845000000005], control2 = [60.924392, -48.02684500000001], end = [60.594392, -47.366845000000005]) // CubicBezierRelative
|> bezierCurve(control1 = [61.254391999999996, -28.686845000000005], control2 = [60.10475399999999, -40.47687500000001], end = [60.373141, -34.855605000000004]) // CubicBezierRelative
|> bezierCurve(control1 = [65.254392, -26.686845000000005], control2 = [62.574391999999996, -28.026845000000005], end = [63.894391999999996, -27.366845000000005]) // CubicBezierRelative
|> line(endAbsolute = [185.48371, -31.108985]) // MoveRelative
|> bezierCurve({ control1: [197.48371, -31.108985], control2: [189.48289, -31.028185], to: [193.48463, -31.022985000000002]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [198.48371, -36.108985000000004], control2: [197.81371000000001, -32.758985], to: [198.14371, -34.408985]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [197.48371, -38.108985000000004], control2: [198.15371, -36.768985], to: [197.82371, -37.428985000000004]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [189.48371, -38.108985000000004], control2: [194.84371000000002, -38.108985000000004], to: [192.20371, -38.108985000000004]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [188.48371, -42.108985000000004], control2: [189.15371, -39.428985000000004], to: [188.82371, -40.748985000000005]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [196.48371, -43.108985000000004], control2: [191.12371, -42.438985], to: [193.76371, -42.768985]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [196.48371, -47.108985000000004], control2: [196.48371, -44.428985000000004], to: [196.48371, -45.748985000000005]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [191.54621, -48.983985000000004], control2: [194.85433, -47.727735], to: [193.22496, -48.346485]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [186.48371, -51.108985000000004], control2: [189.87558, -49.685235000000006], to: [188.20496, -50.38648500000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [185.48371, -53.108985000000004], control2: [186.15371, -51.768985], to: [185.82371, -52.428985000000004]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [195.48371, -52.108985000000004], control2: [188.78371, -52.778985000000006], to: [192.08371, -52.44898500000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [193.48371, -56.108985000000004], control2: [194.82371, -53.428985000000004], to: [194.16371, -54.748985000000005]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [188.48371, -58.108985000000004], control2: [191.83371, -56.768985], to: [190.18371, -57.428985000000004]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [183.48371, -58.108985000000004], control2: [186.83371, -58.108985000000004], to: [185.18371, -58.108985000000004]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [179.48371, -55.108985000000004], control2: [182.16371, -57.118985], to: [180.84371000000002, -56.12898500000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [180.79621, -38.046485000000004], control2: [178.95086, -49.019255], to: [179.50181, -44.025395]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [182.48371, -33.108985000000004], control2: [181.35308, -36.41710500000001], to: [181.90996, -34.787735000000005]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [185.48371, -31.108985000000004], control2: [183.47371, -32.44898500000001], to: [184.46371, -31.788985000000004]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [197.48371, -31.108985], control2 = [189.48289, -31.028185], end = [193.48463, -31.022985000000002]) // CubicBezierRelative
|> bezierCurve(control1 = [198.48371, -36.108985000000004], control2 = [197.81371000000001, -32.758985], end = [198.14371, -34.408985]) // CubicBezierRelative
|> bezierCurve(control1 = [197.48371, -38.108985000000004], control2 = [198.15371, -36.768985], end = [197.82371, -37.428985000000004]) // CubicBezierRelative
|> bezierCurve(control1 = [189.48371, -38.108985000000004], control2 = [194.84371000000002, -38.108985000000004], end = [192.20371, -38.108985000000004]) // CubicBezierRelative
|> bezierCurve(control1 = [188.48371, -42.108985000000004], control2 = [189.15371, -39.428985000000004], end = [188.82371, -40.748985000000005]) // CubicBezierRelative
|> bezierCurve(control1 = [196.48371, -43.108985000000004], control2 = [191.12371, -42.438985], end = [193.76371, -42.768985]) // CubicBezierRelative
|> bezierCurve(control1 = [196.48371, -47.108985000000004], control2 = [196.48371, -44.428985000000004], end = [196.48371, -45.748985000000005]) // CubicBezierRelative
|> bezierCurve(control1 = [191.54621, -48.983985000000004], control2 = [194.85433, -47.727735], end = [193.22496, -48.346485]) // CubicBezierRelative
|> bezierCurve(control1 = [186.48371, -51.108985000000004], control2 = [189.87558, -49.685235000000006], end = [188.20496, -50.38648500000001]) // CubicBezierRelative
|> bezierCurve(control1 = [185.48371, -53.108985000000004], control2 = [186.15371, -51.768985], end = [185.82371, -52.428985000000004]) // CubicBezierRelative
|> bezierCurve(control1 = [195.48371, -52.108985000000004], control2 = [188.78371, -52.778985000000006], end = [192.08371, -52.44898500000001]) // CubicBezierRelative
|> bezierCurve(control1 = [193.48371, -56.108985000000004], control2 = [194.82371, -53.428985000000004], end = [194.16371, -54.748985000000005]) // CubicBezierRelative
|> bezierCurve(control1 = [188.48371, -58.108985000000004], control2 = [191.83371, -56.768985], end = [190.18371, -57.428985000000004]) // CubicBezierRelative
|> bezierCurve(control1 = [183.48371, -58.108985000000004], control2 = [186.83371, -58.108985000000004], end = [185.18371, -58.108985000000004]) // CubicBezierRelative
|> bezierCurve(control1 = [179.48371, -55.108985000000004], control2 = [182.16371, -57.118985], end = [180.84371000000002, -56.12898500000001]) // CubicBezierRelative
|> bezierCurve(control1 = [180.79621, -38.046485000000004], control2 = [178.95086, -49.019255], end = [179.50181, -44.025395]) // CubicBezierRelative
|> bezierCurve(control1 = [182.48371, -33.108985000000004], control2 = [181.35308, -36.41710500000001], end = [181.90996, -34.787735000000005]) // CubicBezierRelative
|> bezierCurve(control1 = [185.48371, -31.108985000000004], control2 = [183.47371, -32.44898500000001], end = [184.46371, -31.788985000000004]) // CubicBezierRelative
|> line(endAbsolute = [248.52117, -92.100105]) // MoveRelative
|> bezierCurve({ control1: [252.52117, -92.100105], control2: [249.84117, -92.100105], to: [251.16117, -92.100105]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [253.52117, -99.100105], control2: [252.85117000000002, -94.410105], to: [253.18117, -96.720105]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [248.89617, -100.8501], control2: [251.99492, -99.677605], to: [250.46867, -100.2551]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [237.52117, -107.1001], control2: [243.22058, -103.02548], to: [243.22058, -103.02548]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [236.52117, -109.1001], control2: [237.19117, -107.7601], to: [236.86117000000002, -108.42009999999999]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [252.52117, -108.1001], control2: [241.80117, -108.7701], to: [247.08117000000001, -108.4401]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [253.52117, -112.1001], control2: [252.85117000000002, -109.42009999999999], to: [253.18117, -110.7401]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [248.52117, -117.1001], control2: [251.87117, -113.7501], to: [250.22117, -115.4001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [234.52117, -118.1001], control2: [242.52117, -118.1001], to: [242.52117, -118.1001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [231.52117, -112.1001], control2: [233.53117, -116.1201], to: [232.54117000000002, -114.1401]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [231.52117, -104.1001], control2: [231.52117, -109.4601], to: [231.52117, -106.8201]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [236.52117, -99.100105], control2: [233.17117000000002, -102.45009999999999], to: [234.82117000000002, -100.8001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [236.52117, -97.100105], control2: [236.52117, -98.440105], to: [236.52117, -97.780105]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [248.52117, -92.100105], control2: [240.49514000000002, -95.372295], to: [244.49777, -93.709465]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [252.52117, -92.100105], control2 = [249.84117, -92.100105], end = [251.16117, -92.100105]) // CubicBezierRelative
|> bezierCurve(control1 = [253.52117, -99.100105], control2 = [252.85117000000002, -94.410105], end = [253.18117, -96.720105]) // CubicBezierRelative
|> bezierCurve(control1 = [248.89617, -100.8501], control2 = [251.99492, -99.677605], end = [250.46867, -100.2551]) // CubicBezierRelative
|> bezierCurve(control1 = [237.52117, -107.1001], control2 = [243.22058, -103.02548], end = [243.22058, -103.02548]) // CubicBezierRelative
|> bezierCurve(control1 = [236.52117, -109.1001], control2 = [237.19117, -107.7601], end = [236.86117000000002, -108.42009999999999]) // CubicBezierRelative
|> bezierCurve(control1 = [252.52117, -108.1001], control2 = [241.80117, -108.7701], end = [247.08117000000001, -108.4401]) // CubicBezierRelative
|> bezierCurve(control1 = [253.52117, -112.1001], control2 = [252.85117000000002, -109.42009999999999], end = [253.18117, -110.7401]) // CubicBezierRelative
|> bezierCurve(control1 = [248.52117, -117.1001], control2 = [251.87117, -113.7501], end = [250.22117, -115.4001]) // CubicBezierRelative
|> bezierCurve(control1 = [234.52117, -118.1001], control2 = [242.52117, -118.1001], end = [242.52117, -118.1001]) // CubicBezierRelative
|> bezierCurve(control1 = [231.52117, -112.1001], control2 = [233.53117, -116.1201], end = [232.54117000000002, -114.1401]) // CubicBezierRelative
|> bezierCurve(control1 = [231.52117, -104.1001], control2 = [231.52117, -109.4601], end = [231.52117, -106.8201]) // CubicBezierRelative
|> bezierCurve(control1 = [236.52117, -99.100105], control2 = [233.17117000000002, -102.45009999999999], end = [234.82117000000002, -100.8001]) // CubicBezierRelative
|> bezierCurve(control1 = [236.52117, -97.100105], control2 = [236.52117, -98.440105], end = [236.52117, -97.780105]) // CubicBezierRelative
|> bezierCurve(control1 = [248.52117, -92.100105], control2 = [240.49514000000002, -95.372295], end = [244.49777, -93.709465]) // CubicBezierRelative
|> line(endAbsolute = [299.09756, -85.781585]) // MoveRelative
|> bezierCurve({ control1: [305.09756, -85.781585], control2: [301.07756, -85.781585], to: [303.05755999999997, -85.781585]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [307.09756, -86.781585], control2: [305.75756, -86.111585], to: [306.41756, -86.441585]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [308.09756, -97.781585], control2: [307.48978999999997, -90.442425], to: [307.81822999999997, -94.110415]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [309.09756, -102.78158], control2: [308.42755999999997, -99.43158500000001], to: [308.75756, -101.08158]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [307.09756, -104.78158], control2: [308.43755999999996, -103.44158], to: [307.77756, -104.10158]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [306.09756, -108.78158], control2: [306.76756, -106.10158], to: [306.43755999999996, -107.42158]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [301.09756, -113.78158], control2: [304.43089, -110.44825], to: [302.76423, -112.11491000000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [301.09756, -105.78158], control2: [301.09756, -111.14158], to: [301.09756, -108.50158]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [298.09756, -106.78158], control2: [300.10756, -106.11158], to: [299.11755999999997, -106.44158]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [294.09756, -105.78158], control2: [296.77756, -106.45158], to: [295.45756, -106.12158000000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [293.09756, -111.78158], control2: [293.76756, -107.76158000000001], to: [293.43755999999996, -109.74158]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [290.09756, -114.78158], control2: [292.10756, -112.77158], to: [291.11755999999997, -113.76158000000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [290.09756, -100.78158], control2: [290.09756, -110.16158], to: [290.09756, -105.54158000000001]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [292.09756, -100.78158], control2: [290.75756, -100.78158], to: [291.41756, -100.78158]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [293.34756, -95.531585], control2: [292.51006, -99.049085], to: [292.92256, -97.316585]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [295.09756, -89.781585], control2: [293.92506, -93.63408500000001], to: [294.50255999999996, -91.736585]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [299.09756, -85.781585], control2: [296.41756, -88.46158500000001], to: [297.73756, -87.141585]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [305.09756, -85.781585], control2 = [301.07756, -85.781585], end = [303.05755999999997, -85.781585]) // CubicBezierRelative
|> bezierCurve(control1 = [307.09756, -86.781585], control2 = [305.75756, -86.111585], end = [306.41756, -86.441585]) // CubicBezierRelative
|> bezierCurve(control1 = [308.09756, -97.781585], control2 = [307.48978999999997, -90.442425], end = [307.81822999999997, -94.110415]) // CubicBezierRelative
|> bezierCurve(control1 = [309.09756, -102.78158], control2 = [308.42755999999997, -99.43158500000001], end = [308.75756, -101.08158]) // CubicBezierRelative
|> bezierCurve(control1 = [307.09756, -104.78158], control2 = [308.43755999999996, -103.44158], end = [307.77756, -104.10158]) // CubicBezierRelative
|> bezierCurve(control1 = [306.09756, -108.78158], control2 = [306.76756, -106.10158], end = [306.43755999999996, -107.42158]) // CubicBezierRelative
|> bezierCurve(control1 = [301.09756, -113.78158], control2 = [304.43089, -110.44825], end = [302.76423, -112.11491000000001]) // CubicBezierRelative
|> bezierCurve(control1 = [301.09756, -105.78158], control2 = [301.09756, -111.14158], end = [301.09756, -108.50158]) // CubicBezierRelative
|> bezierCurve(control1 = [298.09756, -106.78158], control2 = [300.10756, -106.11158], end = [299.11755999999997, -106.44158]) // CubicBezierRelative
|> bezierCurve(control1 = [294.09756, -105.78158], control2 = [296.77756, -106.45158], end = [295.45756, -106.12158000000001]) // CubicBezierRelative
|> bezierCurve(control1 = [293.09756, -111.78158], control2 = [293.76756, -107.76158000000001], end = [293.43755999999996, -109.74158]) // CubicBezierRelative
|> bezierCurve(control1 = [290.09756, -114.78158], control2 = [292.10756, -112.77158], end = [291.11755999999997, -113.76158000000001]) // CubicBezierRelative
|> bezierCurve(control1 = [290.09756, -100.78158], control2 = [290.09756, -110.16158], end = [290.09756, -105.54158000000001]) // CubicBezierRelative
|> bezierCurve(control1 = [292.09756, -100.78158], control2 = [290.75756, -100.78158], end = [291.41756, -100.78158]) // CubicBezierRelative
|> bezierCurve(control1 = [293.34756, -95.531585], control2 = [292.51006, -99.049085], end = [292.92256, -97.316585]) // CubicBezierRelative
|> bezierCurve(control1 = [295.09756, -89.781585], control2 = [293.92506, -93.63408500000001], end = [294.50255999999996, -91.736585]) // CubicBezierRelative
|> bezierCurve(control1 = [299.09756, -85.781585], control2 = [296.41756, -88.46158500000001], end = [297.73756, -87.141585]) // CubicBezierRelative
|> line(endAbsolute = [419.93938, -96.155625]) // MoveRelative
|> bezierCurve({ control1: [424.75188, -96.218125], control2: [422.32157, -96.186525], to: [422.32157, -96.186525]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [425.75188, -102.21812], control2: [425.08188, -98.198125], to: [425.41188000000005, -100.17812]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [417.75188, -104.21812], control2: [423.11188000000004, -102.87812], to: [420.47188000000006, -103.53811999999999]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [415.75188, -107.21812], control2: [416.76188, -105.70312], to: [416.76188, -105.70312]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [422.75188, -108.21812], control2: [418.06188000000003, -107.54812], to: [420.37188000000003, -107.87812]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [423.75188, -112.21812], control2: [423.08188, -109.53811999999999], to: [423.41188000000005, -110.85812]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [413.75188, -117.21812], control2: [418.80188000000004, -114.69312], to: [418.80188000000004, -114.69312]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [422.75188, -117.21812], control2: [416.72188000000006, -117.21812], to: [419.69188, -117.21812]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [421.75188, -120.21812], control2: [422.42188000000004, -118.20812], to: [422.09188, -119.19812]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [418.75188, -122.21812], control2: [420.76188, -120.87812], to: [419.77188, -121.53811999999999]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [411.75188, -123.21812], control2: [416.44188, -122.54812], to: [414.13188, -122.87812]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [407.75188, -121.21812], control2: [410.43188000000004, -122.55812], to: [409.11188000000004, -121.89812]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [409.18938, -103.59312], control2: [407.53385000000003, -114.968], to: [407.63543000000004, -109.67378]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [411.75188, -97.218125], control2: [410.75188, -99.218125], to: [410.75188, -99.218125]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [419.93938, -96.155625], control2: [414.75188, -96.218125], to: [414.75188, -96.218125]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [424.75188, -96.218125], control2 = [422.32157, -96.186525], end = [422.32157, -96.186525]) // CubicBezierRelative
|> bezierCurve(control1 = [425.75188, -102.21812], control2 = [425.08188, -98.198125], end = [425.41188000000005, -100.17812]) // CubicBezierRelative
|> bezierCurve(control1 = [417.75188, -104.21812], control2 = [423.11188000000004, -102.87812], end = [420.47188000000006, -103.53811999999999]) // CubicBezierRelative
|> bezierCurve(control1 = [415.75188, -107.21812], control2 = [416.76188, -105.70312], end = [416.76188, -105.70312]) // CubicBezierRelative
|> bezierCurve(control1 = [422.75188, -108.21812], control2 = [418.06188000000003, -107.54812], end = [420.37188000000003, -107.87812]) // CubicBezierRelative
|> bezierCurve(control1 = [423.75188, -112.21812], control2 = [423.08188, -109.53811999999999], end = [423.41188000000005, -110.85812]) // CubicBezierRelative
|> bezierCurve(control1 = [413.75188, -117.21812], control2 = [418.80188000000004, -114.69312], end = [418.80188000000004, -114.69312]) // CubicBezierRelative
|> bezierCurve(control1 = [422.75188, -117.21812], control2 = [416.72188000000006, -117.21812], end = [419.69188, -117.21812]) // CubicBezierRelative
|> bezierCurve(control1 = [421.75188, -120.21812], control2 = [422.42188000000004, -118.20812], end = [422.09188, -119.19812]) // CubicBezierRelative
|> bezierCurve(control1 = [418.75188, -122.21812], control2 = [420.76188, -120.87812], end = [419.77188, -121.53811999999999]) // CubicBezierRelative
|> bezierCurve(control1 = [411.75188, -123.21812], control2 = [416.44188, -122.54812], end = [414.13188, -122.87812]) // CubicBezierRelative
|> bezierCurve(control1 = [407.75188, -121.21812], control2 = [410.43188000000004, -122.55812], end = [409.11188000000004, -121.89812]) // CubicBezierRelative
|> bezierCurve(control1 = [409.18938, -103.59312], control2 = [407.53385000000003, -114.968], end = [407.63543000000004, -109.67378]) // CubicBezierRelative
|> bezierCurve(control1 = [411.75188, -97.218125], control2 = [410.75188, -99.218125], end = [410.75188, -99.218125]) // CubicBezierRelative
|> bezierCurve(control1 = [419.93938, -96.155625], control2 = [414.75188, -96.218125], end = [414.75188, -96.218125]) // CubicBezierRelative
|> line(endAbsolute = [198.29461, -92.109945]) // MoveRelative
|> bezierCurve({ control1: [202.29461, -92.109945], control2: [199.61461, -92.109945], to: [200.93461, -92.109945]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [205.29461, -97.109945], control2: [203.28461000000001, -93.759945], to: [204.27461, -95.409945]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [205.29461, -104.10994], control2: [205.29461, -99.419945], to: [205.29461, -101.72994]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [203.29461, -103.10994], control2: [204.63461, -103.77994], to: [203.97461, -103.44994]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [203.29461, -101.10994], control2: [203.29461, -102.44994], to: [203.29461, -101.78994]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [195.29461, -105.10994], control2: [200.58634, -102.35660999999999], to: [197.91966, -103.69645]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [194.29461, -108.10994], control2: [194.96461, -106.09993999999999], to: [194.63461, -107.08994]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [201.29461, -110.10994], control2: [196.60461, -108.76993999999999], to: [198.91461, -109.42993999999999]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [203.29461, -112.10994], control2: [201.95461, -110.76993999999999], to: [202.61461, -111.42993999999999]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [203.29461, -117.10994], control2: [203.29461, -113.75994], to: [203.29461, -115.40993999999999]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [195.29461, -120.10994], control2: [200.65652, -118.18306], to: [197.98453, -119.17430999999999]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [190.29461, -120.10994], control2: [193.64461, -120.10994], to: [191.99461, -120.10994]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [188.29461, -117.10994], control2: [189.63461, -119.11994], to: [188.97461, -118.12993999999999]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [194.29461, -114.10994], control2: [190.27461, -116.11994], to: [192.25461, -115.12993999999999]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [188.29461, -110.10994], control2: [192.31461000000002, -112.78994], to: [190.33461, -111.46994]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [186.29461, -107.10994], control2: [187.63461, -109.11994], to: [186.97461, -108.12993999999999]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [187.29461, -101.10994], control2: [186.62461000000002, -105.12993999999999], to: [186.95461, -103.14994]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [191.29461, -96.109945], control2: [188.61461, -99.45994499999999], to: [189.93461, -97.809945]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [198.29461, -92.109945], control2: [193.60461, -94.789945], to: [195.91461, -93.469945]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [202.29461, -92.109945], control2 = [199.61461, -92.109945], end = [200.93461, -92.109945]) // CubicBezierRelative
|> bezierCurve(control1 = [205.29461, -97.109945], control2 = [203.28461000000001, -93.759945], end = [204.27461, -95.409945]) // CubicBezierRelative
|> bezierCurve(control1 = [205.29461, -104.10994], control2 = [205.29461, -99.419945], end = [205.29461, -101.72994]) // CubicBezierRelative
|> bezierCurve(control1 = [203.29461, -103.10994], control2 = [204.63461, -103.77994], end = [203.97461, -103.44994]) // CubicBezierRelative
|> bezierCurve(control1 = [203.29461, -101.10994], control2 = [203.29461, -102.44994], end = [203.29461, -101.78994]) // CubicBezierRelative
|> bezierCurve(control1 = [195.29461, -105.10994], control2 = [200.58634, -102.35660999999999], end = [197.91966, -103.69645]) // CubicBezierRelative
|> bezierCurve(control1 = [194.29461, -108.10994], control2 = [194.96461, -106.09993999999999], end = [194.63461, -107.08994]) // CubicBezierRelative
|> bezierCurve(control1 = [201.29461, -110.10994], control2 = [196.60461, -108.76993999999999], end = [198.91461, -109.42993999999999]) // CubicBezierRelative
|> bezierCurve(control1 = [203.29461, -112.10994], control2 = [201.95461, -110.76993999999999], end = [202.61461, -111.42993999999999]) // CubicBezierRelative
|> bezierCurve(control1 = [203.29461, -117.10994], control2 = [203.29461, -113.75994], end = [203.29461, -115.40993999999999]) // CubicBezierRelative
|> bezierCurve(control1 = [195.29461, -120.10994], control2 = [200.65652, -118.18306], end = [197.98453, -119.17430999999999]) // CubicBezierRelative
|> bezierCurve(control1 = [190.29461, -120.10994], control2 = [193.64461, -120.10994], end = [191.99461, -120.10994]) // CubicBezierRelative
|> bezierCurve(control1 = [188.29461, -117.10994], control2 = [189.63461, -119.11994], end = [188.97461, -118.12993999999999]) // CubicBezierRelative
|> bezierCurve(control1 = [194.29461, -114.10994], control2 = [190.27461, -116.11994], end = [192.25461, -115.12993999999999]) // CubicBezierRelative
|> bezierCurve(control1 = [188.29461, -110.10994], control2 = [192.31461000000002, -112.78994], end = [190.33461, -111.46994]) // CubicBezierRelative
|> bezierCurve(control1 = [186.29461, -107.10994], control2 = [187.63461, -109.11994], end = [186.97461, -108.12993999999999]) // CubicBezierRelative
|> bezierCurve(control1 = [187.29461, -101.10994], control2 = [186.62461000000002, -105.12993999999999], end = [186.95461, -103.14994]) // CubicBezierRelative
|> bezierCurve(control1 = [191.29461, -96.109945], control2 = [188.61461, -99.45994499999999], end = [189.93461, -97.809945]) // CubicBezierRelative
|> bezierCurve(control1 = [198.29461, -92.109945], control2 = [193.60461, -94.789945], end = [195.91461, -93.469945]) // CubicBezierRelative
|> line(endAbsolute = [0, -0]) // MoveRelative
|> bezierCurve({ control1: [3, -1], control2: [0.99, -0.33], to: [1.98, -0.66]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [3, -4], control2: [3, -1.99], to: [3, -2.98]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [8, -4], control2: [4.65, -4], to: [6.3, -4]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [13, -6], control2: [10.475, -4.99], to: [10.475, -4.99]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [13, -10], control2: [13, -7.32], to: [13, -8.64]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [7, -12], control2: [11.02, -10.66], to: [9.04, -11.32]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [3, -12], control2: [5.68, -12], to: [4.36, -12] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [0, -19], control2: [2.01, -14.31], to: [1.02, -16.62] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [-2, -18], control2: [-0.66, -18.67], to: [-1.32, -18.34] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [-3, -8], control2: [-2.383986, -14.672121], to: [-2.7150643, -11.337819] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [-4, -5], control2: [-3.33, -7.01], to: [-3.66, -6.02] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [-1, -5], control2: [-3.01, -5], to: [-2.02, -5]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [0, -0], control2: [-0.6699999999999999, -3.35], to: [-0.33999999999999997, -1.7000000000000002]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [3, -1], control2 = [0.99, -0.33], end = [1.98, -0.66]) // CubicBezierRelative
|> bezierCurve(control1 = [3, -4], control2 = [3, -1.99], end = [3, -2.98]) // CubicBezierRelative
|> bezierCurve(control1 = [8, -4], control2 = [4.65, -4], end = [6.3, -4]) // CubicBezierRelative
|> bezierCurve(control1 = [13, -6], control2 = [10.475, -4.99], end = [10.475, -4.99]) // CubicBezierRelative
|> bezierCurve(control1 = [13, -10], control2 = [13, -7.32], end = [13, -8.64]) // CubicBezierRelative
|> bezierCurve(control1 = [7, -12], control2 = [11.02, -10.66], end = [9.04, -11.32]) // CubicBezierRelative
|> bezierCurve(control1 = [3, -12], control2 = [5.68, -12], end = [4.36, -12] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [0, -19], control2 = [2.01, -14.31], end = [1.02, -16.62] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [-2, -18], control2 = [-0.66, -18.67], end = [-1.32, -18.34] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [-3, -8], control2 = [-2.383986, -14.672121], end = [-2.7150643, -11.337819] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [-4, -5], control2 = [-3.33, -7.01], end = [-3.66, -6.02] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [-1, -5], control2 = [-3.01, -5], end = [-2.02, -5]) // CubicBezierRelative
|> bezierCurve(control1 = [0, -0], control2 = [-0.6699999999999999, -3.35], end = [-0.33999999999999997, -1.7000000000000002]) // CubicBezierRelative
|> line(endAbsolute = [0, -0]) // MoveRelative
|> bezierCurve({ control1: [7, -0], control2: [2.31, -0], to: [4.62, -0]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [17, -5], control2: [12.3125, -2.3125], to: [12.3125, -2.3125]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [19, -8], control2: [17.99, -6.485], to: [17.99, -6.485]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [17, -14], control2: [18.333333, -10], to: [17.666667, -12]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [15, -14], control2: [16.34, -14], to: [15.68, -14]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [14, -9], control2: [14.67, -12.35], to: [14.34, -10.7] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [6, -8], control2: [11.36, -8.67], to: [8.72, -8.34] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [6, -6], control2: [6, -7.34], to: [6, -6.68] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [1, -5], control2: [4.35, -5.67], to: [2.7, -5.34] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [0, -0], control2: [0.67, -3.35], to: [0.34, -1.7] }, %) // CubicBezierAbsolute
|> bezierCurve(control1 = [7, -0], control2 = [2.31, -0], end = [4.62, -0]) // CubicBezierRelative
|> bezierCurve(control1 = [17, -5], control2 = [12.3125, -2.3125], end = [12.3125, -2.3125]) // CubicBezierRelative
|> bezierCurve(control1 = [19, -8], control2 = [17.99, -6.485], end = [17.99, -6.485]) // CubicBezierRelative
|> bezierCurve(control1 = [17, -14], control2 = [18.333333, -10], end = [17.666667, -12]) // CubicBezierRelative
|> bezierCurve(control1 = [15, -14], control2 = [16.34, -14], end = [15.68, -14]) // CubicBezierRelative
|> bezierCurve(control1 = [14, -9], control2 = [14.67, -12.35], end = [14.34, -10.7] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [6, -8], control2 = [11.36, -8.67], end = [8.72, -8.34] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [6, -6], control2 = [6, -7.34], end = [6, -6.68] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [1, -5], control2 = [4.35, -5.67], end = [2.7, -5.34] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [0, -0], control2 = [0.67, -3.35], end = [0.34, -1.7] ) // CubicBezierAbsolute
|> line(endAbsolute = [-19.467588, -31.053017]) // MoveRelative
|> bezierCurve({ control1: [-12.467588, -32.053017], control2: [-17.157588, -31.383017], to: [-14.847587999999998, -31.713017]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [-10.467588, -34.053017], control2: [-11.807587999999999, -32.713016999999994], to: [-11.147587999999999, -33.373017]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [-10.467588, -39.053017], control2: [-10.467588, -35.703016999999996], to: [-10.467588, -37.353016999999994]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [-14.467588, -37.053017], control2: [-11.787588, -38.393017], to: [-13.107588, -37.733017]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [-14.467588, -40.053017], control2: [-14.467588, -38.043017], to: [-14.467588, -39.033016999999994]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [-26.467588, -40.053017], control2: [-18.427588, -40.053017], to: [-22.387588, -40.053017]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [-24.467588, -38.053017], control2: [-25.807588, -39.393017], to: [-25.147588, -38.733017]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [-17.467588, -36.053017], control2: [-22.157588, -37.393017], to: [-19.847588, -36.733017]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [-21.467588, -34.053017], control2: [-18.787588, -35.393017], to: [-20.107588, -34.733017]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [-21.467588, -32.053017], control2: [-21.467588, -33.393017], to: [-21.467588, -32.733017]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [-19.467588, -31.053016999999997], control2: [-20.807588, -31.723017], to: [-20.147588, -31.393016999999997]}, %) // CubicBezierRelative
|> bezierCurve(control1 = [-12.467588, -32.053017], control2 = [-17.157588, -31.383017], end = [-14.847587999999998, -31.713017]) // CubicBezierRelative
|> bezierCurve(control1 = [-10.467588, -34.053017], control2 = [-11.807587999999999, -32.713016999999994], end = [-11.147587999999999, -33.373017]) // CubicBezierRelative
|> bezierCurve(control1 = [-10.467588, -39.053017], control2 = [-10.467588, -35.703016999999996], end = [-10.467588, -37.353016999999994]) // CubicBezierRelative
|> bezierCurve(control1 = [-14.467588, -37.053017], control2 = [-11.787588, -38.393017], end = [-13.107588, -37.733017]) // CubicBezierRelative
|> bezierCurve(control1 = [-14.467588, -40.053017], control2 = [-14.467588, -38.043017], end = [-14.467588, -39.033016999999994]) // CubicBezierRelative
|> bezierCurve(control1 = [-26.467588, -40.053017], control2 = [-18.427588, -40.053017], end = [-22.387588, -40.053017]) // CubicBezierRelative
|> bezierCurve(control1 = [-24.467588, -38.053017], control2 = [-25.807588, -39.393017], end = [-25.147588, -38.733017]) // CubicBezierRelative
|> bezierCurve(control1 = [-17.467588, -36.053017], control2 = [-22.157588, -37.393017], end = [-19.847588, -36.733017]) // CubicBezierRelative
|> bezierCurve(control1 = [-21.467588, -34.053017], control2 = [-18.787588, -35.393017], end = [-20.107588, -34.733017]) // CubicBezierRelative
|> bezierCurve(control1 = [-21.467588, -32.053017], control2 = [-21.467588, -33.393017], end = [-21.467588, -32.733017]) // CubicBezierRelative
|> bezierCurve(control1 = [-19.467588, -31.053016999999997], control2 = [-20.807588, -31.723017], end = [-20.147588, -31.393016999999997]) // CubicBezierRelative
|> line(endAbsolute = [0, -0]) // MoveRelative
|> bezierCurve({ control1: [16, -3], control2: [5.4494016, -0.77848594], to: [10.65681, -1.7240142]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [18, -4], control2: [16.66, -3.33], to: [17.32, -3.66]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [18, -6], control2: [18, -4.66], to: [18, -5.32]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [14, -8], control2: [16.02, -6.99], to: [16.02, -6.99] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [7, -7], control2: [11.69, -7.67], to: [9.38, -7.34] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [1, -3], control2: [5.02, -5.68], to: [3.04, -4.36] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [1, -8], control2: [1, -4.65], to: [1, -6.3] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [-3, -7], control2: [-0.32, -7.67], to: [-1.64, -7.34] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [-4, -3], control2: [-3.33, -5.68], to: [-3.66, -4.36] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [0, -0], control2: [-2.68, -2.01], to: [-1.36, -1.02] }, %) // CubicBezierAbsolute
|> bezierCurve(control1 = [16, -3], control2 = [5.4494016, -0.77848594], end = [10.65681, -1.7240142]) // CubicBezierRelative
|> bezierCurve(control1 = [18, -4], control2 = [16.66, -3.33], end = [17.32, -3.66]) // CubicBezierRelative
|> bezierCurve(control1 = [18, -6], control2 = [18, -4.66], end = [18, -5.32]) // CubicBezierRelative
|> bezierCurve(control1 = [14, -8], control2 = [16.02, -6.99], end = [16.02, -6.99] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [7, -7], control2 = [11.69, -7.67], end = [9.38, -7.34] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [1, -3], control2 = [5.02, -5.68], end = [3.04, -4.36] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [1, -8], control2 = [1, -4.65], end = [1, -6.3] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [-3, -7], control2 = [-0.32, -7.67], end = [-1.64, -7.34] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [-4, -3], control2 = [-3.33, -5.68], end = [-3.66, -4.36] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [0, -0], control2 = [-2.68, -2.01], end = [-1.36, -1.02] ) // CubicBezierAbsolute
|> line(endAbsolute = [0, -0]) // MoveAbsolute
|> bezierCurve({ control1: [7, -0], control2: [2.31, -0], to: [4.62, -0] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [7, -4], control2: [7, -1.32], to: [7, -2.64] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [9, -5], control2: [7.66, -4.33], to: [8.32, -4.66] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [5, -7], control2: [7.02, -5.99], to: [7.02, -5.99] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [8, -8], control2: [5.99, -7.33], to: [6.98, -7.66] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [5, -12], control2: [7.01, -9.32], to: [6.02, -10.64] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [6, -18], control2: [5.33, -13.98], to: [5.66, -15.96] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [2, -21], control2: [4.68, -18.99], to: [3.36, -19.98] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [0, -21], control2: [1.34, -21], to: [0.68, -21] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [2, -3], control2: [-0.18556857, -14.319532], to: [0.34378347, -9.6248661] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [0, -3], control2: [1.34, -3], to: [0.68, -3] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [0, -0], control2: [0, -2.01], to: [0, -1.02] }, %) // CubicBezierAbsolute
|> bezierCurve(control1 = [7, -0], control2 = [2.31, -0], end = [4.62, -0] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [7, -4], control2 = [7, -1.32], end = [7, -2.64] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [9, -5], control2 = [7.66, -4.33], end = [8.32, -4.66] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [5, -7], control2 = [7.02, -5.99], end = [7.02, -5.99] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [8, -8], control2 = [5.99, -7.33], end = [6.98, -7.66] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [5, -12], control2 = [7.01, -9.32], end = [6.02, -10.64] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [6, -18], control2 = [5.33, -13.98], end = [5.66, -15.96] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [2, -21], control2 = [4.68, -18.99], end = [3.36, -19.98] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [0, -21], control2 = [1.34, -21], end = [0.68, -21] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [2, -3], control2 = [-0.18556857, -14.319532], end = [0.34378347, -9.6248661] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [0, -3], control2 = [1.34, -3], end = [0.68, -3] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [0, -0], control2 = [0, -2.01], end = [0, -1.02] ) // CubicBezierAbsolute
|> line(endAbsolute = [0, -0]) // MoveRelative
|> bezierCurve({ control1: [1, -4], control2: [0.33, -1.32], to: [0.66, -2.64]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [9, -4], control2: [3.64, -4], to: [6.28, -4]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [12, -1], control2: [9.99, -3.01], to: [10.98, -2.02]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [12, -3], control2: [12, -1.6600000000000001], to: [12, -2.3200000000000003]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [15, -4], control2: [12.99, -3.33], to: [13.98, -3.66]}, %) // CubicBezierRelative
|> bezierCurve({ control1: [12, -6], control2: [14.01, -4.66], to: [13.02, -5.32] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [2, -7], control2: [8.6740937, -6.4007116], to: [5.3398344, -6.7397532] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [9, -11], control2: [5.465, -8.98], to: [5.465, -8.98] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [9, -12], control2: [9, -11.33], to: [9, -11.66] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [1, -11], control2: [6.36, -11.67], to: [3.72, -11.34] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [-2, -9], control2: [0.01, -10.34], to: [-0.98, -9.68] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [-2, -4], control2: [-2, -7.35], to: [-2, -5.7] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [-4, -3], control2: [-2.66, -3.67], to: [-3.32, -3.34] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [0, -2], control2: [-2.68, -2.67], to: [-1.36, -2.34] }, %) // CubicBezierAbsolute
|> bezierCurve({ control1: [0, -0], control2: [0, -1.34], to: [0, -0.68] }, %) // CubicBezierAbsolute
|> bezierCurve(control1 = [1, -4], control2 = [0.33, -1.32], end = [0.66, -2.64]) // CubicBezierRelative
|> bezierCurve(control1 = [9, -4], control2 = [3.64, -4], end = [6.28, -4]) // CubicBezierRelative
|> bezierCurve(control1 = [12, -1], control2 = [9.99, -3.01], end = [10.98, -2.02]) // CubicBezierRelative
|> bezierCurve(control1 = [12, -3], control2 = [12, -1.6600000000000001], end = [12, -2.3200000000000003]) // CubicBezierRelative
|> bezierCurve(control1 = [15, -4], control2 = [12.99, -3.33], end = [13.98, -3.66]) // CubicBezierRelative
|> bezierCurve(control1 = [12, -6], control2 = [14.01, -4.66], end = [13.02, -5.32] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [2, -7], control2 = [8.6740937, -6.4007116], end = [5.3398344, -6.7397532] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [9, -11], control2 = [5.465, -8.98], end = [5.465, -8.98] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [9, -12], control2 = [9, -11.33], end = [9, -11.66] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [1, -11], control2 = [6.36, -11.67], end = [3.72, -11.34] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [-2, -9], control2 = [0.01, -10.34], end = [-0.98, -9.68] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [-2, -4], control2 = [-2, -7.35], end = [-2, -5.7] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [-4, -3], control2 = [-2.66, -3.67], end = [-3.32, -3.34] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [0, -2], control2 = [-2.68, -2.67], end = [-1.36, -2.34] ) // CubicBezierAbsolute
|> bezierCurve(control1 = [0, -0], control2 = [0, -1.34], end = [0, -0.68] ) // CubicBezierAbsolute
|> close()

View File

@ -12,11 +12,11 @@ const length002 = depth + minClampingDistance
const sketch001 = startSketchOn(XZ)
|> startProfileAt([0, depth - templateGap], %)
|> xLine(length = length001, tag = $seg01)
|> arc({
angleEnd: 0,
angleStart: 90,
radius: radius - templateGap
}, %)
|> arc(
angleEnd = 0,
angleStart = 90,
radius = radius - templateGap
)
|> yLine(endAbsolute = -templateGap * 2 - (templateDiameter / 2), tag = $seg05)
|> xLine(endAbsolute = slateWidthHalf + templateThickness, tag = $seg04)
|> yLine(length = -length002, tag = $seg03)
@ -25,11 +25,11 @@ const sketch001 = startSketchOn(XZ)
|> yLine(length = segLen(seg03, %))
|> xLine(length = segLen(seg04, %))
|> yLine(length = segLen(seg05, %))
|> arc({
angleEnd: 90,
angleStart: 180,
radius: radius - templateGap
}, %)
|> arc(
angleEnd = 90,
angleStart = 180,
radius = radius - templateGap
)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
const extrude001 = extrude(sketch001, length = 5)

View File

@ -48,11 +48,11 @@ fn caster = (originStart) => {
const sketch002c = startSketchOn(sketch001c, face = 'START')
|> startProfileAt([-originStart[0], 2.2 + originStart[1]], %)
|> arc({
angle_start: 30,
angle_end: 330,
radius: 3.2 / 2
}, %)
|> arc(
angle_start = 30,
angle_end = 330,
radius = 3.2 / 2
)
|> close()
|> extrude(length = 3.1)
@ -378,17 +378,9 @@ const sketch017w = startSketchOn(plane002)
depth - 1 - (3.7 * cos(23 * pi() / 180)),
60.65 + 3.7 * sin(23 * pi() / 180) + 1.75 / 2
], %)
|> arc({
angleStart: -23,
angleEnd: 180 - 23,
radius: 7 / 2 + 2
}, %)
|> arc(angleStart = -23, angleEnd = 180 - 23, radius = 7 / 2 + 2)
|> angledLine(angle = -23 + 180, length = -1 )
|> arc({
angleStart: 180 - 23,
angleEnd: -23,
radius: 7 / 2 + 1
}, %)
|> arc(angleStart = 180 - 23, angleEnd = -23, radius = 7 / 2 + 1)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
const extrude017w = extrude(sketch017w, length = 1)
@ -398,17 +390,9 @@ const sketch018w = startSketchOn(plane002)
depth - 1 - (19.3 * cos(23 * pi() / 180)),
60.65 + 19.3 * sin(23 * pi() / 180) + 1.75 / 2
], %)
|> arc({
angleStart: -23,
angleEnd: 180 - 23,
radius: 7 / 2 + 2
}, %)
|> arc(angleStart = -23, angleEnd = 180 - 23, radius = 7 / 2 + 2)
|> angledLine(angle = -23 + 180, length = -1 )
|> arc({
angleStart: 180 - 23,
angleEnd: -23,
radius: 7 / 2 + 1
}, %)
|> arc(angleStart = 180 - 23, angleEnd = -23, radius = 7 / 2 + 1)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
const extrude018w = extrude(sketch018w, length = 1)
@ -627,17 +611,9 @@ const extrude002fl = extrude(sketch002fl, length = thickness)
// Bend
const sketch003fl = startSketchOn(planeXYfl)
|> startProfileAt([0 + thickness + bendRad+originStart[1], originStart[0]], %)
|> arc({
angleStart: 270,
angleEnd: 180,
radius: bendRad + thickness
}, %)
|> arc(angleStart = 270, angleEnd = 180, radius = bendRad + thickness)
|> xLine(length = thickness)
|> arc({
angleStart: 180,
angleEnd: 270,
radius: bendRad
}, %)
|> arc(angleStart = 180, angleEnd = 270, radius = bendRad)
|> yLine(length = -thickness)
|> close()
@ -853,17 +829,9 @@ const sketch003fr = startSketchOn(planeXYfr)
bendRad + originStart[1] + width - 2 - thickness - bendRad,
originStart[0] + bendRad + thickness
], %)
|> arc({
angleStart: 0,
angleEnd: -90,
radius: bendRad
}, %)
|> arc(angleStart = 0, angleEnd = -90, radius = bendRad)
|> yLine(length = -thickness)
|> arc({
angleStart: -90,
angleEnd: 0,
radius: bendRad + thickness
}, %)
|> arc(angleStart = -90, angleEnd = 0, radius = bendRad + thickness)
|> close()
const extrude003fr = extrude(sketch003fr, length = railHeight * 1.75)
@ -1093,17 +1061,9 @@ const sketch003rr = startSketchOn(planeXYrr)
bendRad + originStart[1] + width - 2-bendRad,
originStart[0]-bendRad
], %)
|> arc({
angleStart: 0,
angleEnd: 90,
radius: bendRad+thickness
}, %)
|> arc(angleStart = 0, angleEnd = 90, radius = bendRad+thickness)
|> yLine(length = -thickness)
|> arc({
angleStart: 90,
angleEnd: 0,
radius: bendRad
}, %)
|> arc(angleStart = 90, angleEnd = 0, radius = bendRad)
|> close()
const extrude003rr = extrude(sketch003rr, length = railHeight * 1.75)
@ -1332,17 +1292,9 @@ const sketch003rl = startSketchOn(planeXYrl)
bendRad + originStart[1] + thickness,
originStart[0]
], %)
|> arc({
angleStart: 90,
angleEnd: 180,
radius: bendRad
}, %)
|> arc(angleStart = 90, angleEnd = 180, radius = bendRad)
|> xLine(length = -thickness)
|> arc({
angleStart: 180,
angleEnd: 90,
radius: bendRad + thickness
}, %)
|> arc(angleStart = 180, angleEnd = 90, radius = bendRad + thickness)
|> close()
const extrude003rl = extrude(sketch003rl, length = railHeight * 1.75)

View File

@ -46,11 +46,11 @@ fn caster = (originStart) => {
const sketch002c = startSketchOn(sketch001c, face = 'START')
|> startProfileAt([-originStart[0], 2.2 + originStart[1]], %)
|> arc({
angle_start: 30,
angle_end: 330,
radius: 3.2 / 2
}, %)
|> arc(
angle_start = 30,
angle_end = 330,
radius = 3.2 / 2
)
|> close()
|> extrude(length = 3.1)
@ -368,17 +368,9 @@ const sketch017w = startSketchOn(plane002)
depth - 1 - (3.7 * cos(23 * pi() / 180)),
60.65 + 3.7 * sin(23 * pi() / 180) + 1.75 / 2
], %)
|> arc({
angleStart: -23,
angleEnd: 180 - 23,
radius: 7 / 2 + 2
}, %)
|> arc(angleStart = -23, angleEnd = 180 - 23, radius = 7 / 2 + 2)
|> angledLine(angle = -23 + 180, length = -1 )
|> arc({
angleStart: 180 - 23,
angleEnd: -23,
radius: 7 / 2 + 1
}, %)
|> arc(angleStart = 180 - 23, angleEnd = -23, radius = 7 / 2 + 1)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
const extrude017w = extrude(sketch017w, length = 1)
@ -388,17 +380,9 @@ const sketch018w = startSketchOn(plane002)
depth - 1 - (19.3 * cos(23 * pi() / 180)),
60.65 + 19.3 * sin(23 * pi() / 180) + 1.75 / 2
], %)
|> arc({
angleStart: -23,
angleEnd: 180 - 23,
radius: 7 / 2 + 2
}, %)
|> arc(angleStart = -23, angleEnd = 180 - 23, radius = 7 / 2 + 2)
|> angledLine(angle = -23 + 180, length = -1 )
|> arc({
angleStart: 180 - 23,
angleEnd: -23,
radius: 7 / 2 + 1
}, %)
|> arc(angleStart = 180 - 23, angleEnd = -23, radius = 7 / 2 + 1)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
const extrude018w = extrude(sketch018w, length = 1)
@ -628,17 +612,9 @@ const sketch003fl = startSketchOn(planeXYfl)
0 + thickness + bendRad + originStart[1],
originStart[0]
], %)
|> arc({
angleStart: 270,
angleEnd: 180,
radius: bendRad + thickness
}, %)
|> arc(angleStart = 270, angleEnd = 180, radius = bendRad + thickness)
|> xLine(length = thickness)
|> arc({
angleStart: 180,
angleEnd: 270,
radius: bendRad
}, %)
|> arc(angleStart = 180, angleEnd = 270, radius = bendRad)
|> yLine(length = -thickness)
|> close()
@ -761,17 +737,9 @@ const sketch003fr = startSketchOn(planeXYfr)
bendRad + originStart[1] + width - 2 - thickness - bendRad,
originStart[0] + bendRad + thickness
], %)
|> arc({
angleStart: 0,
angleEnd: -90,
radius: bendRad
}, %)
|> arc(angleStart = 0, angleEnd = -90, radius = bendRad)
|> yLine(length = -thickness)
|> arc({
angleStart: -90,
angleEnd: 0,
radius: bendRad + thickness
}, %)
|> arc(angleStart = -90, angleEnd = 0, radius = bendRad + thickness)
|> close()
const extrude003fr = extrude(sketch003fr, length = railHeight * 1.75)
@ -893,17 +861,9 @@ const sketch003rr = startSketchOn(planeXYrr)
bendRad + originStart[1] + width - 2 - bendRad,
originStart[0] - bendRad
], %)
|> arc({
angleStart: 0,
angleEnd: 90,
radius: bendRad + thickness
}, %)
|> arc(angleStart = 0, angleEnd = 90, radius = bendRad + thickness)
|> yLine(length = -thickness)
|> arc({
angleStart: 90,
angleEnd: 0,
radius: bendRad
}, %)
|> arc(angleStart = 90, angleEnd = 0, radius = bendRad)
|> close()
const extrude003rr = extrude(sketch003rr, length = railHeight * 1.75)
@ -1024,17 +984,9 @@ const sketch003rl = startSketchOn(planeXYrl)
bendRad + originStart[1] + thickness,
originStart[0]
], %)
|> arc({
angleStart: 90,
angleEnd: 180,
radius: bendRad
}, %)
|> arc(angleStart = 90, angleEnd = 180, radius = bendRad)
|> xLine(length = -thickness)
|> arc({
angleStart: 180,
angleEnd: 90,
radius: bendRad + thickness
}, %)
|> arc(angleStart = 180, angleEnd = 90, radius = bendRad + thickness)
|> close()
const extrude003rl = extrude(sketch003rl, length = railHeight * 1.75)

View File

@ -290,7 +290,7 @@ async fn optional_params() {
fn other_circle = (pos, radius, tag?) => {
sg = startSketchOn(XY)
|> startProfileAt(pos, %)
|> arc({angleEnd = 360, angleStart = 0, radius}, %)
|> arc(angleEnd = 360, angleStart = 0, radius = radius)
|> close()
|> extrude(length = 2)
@ -1191,11 +1191,12 @@ async fn kcl_test_plumbus_fillets() {
let code = r#"fn make_circle = (ext, face, pos, radius) => {
sg = startSketchOn(ext, face = face)
|> startProfileAt([pos[0] + radius, pos[1]], %)
|> arc({
|> arc(
angleEnd = 360,
angleStart = 0,
radius = radius
}, %, $arc1)
radius = radius,
tag = $arc1,
)
|> close()
return sg
@ -1769,11 +1770,11 @@ async fn kcl_test_extrude_custom_plane() {
async fn kcl_test_arc_error_same_start_end() {
let code = r#"startSketchOn(XY)
|> startProfileAt([10, 0], %)
|> arc({
angleStart: 180,
angleEnd: 180,
radius= 1.5
}, %)
|> arc(
angleStart = 180,
angleEnd = 180,
radius = 1.5
)
|> close()
|> patternCircular2d(
arcDegrees = 360,
@ -1784,11 +1785,9 @@ async fn kcl_test_arc_error_same_start_end() {
"#;
let result = execute_and_snapshot(code, None).await;
assert!(result.is_err());
assert_eq!(
result.err().unwrap().to_string(),
r#"type: KclErrorDetails { source_ranges: [SourceRange([55, 136, 0])], message: "Arc start and end angles must be different" }"#
);
let err = result.expect_err("Code should have failed due to end angle === start angle");
let err = err.as_kcl_error().unwrap();
assert_eq!(err.message(), "Arc start and end angles must be different");
}
#[tokio::test(flavor = "multi_thread")]

View File

@ -964,11 +964,7 @@ mod tests {
let snippet = arc_fn.to_autocomplete_snippet().unwrap();
assert_eq!(
snippet,
r#"arc({
angleStart = ${0:3.14},
angleEnd = ${1:3.14},
radius = ${2:3.14},
}, ${3:%})"#
r#"arc(${0:%}, angleStart = ${1:3.14}, angleEnd = ${2:3.14}, radius = ${3:3.14})"#
);
}

View File

@ -1122,32 +1122,36 @@ fn artifacts_to_update(
let mut new_solid_ids = vec![id];
// Make sure we don't ever create a duplicate ID since merge_ids
// can't handle it.
let not_cmd_id = move |solid_id: &ArtifactId| *solid_id != id;
match response {
OkModelingCmdResponse::BooleanIntersection(intersection) => intersection
.extra_solid_ids
.iter()
.copied()
.map(ArtifactId::new)
.filter(not_cmd_id)
.for_each(|id| new_solid_ids.push(id)),
OkModelingCmdResponse::BooleanSubtract(subtract) => subtract
.extra_solid_ids
.iter()
.copied()
.map(ArtifactId::new)
.filter(not_cmd_id)
.for_each(|id| new_solid_ids.push(id)),
OkModelingCmdResponse::BooleanUnion(union) => union
.extra_solid_ids
.iter()
.copied()
.map(ArtifactId::new)
.filter(not_cmd_id)
.for_each(|id| new_solid_ids.push(id)),
_ => {}
}
let return_arr = new_solid_ids
.into_iter()
// Extra solid IDs may include the command's ID. Make sure we
// don't create a duplicate.
.filter(|solid_id| *solid_id != id)
.map(|solid_id| {
Artifact::CompositeSolid(CompositeSolid {
id: solid_id,

View File

@ -1114,10 +1114,10 @@ pub enum Path {
/// Point 1 of the arc (base on the end of previous segment)
#[ts(type = "[number, number]")]
p1: [f64; 2],
/// Point 2 of the arc (interior kwarg)
/// Point 2 of the arc (interiorAbsolute kwarg)
#[ts(type = "[number, number]")]
p2: [f64; 2],
/// Point 3 of the arc (end kwarg)
/// Point 3 of the arc (endAbsolute kwarg)
#[ts(type = "[number, number]")]
p3: [f64; 2],
},

View File

@ -1643,11 +1643,7 @@ sphere = startSketchOn(XZ)
0 - 0.05
], %)
|> line(end = [sphereDia - 0.1, 0])
|> arc({
angle_start: 0,
angle_end: -180,
radius: sphereDia / 2 - 0.05
}, %)
|> arc(angle_start = 0, angle_end = -180, radius = sphereDia / 2 - 0.05)
|> close()
|> revolve({ axis = X }, %)
|> patternCircular3d(
@ -1706,7 +1702,7 @@ outsideRevolve = startSketchOn(XZ)
tower_lsp::lsp_types::Range {
start: tower_lsp::lsp_types::Position { line: 0, character: 0 },
end: tower_lsp::lsp_types::Position {
line: 60,
line: 56,
character: 29
}
}
@ -1743,11 +1739,7 @@ sphere = startSketchOn(XZ)
0 - 0.05
], %)
|> line(end = [sphereDia - 0.1, 0])
|> arc({
angle_start = 0,
angle_end = -180,
radius = sphereDia / 2 - 0.05
}, %)
|> arc(angle_start = 0, angle_end = -180, radius = sphereDia / 2 - 0.05)
|> close()
|> revolve({ axis = X }, %)
|> patternCircular3d(

View File

@ -5326,17 +5326,6 @@ mod snapshot_tests {
c: 3
}"
);
snapshot_test!(
ba,
r#"
sketch001 = startSketchOn('XY')
// |> arc({
// angleEnd: 270,
// angleStart: 450,
// }, %)
|> startProfileAt(%)
"#
);
snapshot_test!(
bb,
r#"

View File

@ -653,40 +653,6 @@ impl Args {
FromArgs::from_args(self, 0)
}
pub(crate) fn get_data_and_sketch_and_tag<'a, T>(
&'a self,
exec_state: &mut ExecState,
) -> Result<(T, Sketch, Option<TagNode>), KclError>
where
T: FromKclValue<'a> + Sized,
{
let data: T = FromArgs::from_args(self, 0)?;
let Some(arg1) = self.args.get(1) else {
return Err(KclError::Semantic(KclErrorDetails {
message: "Expected a sketch for second argument".to_owned(),
source_ranges: vec![self.source_range],
}));
};
let sarg = arg1
.value
.coerce(&RuntimeType::Primitive(PrimitiveType::Sketch), exec_state)
.map_err(|_| {
KclError::Type(KclErrorDetails {
message: format!(
"Expected a sketch for second argument, found {}",
arg1.value.human_friendly_type()
),
source_ranges: vec![self.source_range],
})
})?;
let sketch = match sarg {
KclValue::Sketch { value } => *value,
_ => unreachable!(),
};
let tag: Option<TagNode> = FromArgs::from_args(self, 2)?;
Ok((data, sketch, tag))
}
pub(crate) fn get_data_and_sketch_surface(&self) -> Result<([TyF64; 2], SketchSurface, Option<TagNode>), KclError> {
FromArgs::from_args(self, 0)
}
@ -1095,16 +1061,6 @@ impl<'a> FromKclValue<'a> for kittycad_modeling_cmds::coord::Direction {
}
}
impl<'a> FromKclValue<'a> for super::sketch::BezierData {
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
let obj = arg.as_object()?;
let_field_of!(obj, to);
let_field_of!(obj, control1);
let_field_of!(obj, control2);
Some(Self { to, control1, control2 })
}
}
impl<'a> FromKclValue<'a> for FaceTag {
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
let case1 = || match arg.as_str() {
@ -1120,39 +1076,6 @@ impl<'a> FromKclValue<'a> for FaceTag {
}
}
impl<'a> FromKclValue<'a> for super::sketch::ArcData {
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
let obj = arg.as_object()?;
let case1 = || {
let angle_start = obj.get("angleStart")?.as_ty_f64()?;
let angle_end = obj.get("angleEnd")?.as_ty_f64()?;
let_field_of!(obj, radius, TyF64);
Some(Self::AnglesAndRadius {
angle_start,
angle_end,
radius,
})
};
let case2 = || {
let obj = arg.as_object()?;
let_field_of!(obj, to);
let_field_of!(obj, center);
let_field_of!(obj, radius, TyF64);
Some(Self::CenterToRadius { center, to, radius })
};
case1().or_else(case2)
}
}
impl<'a> FromKclValue<'a> for super::sketch::ArcToData {
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
let obj = arg.as_object()?;
let_field_of!(obj, end);
let_field_of!(obj, interior);
Some(Self { end, interior })
}
}
impl<'a> FromKclValue<'a> for super::sketch::TangentialArcData {
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
let obj = arg.as_object()?;

View File

@ -64,18 +64,18 @@ pub async fn extrude(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// example = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %)
/// |> line(end = [10, 0])
/// |> arc({
/// |> arc(
/// angleStart = 120,
/// angleEnd = 0,
/// radius = 5,
/// }, %)
/// )
/// |> line(end = [5, 0])
/// |> line(end = [0, 10])
/// |> bezierCurve({
/// control1 = [-10, 0],
/// control2 = [2, 10],
/// to = [-5, 10],
/// }, %)
/// |> bezierCurve(
/// control1 = [-10, 0],
/// control2 = [2, 10],
/// end = [-5, 10],
/// )
/// |> line(end = [-5, -2])
/// |> close()
/// |> extrude(length = 10)
@ -84,18 +84,18 @@ pub async fn extrude(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ```no_run
/// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([-10, 0], %)
/// |> arc({
/// |> arc(
/// angleStart = 120,
/// angleEnd = -60,
/// radius = 5,
/// }, %)
/// )
/// |> line(end = [10, 0])
/// |> line(end = [5, 0])
/// |> bezierCurve({
/// control1 = [-3, 0],
/// control2 = [2, 10],
/// to = [-5, 10],
/// }, %)
/// |> bezierCurve(
/// control1 = [-3, 0],
/// control2 = [2, 10],
/// end = [-5, 10],
/// )
/// |> line(end = [-4, 10])
/// |> line(end = [-5, -2])
/// |> close()
@ -106,18 +106,18 @@ pub async fn extrude(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ```no_run
/// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([-10, 0], %)
/// |> arc({
/// |> arc(
/// angleStart = 120,
/// angleEnd = -60,
/// radius = 5,
/// }, %)
/// )
/// |> line(end = [10, 0])
/// |> line(end = [5, 0])
/// |> bezierCurve({
/// control1 = [-3, 0],
/// control2 = [2, 10],
/// to = [-5, 10],
/// }, %)
/// |> bezierCurve(
/// control1 = [-3, 0],
/// control2 = [2, 10],
/// end = [-5, 10],
/// )
/// |> line(end = [-4, 10])
/// |> line(end = [-5, -2])
/// |> close()
@ -128,18 +128,18 @@ pub async fn extrude(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ```no_run
/// exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([-10, 0], %)
/// |> arc({
/// |> arc(
/// angleStart = 120,
/// angleEnd = -60,
/// radius = 5,
/// }, %)
/// )
/// |> line(end = [10, 0])
/// |> line(end = [5, 0])
/// |> bezierCurve({
/// control1 = [-3, 0],
/// control2 = [2, 10],
/// to = [-5, 10],
/// }, %)
/// |> bezierCurve(
/// control1 = [-3, 0],
/// control2 = [2, 10],
/// end = [-5, 10],
/// )
/// |> line(end = [-4, 10])
/// |> line(end = [-5, -2])
/// |> close()

View File

@ -84,7 +84,6 @@ lazy_static! {
Box::new(crate::std::sketch::ProfileStart),
Box::new(crate::std::sketch::Close),
Box::new(crate::std::sketch::Arc),
Box::new(crate::std::sketch::ArcTo),
Box::new(crate::std::sketch::TangentialArc),
Box::new(crate::std::sketch::BezierCurve),
Box::new(crate::std::sketch::Hole),

View File

@ -529,10 +529,11 @@ pub async fn tangent_to_end(exec_state: &mut ExecState, args: Args) -> Result<Kc
/// ```no_run
/// bottom = startSketchOn("XY")
/// |> startProfileAt([0, 0], %)
/// |> arcTo({
/// end: [10, 10],
/// interior: [5, 1]
/// }, %, $arc1)
/// |> arc(
/// endAbsolute = [10, 10],
/// interiorAbsolute = [5, 1],
/// tag = $arc1,
/// )
/// |> angledLine(angle = tangentToEnd(arc1), length = 20)
/// |> close()
/// ```

View File

@ -24,7 +24,7 @@ use crate::{
std::{
args::{Args, TyF64},
utils::{
arc_angles, arc_center_and_end, get_tangential_arc_to_info, get_x_component, get_y_component,
arc_center_and_end, get_tangential_arc_to_info, get_x_component, get_y_component,
intersection_with_parallel_line, TangentialArcInfoInput,
},
},
@ -104,7 +104,7 @@ pub async fn involute_circular(exec_state: &mut ExecState, args: Args) -> Result
let end_radius: TyF64 = args.get_kw_arg_typed("endRadius", &RuntimeType::length(), exec_state)?;
let angle: TyF64 = args.get_kw_arg_typed("angle", &RuntimeType::angle(), exec_state)?;
let reverse = args.get_kw_arg_opt("reverse")?;
let tag = args.get_kw_arg_opt("tag")?;
let tag = args.get_kw_arg_opt(NEW_TAG_KW)?;
let new_sketch = inner_involute_circular(
sketch,
start_radius.n,
@ -198,26 +198,6 @@ async fn inner_involute_circular(
end.x += from.x;
end.y += from.y;
// let path_json = path_to_json();
// let end = args
// .send_modeling_cmd(
// exec_state.next_uuid(),
// ModelingCmd::EngineUtilEvaluatePath(mcmd::EngineUtilEvaluatePath { path_json, t: 1.0 }),
// )
// .await?;
// let end = match end {
// kittycad_modeling_cmds::websocket::OkWebSocketResponseData::Modeling {
// modeling_response: OkModelingCmdResponse::EngineUtilEvaluatePath(eval_path),
// } => eval_path.pos,
// other => {
// return Err(KclError::Engine(KclErrorDetails {
// source_ranges: vec![args.source_range],
// message: format!("Expected EngineUtilEvaluatePath response but found {other:?}"),
// }))
// }
// };
let current_path = Path::ToPoint {
base: BasePath {
from: from.into(),
@ -1636,51 +1616,31 @@ pub(crate) async fn inner_close(
Ok(new_sketch)
}
/// Data to draw an arc.
#[derive(Debug, Clone, Serialize, PartialEq, ts_rs::TS, JsonSchema)]
#[ts(export)]
#[serde(rename_all = "camelCase", untagged)]
pub enum ArcData {
/// Angles and radius with an optional tag.
AnglesAndRadius {
/// The start angle.
#[serde(rename = "angleStart")]
#[schemars(range(min = -360.0, max = 360.0))]
angle_start: TyF64,
/// The end angle.
#[serde(rename = "angleEnd")]
#[schemars(range(min = -360.0, max = 360.0))]
angle_end: TyF64,
/// The radius.
radius: TyF64,
},
/// Center, to and radius with an optional tag.
CenterToRadius {
/// The center.
center: [TyF64; 2],
/// The to point.
to: [TyF64; 2],
/// The radius.
radius: TyF64,
},
}
/// Data to draw a three point arc (arcTo).
#[derive(Debug, Clone, Serialize, PartialEq, ts_rs::TS, JsonSchema)]
#[ts(export)]
#[serde(rename_all = "camelCase")]
pub struct ArcToData {
/// End point of the arc. A point in 3D space
pub end: [TyF64; 2],
/// Interior point of the arc. A point in 3D space
pub interior: [TyF64; 2],
}
/// Draw an arc.
pub async fn arc(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
let (data, sketch, tag): (ArcData, Sketch, Option<TagNode>) = args.get_data_and_sketch_and_tag(exec_state)?;
let sketch =
args.get_unlabeled_kw_arg_typed("sketch", &RuntimeType::Primitive(PrimitiveType::Sketch), exec_state)?;
let new_sketch = inner_arc(data, sketch, tag, exec_state, args).await?;
let angle_start: Option<TyF64> = args.get_kw_arg_opt_typed("angleStart", &RuntimeType::degrees(), exec_state)?;
let angle_end: Option<TyF64> = args.get_kw_arg_opt_typed("angleEnd", &RuntimeType::degrees(), exec_state)?;
let radius: Option<TyF64> = args.get_kw_arg_opt_typed("radius", &RuntimeType::length(), exec_state)?;
let end_absolute: Option<[TyF64; 2]> =
args.get_kw_arg_opt_typed("endAbsolute", &RuntimeType::point2d(), exec_state)?;
let interior_absolute: Option<[TyF64; 2]> =
args.get_kw_arg_opt_typed("interiorAbsolute", &RuntimeType::point2d(), exec_state)?;
let tag = args.get_kw_arg_opt(NEW_TAG_KW)?;
let new_sketch = inner_arc(
sketch,
angle_start,
angle_end,
radius,
interior_absolute,
end_absolute,
tag,
exec_state,
args,
)
.await?;
Ok(KclValue::Sketch {
value: Box::new(new_sketch),
})
@ -1701,74 +1661,167 @@ pub async fn arc(exec_state: &mut ExecState, args: Args) -> Result<KclValue, Kcl
/// exampleSketch = startSketchOn(XZ)
/// |> startProfileAt([0, 0], %)
/// |> line(end = [10, 0])
/// |> arc({
/// |> arc(
/// angleStart = 0,
/// angleEnd = 280,
/// radius = 16
/// }, %)
/// )
/// |> close()
/// example = extrude(exampleSketch, length = 10)
/// ```
/// ```no_run
/// exampleSketch = startSketchOn(XZ)
/// |> startProfileAt([0, 0], %)
/// |> arc(
/// endAbsolute = [10,0],
/// interiorAbsolute = [5,5]
/// )
/// |> close()
/// example = extrude(exampleSketch, length = 10)
/// ```
#[stdlib {
name = "arc",
keywords = true,
unlabeled_first = true,
args = {
sketch = { docs = "Which sketch should this path be added to?" },
angle_start = { docs = "Where along the circle should this arc start?", include_in_snippet = true },
angle_end = { docs = "Where along the circle should this arc end?", include_in_snippet = true },
radius = { docs = "How large should the circle be?", include_in_snippet = true },
interior_absolute = { docs = "Any point between the arc's start and end? Requires `endAbsolute`. Incompatible with `angleStart` or `angleEnd`" },
end_absolute = { docs = "Where should this arc end? Requires `interiorAbsolute`. Incompatible with `angleStart` or `angleEnd`" },
tag = { docs = "Create a new tag which refers to this line"},
}
}]
#[allow(clippy::too_many_arguments)]
pub(crate) async fn inner_arc(
data: ArcData,
sketch: Sketch,
angle_start: Option<TyF64>,
angle_end: Option<TyF64>,
radius: Option<TyF64>,
interior_absolute: Option<[TyF64; 2]>,
end_absolute: Option<[TyF64; 2]>,
tag: Option<TagNode>,
exec_state: &mut ExecState,
args: Args,
) -> Result<Sketch, KclError> {
let from: Point2d = sketch.current_pen_position()?;
let id = exec_state.next_uuid();
let (center, angle_start, angle_end, radius, end) = match &data {
ArcData::AnglesAndRadius {
angle_start,
angle_end,
radius,
} => {
let a_start = Angle::from_degrees(angle_start.n);
let a_end = Angle::from_degrees(angle_end.n);
let (center, end) = arc_center_and_end(from.into(), a_start, a_end, radius.n);
(center, a_start, a_end, radius.n, end)
// Relative case
match (angle_start, angle_end, radius, interior_absolute, end_absolute) {
(Some(angle_start), Some(angle_end), Some(radius), None, None) => {
relative_arc(&args, id, exec_state, sketch, from, angle_start, angle_end, radius, tag).await
}
ArcData::CenterToRadius { center, to, radius } => {
let (angle_start, angle_end) = arc_angles(
from.into(),
untype_point(to.clone()).0,
untype_point(center.clone()).0,
radius.n,
args.source_range,
)?;
(
untype_point(center.clone()).0,
angle_start,
angle_end,
radius.n,
untype_point(to.clone()).0,
)
(None, None, None, Some(interior_absolute), Some(end_absolute)) => {
absolute_arc(&args, id, exec_state, sketch, from, interior_absolute, end_absolute, tag).await
}
_ => {
Err(KclError::Type(KclErrorDetails {
message:
"Invalid combination of arguments. Either provide (angleStart, angleEnd, radius) or (endAbsolute, interiorAbsolute)"
.to_string(),
source_ranges: vec![args.source_range],
}))
}
}
}
#[allow(clippy::too_many_arguments)]
pub async fn absolute_arc(
args: &Args,
id: uuid::Uuid,
exec_state: &mut ExecState,
sketch: Sketch,
from: Point2d,
interior_absolute: [TyF64; 2],
end_absolute: [TyF64; 2],
tag: Option<TagNode>,
) -> Result<Sketch, KclError> {
// The start point is taken from the path you are extending.
args.batch_modeling_cmd(
id,
ModelingCmd::from(mcmd::ExtendPath {
path: sketch.id.into(),
segment: PathSegment::ArcTo {
end: kcmc::shared::Point3d {
x: LengthUnit(end_absolute[0].n),
y: LengthUnit(end_absolute[1].n),
z: LengthUnit(0.0),
},
interior: kcmc::shared::Point3d {
x: LengthUnit(interior_absolute[0].n),
y: LengthUnit(interior_absolute[1].n),
z: LengthUnit(0.0),
},
relative: false,
},
}),
)
.await?;
let start = [from.x, from.y];
let end = end_absolute.clone();
let untyped_end = untype_point(end);
let current_path = Path::ArcThreePoint {
base: BasePath {
from: from.into(),
to: untyped_end.0,
tag: tag.clone(),
units: sketch.units,
geo_meta: GeoMeta {
id,
metadata: args.source_range.into(),
},
},
p1: start,
p2: untype_point(interior_absolute).0,
p3: untyped_end.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)
}
#[allow(clippy::too_many_arguments)]
pub async fn relative_arc(
args: &Args,
id: uuid::Uuid,
exec_state: &mut ExecState,
sketch: Sketch,
from: Point2d,
angle_start: TyF64,
angle_end: TyF64,
radius: TyF64,
tag: Option<TagNode>,
) -> Result<Sketch, KclError> {
let a_start = Angle::from_degrees(angle_start.n);
let a_end = Angle::from_degrees(angle_end.n);
let (center, end) = arc_center_and_end(from.into(), a_start, a_end, radius.n);
if angle_start == angle_end {
return Err(KclError::Type(KclErrorDetails {
message: "Arc start and end angles must be different".to_string(),
source_ranges: vec![args.source_range],
}));
}
let ccw = angle_start < angle_end;
let id = exec_state.next_uuid();
let ccw = angle_start.n < angle_end.n;
args.batch_modeling_cmd(
id,
ModelingCmd::from(mcmd::ExtendPath {
path: sketch.id.into(),
segment: PathSegment::Arc {
start: angle_start,
end: angle_end,
start: a_start,
end: a_end,
center: KPoint2d::from(center).map(LengthUnit),
radius: LengthUnit(radius),
radius: LengthUnit(radius.n),
relative: false,
},
}),
@ -1787,7 +1840,7 @@ pub(crate) async fn inner_arc(
},
},
center,
radius,
radius: radius.n,
ccw,
};
@ -1800,98 +1853,6 @@ pub(crate) async fn inner_arc(
Ok(new_sketch)
}
/// Draw a three point arc.
pub async fn arc_to(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
let (data, sketch, tag): (ArcToData, Sketch, Option<TagNode>) = args.get_data_and_sketch_and_tag(exec_state)?;
let new_sketch = inner_arc_to(data, sketch, tag, exec_state, args).await?;
Ok(KclValue::Sketch {
value: Box::new(new_sketch),
})
}
/// Draw a three point arc.
///
/// The arc is constructed such that the start point is the current position of the sketch and two more points defined as the end and interior point.
/// The interior point is placed between the start point and end point. The radius of the arc will be controlled by how far the interior point is placed from
/// the start and end.
///
/// ```no_run
/// exampleSketch = startSketchOn(XZ)
/// |> startProfileAt([0, 0], %)
/// |> arcTo({
/// end = [10,0],
/// interior = [5,5]
/// }, %)
/// |> close()
/// example = extrude(exampleSketch, length = 10)
/// ```
#[stdlib {
name = "arcTo",
}]
pub(crate) async fn inner_arc_to(
data: ArcToData,
sketch: Sketch,
tag: Option<TagNode>,
exec_state: &mut ExecState,
args: Args,
) -> Result<Sketch, KclError> {
let from: Point2d = sketch.current_pen_position()?;
let id = exec_state.next_uuid();
// The start point is taken from the path you are extending.
args.batch_modeling_cmd(
id,
ModelingCmd::from(mcmd::ExtendPath {
path: sketch.id.into(),
segment: PathSegment::ArcTo {
end: kcmc::shared::Point3d {
x: LengthUnit(data.end[0].n),
y: LengthUnit(data.end[1].n),
z: LengthUnit(0.0),
},
interior: kcmc::shared::Point3d {
x: LengthUnit(data.interior[0].n),
y: LengthUnit(data.interior[1].n),
z: LengthUnit(0.0),
},
relative: false,
},
}),
)
.await?;
let start = [from.x, from.y];
let interior = data.interior;
let end = data.end.clone();
let current_path = Path::ArcThreePoint {
base: BasePath {
from: from.into(),
to: untype_point(data.end).0,
tag: tag.clone(),
units: sketch.units,
geo_meta: GeoMeta {
id,
metadata: args.source_range.into(),
},
},
p1: start,
p2: untype_point(interior).0,
p3: untype_point(end).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)
}
/// Draw a tangential arc to a specific point.
pub async fn tangential_arc(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
let sketch =
@ -2208,24 +2169,16 @@ async fn inner_tangential_arc_to_point(
Ok(new_sketch)
}
/// Data to draw a bezier curve.
#[derive(Debug, Clone, Serialize, PartialEq, ts_rs::TS, JsonSchema)]
#[ts(export)]
#[serde(rename_all = "camelCase")]
pub struct BezierData {
/// The to point.
pub to: [TyF64; 2],
/// The first control point.
pub control1: [TyF64; 2],
/// The second control point.
pub control2: [TyF64; 2],
}
/// Draw a bezier curve.
pub async fn bezier_curve(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
let (data, sketch, tag): (BezierData, Sketch, Option<TagNode>) = args.get_data_and_sketch_and_tag(exec_state)?;
let sketch =
args.get_unlabeled_kw_arg_typed("sketch", &RuntimeType::Primitive(PrimitiveType::Sketch), exec_state)?;
let end: [TyF64; 2] = args.get_kw_arg_typed("end", &RuntimeType::point2d(), exec_state)?;
let control1: [TyF64; 2] = args.get_kw_arg_typed("control1", &RuntimeType::point2d(), exec_state)?;
let control2: [TyF64; 2] = args.get_kw_arg_typed("control2", &RuntimeType::point2d(), exec_state)?;
let tag = args.get_kw_arg_opt("tag")?;
let new_sketch = inner_bezier_curve(data, sketch, tag, exec_state, args).await?;
let new_sketch = inner_bezier_curve(sketch, control1, control2, end, tag, exec_state, args).await?;
Ok(KclValue::Sketch {
value: Box::new(new_sketch),
})
@ -2239,11 +2192,11 @@ pub async fn bezier_curve(exec_state: &mut ExecState, args: Args) -> Result<KclV
/// exampleSketch = startSketchOn(XZ)
/// |> startProfileAt([0, 0], %)
/// |> line(end = [0, 10])
/// |> bezierCurve({
/// to = [10, 10],
/// |> bezierCurve(
/// control1 = [5, 0],
/// control2 = [5, 10]
/// }, %)
/// control2 = [5, 10],
/// end = [10, 10],
/// )
/// |> line(endAbsolute = [10, 0])
/// |> close()
///
@ -2251,10 +2204,21 @@ pub async fn bezier_curve(exec_state: &mut ExecState, args: Args) -> Result<KclV
/// ```
#[stdlib {
name = "bezierCurve",
keywords = true,
unlabeled_first = true,
args = {
sketch = { docs = "Which sketch should this path be added to?"},
end = { docs = "How far away (along the X and Y axes) should this line go?" },
control1 = { docs = "First control point for the cubic" },
control2 = { docs = "Second control point for the cubic" },
tag = { docs = "Create a new tag which refers to this line"},
}
}]
async fn inner_bezier_curve(
data: BezierData,
sketch: Sketch,
control1: [TyF64; 2],
control2: [TyF64; 2],
end: [TyF64; 2],
tag: Option<TagNode>,
exec_state: &mut ExecState,
args: Args,
@ -2262,8 +2226,8 @@ async fn inner_bezier_curve(
let from = sketch.current_pen_position()?;
let relative = true;
let delta = data.to.clone();
let to = [from.x + data.to[0].n, from.y + data.to[1].n];
let delta = end.clone();
let to = [from.x + end[0].n, from.y + end[1].n];
let id = exec_state.next_uuid();
@ -2272,12 +2236,8 @@ async fn inner_bezier_curve(
ModelingCmd::from(mcmd::ExtendPath {
path: sketch.id.into(),
segment: PathSegment::Bezier {
control1: KPoint2d::from(untype_point(data.control1).0)
.with_z(0.0)
.map(LengthUnit),
control2: KPoint2d::from(untype_point(data.control2).0)
.with_z(0.0)
.map(LengthUnit),
control1: KPoint2d::from(untype_point(control1).0).with_z(0.0).map(LengthUnit),
control2: KPoint2d::from(untype_point(control2).0).with_z(0.0).map(LengthUnit),
end: KPoint2d::from(untype_point(delta).0).with_z(0.0).map(LengthUnit),
relative,
},

View File

@ -108,7 +108,7 @@ flowchart LR
112["Segment<br>[1250, 1288, 0]"]
113["Segment<br>[1250, 1288, 0]"]
114["Segment<br>[1250, 1288, 0]"]
115["Segment<br>[1651, 1753, 0]"]
115["Segment<br>[1651, 1749, 0]"]
116["Segment<br>[1478, 1508, 0]"]
117["Segment<br>[1478, 1508, 0]"]
118["Segment<br>[1478, 1508, 0]"]
@ -210,17 +210,17 @@ flowchart LR
214["Segment<br>[1478, 1508, 0]"]
215["Segment<br>[1478, 1508, 0]"]
216["Segment<br>[1478, 1508, 0]"]
217["Segment<br>[1799, 1806, 0]"]
217["Segment<br>[1795, 1802, 0]"]
218[Solid2d]
end
subgraph path220 [Path]
220["Path<br>[2287, 2387, 0]"]
221["Segment<br>[2393, 2420, 0]"]
222["Segment<br>[2426, 2454, 0]"]
223["Segment<br>[2460, 2488, 0]"]
224["Segment<br>[2494, 2614, 0]"]
225["Segment<br>[2620, 2729, 0]"]
226["Segment<br>[2735, 2742, 0]"]
220["Path<br>[2283, 2383, 0]"]
221["Segment<br>[2389, 2416, 0]"]
222["Segment<br>[2422, 2450, 0]"]
223["Segment<br>[2456, 2484, 0]"]
224["Segment<br>[2490, 2606, 0]"]
225["Segment<br>[2612, 2717, 0]"]
226["Segment<br>[2723, 2730, 0]"]
227[Solid2d]
end
1["Plane<br>[168, 185, 0]"]
@ -232,8 +232,8 @@ flowchart LR
10["SweepEdge Opposite"]
11["SweepEdge Adjacent"]
12["Plane<br>[1539, 1556, 0]"]
219["Sweep Extrusion<br>[1812, 1840, 0]"]
228["Sweep Extrusion<br>[2748, 2777, 0]"]
219["Sweep Extrusion<br>[1808, 1836, 0]"]
228["Sweep Extrusion<br>[2736, 2765, 0]"]
229[Wall]
230[Wall]
231[Wall]
@ -246,7 +246,7 @@ flowchart LR
238["SweepEdge Adjacent"]
239["SweepEdge Opposite"]
240["SweepEdge Adjacent"]
241["StartSketchOnFace<br>[2250, 2281, 0]"]
241["StartSketchOnFace<br>[2246, 2277, 0]"]
2 --- 3
3 --- 4
3 ---- 6

View File

@ -3242,123 +3242,98 @@ description: Result of parsing import_async.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "toothAngle",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
},
{
"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,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "baseDiameter",
"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"
}
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
}
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"arg": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "toothAngle",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
},
{
"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,
"end": 0,
"name": "baseDiameter",
"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"
}
}
],
"callee": {
@ -3379,8 +3354,9 @@ description: Result of parsing import_async.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
@ -4452,217 +4428,42 @@ description: Result of parsing import_async.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"left": {
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"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"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"left": {
"left": {
"argument": {
"commentStart": 0,
"end": 0,
"left": {
"argument": {
"commentStart": 0,
"end": 0,
"raw": "1",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 1.0,
"suffix": "None"
}
},
"commentStart": 0,
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
},
"operator": "*",
"right": {
"arguments": [
{
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "startAngle",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "toDegrees",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
},
"operator": "+",
"right": {
"commentStart": 0,
"end": 0,
"raw": "360",
"raw": "1",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 360.0,
"value": 1.0,
"suffix": "None"
}
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "radius",
"operator": "-",
"start": 0,
"type": "Identifier"
"type": "UnaryExpression",
"type": "UnaryExpression"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "holeRadius",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
}
],
"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": "arc",
"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": "angleEnd",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"operator": "*",
"right": {
"arguments": [
{
"abs_path": false,
@ -4701,73 +4502,76 @@ description: Result of parsing import_async.kcl
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"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"
}
}
"type": "BinaryExpression",
"type": "BinaryExpression"
},
{
"operator": "+",
"right": {
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"raw": "360",
"start": 0,
"type": "ObjectProperty",
"type": "Literal",
"type": "Literal",
"value": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "holeRadius",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
"value": 360.0,
"suffix": "None"
}
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
}
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "180",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 180.0,
"suffix": "None"
}
}
},
{
"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": "holeRadius",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
}
],
"callee": {
@ -4788,8 +4592,132 @@ description: Result of parsing import_async.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "180",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 180.0,
"suffix": "None"
}
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"arg": {
"arguments": [
{
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "startAngle",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "toDegrees",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
}
},
{
"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": "holeRadius",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "arc",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [],

View File

@ -68,11 +68,11 @@ fn rightInvolute(i, sg) {
start = startSketchOn(XY)
|> startProfileAt([xs[101], ys[101]], %)
teeth = reduce([0..100], start, leftInvolute)
|> arc({
|> arc(
angleStart = 0,
angleEnd = toothAngle,
radius = baseDiameter / 2
}, %)
radius = baseDiameter / 2,
)
|> reduce([1..101], %, rightInvolute)
|> close()
|> extrude(length = gearHeight)
@ -100,16 +100,16 @@ keyWay = startSketchOn(body, face = END)
|> xLine(length = keywayDepth)
|> yLine(length = -keywayWidth)
|> xLine(length = -keywayDepth)
|> arc({
angleEnd = 180,
|> arc(
angleStart = -1 * toDegrees(startAngle) + 360,
radius = holeRadius
}, %)
|> arc({
angleEnd = toDegrees(startAngle),
angleEnd = 180,
radius = holeRadius,
)
|> arc(
angleStart = 180,
radius = holeRadius
}, %)
angleEnd = toDegrees(startAngle),
radius = holeRadius,
)
|> close()
|> extrude(length = -gearHeight)

View File

@ -71,11 +71,7 @@ fn rightInvolute(i, sg) {
start = startSketchOn(XY)
|> startProfileAt([xs[101], ys[101]], %)
teeth = reduce([0..100], start, leftInvolute)
|> arc({
angleStart = 0,
angleEnd = toothAngle,
radius = baseDiameter / 2
}, %)
|> arc(angleStart = 0, angleEnd = toothAngle, radius = baseDiameter / 2)
|> reduce([1..101], %, rightInvolute)
|> close()
|> extrude(length = gearHeight)
@ -103,16 +99,8 @@ keyWay = startSketchOn(body, face = END)
|> xLine(length = keywayDepth)
|> yLine(length = -keywayWidth)
|> xLine(length = -keywayDepth)
|> arc({
angleEnd = 180,
angleStart = -1 * toDegrees(startAngle) + 360,
radius = holeRadius
}, %)
|> arc({
angleEnd = toDegrees(startAngle),
angleStart = 180,
radius = holeRadius
}, %)
|> arc(angleStart = -1 * toDegrees(startAngle) + 360, angleEnd = 180, radius = holeRadius)
|> arc(angleStart = 180, angleEnd = toDegrees(startAngle), radius = holeRadius)
|> close()
|> extrude(length = -gearHeight)

View File

@ -48,6 +48,7 @@ flowchart LR
42["SweepEdge Adjacent"]
43["SweepEdge Opposite"]
44["SweepEdge Adjacent"]
45["CompositeSolid Intersect<br>[448, 477, 0]"]
1 --- 2
2 --- 3
2 --- 4
@ -114,4 +115,6 @@ flowchart LR
30 --- 42
30 --- 43
30 --- 44
2 <--x 45
24 <--x 45
```

View File

@ -2,80 +2,80 @@
flowchart LR
subgraph path2 [Path]
2["Path<br>[349, 446, 0]"]
3["Segment<br>[454, 559, 0]"]
4["Segment<br>[567, 676, 0]"]
5["Segment<br>[684, 716, 0]"]
6["Segment<br>[724, 833, 0]"]
7["Segment<br>[841, 888, 0]"]
8["Segment<br>[896, 944, 0]"]
9["Segment<br>[952, 1001, 0]"]
10["Segment<br>[1009, 1107, 0]"]
11["Segment<br>[1115, 1163, 0]"]
12["Segment<br>[1171, 1260, 0]"]
13["Segment<br>[1268, 1317, 0]"]
14["Segment<br>[1325, 1374, 0]"]
15["Segment<br>[1382, 1415, 0]"]
16["Segment<br>[1423, 1532, 0]"]
17["Segment<br>[1540, 1572, 0]"]
18["Segment<br>[1580, 1689, 0]"]
19["Segment<br>[1697, 1800, 0]"]
20["Segment<br>[1841, 1951, 0]"]
21["Segment<br>[1959, 1991, 0]"]
22["Segment<br>[1999, 2109, 0]"]
23["Segment<br>[2117, 2164, 0]"]
24["Segment<br>[2172, 2222, 0]"]
25["Segment<br>[2230, 2280, 0]"]
26["Segment<br>[2298, 2408, 0]"]
27["Segment<br>[2426, 2475, 0]"]
28["Segment<br>[2489, 2584, 0]"]
29["Segment<br>[2598, 2648, 0]"]
30["Segment<br>[2662, 2711, 0]"]
31["Segment<br>[2719, 2752, 0]"]
32["Segment<br>[2760, 2870, 0]"]
33["Segment<br>[2878, 2910, 0]"]
34["Segment<br>[2918, 3028, 0]"]
35["Segment<br>[3069, 3171, 0]"]
36["Segment<br>[3179, 3289, 0]"]
37["Segment<br>[3297, 3330, 0]"]
38["Segment<br>[3338, 3448, 0]"]
39["Segment<br>[3456, 3505, 0]"]
40["Segment<br>[3513, 3563, 0]"]
41["Segment<br>[3571, 3620, 0]"]
42["Segment<br>[3628, 3737, 0]"]
43["Segment<br>[3745, 3795, 0]"]
44["Segment<br>[3803, 3899, 0]"]
45["Segment<br>[3907, 3956, 0]"]
46["Segment<br>[3964, 4013, 0]"]
47["Segment<br>[4021, 4055, 0]"]
48["Segment<br>[4063, 4173, 0]"]
49["Segment<br>[4181, 4214, 0]"]
50["Segment<br>[4222, 4332, 0]"]
51["Segment<br>[4340, 4444, 0]"]
52["Segment<br>[4485, 4595, 0]"]
53["Segment<br>[4603, 4636, 0]"]
54["Segment<br>[4644, 4754, 0]"]
55["Segment<br>[4762, 4811, 0]"]
56["Segment<br>[4819, 4868, 0]"]
57["Segment<br>[4876, 4925, 0]"]
58["Segment<br>[4933, 5033, 0]"]
59["Segment<br>[5041, 5091, 0]"]
60["Segment<br>[5099, 5188, 0]"]
61["Segment<br>[5196, 5245, 0]"]
62["Segment<br>[5253, 5303, 0]"]
63["Segment<br>[5311, 5345, 0]"]
64["Segment<br>[5353, 5463, 0]"]
65["Segment<br>[5471, 5504, 0]"]
66["Segment<br>[5512, 5622, 0]"]
67["Segment<br>[5630, 5637, 0]"]
3["Segment<br>[454, 518, 0]"]
4["Segment<br>[526, 594, 0]"]
5["Segment<br>[602, 634, 0]"]
6["Segment<br>[642, 710, 0]"]
7["Segment<br>[718, 765, 0]"]
8["Segment<br>[773, 821, 0]"]
9["Segment<br>[829, 878, 0]"]
10["Segment<br>[886, 984, 0]"]
11["Segment<br>[992, 1040, 0]"]
12["Segment<br>[1048, 1137, 0]"]
13["Segment<br>[1145, 1194, 0]"]
14["Segment<br>[1202, 1251, 0]"]
15["Segment<br>[1259, 1292, 0]"]
16["Segment<br>[1300, 1368, 0]"]
17["Segment<br>[1376, 1408, 0]"]
18["Segment<br>[1416, 1484, 0]"]
19["Segment<br>[1492, 1554, 0]"]
20["Segment<br>[1595, 1664, 0]"]
21["Segment<br>[1672, 1704, 0]"]
22["Segment<br>[1712, 1781, 0]"]
23["Segment<br>[1789, 1836, 0]"]
24["Segment<br>[1844, 1894, 0]"]
25["Segment<br>[1902, 1952, 0]"]
26["Segment<br>[1970, 2080, 0]"]
27["Segment<br>[2098, 2147, 0]"]
28["Segment<br>[2161, 2256, 0]"]
29["Segment<br>[2270, 2320, 0]"]
30["Segment<br>[2334, 2383, 0]"]
31["Segment<br>[2391, 2424, 0]"]
32["Segment<br>[2432, 2501, 0]"]
33["Segment<br>[2509, 2541, 0]"]
34["Segment<br>[2549, 2618, 0]"]
35["Segment<br>[2659, 2720, 0]"]
36["Segment<br>[2728, 2797, 0]"]
37["Segment<br>[2805, 2838, 0]"]
38["Segment<br>[2846, 2915, 0]"]
39["Segment<br>[2923, 2972, 0]"]
40["Segment<br>[2980, 3030, 0]"]
41["Segment<br>[3038, 3087, 0]"]
42["Segment<br>[3095, 3204, 0]"]
43["Segment<br>[3212, 3262, 0]"]
44["Segment<br>[3270, 3366, 0]"]
45["Segment<br>[3374, 3423, 0]"]
46["Segment<br>[3431, 3480, 0]"]
47["Segment<br>[3488, 3522, 0]"]
48["Segment<br>[3530, 3599, 0]"]
49["Segment<br>[3607, 3640, 0]"]
50["Segment<br>[3648, 3717, 0]"]
51["Segment<br>[3725, 3788, 0]"]
52["Segment<br>[3829, 3898, 0]"]
53["Segment<br>[3906, 3939, 0]"]
54["Segment<br>[3947, 4016, 0]"]
55["Segment<br>[4024, 4073, 0]"]
56["Segment<br>[4081, 4130, 0]"]
57["Segment<br>[4138, 4187, 0]"]
58["Segment<br>[4195, 4295, 0]"]
59["Segment<br>[4303, 4353, 0]"]
60["Segment<br>[4361, 4450, 0]"]
61["Segment<br>[4458, 4507, 0]"]
62["Segment<br>[4515, 4565, 0]"]
63["Segment<br>[4573, 4607, 0]"]
64["Segment<br>[4615, 4684, 0]"]
65["Segment<br>[4692, 4725, 0]"]
66["Segment<br>[4733, 4802, 0]"]
67["Segment<br>[4810, 4817, 0]"]
68[Solid2d]
end
subgraph path69 [Path]
69["Path<br>[5688, 5866, 0]"]
70["Segment<br>[5688, 5866, 0]"]
69["Path<br>[4868, 5046, 0]"]
70["Segment<br>[4868, 5046, 0]"]
71[Solid2d]
end
1["Plane<br>[323, 341, 0]"]
72["Sweep Extrusion<br>[5878, 5906, 0]"]
72["Sweep Extrusion<br>[5058, 5086, 0]"]
73[Wall]
74[Wall]
75[Wall]
@ -270,38 +270,38 @@ flowchart LR
264["SweepEdge Adjacent"]
265["SweepEdge Opposite"]
266["SweepEdge Adjacent"]
267["EdgeCut Fillet<br>[5914, 6619, 0]"]
268["EdgeCut Fillet<br>[5914, 6619, 0]"]
269["EdgeCut Fillet<br>[5914, 6619, 0]"]
270["EdgeCut Fillet<br>[5914, 6619, 0]"]
271["EdgeCut Fillet<br>[5914, 6619, 0]"]
272["EdgeCut Fillet<br>[5914, 6619, 0]"]
273["EdgeCut Fillet<br>[5914, 6619, 0]"]
274["EdgeCut Fillet<br>[5914, 6619, 0]"]
275["EdgeCut Fillet<br>[5914, 6619, 0]"]
276["EdgeCut Fillet<br>[5914, 6619, 0]"]
277["EdgeCut Fillet<br>[5914, 6619, 0]"]
278["EdgeCut Fillet<br>[5914, 6619, 0]"]
279["EdgeCut Fillet<br>[5914, 6619, 0]"]
280["EdgeCut Fillet<br>[5914, 6619, 0]"]
281["EdgeCut Fillet<br>[5914, 6619, 0]"]
282["EdgeCut Fillet<br>[5914, 6619, 0]"]
283["EdgeCut Fillet<br>[6627, 7331, 0]"]
284["EdgeCut Fillet<br>[6627, 7331, 0]"]
285["EdgeCut Fillet<br>[6627, 7331, 0]"]
286["EdgeCut Fillet<br>[6627, 7331, 0]"]
287["EdgeCut Fillet<br>[6627, 7331, 0]"]
288["EdgeCut Fillet<br>[6627, 7331, 0]"]
289["EdgeCut Fillet<br>[6627, 7331, 0]"]
290["EdgeCut Fillet<br>[6627, 7331, 0]"]
291["EdgeCut Fillet<br>[6627, 7331, 0]"]
292["EdgeCut Fillet<br>[6627, 7331, 0]"]
293["EdgeCut Fillet<br>[6627, 7331, 0]"]
294["EdgeCut Fillet<br>[6627, 7331, 0]"]
295["EdgeCut Fillet<br>[6627, 7331, 0]"]
296["EdgeCut Fillet<br>[6627, 7331, 0]"]
297["EdgeCut Fillet<br>[6627, 7331, 0]"]
298["EdgeCut Fillet<br>[6627, 7331, 0]"]
267["EdgeCut Fillet<br>[5094, 5799, 0]"]
268["EdgeCut Fillet<br>[5094, 5799, 0]"]
269["EdgeCut Fillet<br>[5094, 5799, 0]"]
270["EdgeCut Fillet<br>[5094, 5799, 0]"]
271["EdgeCut Fillet<br>[5094, 5799, 0]"]
272["EdgeCut Fillet<br>[5094, 5799, 0]"]
273["EdgeCut Fillet<br>[5094, 5799, 0]"]
274["EdgeCut Fillet<br>[5094, 5799, 0]"]
275["EdgeCut Fillet<br>[5094, 5799, 0]"]
276["EdgeCut Fillet<br>[5094, 5799, 0]"]
277["EdgeCut Fillet<br>[5094, 5799, 0]"]
278["EdgeCut Fillet<br>[5094, 5799, 0]"]
279["EdgeCut Fillet<br>[5094, 5799, 0]"]
280["EdgeCut Fillet<br>[5094, 5799, 0]"]
281["EdgeCut Fillet<br>[5094, 5799, 0]"]
282["EdgeCut Fillet<br>[5094, 5799, 0]"]
283["EdgeCut Fillet<br>[5807, 6511, 0]"]
284["EdgeCut Fillet<br>[5807, 6511, 0]"]
285["EdgeCut Fillet<br>[5807, 6511, 0]"]
286["EdgeCut Fillet<br>[5807, 6511, 0]"]
287["EdgeCut Fillet<br>[5807, 6511, 0]"]
288["EdgeCut Fillet<br>[5807, 6511, 0]"]
289["EdgeCut Fillet<br>[5807, 6511, 0]"]
290["EdgeCut Fillet<br>[5807, 6511, 0]"]
291["EdgeCut Fillet<br>[5807, 6511, 0]"]
292["EdgeCut Fillet<br>[5807, 6511, 0]"]
293["EdgeCut Fillet<br>[5807, 6511, 0]"]
294["EdgeCut Fillet<br>[5807, 6511, 0]"]
295["EdgeCut Fillet<br>[5807, 6511, 0]"]
296["EdgeCut Fillet<br>[5807, 6511, 0]"]
297["EdgeCut Fillet<br>[5807, 6511, 0]"]
298["EdgeCut Fillet<br>[5807, 6511, 0]"]
1 --- 2
1 --- 69
2 --- 3

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,7 @@ description: Operations executed 80-20-rail.kcl
"name": "rail8020",
"functionSourceRange": [
239,
7352,
6532,
0
],
"unlabeledArg": null,

View File

@ -136,25 +136,25 @@ flowchart LR
end
subgraph path243 [Path]
243["Path<br>[1100, 1212, 7]"]
244["Segment<br>[1220, 1330, 7]"]
245["Segment<br>[1338, 1672, 7]"]
246["Segment<br>[1680, 2016, 7]"]
247["Segment<br>[2024, 2255, 7]"]
248["Segment<br>[2263, 2270, 7]"]
244["Segment<br>[1220, 1289, 7]"]
245["Segment<br>[1297, 1641, 7]"]
246["Segment<br>[1649, 1995, 7]"]
247["Segment<br>[2003, 2244, 7]"]
248["Segment<br>[2252, 2259, 7]"]
249[Solid2d]
end
subgraph path251 [Path]
251["Path<br>[1100, 1212, 7]"]
252["Segment<br>[1220, 1330, 7]"]
253["Segment<br>[1338, 1672, 7]"]
254["Segment<br>[1680, 2016, 7]"]
255["Segment<br>[2024, 2255, 7]"]
256["Segment<br>[2263, 2270, 7]"]
252["Segment<br>[1220, 1289, 7]"]
253["Segment<br>[1297, 1641, 7]"]
254["Segment<br>[1649, 1995, 7]"]
255["Segment<br>[2003, 2244, 7]"]
256["Segment<br>[2252, 2259, 7]"]
257[Solid2d]
end
subgraph path259 [Path]
259["Path<br>[1100, 1212, 7]"]
264["Segment<br>[2263, 2270, 7]"]
264["Segment<br>[2252, 2259, 7]"]
265[Solid2d]
end
1["Plane<br>[300, 317, 5]"]
@ -311,7 +311,7 @@ flowchart LR
261["SweepEdge Opposite"]
262["SweepEdge Opposite"]
263["SweepEdge Opposite"]
266["Sweep Loft<br>[2389, 2509, 7]"]
266["Sweep Loft<br>[2378, 2498, 7]"]
267[Wall]
268[Wall]
269[Wall]

View File

@ -1079,7 +1079,7 @@ description: Operations executed axial-fan.kcl
"name": "fanBlade",
"functionSourceRange": [
997,
2290,
2279,
7
],
"unlabeledArg": null,
@ -1358,7 +1358,7 @@ description: Operations executed axial-fan.kcl
"name": "fanBlade",
"functionSourceRange": [
997,
2290,
2279,
7
],
"unlabeledArg": null,
@ -1637,7 +1637,7 @@ description: Operations executed axial-fan.kcl
"name": "fanBlade",
"functionSourceRange": [
997,
2290,
2279,
7
],
"unlabeledArg": null,

View File

@ -12,31 +12,31 @@ flowchart LR
end
subgraph path15 [Path]
15["Path<br>[970, 1026, 0]"]
16["Segment<br>[1032, 1124, 0]"]
17["Segment<br>[1130, 1137, 0]"]
16["Segment<br>[1032, 1091, 0]"]
17["Segment<br>[1097, 1104, 0]"]
18[Solid2d]
end
subgraph path24 [Path]
24["Path<br>[1507, 1640, 0]"]
25["Segment<br>[1646, 1739, 0]"]
26["Segment<br>[1745, 1776, 0]"]
27["Segment<br>[1782, 1810, 0]"]
28["Segment<br>[1816, 1823, 0]"]
24["Path<br>[1474, 1607, 0]"]
25["Segment<br>[1613, 1673, 0]"]
26["Segment<br>[1679, 1710, 0]"]
27["Segment<br>[1716, 1744, 0]"]
28["Segment<br>[1750, 1757, 0]"]
29[Solid2d]
end
subgraph path40 [Path]
40["Path<br>[2157, 2299, 0]"]
41["Segment<br>[2157, 2299, 0]"]
40["Path<br>[2091, 2233, 0]"]
41["Segment<br>[2091, 2233, 0]"]
42[Solid2d]
end
subgraph path50 [Path]
50["Path<br>[2693, 2746, 0]"]
51["Segment<br>[2693, 2746, 0]"]
50["Path<br>[2627, 2680, 0]"]
51["Segment<br>[2627, 2680, 0]"]
52[Solid2d]
end
subgraph path53 [Path]
53["Path<br>[2757, 2831, 0]"]
54["Segment<br>[2757, 2831, 0]"]
53["Path<br>[2691, 2765, 0]"]
54["Segment<br>[2691, 2765, 0]"]
55[Solid2d]
end
1["Plane<br>[610, 657, 0]"]
@ -47,12 +47,12 @@ flowchart LR
12["SweepEdge Opposite"]
13["SweepEdge Adjacent"]
14["Plane<br>[947, 964, 0]"]
19["Sweep Revolve<br>[1219, 1249, 0]"]
19["Sweep Revolve<br>[1186, 1216, 0]"]
20[Wall]
21[Wall]
22["SweepEdge Adjacent"]
23["Plane<br>[1484, 1501, 0]"]
30["Sweep Revolve<br>[1865, 1895, 0]"]
23["Plane<br>[1451, 1468, 0]"]
30["Sweep Revolve<br>[1799, 1829, 0]"]
31[Wall]
32[Wall]
33[Wall]
@ -61,22 +61,22 @@ flowchart LR
36["SweepEdge Adjacent"]
37["SweepEdge Adjacent"]
38["SweepEdge Adjacent"]
39["Plane<br>[2134, 2151, 0]"]
43["Sweep Revolve<br>[2342, 2393, 0]"]
39["Plane<br>[2068, 2085, 0]"]
43["Sweep Revolve<br>[2276, 2327, 0]"]
44[Wall]
45["Cap Start"]
46["Cap End"]
47["SweepEdge Opposite"]
48["SweepEdge Adjacent"]
49["Plane<br>[2639, 2686, 0]"]
56["Sweep Extrusion<br>[2851, 2904, 0]"]
49["Plane<br>[2573, 2620, 0]"]
56["Sweep Extrusion<br>[2785, 2838, 0]"]
57[Wall]
58["Cap Start"]
59["Cap End"]
60["SweepEdge Opposite"]
61["SweepEdge Adjacent"]
62["StartSketchOnPlane<br>[596, 658, 0]"]
63["StartSketchOnPlane<br>[2625, 2687, 0]"]
63["StartSketchOnPlane<br>[2559, 2621, 0]"]
1 --- 2
1 --- 5
2 --- 3

View File

@ -1120,119 +1120,94 @@ description: Result of parsing ball-bearing.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"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"
}
}
},
{
"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,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "sphereDia",
"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"
}
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"arg": {
"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,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
}
},
{
"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,
"end": 0,
"name": "sphereDia",
"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"
}
}
],
"callee": {
@ -1253,8 +1228,9 @@ description: Result of parsing ball-bearing.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [],
@ -1959,119 +1935,94 @@ description: Result of parsing ball-bearing.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"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"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "120",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 120.0,
"suffix": "None"
}
}
},
{
"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,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "sphereDia",
"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"
}
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "120",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 120.0,
"suffix": "None"
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
}
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "60",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 60.0,
"suffix": "None"
}
}
},
{
"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,
"end": 0,
"name": "sphereDia",
"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"
}
}
],
"callee": {
@ -2092,8 +2043,9 @@ description: Result of parsing ball-bearing.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [

View File

@ -203,33 +203,33 @@ flowchart LR
subgraph path650 [Path]
650["Path<br>[3265, 3292, 5]"]
651["Segment<br>[3300, 3319, 5]"]
652["Segment<br>[3327, 3417, 5]"]
652["Segment<br>[3327, 3376, 5]"]
end
subgraph path654 [Path]
654["Path<br>[3517, 3550, 5]"]
655["Segment<br>[3558, 3577, 5]"]
656["Segment<br>[3585, 3607, 5]"]
657["Segment<br>[3615, 3638, 5]"]
658["Segment<br>[3646, 3666, 5]"]
659["Segment<br>[3674, 3698, 5]"]
660["Segment<br>[3706, 3729, 5]"]
661["Segment<br>[3737, 3744, 5]"]
654["Path<br>[3476, 3509, 5]"]
655["Segment<br>[3517, 3536, 5]"]
656["Segment<br>[3544, 3566, 5]"]
657["Segment<br>[3574, 3597, 5]"]
658["Segment<br>[3605, 3625, 5]"]
659["Segment<br>[3633, 3657, 5]"]
660["Segment<br>[3665, 3688, 5]"]
661["Segment<br>[3696, 3703, 5]"]
662[Solid2d]
end
subgraph path688 [Path]
688["Path<br>[3265, 3292, 5]"]
689["Segment<br>[3300, 3319, 5]"]
690["Segment<br>[3327, 3417, 5]"]
690["Segment<br>[3327, 3376, 5]"]
end
subgraph path692 [Path]
692["Path<br>[3517, 3550, 5]"]
693["Segment<br>[3558, 3577, 5]"]
694["Segment<br>[3585, 3607, 5]"]
695["Segment<br>[3615, 3638, 5]"]
696["Segment<br>[3646, 3666, 5]"]
697["Segment<br>[3674, 3698, 5]"]
698["Segment<br>[3706, 3729, 5]"]
699["Segment<br>[3737, 3744, 5]"]
692["Path<br>[3476, 3509, 5]"]
693["Segment<br>[3517, 3536, 5]"]
694["Segment<br>[3544, 3566, 5]"]
695["Segment<br>[3574, 3597, 5]"]
696["Segment<br>[3605, 3625, 5]"]
697["Segment<br>[3633, 3657, 5]"]
698["Segment<br>[3665, 3688, 5]"]
699["Segment<br>[3696, 3703, 5]"]
700[Solid2d]
end
1["Plane<br>[333, 353, 5]"]
@ -704,9 +704,9 @@ flowchart LR
646["SweepEdge Opposite"]
647["SweepEdge Adjacent"]
648["Sweep Extrusion<br>[3160, 3184, 5]"]
649["Plane<br>[3825, 3860, 5]"]
653["Plane<br>[3891, 3920, 5]"]
663["Sweep Sweep<br>[3932, 3959, 5]"]
649["Plane<br>[3784, 3819, 5]"]
653["Plane<br>[3850, 3879, 5]"]
663["Sweep Sweep<br>[3891, 3918, 5]"]
664[Wall]
665[Wall]
666[Wall]
@ -730,9 +730,9 @@ flowchart LR
684["SweepEdge Adjacent"]
685["SweepEdge Opposite"]
686["SweepEdge Adjacent"]
687["Plane<br>[3825, 3860, 5]"]
691["Plane<br>[3891, 3920, 5]"]
701["Sweep Sweep<br>[3932, 3959, 5]"]
687["Plane<br>[3784, 3819, 5]"]
691["Plane<br>[3850, 3879, 5]"]
701["Sweep Sweep<br>[3891, 3918, 5]"]
702[Wall]
703[Wall]
704[Wall]
@ -765,9 +765,9 @@ flowchart LR
731["StartSketchOnPlane<br>[2172, 2192, 5]"]
732["StartSketchOnPlane<br>[2681, 2701, 5]"]
733["StartSketchOnPlane<br>[3237, 3257, 5]"]
734["StartSketchOnPlane<br>[3489, 3509, 5]"]
734["StartSketchOnPlane<br>[3448, 3468, 5]"]
735["StartSketchOnPlane<br>[3237, 3257, 5]"]
736["StartSketchOnPlane<br>[3489, 3509, 5]"]
736["StartSketchOnPlane<br>[3448, 3468, 5]"]
1 --- 2
2 --- 3
2 --- 4

View File

@ -1209,8 +1209,8 @@ description: Operations executed bench.kcl
"type": "FunctionCall",
"name": "armRest",
"functionSourceRange": [
3784,
3972,
3743,
3931,
5
],
"unlabeledArg": null,
@ -1255,7 +1255,7 @@ description: Operations executed bench.kcl
"name": "armRestPath",
"functionSourceRange": [
3213,
3438,
3397,
5
],
"unlabeledArg": null,
@ -1317,8 +1317,8 @@ description: Operations executed bench.kcl
"type": "FunctionCall",
"name": "armRestProfile",
"functionSourceRange": [
3457,
3765,
3416,
3724,
5
],
"unlabeledArg": null,
@ -1378,8 +1378,8 @@ description: Operations executed bench.kcl
"type": "FunctionCall",
"name": "armRest",
"functionSourceRange": [
3784,
3972,
3743,
3931,
5
],
"unlabeledArg": null,
@ -1424,7 +1424,7 @@ description: Operations executed bench.kcl
"name": "armRestPath",
"functionSourceRange": [
3213,
3438,
3397,
5
],
"unlabeledArg": null,
@ -1486,8 +1486,8 @@ description: Operations executed bench.kcl
"type": "FunctionCall",
"name": "armRestProfile",
"functionSourceRange": [
3457,
3765,
3416,
3724,
5
],
"unlabeledArg": null,

View File

@ -3,25 +3,25 @@ flowchart LR
subgraph path2 [Path]
2["Path<br>[337, 378, 0]"]
3["Segment<br>[384, 415, 0]"]
4["Segment<br>[421, 528, 0]"]
5["Segment<br>[534, 556, 0]"]
6["Segment<br>[586, 593, 0]"]
4["Segment<br>[421, 516, 0]"]
5["Segment<br>[522, 544, 0]"]
6["Segment<br>[574, 581, 0]"]
7[Solid2d]
end
subgraph path10 [Path]
10["Path<br>[750, 800, 0]"]
11["Segment<br>[750, 800, 0]"]
10["Path<br>[738, 788, 0]"]
11["Segment<br>[738, 788, 0]"]
12[Solid2d]
end
1["Plane<br>[314, 331, 0]"]
8["Sweep Extrusion<br>[599, 641, 0]"]
9["Plane<br>[750, 800, 0]"]
13["Sweep Extrusion<br>[806, 833, 0]"]
8["Sweep Extrusion<br>[587, 629, 0]"]
9["Plane<br>[738, 788, 0]"]
13["Sweep Extrusion<br>[794, 821, 0]"]
14[Wall]
15["Cap End"]
16["SweepEdge Opposite"]
17["SweepEdge Adjacent"]
18["StartSketchOnFace<br>[707, 744, 0]"]
18["StartSketchOnFace<br>[695, 732, 0]"]
1 --- 2
2 --- 3
2 --- 4

View File

@ -430,184 +430,162 @@ description: Result of parsing bottle.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"commentStart": 0,
"end": 0,
"key": {
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "endAbsolute",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"elements": [
{
"commentStart": 0,
"end": 0,
"name": "end",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"elements": [
{
"left": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"left": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "bottleLength",
"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"
}
},
"name": "bottleLength",
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
"type": "Identifier"
},
{
"commentStart": 0,
"end": 0,
"left": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "bottleWidth",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"operator": "/",
"right": {
"commentStart": 0,
"end": 0,
"raw": "3",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 3.0,
"suffix": "None"
}
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
"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"
}
],
"end": 0,
},
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "interior",
"start": 0,
"type": "Identifier"
"type": "BinaryExpression",
"type": "BinaryExpression"
},
"start": 0,
"type": "ObjectProperty",
"value": {
{
"commentStart": 0,
"elements": [
{
"commentStart": 0,
"end": 0,
"raw": "0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
},
{
"commentStart": 0,
"end": 0,
"left": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "bottleWidth",
"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"
}
],
"end": 0,
"left": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "bottleWidth",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"operator": "/",
"right": {
"commentStart": 0,
"end": 0,
"raw": "3",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 3.0,
"suffix": "None"
}
},
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
"type": "BinaryExpression",
"type": "BinaryExpression"
}
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
}
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "interiorAbsolute",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"elements": [
{
"commentStart": 0,
"end": 0,
"raw": "0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
},
{
"commentStart": 0,
"end": 0,
"left": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "bottleWidth",
"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"
}
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
}
}
],
"callee": {
@ -617,7 +595,7 @@ description: Result of parsing bottle.kcl
"name": {
"commentStart": 0,
"end": 0,
"name": "arcTo",
"name": "arc",
"start": 0,
"type": "Identifier"
},
@ -628,8 +606,9 @@ description: Result of parsing bottle.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [

View File

@ -86,65 +86,65 @@ flowchart LR
subgraph path179 [Path]
179["Path<br>[1675, 1721, 5]"]
180["Segment<br>[1727, 1779, 5]"]
181["Segment<br>[1785, 1890, 5]"]
182["Segment<br>[1896, 1918, 5]"]
183["Segment<br>[1924, 1980, 5]"]
184["Segment<br>[1986, 1993, 5]"]
181["Segment<br>[1785, 1858, 5]"]
182["Segment<br>[1864, 1886, 5]"]
183["Segment<br>[1892, 1948, 5]"]
184["Segment<br>[1954, 1961, 5]"]
185[Solid2d]
end
subgraph path195 [Path]
195["Path<br>[2125, 2171, 5]"]
196["Segment<br>[2177, 2229, 5]"]
197["Segment<br>[2235, 2342, 5]"]
198["Segment<br>[2348, 2385, 5]"]
199["Segment<br>[2391, 2447, 5]"]
200["Segment<br>[2453, 2460, 5]"]
195["Path<br>[2093, 2139, 5]"]
196["Segment<br>[2145, 2197, 5]"]
197["Segment<br>[2203, 2278, 5]"]
198["Segment<br>[2284, 2321, 5]"]
199["Segment<br>[2327, 2383, 5]"]
200["Segment<br>[2389, 2396, 5]"]
201[Solid2d]
end
subgraph path212 [Path]
212["Path<br>[2941, 2988, 5]"]
213["Segment<br>[2996, 3336, 5]"]
214["Segment<br>[3344, 3376, 5]"]
215["Segment<br>[3384, 3728, 5]"]
216["Segment<br>[3736, 3792, 5]"]
217["Segment<br>[3800, 3807, 5]"]
212["Path<br>[2877, 2924, 5]"]
213["Segment<br>[2932, 3269, 5]"]
214["Segment<br>[3277, 3309, 5]"]
215["Segment<br>[3317, 3658, 5]"]
216["Segment<br>[3666, 3722, 5]"]
217["Segment<br>[3730, 3737, 5]"]
218[Solid2d]
end
subgraph path235 [Path]
235["Path<br>[2941, 2988, 5]"]
236["Segment<br>[2996, 3336, 5]"]
237["Segment<br>[3344, 3376, 5]"]
238["Segment<br>[3384, 3728, 5]"]
239["Segment<br>[3736, 3792, 5]"]
240["Segment<br>[3800, 3807, 5]"]
235["Path<br>[2877, 2924, 5]"]
236["Segment<br>[2932, 3269, 5]"]
237["Segment<br>[3277, 3309, 5]"]
238["Segment<br>[3317, 3658, 5]"]
239["Segment<br>[3666, 3722, 5]"]
240["Segment<br>[3730, 3737, 5]"]
241[Solid2d]
end
subgraph path258 [Path]
258["Path<br>[4335, 4430, 5]"]
259["Segment<br>[4436, 4469, 5]"]
260["Segment<br>[4475, 4526, 5]"]
261["Segment<br>[4532, 4565, 5]"]
262["Segment<br>[4571, 4621, 5]"]
263["Segment<br>[4627, 4668, 5]"]
264["Segment<br>[4674, 4723, 5]"]
265["Segment<br>[4729, 4762, 5]"]
266["Segment<br>[4768, 4802, 5]"]
267["Segment<br>[4808, 4842, 5]"]
268["Segment<br>[4848, 4900, 5]"]
269["Segment<br>[4906, 4940, 5]"]
270["Segment<br>[4946, 5022, 5]"]
271["Segment<br>[5028, 5061, 5]"]
272["Segment<br>[5067, 5143, 5]"]
273["Segment<br>[5149, 5183, 5]"]
274["Segment<br>[5189, 5263, 5]"]
275["Segment<br>[5269, 5303, 5]"]
276["Segment<br>[5309, 5360, 5]"]
277["Segment<br>[5366, 5428, 5]"]
278["Segment<br>[5434, 5485, 5]"]
279["Segment<br>[5491, 5525, 5]"]
280["Segment<br>[5531, 5564, 5]"]
281["Segment<br>[5570, 5603, 5]"]
282["Segment<br>[5609, 5616, 5]"]
258["Path<br>[4265, 4360, 5]"]
259["Segment<br>[4366, 4399, 5]"]
260["Segment<br>[4405, 4456, 5]"]
261["Segment<br>[4462, 4495, 5]"]
262["Segment<br>[4501, 4551, 5]"]
263["Segment<br>[4557, 4598, 5]"]
264["Segment<br>[4604, 4653, 5]"]
265["Segment<br>[4659, 4692, 5]"]
266["Segment<br>[4698, 4732, 5]"]
267["Segment<br>[4738, 4772, 5]"]
268["Segment<br>[4778, 4830, 5]"]
269["Segment<br>[4836, 4870, 5]"]
270["Segment<br>[4876, 4952, 5]"]
271["Segment<br>[4958, 4991, 5]"]
272["Segment<br>[4997, 5073, 5]"]
273["Segment<br>[5079, 5113, 5]"]
274["Segment<br>[5119, 5193, 5]"]
275["Segment<br>[5199, 5233, 5]"]
276["Segment<br>[5239, 5290, 5]"]
277["Segment<br>[5296, 5358, 5]"]
278["Segment<br>[5364, 5415, 5]"]
279["Segment<br>[5421, 5455, 5]"]
280["Segment<br>[5461, 5494, 5]"]
281["Segment<br>[5500, 5533, 5]"]
282["Segment<br>[5539, 5546, 5]"]
283[Solid2d]
end
subgraph path334 [Path]
@ -324,7 +324,7 @@ flowchart LR
176["Sweep Extrusion<br>[1464, 1498, 5]"]
177["Sweep Extrusion<br>[1464, 1498, 5]"]
178["Plane<br>[1652, 1669, 5]"]
186["Sweep Revolve<br>[1999, 2016, 5]"]
186["Sweep Revolve<br>[1967, 1984, 5]"]
187[Wall]
188[Wall]
189[Wall]
@ -332,8 +332,8 @@ flowchart LR
191["SweepEdge Adjacent"]
192["SweepEdge Adjacent"]
193["SweepEdge Adjacent"]
194["Plane<br>[2102, 2119, 5]"]
202["Sweep Revolve<br>[2466, 2483, 5]"]
194["Plane<br>[2070, 2087, 5]"]
202["Sweep Revolve<br>[2402, 2419, 5]"]
203[Wall]
204[Wall]
205[Wall]
@ -342,8 +342,8 @@ flowchart LR
208["SweepEdge Adjacent"]
209["SweepEdge Adjacent"]
210["SweepEdge Adjacent"]
211["Plane<br>[2910, 2933, 5]"]
219["Sweep Extrusion<br>[3855, 3901, 5]"]
211["Plane<br>[2846, 2869, 5]"]
219["Sweep Extrusion<br>[3785, 3831, 5]"]
220[Wall]
221[Wall]
222[Wall]
@ -358,8 +358,8 @@ flowchart LR
231["SweepEdge Adjacent"]
232["SweepEdge Opposite"]
233["SweepEdge Adjacent"]
234["Plane<br>[2910, 2933, 5]"]
242["Sweep Extrusion<br>[3855, 3901, 5]"]
234["Plane<br>[2846, 2869, 5]"]
242["Sweep Extrusion<br>[3785, 3831, 5]"]
243[Wall]
244[Wall]
245[Wall]
@ -374,8 +374,8 @@ flowchart LR
254["SweepEdge Adjacent"]
255["SweepEdge Opposite"]
256["SweepEdge Adjacent"]
257["Plane<br>[4312, 4329, 5]"]
284["Sweep Revolve<br>[5622, 5639, 5]"]
257["Plane<br>[4242, 4259, 5]"]
284["Sweep Revolve<br>[5552, 5569, 5]"]
285[Wall]
286[Wall]
287[Wall]

View File

@ -1252,8 +1252,8 @@ description: Operations executed car-wheel-assembly.kcl
"type": "FunctionCall",
"name": "spoke",
"functionSourceRange": [
2636,
4181,
2572,
4111,
5
],
"unlabeledArg": null,
@ -1643,8 +1643,8 @@ description: Operations executed car-wheel-assembly.kcl
"type": "FunctionCall",
"name": "spoke",
"functionSourceRange": [
2636,
4181,
2572,
4111,
5
],
"unlabeledArg": null,

View File

@ -2,44 +2,44 @@
flowchart LR
subgraph path2 [Path]
2["Path<br>[631, 865, 0]"]
3["Segment<br>[875, 1008, 0]"]
4["Segment<br>[1018, 1070, 0]"]
5["Segment<br>[1080, 1127, 0]"]
6["Segment<br>[1137, 1189, 0]"]
7["Segment<br>[1199, 1246, 0]"]
8["Segment<br>[1256, 1321, 0]"]
9["Segment<br>[1331, 1339, 0]"]
3["Segment<br>[875, 959, 0]"]
4["Segment<br>[969, 1021, 0]"]
5["Segment<br>[1031, 1078, 0]"]
6["Segment<br>[1088, 1140, 0]"]
7["Segment<br>[1150, 1197, 0]"]
8["Segment<br>[1207, 1272, 0]"]
9["Segment<br>[1282, 1290, 0]"]
10[Solid2d]
end
subgraph path11 [Path]
11["Path<br>[1354, 1404, 0]"]
12["Segment<br>[1354, 1404, 0]"]
11["Path<br>[1305, 1355, 0]"]
12["Segment<br>[1305, 1355, 0]"]
13[Solid2d]
end
subgraph path15 [Path]
15["Path<br>[631, 865, 0]"]
16["Segment<br>[875, 1008, 0]"]
17["Segment<br>[1018, 1070, 0]"]
18["Segment<br>[1080, 1127, 0]"]
19["Segment<br>[1137, 1189, 0]"]
20["Segment<br>[1199, 1246, 0]"]
21["Segment<br>[1256, 1321, 0]"]
22["Segment<br>[1331, 1339, 0]"]
16["Segment<br>[875, 959, 0]"]
17["Segment<br>[969, 1021, 0]"]
18["Segment<br>[1031, 1078, 0]"]
19["Segment<br>[1088, 1140, 0]"]
20["Segment<br>[1150, 1197, 0]"]
21["Segment<br>[1207, 1272, 0]"]
22["Segment<br>[1282, 1290, 0]"]
23[Solid2d]
end
subgraph path24 [Path]
24["Path<br>[1354, 1404, 0]"]
25["Segment<br>[1354, 1404, 0]"]
24["Path<br>[1305, 1355, 0]"]
25["Segment<br>[1305, 1355, 0]"]
26[Solid2d]
end
subgraph path28 [Path]
28["Path<br>[631, 865, 0]"]
35["Segment<br>[1331, 1339, 0]"]
35["Segment<br>[1282, 1290, 0]"]
36[Solid2d]
end
subgraph path37 [Path]
37["Path<br>[1354, 1404, 0]"]
38["Segment<br>[1354, 1404, 0]"]
37["Path<br>[1305, 1355, 0]"]
38["Segment<br>[1305, 1355, 0]"]
39[Solid2d]
end
1["Plane<br>[587, 620, 0]"]
@ -51,7 +51,7 @@ flowchart LR
32["SweepEdge Opposite"]
33["SweepEdge Opposite"]
34["SweepEdge Opposite"]
40["Sweep Loft<br>[1534, 1623, 0]"]
40["Sweep Loft<br>[1485, 1574, 0]"]
41[Wall]
42[Wall]
43[Wall]

View File

@ -691,155 +691,130 @@ description: Result of parsing cycloidal-gear.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"left": {
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"raw": "90",
"start": 0,
"type": "ObjectProperty",
"type": "Literal",
"type": "Literal",
"value": {
"commentStart": 0,
"end": 0,
"left": {
"commentStart": 0,
"end": 0,
"raw": "90",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 90.0,
"suffix": "None"
}
},
"operator": "+",
"right": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "helixAngleP",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
"value": 90.0,
"suffix": "None"
}
},
{
"operator": "+",
"right": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"key": {
"name": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"name": "helixAngleP",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"left": {
"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"
},
"operator": "+",
"right": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "helixAngleP",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
}
"type": "Name",
"type": "Name"
},
{
"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"
}
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
}
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"left": {
"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"
},
"operator": "+",
"right": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "helixAngleP",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
}
},
{
"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"
}
}
],
"callee": {
@ -860,8 +835,9 @@ description: Result of parsing cycloidal-gear.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [

View File

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

View File

@ -5,8 +5,8 @@ flowchart LR
3["Segment<br>[1505, 1537, 0]"]
4["Segment<br>[1543, 1580, 0]"]
5["Segment<br>[1586, 1619, 0]"]
6["Segment<br>[1625, 1725, 0]"]
7["Segment<br>[1731, 1738, 0]"]
6["Segment<br>[1625, 1692, 0]"]
7["Segment<br>[1698, 1705, 0]"]
8[Solid2d]
end
subgraph path9 [Path]
@ -37,27 +37,27 @@ flowchart LR
29[Solid2d]
end
subgraph path49 [Path]
49["Path<br>[2741, 2794, 0]"]
50["Segment<br>[2800, 2859, 0]"]
51["Segment<br>[2865, 2900, 0]"]
52["Segment<br>[2906, 2939, 0]"]
53["Segment<br>[2945, 3004, 0]"]
54["Segment<br>[3010, 3046, 0]"]
55["Segment<br>[3052, 3076, 0]"]
56["Segment<br>[3082, 3089, 0]"]
49["Path<br>[2708, 2761, 0]"]
50["Segment<br>[2767, 2826, 0]"]
51["Segment<br>[2832, 2867, 0]"]
52["Segment<br>[2873, 2906, 0]"]
53["Segment<br>[2912, 2971, 0]"]
54["Segment<br>[2977, 3013, 0]"]
55["Segment<br>[3019, 3043, 0]"]
56["Segment<br>[3049, 3056, 0]"]
57[Solid2d]
end
subgraph path83 [Path]
83["Path<br>[3684, 3731, 0]"]
84["Segment<br>[3737, 3787, 0]"]
85["Segment<br>[3793, 3892, 0]"]
86["Segment<br>[3898, 3949, 0]"]
87["Segment<br>[3955, 4053, 0]"]
88["Segment<br>[4059, 4112, 0]"]
89["Segment<br>[4118, 4218, 0]"]
90["Segment<br>[4224, 4298, 0]"]
91["Segment<br>[4304, 4405, 0]"]
92["Segment<br>[4411, 4418, 0]"]
83["Path<br>[3651, 3698, 0]"]
84["Segment<br>[3704, 3754, 0]"]
85["Segment<br>[3760, 3826, 0]"]
86["Segment<br>[3832, 3883, 0]"]
87["Segment<br>[3889, 3954, 0]"]
88["Segment<br>[3960, 4013, 0]"]
89["Segment<br>[4019, 4086, 0]"]
90["Segment<br>[4092, 4166, 0]"]
91["Segment<br>[4172, 4240, 0]"]
92["Segment<br>[4246, 4253, 0]"]
93[Solid2d]
end
subgraph path121 [Path]
@ -70,7 +70,7 @@ flowchart LR
127[Solid2d]
end
1["Plane<br>[1374, 1391, 0]"]
30["Sweep Extrusion<br>[2313, 2363, 0]"]
30["Sweep Extrusion<br>[2280, 2330, 0]"]
31[Wall]
32[Wall]
33[Wall]
@ -88,8 +88,8 @@ flowchart LR
45["SweepEdge Adjacent"]
46["SweepEdge Opposite"]
47["SweepEdge Adjacent"]
48["Plane<br>[2638, 2680, 0]"]
58["Sweep Extrusion<br>[3123, 3167, 0]"]
48["Plane<br>[2605, 2647, 0]"]
58["Sweep Extrusion<br>[3090, 3134, 0]"]
59[Wall]
60[Wall]
61[Wall]
@ -113,8 +113,8 @@ flowchart LR
79["SweepEdge Adjacent"]
80["SweepEdge Opposite"]
81["SweepEdge Adjacent"]
82["Plane<br>[3610, 3636, 0]"]
94["Sweep Extrusion<br>[4474, 4516, 0]"]
82["Plane<br>[3577, 3603, 0]"]
94["Sweep Extrusion<br>[4309, 4351, 0]"]
95[Wall]
96[Wall]
97[Wall]
@ -141,7 +141,7 @@ flowchart LR
118["SweepEdge Adjacent"]
119["SweepEdge Opposite"]
120["SweepEdge Adjacent"]
128["Sweep Extrusion<br>[4751, 4801, 0]"]
128["Sweep Extrusion<br>[4586, 4636, 0]"]
129[Wall]
130[Wall]
131[Wall]
@ -154,12 +154,12 @@ flowchart LR
138["SweepEdge Adjacent"]
139["SweepEdge Opposite"]
140["SweepEdge Adjacent"]
141["EdgeCut Fillet<br>[2400, 2541, 0]"]
142["EdgeCut Fillet<br>[2400, 2541, 0]"]
143["EdgeCut Fillet<br>[3210, 3341, 0]"]
144["EdgeCut Fillet<br>[3210, 3341, 0]"]
145["StartSketchOnPlane<br>[2624, 2681, 0]"]
146["StartSketchOnFace<br>[4575, 4614, 0]"]
141["EdgeCut Fillet<br>[2367, 2508, 0]"]
142["EdgeCut Fillet<br>[2367, 2508, 0]"]
143["EdgeCut Fillet<br>[3177, 3308, 0]"]
144["EdgeCut Fillet<br>[3177, 3308, 0]"]
145["StartSketchOnPlane<br>[2591, 2648, 0]"]
146["StartSketchOnFace<br>[4410, 4449, 0]"]
1 --- 2
1 --- 9
1 --- 16

View File

@ -2690,95 +2690,70 @@ description: Result of parsing food-service-spatula.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "196.912390",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 196.91239,
"suffix": "None"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "163.087610",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 163.08761,
"suffix": "None"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "110.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 110.0,
"suffix": "None"
}
}
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "163.087610",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 163.08761,
"suffix": "None"
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
}
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "196.912390",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 196.91239,
"suffix": "None"
}
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "110.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 110.0,
"suffix": "None"
}
}
}
],
"callee": {
@ -2799,8 +2774,9 @@ description: Result of parsing food-service-spatula.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [],
@ -5419,107 +5395,82 @@ description: Result of parsing food-service-spatula.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"arg": {
"argument": {
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"raw": "90.0",
"start": 0,
"type": "ObjectProperty",
"type": "Literal",
"type": "Literal",
"value": {
"argument": {
"commentStart": 0,
"end": 0,
"raw": "90.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 90.0,
"suffix": "None"
}
},
"commentStart": 0,
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
"value": 90.0,
"suffix": "None"
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "0.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
}
},
{
"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": "gripFilletRadius",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
"commentStart": 0,
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
}
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "0.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
}
},
{
"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": "gripFilletRadius",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
}
],
"callee": {
@ -5540,8 +5491,9 @@ description: Result of parsing food-service-spatula.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
@ -5641,99 +5593,74 @@ description: Result of parsing food-service-spatula.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "0.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "90.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 90.0,
"suffix": "None"
}
}
},
{
"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": "gripFilletRadius",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "0.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
}
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "90.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 90.0,
"suffix": "None"
}
}
},
{
"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": "gripFilletRadius",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
}
],
"callee": {
@ -5754,8 +5681,9 @@ description: Result of parsing food-service-spatula.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
@ -5863,99 +5791,74 @@ description: Result of parsing food-service-spatula.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "90.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 90.0,
"suffix": "None"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "180.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 180.0,
"suffix": "None"
}
}
},
{
"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": "gripFilletRadius",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "90.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 90.0,
"suffix": "None"
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
}
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "180.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 180.0,
"suffix": "None"
}
}
},
{
"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": "gripFilletRadius",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
}
],
"callee": {
@ -5976,8 +5879,9 @@ description: Result of parsing food-service-spatula.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
@ -6103,99 +6007,74 @@ description: Result of parsing food-service-spatula.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "180.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 180.0,
"suffix": "None"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "270.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 270.0,
"suffix": "None"
}
}
},
{
"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": "gripFilletRadius",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "180.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 180.0,
"suffix": "None"
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
}
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "270.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 270.0,
"suffix": "None"
}
}
},
{
"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": "gripFilletRadius",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
}
],
"callee": {
@ -6216,8 +6095,9 @@ description: Result of parsing food-service-spatula.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [],

View File

@ -583,9 +583,9 @@ description: Variables in memory after executing food-service-spatula.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 4285,
"end": 4297,
"start": 4285,
"commentStart": 4153,
"end": 4165,
"start": 4153,
"type": "TagDeclarator",
"value": "gripEdgeTop"
},
@ -745,9 +745,9 @@ description: Variables in memory after executing food-service-spatula.kcl
7.0
],
"tag": {
"commentStart": 4285,
"end": 4297,
"start": 4285,
"commentStart": 4153,
"end": 4165,
"start": 4153,
"type": "TagDeclarator",
"value": "gripEdgeTop"
},
@ -1108,9 +1108,9 @@ description: Variables in memory after executing food-service-spatula.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 4285,
"end": 4297,
"start": 4285,
"commentStart": 4153,
"end": 4165,
"start": 4153,
"type": "TagDeclarator",
"value": "gripEdgeTop"
},
@ -1270,9 +1270,9 @@ description: Variables in memory after executing food-service-spatula.kcl
7.0
],
"tag": {
"commentStart": 4285,
"end": 4297,
"start": 4285,
"commentStart": 4153,
"end": 4165,
"start": 4153,
"type": "TagDeclarator",
"value": "gripEdgeTop"
},
@ -1598,9 +1598,9 @@ description: Variables in memory after executing food-service-spatula.kcl
7.0
],
"tag": {
"commentStart": 4285,
"end": 4297,
"start": 4285,
"commentStart": 4153,
"end": 4165,
"start": 4153,
"type": "TagDeclarator",
"value": "gripEdgeTop"
},
@ -1811,9 +1811,9 @@ description: Variables in memory after executing food-service-spatula.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 2841,
"end": 2858,
"start": 2841,
"commentStart": 2808,
"end": 2825,
"start": 2808,
"type": "TagDeclarator",
"value": "handleBottomEdge"
},
@ -1838,9 +1838,9 @@ description: Variables in memory after executing food-service-spatula.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 2989,
"end": 3003,
"start": 2989,
"commentStart": 2956,
"end": 2970,
"start": 2956,
"type": "TagDeclarator",
"value": "handleTopEdge"
},
@ -1882,9 +1882,9 @@ description: Variables in memory after executing food-service-spatula.kcl
3.5
],
"tag": {
"commentStart": 2841,
"end": 2858,
"start": 2841,
"commentStart": 2808,
"end": 2825,
"start": 2808,
"type": "TagDeclarator",
"value": "handleBottomEdge"
},
@ -1945,9 +1945,9 @@ description: Variables in memory after executing food-service-spatula.kcl
91.3213
],
"tag": {
"commentStart": 2989,
"end": 3003,
"start": 2989,
"commentStart": 2956,
"end": 2970,
"start": 2956,
"type": "TagDeclarator",
"value": "handleTopEdge"
},
@ -2303,9 +2303,9 @@ description: Variables in memory after executing food-service-spatula.kcl
3.5
],
"tag": {
"commentStart": 2841,
"end": 2858,
"start": 2841,
"commentStart": 2808,
"end": 2825,
"start": 2808,
"type": "TagDeclarator",
"value": "handleBottomEdge"
},
@ -2366,9 +2366,9 @@ description: Variables in memory after executing food-service-spatula.kcl
91.3213
],
"tag": {
"commentStart": 2989,
"end": 3003,
"start": 2989,
"commentStart": 2956,
"end": 2970,
"start": 2956,
"type": "TagDeclarator",
"value": "handleTopEdge"
},
@ -2658,9 +2658,9 @@ description: Variables in memory after executing food-service-spatula.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 4285,
"end": 4297,
"start": 4285,
"commentStart": 4153,
"end": 4165,
"start": 4153,
"type": "TagDeclarator",
"value": "gripEdgeTop"
},
@ -2820,9 +2820,9 @@ description: Variables in memory after executing food-service-spatula.kcl
7.0
],
"tag": {
"commentStart": 4285,
"end": 4297,
"start": 4285,
"commentStart": 4153,
"end": 4165,
"start": 4153,
"type": "TagDeclarator",
"value": "gripEdgeTop"
},

View File

@ -13,111 +13,111 @@ flowchart LR
18["Path<br>[971, 1015, 0]"]
19["Segment<br>[1021, 1040, 0]"]
20["Segment<br>[1046, 1080, 0]"]
21["Segment<br>[1086, 1170, 0]"]
22["Segment<br>[1176, 1227, 0]"]
23["Segment<br>[1233, 1317, 0]"]
24["Segment<br>[1323, 1381, 0]"]
25["Segment<br>[1387, 1469, 0]"]
26["Segment<br>[1475, 1515, 0]"]
27["Segment<br>[1521, 1540, 0]"]
28["Segment<br>[1546, 1599, 0]"]
29["Segment<br>[1605, 1687, 0]"]
30["Segment<br>[1693, 1763, 0]"]
31["Segment<br>[1769, 1853, 0]"]
32["Segment<br>[1859, 1929, 0]"]
33["Segment<br>[1935, 2019, 0]"]
34["Segment<br>[2025, 2081, 0]"]
35["Segment<br>[2087, 2094, 0]"]
21["Segment<br>[1086, 1137, 0]"]
22["Segment<br>[1143, 1194, 0]"]
23["Segment<br>[1200, 1251, 0]"]
24["Segment<br>[1257, 1315, 0]"]
25["Segment<br>[1321, 1370, 0]"]
26["Segment<br>[1376, 1416, 0]"]
27["Segment<br>[1422, 1441, 0]"]
28["Segment<br>[1447, 1500, 0]"]
29["Segment<br>[1506, 1555, 0]"]
30["Segment<br>[1561, 1631, 0]"]
31["Segment<br>[1637, 1688, 0]"]
32["Segment<br>[1694, 1764, 0]"]
33["Segment<br>[1770, 1821, 0]"]
34["Segment<br>[1827, 1883, 0]"]
35["Segment<br>[1889, 1896, 0]"]
36[Solid2d]
end
subgraph path89 [Path]
89["Path<br>[2361, 2420, 0]"]
90["Segment<br>[2361, 2420, 0]"]
89["Path<br>[2163, 2222, 0]"]
90["Segment<br>[2163, 2222, 0]"]
91[Solid2d]
end
subgraph path98 [Path]
98["Path<br>[2526, 2556, 0]"]
99["Segment<br>[2562, 2581, 0]"]
100["Segment<br>[2587, 2670, 0]"]
101["Segment<br>[2676, 2732, 0]"]
102["Segment<br>[2738, 2745, 0]"]
98["Path<br>[2328, 2358, 0]"]
99["Segment<br>[2364, 2383, 0]"]
100["Segment<br>[2389, 2439, 0]"]
101["Segment<br>[2445, 2501, 0]"]
102["Segment<br>[2507, 2514, 0]"]
103[Solid2d]
end
subgraph path117 [Path]
117["Path<br>[2983, 3014, 0]"]
118["Segment<br>[3020, 3065, 0]"]
119["Segment<br>[3071, 3148, 0]"]
120["Segment<br>[3154, 3193, 0]"]
121["Segment<br>[3199, 3245, 0]"]
122["Segment<br>[3251, 3276, 0]"]
123["Segment<br>[3282, 3338, 0]"]
124["Segment<br>[3344, 3351, 0]"]
117["Path<br>[2752, 2783, 0]"]
118["Segment<br>[2789, 2834, 0]"]
119["Segment<br>[2840, 2917, 0]"]
120["Segment<br>[2923, 2962, 0]"]
121["Segment<br>[2968, 3014, 0]"]
122["Segment<br>[3020, 3045, 0]"]
123["Segment<br>[3051, 3107, 0]"]
124["Segment<br>[3113, 3120, 0]"]
125[Solid2d]
end
subgraph path140 [Path]
140["Path<br>[3431, 3458, 0]"]
141["Segment<br>[3464, 3484, 0]"]
142["Segment<br>[3490, 3533, 0]"]
143["Segment<br>[3539, 3557, 0]"]
144["Segment<br>[3563, 3583, 0]"]
145["Segment<br>[3589, 3609, 0]"]
146["Segment<br>[3615, 3655, 0]"]
147["Segment<br>[3661, 3717, 0]"]
148["Segment<br>[3723, 3730, 0]"]
140["Path<br>[3200, 3227, 0]"]
141["Segment<br>[3233, 3253, 0]"]
142["Segment<br>[3259, 3302, 0]"]
143["Segment<br>[3308, 3326, 0]"]
144["Segment<br>[3332, 3352, 0]"]
145["Segment<br>[3358, 3378, 0]"]
146["Segment<br>[3384, 3424, 0]"]
147["Segment<br>[3430, 3486, 0]"]
148["Segment<br>[3492, 3499, 0]"]
149[Solid2d]
end
subgraph path166 [Path]
166["Path<br>[3834, 3893, 0]"]
167["Segment<br>[3834, 3893, 0]"]
166["Path<br>[3603, 3662, 0]"]
167["Segment<br>[3603, 3662, 0]"]
168[Solid2d]
end
subgraph path169 [Path]
169["Path<br>[3904, 3941, 0]"]
170["Segment<br>[3904, 3941, 0]"]
169["Path<br>[3673, 3710, 0]"]
170["Segment<br>[3673, 3710, 0]"]
171[Solid2d]
end
subgraph path178 [Path]
178["Path<br>[4088, 4126, 0]"]
179["Segment<br>[4088, 4126, 0]"]
178["Path<br>[3857, 3895, 0]"]
179["Segment<br>[3857, 3895, 0]"]
180[Solid2d]
end
subgraph path192 [Path]
192["Path<br>[4404, 4442, 0]"]
193["Segment<br>[4404, 4442, 0]"]
192["Path<br>[4173, 4211, 0]"]
193["Segment<br>[4173, 4211, 0]"]
194[Solid2d]
end
subgraph path203 [Path]
203["Path<br>[4694, 4746, 0]"]
204["Segment<br>[4694, 4746, 0]"]
203["Path<br>[4463, 4515, 0]"]
204["Segment<br>[4463, 4515, 0]"]
205[Solid2d]
end
subgraph path213 [Path]
213["Path<br>[4991, 5035, 0]"]
214["Segment<br>[5041, 5081, 0]"]
215["Segment<br>[5087, 5106, 0]"]
216["Segment<br>[5112, 5131, 0]"]
217["Segment<br>[5137, 5156, 0]"]
218["Segment<br>[5162, 5187, 0]"]
219["Segment<br>[5193, 5333, 0]"]
220["Segment<br>[5339, 5395, 0]"]
221["Segment<br>[5401, 5408, 0]"]
213["Path<br>[4760, 4804, 0]"]
214["Segment<br>[4810, 4850, 0]"]
215["Segment<br>[4856, 4875, 0]"]
216["Segment<br>[4881, 4900, 0]"]
217["Segment<br>[4906, 4925, 0]"]
218["Segment<br>[4931, 4956, 0]"]
219["Segment<br>[4962, 5070, 0]"]
220["Segment<br>[5076, 5132, 0]"]
221["Segment<br>[5138, 5145, 0]"]
222[Solid2d]
end
subgraph path239 [Path]
239["Path<br>[5538, 5567, 0]"]
240["Segment<br>[5573, 5594, 0]"]
241["Segment<br>[5600, 5640, 0]"]
242["Segment<br>[5646, 5686, 0]"]
243["Segment<br>[5692, 5733, 0]"]
244["Segment<br>[5739, 5761, 0]"]
245["Segment<br>[5767, 5788, 0]"]
246["Segment<br>[5794, 5819, 0]"]
247["Segment<br>[5825, 5865, 0]"]
248["Segment<br>[5871, 5912, 0]"]
249["Segment<br>[5918, 5959, 0]"]
250["Segment<br>[5965, 5986, 0]"]
251["Segment<br>[5992, 6048, 0]"]
252["Segment<br>[6054, 6061, 0]"]
239["Path<br>[5275, 5304, 0]"]
240["Segment<br>[5310, 5331, 0]"]
241["Segment<br>[5337, 5377, 0]"]
242["Segment<br>[5383, 5423, 0]"]
243["Segment<br>[5429, 5470, 0]"]
244["Segment<br>[5476, 5498, 0]"]
245["Segment<br>[5504, 5525, 0]"]
246["Segment<br>[5531, 5556, 0]"]
247["Segment<br>[5562, 5602, 0]"]
248["Segment<br>[5608, 5649, 0]"]
249["Segment<br>[5655, 5696, 0]"]
250["Segment<br>[5702, 5723, 0]"]
251["Segment<br>[5729, 5785, 0]"]
252["Segment<br>[5791, 5798, 0]"]
253[Solid2d]
end
1["Plane<br>[242, 259, 0]"]
@ -130,7 +130,7 @@ flowchart LR
15["SweepEdge Adjacent"]
16["SweepEdge Adjacent"]
17["Plane<br>[942, 965, 0]"]
37["Sweep Extrusion<br>[2100, 2122, 0]"]
37["Sweep Extrusion<br>[1902, 1924, 0]"]
38[Wall]
39[Wall]
40[Wall]
@ -181,14 +181,14 @@ flowchart LR
85["SweepEdge Adjacent"]
86["SweepEdge Opposite"]
87["SweepEdge Adjacent"]
88["Plane<br>[2327, 2354, 0]"]
92["Sweep Extrusion<br>[2435, 2469, 0]"]
88["Plane<br>[2129, 2156, 0]"]
92["Sweep Extrusion<br>[2237, 2271, 0]"]
93[Wall]
94["Cap Start"]
95["Cap End"]
96["SweepEdge Opposite"]
97["SweepEdge Adjacent"]
104["Sweep Extrusion<br>[2894, 2929, 0]"]
104["Sweep Extrusion<br>[2663, 2698, 0]"]
105[Wall]
106[Wall]
107[Wall]
@ -198,10 +198,10 @@ flowchart LR
111["SweepEdge Adjacent"]
112["SweepEdge Opposite"]
113["SweepEdge Adjacent"]
114["Sweep Extrusion<br>[2894, 2929, 0]"]
115["Sweep Extrusion<br>[2894, 2929, 0]"]
116["Plane<br>[2960, 2977, 0]"]
126["Sweep Revolve<br>[3357, 3374, 0]"]
114["Sweep Extrusion<br>[2663, 2698, 0]"]
115["Sweep Extrusion<br>[2663, 2698, 0]"]
116["Plane<br>[2729, 2746, 0]"]
126["Sweep Revolve<br>[3126, 3143, 0]"]
127[Wall]
128[Wall]
129[Wall]
@ -214,8 +214,8 @@ flowchart LR
136["SweepEdge Adjacent"]
137["SweepEdge Adjacent"]
138["SweepEdge Adjacent"]
139["Plane<br>[3408, 3425, 0]"]
150["Sweep Revolve<br>[3736, 3753, 0]"]
139["Plane<br>[3177, 3194, 0]"]
150["Sweep Revolve<br>[3505, 3522, 0]"]
151[Wall]
152[Wall]
153[Wall]
@ -230,40 +230,40 @@ flowchart LR
162["SweepEdge Adjacent"]
163["SweepEdge Adjacent"]
164["SweepEdge Adjacent"]
165["Plane<br>[3797, 3827, 0]"]
172["Sweep Extrusion<br>[3960, 3994, 0]"]
165["Plane<br>[3566, 3596, 0]"]
172["Sweep Extrusion<br>[3729, 3763, 0]"]
173[Wall]
174["Cap Start"]
175["Cap End"]
176["SweepEdge Opposite"]
177["SweepEdge Adjacent"]
181["Sweep Extrusion<br>[4275, 4310, 0]"]
181["Sweep Extrusion<br>[4044, 4079, 0]"]
182[Wall]
183["SweepEdge Opposite"]
184["SweepEdge Adjacent"]
185["Sweep Extrusion<br>[4275, 4310, 0]"]
186["Sweep Extrusion<br>[4275, 4310, 0]"]
187["Sweep Extrusion<br>[4275, 4310, 0]"]
188["Sweep Extrusion<br>[4275, 4310, 0]"]
189["Sweep Extrusion<br>[4275, 4310, 0]"]
190["Sweep Extrusion<br>[4275, 4310, 0]"]
191["Sweep Extrusion<br>[4275, 4310, 0]"]
195["Sweep Extrusion<br>[4591, 4626, 0]"]
185["Sweep Extrusion<br>[4044, 4079, 0]"]
186["Sweep Extrusion<br>[4044, 4079, 0]"]
187["Sweep Extrusion<br>[4044, 4079, 0]"]
188["Sweep Extrusion<br>[4044, 4079, 0]"]
189["Sweep Extrusion<br>[4044, 4079, 0]"]
190["Sweep Extrusion<br>[4044, 4079, 0]"]
191["Sweep Extrusion<br>[4044, 4079, 0]"]
195["Sweep Extrusion<br>[4360, 4395, 0]"]
196[Wall]
197["SweepEdge Opposite"]
198["SweepEdge Adjacent"]
199["Sweep Extrusion<br>[4591, 4626, 0]"]
200["Sweep Extrusion<br>[4591, 4626, 0]"]
201["Sweep Extrusion<br>[4591, 4626, 0]"]
202["Plane<br>[4671, 4688, 0]"]
206["Sweep Extrusion<br>[4842, 4883, 0]"]
199["Sweep Extrusion<br>[4360, 4395, 0]"]
200["Sweep Extrusion<br>[4360, 4395, 0]"]
201["Sweep Extrusion<br>[4360, 4395, 0]"]
202["Plane<br>[4440, 4457, 0]"]
206["Sweep Extrusion<br>[4611, 4652, 0]"]
207[Wall]
208["Cap Start"]
209["Cap End"]
210["SweepEdge Opposite"]
211["SweepEdge Adjacent"]
212["Plane<br>[4968, 4985, 0]"]
223["Sweep Revolve<br>[5414, 5431, 0]"]
212["Plane<br>[4737, 4754, 0]"]
223["Sweep Revolve<br>[5151, 5168, 0]"]
224[Wall]
225[Wall]
226[Wall]
@ -278,8 +278,8 @@ flowchart LR
235["SweepEdge Adjacent"]
236["SweepEdge Adjacent"]
237["SweepEdge Adjacent"]
238["Plane<br>[5486, 5531, 0]"]
254["Sweep Extrusion<br>[6075, 6120, 0]"]
238["Plane<br>[5223, 5268, 0]"]
254["Sweep Extrusion<br>[5812, 5857, 0]"]
255[Wall]
256[Wall]
257[Wall]
@ -318,12 +318,12 @@ flowchart LR
290["SweepEdge Adjacent"]
291["SweepEdge Opposite"]
292["SweepEdge Adjacent"]
293["StartSketchOnPlane<br>[2313, 2355, 0]"]
294["StartSketchOnFace<br>[2483, 2520, 0]"]
295["StartSketchOnPlane<br>[3783, 3828, 0]"]
296["StartSketchOnFace<br>[4045, 4082, 0]"]
297["StartSketchOnFace<br>[4361, 4398, 0]"]
298["StartSketchOnPlane<br>[5472, 5532, 0]"]
293["StartSketchOnPlane<br>[2115, 2157, 0]"]
294["StartSketchOnFace<br>[2285, 2322, 0]"]
295["StartSketchOnPlane<br>[3552, 3597, 0]"]
296["StartSketchOnFace<br>[3814, 3851, 0]"]
297["StartSketchOnFace<br>[4130, 4167, 0]"]
298["StartSketchOnPlane<br>[5209, 5269, 0]"]
1 --- 2
2 --- 3
2 --- 4

File diff suppressed because it is too large Load Diff

View File

@ -4983,9 +4983,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1220,
"end": 1226,
"start": 1220,
"commentStart": 1187,
"end": 1193,
"start": 1187,
"type": "TagDeclarator",
"value": "edge2"
},
@ -5003,9 +5003,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1374,
"end": 1380,
"start": 1374,
"commentStart": 1308,
"end": 1314,
"start": 1308,
"type": "TagDeclarator",
"value": "edge3"
},
@ -5023,9 +5023,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1506,
"end": 1514,
"start": 1506,
"commentStart": 1407,
"end": 1415,
"start": 1407,
"type": "TagDeclarator",
"value": "edgeLen"
},
@ -5043,9 +5043,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1592,
"end": 1598,
"start": 1592,
"commentStart": 1493,
"end": 1499,
"start": 1493,
"type": "TagDeclarator",
"value": "edge4"
},
@ -5063,9 +5063,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1756,
"end": 1762,
"start": 1756,
"commentStart": 1624,
"end": 1630,
"start": 1624,
"type": "TagDeclarator",
"value": "edge5"
},
@ -5083,9 +5083,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1922,
"end": 1928,
"start": 1922,
"commentStart": 1757,
"end": 1763,
"start": 1757,
"type": "TagDeclarator",
"value": "edge6"
},
@ -5189,9 +5189,9 @@ description: Variables in memory after executing french-press.kcl
0.3732
],
"tag": {
"commentStart": 1220,
"end": 1226,
"start": 1220,
"commentStart": 1187,
"end": 1193,
"start": 1187,
"type": "TagDeclarator",
"value": "edge2"
},
@ -5239,9 +5239,9 @@ description: Variables in memory after executing french-press.kcl
-0.966
],
"tag": {
"commentStart": 1374,
"end": 1380,
"start": 1374,
"commentStart": 1308,
"end": 1314,
"start": 1308,
"type": "TagDeclarator",
"value": "edge3"
},
@ -5289,9 +5289,9 @@ description: Variables in memory after executing french-press.kcl
-0.133
],
"tag": {
"commentStart": 1506,
"end": 1514,
"start": 1506,
"commentStart": 1407,
"end": 1415,
"start": 1407,
"type": "TagDeclarator",
"value": "edgeLen"
},
@ -5333,9 +5333,9 @@ description: Variables in memory after executing french-press.kcl
-0.033
],
"tag": {
"commentStart": 1592,
"end": 1598,
"start": 1592,
"commentStart": 1493,
"end": 1499,
"start": 1493,
"type": "TagDeclarator",
"value": "edge4"
},
@ -5383,9 +5383,9 @@ description: Variables in memory after executing french-press.kcl
-0.1134
],
"tag": {
"commentStart": 1756,
"end": 1762,
"start": 1756,
"commentStart": 1624,
"end": 1630,
"start": 1624,
"type": "TagDeclarator",
"value": "edge5"
},
@ -5433,9 +5433,9 @@ description: Variables in memory after executing french-press.kcl
-0.1789
],
"tag": {
"commentStart": 1922,
"end": 1928,
"start": 1922,
"commentStart": 1757,
"end": 1763,
"start": 1757,
"type": "TagDeclarator",
"value": "edge6"
},
@ -5654,9 +5654,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1220,
"end": 1226,
"start": 1220,
"commentStart": 1187,
"end": 1193,
"start": 1187,
"type": "TagDeclarator",
"value": "edge2"
},
@ -5674,9 +5674,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1374,
"end": 1380,
"start": 1374,
"commentStart": 1308,
"end": 1314,
"start": 1308,
"type": "TagDeclarator",
"value": "edge3"
},
@ -5694,9 +5694,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1506,
"end": 1514,
"start": 1506,
"commentStart": 1407,
"end": 1415,
"start": 1407,
"type": "TagDeclarator",
"value": "edgeLen"
},
@ -5714,9 +5714,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1592,
"end": 1598,
"start": 1592,
"commentStart": 1493,
"end": 1499,
"start": 1493,
"type": "TagDeclarator",
"value": "edge4"
},
@ -5734,9 +5734,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1756,
"end": 1762,
"start": 1756,
"commentStart": 1624,
"end": 1630,
"start": 1624,
"type": "TagDeclarator",
"value": "edge5"
},
@ -5754,9 +5754,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1922,
"end": 1928,
"start": 1922,
"commentStart": 1757,
"end": 1763,
"start": 1757,
"type": "TagDeclarator",
"value": "edge6"
},
@ -5860,9 +5860,9 @@ description: Variables in memory after executing french-press.kcl
0.3732
],
"tag": {
"commentStart": 1220,
"end": 1226,
"start": 1220,
"commentStart": 1187,
"end": 1193,
"start": 1187,
"type": "TagDeclarator",
"value": "edge2"
},
@ -5910,9 +5910,9 @@ description: Variables in memory after executing french-press.kcl
-0.966
],
"tag": {
"commentStart": 1374,
"end": 1380,
"start": 1374,
"commentStart": 1308,
"end": 1314,
"start": 1308,
"type": "TagDeclarator",
"value": "edge3"
},
@ -5960,9 +5960,9 @@ description: Variables in memory after executing french-press.kcl
-0.133
],
"tag": {
"commentStart": 1506,
"end": 1514,
"start": 1506,
"commentStart": 1407,
"end": 1415,
"start": 1407,
"type": "TagDeclarator",
"value": "edgeLen"
},
@ -6004,9 +6004,9 @@ description: Variables in memory after executing french-press.kcl
-0.033
],
"tag": {
"commentStart": 1592,
"end": 1598,
"start": 1592,
"commentStart": 1493,
"end": 1499,
"start": 1493,
"type": "TagDeclarator",
"value": "edge4"
},
@ -6054,9 +6054,9 @@ description: Variables in memory after executing french-press.kcl
-0.1134
],
"tag": {
"commentStart": 1756,
"end": 1762,
"start": 1756,
"commentStart": 1624,
"end": 1630,
"start": 1624,
"type": "TagDeclarator",
"value": "edge5"
},
@ -6104,9 +6104,9 @@ description: Variables in memory after executing french-press.kcl
-0.1789
],
"tag": {
"commentStart": 1922,
"end": 1928,
"start": 1922,
"commentStart": 1757,
"end": 1763,
"start": 1757,
"type": "TagDeclarator",
"value": "edge6"
},
@ -6325,9 +6325,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1220,
"end": 1226,
"start": 1220,
"commentStart": 1187,
"end": 1193,
"start": 1187,
"type": "TagDeclarator",
"value": "edge2"
},
@ -6345,9 +6345,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1374,
"end": 1380,
"start": 1374,
"commentStart": 1308,
"end": 1314,
"start": 1308,
"type": "TagDeclarator",
"value": "edge3"
},
@ -6365,9 +6365,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1506,
"end": 1514,
"start": 1506,
"commentStart": 1407,
"end": 1415,
"start": 1407,
"type": "TagDeclarator",
"value": "edgeLen"
},
@ -6385,9 +6385,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1592,
"end": 1598,
"start": 1592,
"commentStart": 1493,
"end": 1499,
"start": 1493,
"type": "TagDeclarator",
"value": "edge4"
},
@ -6405,9 +6405,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1756,
"end": 1762,
"start": 1756,
"commentStart": 1624,
"end": 1630,
"start": 1624,
"type": "TagDeclarator",
"value": "edge5"
},
@ -6425,9 +6425,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1922,
"end": 1928,
"start": 1922,
"commentStart": 1757,
"end": 1763,
"start": 1757,
"type": "TagDeclarator",
"value": "edge6"
},
@ -6531,9 +6531,9 @@ description: Variables in memory after executing french-press.kcl
0.3732
],
"tag": {
"commentStart": 1220,
"end": 1226,
"start": 1220,
"commentStart": 1187,
"end": 1193,
"start": 1187,
"type": "TagDeclarator",
"value": "edge2"
},
@ -6581,9 +6581,9 @@ description: Variables in memory after executing french-press.kcl
-0.966
],
"tag": {
"commentStart": 1374,
"end": 1380,
"start": 1374,
"commentStart": 1308,
"end": 1314,
"start": 1308,
"type": "TagDeclarator",
"value": "edge3"
},
@ -6631,9 +6631,9 @@ description: Variables in memory after executing french-press.kcl
-0.133
],
"tag": {
"commentStart": 1506,
"end": 1514,
"start": 1506,
"commentStart": 1407,
"end": 1415,
"start": 1407,
"type": "TagDeclarator",
"value": "edgeLen"
},
@ -6675,9 +6675,9 @@ description: Variables in memory after executing french-press.kcl
-0.033
],
"tag": {
"commentStart": 1592,
"end": 1598,
"start": 1592,
"commentStart": 1493,
"end": 1499,
"start": 1493,
"type": "TagDeclarator",
"value": "edge4"
},
@ -6725,9 +6725,9 @@ description: Variables in memory after executing french-press.kcl
-0.1134
],
"tag": {
"commentStart": 1756,
"end": 1762,
"start": 1756,
"commentStart": 1624,
"end": 1630,
"start": 1624,
"type": "TagDeclarator",
"value": "edge5"
},
@ -6775,9 +6775,9 @@ description: Variables in memory after executing french-press.kcl
-0.1789
],
"tag": {
"commentStart": 1922,
"end": 1928,
"start": 1922,
"commentStart": 1757,
"end": 1763,
"start": 1757,
"type": "TagDeclarator",
"value": "edge6"
},
@ -6996,9 +6996,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1220,
"end": 1226,
"start": 1220,
"commentStart": 1187,
"end": 1193,
"start": 1187,
"type": "TagDeclarator",
"value": "edge2"
},
@ -7016,9 +7016,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1374,
"end": 1380,
"start": 1374,
"commentStart": 1308,
"end": 1314,
"start": 1308,
"type": "TagDeclarator",
"value": "edge3"
},
@ -7036,9 +7036,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1506,
"end": 1514,
"start": 1506,
"commentStart": 1407,
"end": 1415,
"start": 1407,
"type": "TagDeclarator",
"value": "edgeLen"
},
@ -7056,9 +7056,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1592,
"end": 1598,
"start": 1592,
"commentStart": 1493,
"end": 1499,
"start": 1493,
"type": "TagDeclarator",
"value": "edge4"
},
@ -7076,9 +7076,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1756,
"end": 1762,
"start": 1756,
"commentStart": 1624,
"end": 1630,
"start": 1624,
"type": "TagDeclarator",
"value": "edge5"
},
@ -7096,9 +7096,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 1922,
"end": 1928,
"start": 1922,
"commentStart": 1757,
"end": 1763,
"start": 1757,
"type": "TagDeclarator",
"value": "edge6"
},
@ -7202,9 +7202,9 @@ description: Variables in memory after executing french-press.kcl
0.3732
],
"tag": {
"commentStart": 1220,
"end": 1226,
"start": 1220,
"commentStart": 1187,
"end": 1193,
"start": 1187,
"type": "TagDeclarator",
"value": "edge2"
},
@ -7252,9 +7252,9 @@ description: Variables in memory after executing french-press.kcl
-0.966
],
"tag": {
"commentStart": 1374,
"end": 1380,
"start": 1374,
"commentStart": 1308,
"end": 1314,
"start": 1308,
"type": "TagDeclarator",
"value": "edge3"
},
@ -7302,9 +7302,9 @@ description: Variables in memory after executing french-press.kcl
-0.133
],
"tag": {
"commentStart": 1506,
"end": 1514,
"start": 1506,
"commentStart": 1407,
"end": 1415,
"start": 1407,
"type": "TagDeclarator",
"value": "edgeLen"
},
@ -7346,9 +7346,9 @@ description: Variables in memory after executing french-press.kcl
-0.033
],
"tag": {
"commentStart": 1592,
"end": 1598,
"start": 1592,
"commentStart": 1493,
"end": 1499,
"start": 1493,
"type": "TagDeclarator",
"value": "edge4"
},
@ -7396,9 +7396,9 @@ description: Variables in memory after executing french-press.kcl
-0.1134
],
"tag": {
"commentStart": 1756,
"end": 1762,
"start": 1756,
"commentStart": 1624,
"end": 1630,
"start": 1624,
"type": "TagDeclarator",
"value": "edge5"
},
@ -7446,9 +7446,9 @@ description: Variables in memory after executing french-press.kcl
-0.1789
],
"tag": {
"commentStart": 1922,
"end": 1928,
"start": 1922,
"commentStart": 1757,
"end": 1763,
"start": 1757,
"type": "TagDeclarator",
"value": "edge6"
},
@ -8538,9 +8538,9 @@ description: Variables in memory after executing french-press.kcl
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 3142,
"end": 3147,
"start": 3142,
"commentStart": 2911,
"end": 2916,
"start": 2911,
"type": "TagDeclarator",
"value": "seg1"
},
@ -8608,9 +8608,9 @@ description: Variables in memory after executing french-press.kcl
1.11
],
"tag": {
"commentStart": 3142,
"end": 3147,
"start": 3142,
"commentStart": 2911,
"end": 2916,
"start": 2911,
"type": "TagDeclarator",
"value": "seg1"
},

View File

@ -108,7 +108,7 @@ flowchart LR
111["Segment<br>[1537, 1575, 0]"]
112["Segment<br>[1537, 1575, 0]"]
113["Segment<br>[1537, 1575, 0]"]
114["Segment<br>[1938, 2040, 0]"]
114["Segment<br>[1938, 2007, 0]"]
115["Segment<br>[1765, 1795, 0]"]
116["Segment<br>[1765, 1795, 0]"]
117["Segment<br>[1765, 1795, 0]"]
@ -210,17 +210,17 @@ flowchart LR
213["Segment<br>[1765, 1795, 0]"]
214["Segment<br>[1765, 1795, 0]"]
215["Segment<br>[1765, 1795, 0]"]
216["Segment<br>[2086, 2093, 0]"]
216["Segment<br>[2053, 2060, 0]"]
217[Solid2d]
end
subgraph path219 [Path]
219["Path<br>[2574, 2674, 0]"]
220["Segment<br>[2680, 2707, 0]"]
221["Segment<br>[2713, 2741, 0]"]
222["Segment<br>[2747, 2775, 0]"]
223["Segment<br>[2781, 2901, 0]"]
224["Segment<br>[2907, 3016, 0]"]
225["Segment<br>[3022, 3029, 0]"]
219["Path<br>[2541, 2641, 0]"]
220["Segment<br>[2647, 2674, 0]"]
221["Segment<br>[2680, 2708, 0]"]
222["Segment<br>[2714, 2742, 0]"]
223["Segment<br>[2748, 2835, 0]"]
224["Segment<br>[2841, 2917, 0]"]
225["Segment<br>[2923, 2930, 0]"]
226[Solid2d]
end
1["Plane<br>[1299, 1316, 0]"]
@ -231,8 +231,8 @@ flowchart LR
9["SweepEdge Opposite"]
10["SweepEdge Adjacent"]
11["Plane<br>[1826, 1843, 0]"]
218["Sweep Extrusion<br>[2099, 2127, 0]"]
227["Sweep Extrusion<br>[3035, 3064, 0]"]
218["Sweep Extrusion<br>[2066, 2094, 0]"]
227["Sweep Extrusion<br>[2936, 2965, 0]"]
228[Wall]
229[Wall]
230[Wall]
@ -245,7 +245,7 @@ flowchart LR
237["SweepEdge Adjacent"]
238["SweepEdge Opposite"]
239["SweepEdge Adjacent"]
240["StartSketchOnFace<br>[2537, 2568, 0]"]
240["StartSketchOnFace<br>[2504, 2535, 0]"]
1 --- 2
2 --- 3
2 ---- 5

View File

@ -3081,123 +3081,98 @@ description: Result of parsing gear.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "toothAngle",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
},
{
"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,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "baseDiameter",
"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"
}
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
}
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"arg": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "toothAngle",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
},
{
"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,
"end": 0,
"name": "baseDiameter",
"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"
}
}
],
"callee": {
@ -3218,8 +3193,9 @@ description: Result of parsing gear.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
@ -4291,217 +4267,42 @@ description: Result of parsing gear.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"left": {
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"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"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"left": {
"left": {
"argument": {
"commentStart": 0,
"end": 0,
"left": {
"argument": {
"commentStart": 0,
"end": 0,
"raw": "1",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 1.0,
"suffix": "None"
}
},
"commentStart": 0,
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
},
"operator": "*",
"right": {
"arguments": [
{
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "startAngle",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "toDegrees",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
},
"operator": "+",
"right": {
"commentStart": 0,
"end": 0,
"raw": "360",
"raw": "1",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 360.0,
"value": 1.0,
"suffix": "None"
}
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "radius",
"operator": "-",
"start": 0,
"type": "Identifier"
"type": "UnaryExpression",
"type": "UnaryExpression"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "holeRadius",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
}
],
"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": "arc",
"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": "angleEnd",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"operator": "*",
"right": {
"arguments": [
{
"abs_path": false,
@ -4540,73 +4341,76 @@ description: Result of parsing gear.kcl
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"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"
}
}
"type": "BinaryExpression",
"type": "BinaryExpression"
},
{
"operator": "+",
"right": {
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"raw": "360",
"start": 0,
"type": "ObjectProperty",
"type": "Literal",
"type": "Literal",
"value": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "holeRadius",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
"value": 360.0,
"suffix": "None"
}
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
}
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "180",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 180.0,
"suffix": "None"
}
}
},
{
"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": "holeRadius",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
}
],
"callee": {
@ -4627,8 +4431,132 @@ description: Result of parsing gear.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "180",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 180.0,
"suffix": "None"
}
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"arg": {
"arguments": [
{
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "startAngle",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "toDegrees",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
}
},
{
"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": "holeRadius",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "arc",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [],

View File

@ -19,66 +19,66 @@ flowchart LR
34[Solid2d]
end
subgraph path54 [Path]
54["Path<br>[4747, 4827, 0]"]
55["Segment<br>[4747, 4827, 0]"]
54["Path<br>[4583, 4663, 0]"]
55["Segment<br>[4583, 4663, 0]"]
56[Solid2d]
end
subgraph path58 [Path]
58["Path<br>[4378, 4403, 0]"]
59["Segment<br>[4411, 4452, 0]"]
60["Segment<br>[4460, 4501, 0]"]
61["Segment<br>[4509, 4562, 0]"]
62["Segment<br>[4570, 4591, 0]"]
58["Path<br>[4214, 4239, 0]"]
59["Segment<br>[4247, 4288, 0]"]
60["Segment<br>[4296, 4337, 0]"]
61["Segment<br>[4345, 4398, 0]"]
62["Segment<br>[4406, 4427, 0]"]
63[Solid2d]
end
subgraph path65 [Path]
65["Path<br>[2723, 2810, 0]"]
66["Segment<br>[2818, 2897, 0]"]
67["Segment<br>[2905, 3011, 0]"]
68["Segment<br>[3019, 3101, 0]"]
69["Segment<br>[3109, 3155, 0]"]
70["Segment<br>[3163, 3242, 0]"]
71["Segment<br>[3250, 3358, 0]"]
72["Segment<br>[3366, 3445, 0]"]
73["Segment<br>[3453, 3499, 0]"]
74["Segment<br>[3507, 3589, 0]"]
75["Segment<br>[3597, 3706, 0]"]
76["Segment<br>[3714, 3793, 0]"]
77["Segment<br>[3801, 3866, 0]"]
78["Segment<br>[3874, 3956, 0]"]
79["Segment<br>[3964, 4073, 0]"]
80["Segment<br>[4081, 4163, 0]"]
81["Segment<br>[4171, 4220, 0]"]
82["Segment<br>[4228, 4235, 0]"]
67["Segment<br>[2905, 2970, 0]"]
68["Segment<br>[2978, 3060, 0]"]
69["Segment<br>[3068, 3114, 0]"]
70["Segment<br>[3122, 3201, 0]"]
71["Segment<br>[3209, 3276, 0]"]
72["Segment<br>[3284, 3363, 0]"]
73["Segment<br>[3371, 3417, 0]"]
74["Segment<br>[3425, 3507, 0]"]
75["Segment<br>[3515, 3583, 0]"]
76["Segment<br>[3591, 3670, 0]"]
77["Segment<br>[3678, 3743, 0]"]
78["Segment<br>[3751, 3833, 0]"]
79["Segment<br>[3841, 3909, 0]"]
80["Segment<br>[3917, 3999, 0]"]
81["Segment<br>[4007, 4056, 0]"]
82["Segment<br>[4064, 4071, 0]"]
83[Solid2d]
end
subgraph path100 [Path]
100["Path<br>[4378, 4403, 0]"]
101["Segment<br>[4411, 4452, 0]"]
102["Segment<br>[4460, 4501, 0]"]
103["Segment<br>[4509, 4562, 0]"]
104["Segment<br>[4570, 4591, 0]"]
100["Path<br>[4214, 4239, 0]"]
101["Segment<br>[4247, 4288, 0]"]
102["Segment<br>[4296, 4337, 0]"]
103["Segment<br>[4345, 4398, 0]"]
104["Segment<br>[4406, 4427, 0]"]
105[Solid2d]
end
subgraph path106 [Path]
106["Path<br>[2723, 2810, 0]"]
107["Segment<br>[2818, 2897, 0]"]
108["Segment<br>[2905, 3011, 0]"]
109["Segment<br>[3019, 3101, 0]"]
110["Segment<br>[3109, 3155, 0]"]
111["Segment<br>[3163, 3242, 0]"]
112["Segment<br>[3250, 3358, 0]"]
113["Segment<br>[3366, 3445, 0]"]
114["Segment<br>[3453, 3499, 0]"]
115["Segment<br>[3507, 3589, 0]"]
116["Segment<br>[3597, 3706, 0]"]
117["Segment<br>[3714, 3793, 0]"]
118["Segment<br>[3801, 3866, 0]"]
119["Segment<br>[3874, 3956, 0]"]
120["Segment<br>[3964, 4073, 0]"]
121["Segment<br>[4081, 4163, 0]"]
122["Segment<br>[4171, 4220, 0]"]
123["Segment<br>[4228, 4235, 0]"]
108["Segment<br>[2905, 2970, 0]"]
109["Segment<br>[2978, 3060, 0]"]
110["Segment<br>[3068, 3114, 0]"]
111["Segment<br>[3122, 3201, 0]"]
112["Segment<br>[3209, 3276, 0]"]
113["Segment<br>[3284, 3363, 0]"]
114["Segment<br>[3371, 3417, 0]"]
115["Segment<br>[3425, 3507, 0]"]
116["Segment<br>[3515, 3583, 0]"]
117["Segment<br>[3591, 3670, 0]"]
118["Segment<br>[3678, 3743, 0]"]
119["Segment<br>[3751, 3833, 0]"]
120["Segment<br>[3841, 3909, 0]"]
121["Segment<br>[3917, 3999, 0]"]
122["Segment<br>[4007, 4056, 0]"]
123["Segment<br>[4064, 4071, 0]"]
124[Solid2d]
end
1["Plane<br>[1217, 1255, 0]"]
@ -119,10 +119,10 @@ flowchart LR
50["SweepEdge Adjacent"]
51["SweepEdge Opposite"]
52["SweepEdge Adjacent"]
53["Plane<br>[4724, 4741, 0]"]
57["Plane<br>[4350, 4370, 0]"]
53["Plane<br>[4560, 4577, 0]"]
57["Plane<br>[4186, 4206, 0]"]
64["Plane<br>[2695, 2715, 0]"]
84["Sweep Extrusion<br>[5170, 5212, 0]"]
84["Sweep Extrusion<br>[5006, 5048, 0]"]
85[Wall]
86[Wall]
87[Wall]
@ -137,8 +137,8 @@ flowchart LR
96["SweepEdge Adjacent"]
97["SweepEdge Opposite"]
98["SweepEdge Adjacent"]
99["Plane<br>[5706, 5741, 0]"]
125["Sweep Extrusion<br>[5824, 5875, 0]"]
99["Plane<br>[5542, 5577, 0]"]
125["Sweep Extrusion<br>[5660, 5711, 0]"]
126[Wall]
127[Wall]
128[Wall]
@ -153,17 +153,17 @@ flowchart LR
137["SweepEdge Adjacent"]
138["SweepEdge Opposite"]
139["SweepEdge Adjacent"]
140["EdgeCut Fillet<br>[5275, 5614, 0]"]
141["EdgeCut Fillet<br>[5275, 5614, 0]"]
142["EdgeCut Fillet<br>[5275, 5614, 0]"]
143["EdgeCut Fillet<br>[5275, 5614, 0]"]
144["EdgeCut Fillet<br>[5939, 6283, 0]"]
145["EdgeCut Fillet<br>[5939, 6283, 0]"]
146["EdgeCut Fillet<br>[5939, 6283, 0]"]
147["EdgeCut Fillet<br>[5939, 6283, 0]"]
140["EdgeCut Fillet<br>[5111, 5450, 0]"]
141["EdgeCut Fillet<br>[5111, 5450, 0]"]
142["EdgeCut Fillet<br>[5111, 5450, 0]"]
143["EdgeCut Fillet<br>[5111, 5450, 0]"]
144["EdgeCut Fillet<br>[5775, 6119, 0]"]
145["EdgeCut Fillet<br>[5775, 6119, 0]"]
146["EdgeCut Fillet<br>[5775, 6119, 0]"]
147["EdgeCut Fillet<br>[5775, 6119, 0]"]
148["StartSketchOnPlane<br>[894, 914, 0]"]
149["StartSketchOnPlane<br>[894, 914, 0]"]
150["StartSketchOnPlane<br>[4350, 4370, 0]"]
150["StartSketchOnPlane<br>[4186, 4206, 0]"]
151["StartSketchOnPlane<br>[2695, 2715, 0]"]
1 --- 2
2 --- 3

View File

@ -3062,119 +3062,94 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "90.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 90.0,
"suffix": "None"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "0.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
}
},
{
"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,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "magOuterDiam",
"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"
}
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "90.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 90.0,
"suffix": "None"
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
}
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "0.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
}
},
{
"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,
"end": 0,
"name": "magOuterDiam",
"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"
}
}
],
"callee": {
@ -3195,8 +3170,9 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
@ -3630,119 +3606,94 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "180.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 180.0,
"suffix": "None"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "90.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 90.0,
"suffix": "None"
}
}
},
{
"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,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "magOuterDiam",
"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"
}
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "180.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 180.0,
"suffix": "None"
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
}
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "90.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 90.0,
"suffix": "None"
}
}
},
{
"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,
"end": 0,
"name": "magOuterDiam",
"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"
}
}
],
"callee": {
@ -3763,8 +3714,9 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
@ -4198,119 +4150,94 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "270.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 270.0,
"suffix": "None"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "180.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 180.0,
"suffix": "None"
}
}
},
{
"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,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "magOuterDiam",
"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"
}
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "270.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 270.0,
"suffix": "None"
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
}
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "180.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 180.0,
"suffix": "None"
}
}
},
{
"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,
"end": 0,
"name": "magOuterDiam",
"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"
}
}
],
"callee": {
@ -4331,8 +4258,9 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
@ -4792,119 +4720,94 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "360.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 360.0,
"suffix": "None"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "270.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 270.0,
"suffix": "None"
}
}
},
{
"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,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "magOuterDiam",
"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"
}
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "360.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 360.0,
"suffix": "None"
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
}
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "270.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 270.0,
"suffix": "None"
}
}
},
{
"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,
"end": 0,
"name": "magOuterDiam",
"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"
}
}
],
"callee": {
@ -4925,8 +4828,9 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [

View File

@ -1107,8 +1107,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
"type": "FunctionCall",
"name": "magnetBase",
"functionSourceRange": [
4319,
4661,
4155,
4497,
0
],
"unlabeledArg": null,
@ -1138,7 +1138,7 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
"name": "magnetCenterCutout",
"functionSourceRange": [
2668,
4259,
4095,
0
],
"unlabeledArg": null,
@ -1366,8 +1366,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
"type": "FunctionCall",
"name": "magnetBase",
"functionSourceRange": [
4319,
4661,
4155,
4497,
0
],
"unlabeledArg": null,
@ -1397,7 +1397,7 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
"name": "magnetCenterCutout",
"functionSourceRange": [
2668,
4259,
4095,
0
],
"unlabeledArg": null,

View File

@ -11475,9 +11475,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 4443,
"end": 4451,
"start": 4443,
"commentStart": 4279,
"end": 4287,
"start": 4279,
"type": "TagDeclarator",
"value": "line001"
},
@ -11488,9 +11488,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 4492,
"end": 4500,
"start": 4492,
"commentStart": 4328,
"end": 4336,
"start": 4328,
"type": "TagDeclarator",
"value": "line002"
},
@ -11501,9 +11501,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 4553,
"end": 4561,
"start": 4553,
"commentStart": 4389,
"end": 4397,
"start": 4389,
"type": "TagDeclarator",
"value": "line003"
},
@ -11514,9 +11514,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 4582,
"end": 4590,
"start": 4582,
"commentStart": 4418,
"end": 4426,
"start": 4418,
"type": "TagDeclarator",
"value": "line004"
},
@ -11537,9 +11537,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
0.0
],
"tag": {
"commentStart": 4443,
"end": 4451,
"start": 4443,
"commentStart": 4279,
"end": 4287,
"start": 4279,
"type": "TagDeclarator",
"value": "line001"
},
@ -11562,9 +11562,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
0.0
],
"tag": {
"commentStart": 4492,
"end": 4500,
"start": 4492,
"commentStart": 4328,
"end": 4336,
"start": 4328,
"type": "TagDeclarator",
"value": "line002"
},
@ -11587,9 +11587,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
42.0
],
"tag": {
"commentStart": 4553,
"end": 4561,
"start": 4553,
"commentStart": 4389,
"end": 4397,
"start": 4389,
"type": "TagDeclarator",
"value": "line003"
},
@ -11612,9 +11612,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
42.0
],
"tag": {
"commentStart": 4582,
"end": 4590,
"start": 4582,
"commentStart": 4418,
"end": 4426,
"start": 4418,
"type": "TagDeclarator",
"value": "line004"
},
@ -11731,9 +11731,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 4443,
"end": 4451,
"start": 4443,
"commentStart": 4279,
"end": 4287,
"start": 4279,
"type": "TagDeclarator",
"value": "line001"
},
@ -11744,9 +11744,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 4492,
"end": 4500,
"start": 4492,
"commentStart": 4328,
"end": 4336,
"start": 4328,
"type": "TagDeclarator",
"value": "line002"
},
@ -11757,9 +11757,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 4553,
"end": 4561,
"start": 4553,
"commentStart": 4389,
"end": 4397,
"start": 4389,
"type": "TagDeclarator",
"value": "line003"
},
@ -11770,9 +11770,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 4582,
"end": 4590,
"start": 4582,
"commentStart": 4418,
"end": 4426,
"start": 4418,
"type": "TagDeclarator",
"value": "line004"
},
@ -11793,9 +11793,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
0.0
],
"tag": {
"commentStart": 4443,
"end": 4451,
"start": 4443,
"commentStart": 4279,
"end": 4287,
"start": 4279,
"type": "TagDeclarator",
"value": "line001"
},
@ -11818,9 +11818,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
0.0
],
"tag": {
"commentStart": 4492,
"end": 4500,
"start": 4492,
"commentStart": 4328,
"end": 4336,
"start": 4328,
"type": "TagDeclarator",
"value": "line002"
},
@ -11843,9 +11843,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
42.0
],
"tag": {
"commentStart": 4553,
"end": 4561,
"start": 4553,
"commentStart": 4389,
"end": 4397,
"start": 4389,
"type": "TagDeclarator",
"value": "line003"
},
@ -11868,9 +11868,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
42.0
],
"tag": {
"commentStart": 4582,
"end": 4590,
"start": 4582,
"commentStart": 4418,
"end": 4426,
"start": 4418,
"type": "TagDeclarator",
"value": "line004"
},
@ -12061,9 +12061,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 4443,
"end": 4451,
"start": 4443,
"commentStart": 4279,
"end": 4287,
"start": 4279,
"type": "TagDeclarator",
"value": "line001"
},
@ -12074,9 +12074,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 4492,
"end": 4500,
"start": 4492,
"commentStart": 4328,
"end": 4336,
"start": 4328,
"type": "TagDeclarator",
"value": "line002"
},
@ -12087,9 +12087,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 4553,
"end": 4561,
"start": 4553,
"commentStart": 4389,
"end": 4397,
"start": 4389,
"type": "TagDeclarator",
"value": "line003"
},
@ -12100,9 +12100,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 4582,
"end": 4590,
"start": 4582,
"commentStart": 4418,
"end": 4426,
"start": 4418,
"type": "TagDeclarator",
"value": "line004"
},
@ -12123,9 +12123,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
0.0
],
"tag": {
"commentStart": 4443,
"end": 4451,
"start": 4443,
"commentStart": 4279,
"end": 4287,
"start": 4279,
"type": "TagDeclarator",
"value": "line001"
},
@ -12148,9 +12148,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
0.0
],
"tag": {
"commentStart": 4492,
"end": 4500,
"start": 4492,
"commentStart": 4328,
"end": 4336,
"start": 4328,
"type": "TagDeclarator",
"value": "line002"
},
@ -12173,9 +12173,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
42.0
],
"tag": {
"commentStart": 4553,
"end": 4561,
"start": 4553,
"commentStart": 4389,
"end": 4397,
"start": 4389,
"type": "TagDeclarator",
"value": "line003"
},
@ -12198,9 +12198,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
42.0
],
"tag": {
"commentStart": 4582,
"end": 4590,
"start": 4582,
"commentStart": 4418,
"end": 4426,
"start": 4418,
"type": "TagDeclarator",
"value": "line004"
},
@ -12317,9 +12317,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 4443,
"end": 4451,
"start": 4443,
"commentStart": 4279,
"end": 4287,
"start": 4279,
"type": "TagDeclarator",
"value": "line001"
},
@ -12330,9 +12330,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 4492,
"end": 4500,
"start": 4492,
"commentStart": 4328,
"end": 4336,
"start": 4328,
"type": "TagDeclarator",
"value": "line002"
},
@ -12343,9 +12343,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 4553,
"end": 4561,
"start": 4553,
"commentStart": 4389,
"end": 4397,
"start": 4389,
"type": "TagDeclarator",
"value": "line003"
},
@ -12356,9 +12356,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 4582,
"end": 4590,
"start": 4582,
"commentStart": 4418,
"end": 4426,
"start": 4418,
"type": "TagDeclarator",
"value": "line004"
},
@ -12379,9 +12379,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
0.0
],
"tag": {
"commentStart": 4443,
"end": 4451,
"start": 4443,
"commentStart": 4279,
"end": 4287,
"start": 4279,
"type": "TagDeclarator",
"value": "line001"
},
@ -12404,9 +12404,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
0.0
],
"tag": {
"commentStart": 4492,
"end": 4500,
"start": 4492,
"commentStart": 4328,
"end": 4336,
"start": 4328,
"type": "TagDeclarator",
"value": "line002"
},
@ -12429,9 +12429,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
42.0
],
"tag": {
"commentStart": 4553,
"end": 4561,
"start": 4553,
"commentStart": 4389,
"end": 4397,
"start": 4389,
"type": "TagDeclarator",
"value": "line003"
},
@ -12454,9 +12454,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
42.0
],
"tag": {
"commentStart": 4582,
"end": 4590,
"start": 4582,
"commentStart": 4418,
"end": 4426,
"start": 4418,
"type": "TagDeclarator",
"value": "line004"
},
@ -12651,9 +12651,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
0.0
],
"tag": {
"commentStart": 4443,
"end": 4451,
"start": 4443,
"commentStart": 4279,
"end": 4287,
"start": 4279,
"type": "TagDeclarator",
"value": "line001"
},
@ -12676,9 +12676,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
0.0
],
"tag": {
"commentStart": 4492,
"end": 4500,
"start": 4492,
"commentStart": 4328,
"end": 4336,
"start": 4328,
"type": "TagDeclarator",
"value": "line002"
},
@ -12701,9 +12701,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
42.0
],
"tag": {
"commentStart": 4553,
"end": 4561,
"start": 4553,
"commentStart": 4389,
"end": 4397,
"start": 4389,
"type": "TagDeclarator",
"value": "line003"
},
@ -12726,9 +12726,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
42.0
],
"tag": {
"commentStart": 4582,
"end": 4590,
"start": 4582,
"commentStart": 4418,
"end": 4426,
"start": 4418,
"type": "TagDeclarator",
"value": "line004"
},
@ -12842,9 +12842,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
0.0
],
"tag": {
"commentStart": 4443,
"end": 4451,
"start": 4443,
"commentStart": 4279,
"end": 4287,
"start": 4279,
"type": "TagDeclarator",
"value": "line001"
},
@ -12867,9 +12867,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
0.0
],
"tag": {
"commentStart": 4492,
"end": 4500,
"start": 4492,
"commentStart": 4328,
"end": 4336,
"start": 4328,
"type": "TagDeclarator",
"value": "line002"
},
@ -12892,9 +12892,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
42.0
],
"tag": {
"commentStart": 4553,
"end": 4561,
"start": 4553,
"commentStart": 4389,
"end": 4397,
"start": 4389,
"type": "TagDeclarator",
"value": "line003"
},
@ -12917,9 +12917,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
42.0
],
"tag": {
"commentStart": 4582,
"end": 4590,
"start": 4582,
"commentStart": 4418,
"end": 4426,
"start": 4418,
"type": "TagDeclarator",
"value": "line004"
},

View File

@ -44,49 +44,49 @@ flowchart LR
subgraph path119 [Path]
119["Path<br>[5326, 5351, 0]"]
120["Segment<br>[5411, 5454, 0]"]
121["Segment<br>[5462, 5571, 0]"]
122["Segment<br>[5634, 5683, 0]"]
123["Segment<br>[5691, 5716, 0]"]
124["Segment<br>[5724, 5767, 0]"]
125["Segment<br>[5775, 5800, 0]"]
126["Segment<br>[5808, 5852, 0]"]
127["Segment<br>[5860, 5867, 0]"]
121["Segment<br>[5462, 5582, 0]"]
122["Segment<br>[5645, 5694, 0]"]
123["Segment<br>[5702, 5727, 0]"]
124["Segment<br>[5735, 5778, 0]"]
125["Segment<br>[5786, 5811, 0]"]
126["Segment<br>[5819, 5863, 0]"]
127["Segment<br>[5871, 5878, 0]"]
128[Solid2d]
end
subgraph path157 [Path]
157["Path<br>[5326, 5351, 0]"]
158["Segment<br>[5411, 5454, 0]"]
159["Segment<br>[5462, 5571, 0]"]
160["Segment<br>[5634, 5683, 0]"]
161["Segment<br>[5691, 5716, 0]"]
162["Segment<br>[5724, 5767, 0]"]
163["Segment<br>[5775, 5800, 0]"]
164["Segment<br>[5808, 5852, 0]"]
165["Segment<br>[5860, 5867, 0]"]
159["Segment<br>[5462, 5582, 0]"]
160["Segment<br>[5645, 5694, 0]"]
161["Segment<br>[5702, 5727, 0]"]
162["Segment<br>[5735, 5778, 0]"]
163["Segment<br>[5786, 5811, 0]"]
164["Segment<br>[5819, 5863, 0]"]
165["Segment<br>[5871, 5878, 0]"]
166[Solid2d]
end
subgraph path195 [Path]
195["Path<br>[5326, 5351, 0]"]
196["Segment<br>[5411, 5454, 0]"]
197["Segment<br>[5462, 5571, 0]"]
198["Segment<br>[5634, 5683, 0]"]
199["Segment<br>[5691, 5716, 0]"]
200["Segment<br>[5724, 5767, 0]"]
201["Segment<br>[5775, 5800, 0]"]
202["Segment<br>[5808, 5852, 0]"]
203["Segment<br>[5860, 5867, 0]"]
197["Segment<br>[5462, 5582, 0]"]
198["Segment<br>[5645, 5694, 0]"]
199["Segment<br>[5702, 5727, 0]"]
200["Segment<br>[5735, 5778, 0]"]
201["Segment<br>[5786, 5811, 0]"]
202["Segment<br>[5819, 5863, 0]"]
203["Segment<br>[5871, 5878, 0]"]
204[Solid2d]
end
subgraph path233 [Path]
233["Path<br>[5326, 5351, 0]"]
234["Segment<br>[5411, 5454, 0]"]
235["Segment<br>[5462, 5571, 0]"]
236["Segment<br>[5634, 5683, 0]"]
237["Segment<br>[5691, 5716, 0]"]
238["Segment<br>[5724, 5767, 0]"]
239["Segment<br>[5775, 5800, 0]"]
240["Segment<br>[5808, 5852, 0]"]
241["Segment<br>[5860, 5867, 0]"]
235["Segment<br>[5462, 5582, 0]"]
236["Segment<br>[5645, 5694, 0]"]
237["Segment<br>[5702, 5727, 0]"]
238["Segment<br>[5735, 5778, 0]"]
239["Segment<br>[5786, 5811, 0]"]
240["Segment<br>[5819, 5863, 0]"]
241["Segment<br>[5871, 5878, 0]"]
242[Solid2d]
end
1["Plane<br>[1541, 1588, 0]"]
@ -176,7 +176,7 @@ flowchart LR
116["EdgeCut Fillet<br>[4915, 5148, 0]"]
117["EdgeCut Fillet<br>[4915, 5148, 0]"]
118["Plane<br>[5298, 5318, 0]"]
129["Sweep Extrusion<br>[6542, 6654, 0]"]
129["Sweep Extrusion<br>[6553, 6665, 0]"]
130[Wall]
131[Wall]
132[Wall]
@ -204,7 +204,7 @@ flowchart LR
154["SweepEdge Opposite"]
155["SweepEdge Adjacent"]
156["Plane<br>[5298, 5318, 0]"]
167["Sweep Extrusion<br>[6720, 6834, 0]"]
167["Sweep Extrusion<br>[6731, 6845, 0]"]
168[Wall]
169[Wall]
170[Wall]
@ -232,7 +232,7 @@ flowchart LR
192["SweepEdge Opposite"]
193["SweepEdge Adjacent"]
194["Plane<br>[5298, 5318, 0]"]
205["Sweep Revolve<br>[7660, 7715, 0]"]
205["Sweep Revolve<br>[7671, 7726, 0]"]
206[Wall]
207[Wall]
208[Wall]
@ -260,7 +260,7 @@ flowchart LR
230["SweepEdge Opposite"]
231["SweepEdge Adjacent"]
232["Plane<br>[5298, 5318, 0]"]
243["Sweep Revolve<br>[7777, 7831, 0]"]
243["Sweep Revolve<br>[7788, 7842, 0]"]
244[Wall]
245[Wall]
246[Wall]

View File

@ -6890,103 +6890,88 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "180.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 180.0,
"suffix": "None"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "45.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 45.0,
"suffix": "None"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "0.500000",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.5,
"suffix": "None"
}
}
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "180.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 180.0,
"suffix": "None"
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
}
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "45.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 45.0,
"suffix": "None"
}
}
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "TagDeclarator",
"type": "TagDeclarator",
"value": "arc000"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "0.500000",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.5,
"suffix": "None"
}
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "tag",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"start": 0,
"type": "TagDeclarator",
"type": "TagDeclarator",
"value": "arc000"
}
}
],
"callee": {
@ -7007,8 +6992,9 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [

View File

@ -1652,7 +1652,7 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
"name": "lipFace",
"functionSourceRange": [
5273,
5889,
5900,
0
],
"unlabeledArg": null,
@ -1894,7 +1894,7 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
"name": "lipFace",
"functionSourceRange": [
5273,
5889,
5900,
0
],
"unlabeledArg": null,
@ -2434,7 +2434,7 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
"name": "lipFace",
"functionSourceRange": [
5273,
5889,
5900,
0
],
"unlabeledArg": null,
@ -2751,7 +2751,7 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
"name": "lipFace",
"functionSourceRange": [
5273,
5889,
5900,
0
],
"unlabeledArg": null,

View File

@ -14906,9 +14906,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -14919,9 +14919,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -15008,9 +15008,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
],
"radius": 0.5,
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -15033,9 +15033,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
6.1464
],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -15256,9 +15256,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -15269,9 +15269,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -15358,9 +15358,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
],
"radius": 0.5,
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -15383,9 +15383,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
6.1464
],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -15611,9 +15611,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -15624,9 +15624,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -15713,9 +15713,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
],
"radius": 0.5,
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -15738,9 +15738,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
6.1464
],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -15961,9 +15961,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -15974,9 +15974,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -16063,9 +16063,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
],
"radius": 0.5,
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -16088,9 +16088,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
6.1464
],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -16332,9 +16332,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -16345,9 +16345,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -16434,9 +16434,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
],
"radius": 0.5,
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -16459,9 +16459,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
6.1464
],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -16682,9 +16682,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -16695,9 +16695,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -16784,9 +16784,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
],
"radius": 0.5,
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -16809,9 +16809,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
6.1464
],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -17047,9 +17047,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -17060,9 +17060,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -17149,9 +17149,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
],
"radius": 0.5,
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -17174,9 +17174,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
6.1464
],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -17397,9 +17397,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -17410,9 +17410,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -17499,9 +17499,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
],
"radius": 0.5,
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -17524,9 +17524,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
6.1464
],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -17747,9 +17747,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -17760,9 +17760,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -17849,9 +17849,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
],
"radius": 0.5,
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -17874,9 +17874,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
6.1464
],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -18097,9 +18097,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -18110,9 +18110,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -18199,9 +18199,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
],
"radius": 0.5,
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -18224,9 +18224,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
6.1464
],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -18515,9 +18515,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -18528,9 +18528,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -18617,9 +18617,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
],
"radius": 0.5,
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -18642,9 +18642,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
6.1464
],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -18865,9 +18865,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -18878,9 +18878,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
"id": "[uuid]",
"sourceRange": [],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},
@ -18967,9 +18967,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
],
"radius": 0.5,
"tag": {
"commentStart": 5563,
"end": 5570,
"start": 5563,
"commentStart": 5565,
"end": 5572,
"start": 5565,
"type": "TagDeclarator",
"value": "arc000"
},
@ -18992,9 +18992,9 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc
6.1464
],
"tag": {
"commentStart": 5674,
"end": 5682,
"start": 5674,
"commentStart": 5685,
"end": 5693,
"start": 5685,
"type": "TagDeclarator",
"value": "line001"
},

View File

@ -31,327 +31,327 @@ flowchart LR
end
subgraph path61 [Path]
61["Path<br>[1993, 2052, 0]"]
62["Segment<br>[2060, 2152, 0]"]
63["Segment<br>[2160, 2234, 0]"]
64["Segment<br>[2242, 2281, 0]"]
65["Segment<br>[2289, 2396, 0]"]
66["Segment<br>[2404, 2443, 0]"]
67["Segment<br>[2451, 2568, 0]"]
68["Segment<br>[2576, 2615, 0]"]
69["Segment<br>[2623, 2708, 0]"]
70["Segment<br>[2716, 2723, 0]"]
62["Segment<br>[2060, 2111, 0]"]
63["Segment<br>[2119, 2193, 0]"]
64["Segment<br>[2201, 2240, 0]"]
65["Segment<br>[2248, 2355, 0]"]
66["Segment<br>[2363, 2402, 0]"]
67["Segment<br>[2410, 2527, 0]"]
68["Segment<br>[2535, 2574, 0]"]
69["Segment<br>[2582, 2667, 0]"]
70["Segment<br>[2675, 2682, 0]"]
71[Solid2d]
end
subgraph path100 [Path]
100["Path<br>[1993, 2052, 0]"]
101["Segment<br>[2060, 2152, 0]"]
102["Segment<br>[2160, 2234, 0]"]
103["Segment<br>[2242, 2281, 0]"]
104["Segment<br>[2289, 2396, 0]"]
105["Segment<br>[2404, 2443, 0]"]
106["Segment<br>[2451, 2568, 0]"]
107["Segment<br>[2576, 2615, 0]"]
108["Segment<br>[2623, 2708, 0]"]
109["Segment<br>[2716, 2723, 0]"]
101["Segment<br>[2060, 2111, 0]"]
102["Segment<br>[2119, 2193, 0]"]
103["Segment<br>[2201, 2240, 0]"]
104["Segment<br>[2248, 2355, 0]"]
105["Segment<br>[2363, 2402, 0]"]
106["Segment<br>[2410, 2527, 0]"]
107["Segment<br>[2535, 2574, 0]"]
108["Segment<br>[2582, 2667, 0]"]
109["Segment<br>[2675, 2682, 0]"]
110[Solid2d]
end
subgraph path139 [Path]
139["Path<br>[1993, 2052, 0]"]
140["Segment<br>[2060, 2152, 0]"]
141["Segment<br>[2160, 2234, 0]"]
142["Segment<br>[2242, 2281, 0]"]
143["Segment<br>[2289, 2396, 0]"]
144["Segment<br>[2404, 2443, 0]"]
145["Segment<br>[2451, 2568, 0]"]
146["Segment<br>[2576, 2615, 0]"]
147["Segment<br>[2623, 2708, 0]"]
148["Segment<br>[2716, 2723, 0]"]
140["Segment<br>[2060, 2111, 0]"]
141["Segment<br>[2119, 2193, 0]"]
142["Segment<br>[2201, 2240, 0]"]
143["Segment<br>[2248, 2355, 0]"]
144["Segment<br>[2363, 2402, 0]"]
145["Segment<br>[2410, 2527, 0]"]
146["Segment<br>[2535, 2574, 0]"]
147["Segment<br>[2582, 2667, 0]"]
148["Segment<br>[2675, 2682, 0]"]
149[Solid2d]
end
subgraph path178 [Path]
178["Path<br>[1993, 2052, 0]"]
179["Segment<br>[2060, 2152, 0]"]
180["Segment<br>[2160, 2234, 0]"]
181["Segment<br>[2242, 2281, 0]"]
182["Segment<br>[2289, 2396, 0]"]
183["Segment<br>[2404, 2443, 0]"]
184["Segment<br>[2451, 2568, 0]"]
185["Segment<br>[2576, 2615, 0]"]
186["Segment<br>[2623, 2708, 0]"]
187["Segment<br>[2716, 2723, 0]"]
179["Segment<br>[2060, 2111, 0]"]
180["Segment<br>[2119, 2193, 0]"]
181["Segment<br>[2201, 2240, 0]"]
182["Segment<br>[2248, 2355, 0]"]
183["Segment<br>[2363, 2402, 0]"]
184["Segment<br>[2410, 2527, 0]"]
185["Segment<br>[2535, 2574, 0]"]
186["Segment<br>[2582, 2667, 0]"]
187["Segment<br>[2675, 2682, 0]"]
188[Solid2d]
end
subgraph path217 [Path]
217["Path<br>[1993, 2052, 0]"]
218["Segment<br>[2060, 2152, 0]"]
219["Segment<br>[2160, 2234, 0]"]
220["Segment<br>[2242, 2281, 0]"]
221["Segment<br>[2289, 2396, 0]"]
222["Segment<br>[2404, 2443, 0]"]
223["Segment<br>[2451, 2568, 0]"]
224["Segment<br>[2576, 2615, 0]"]
225["Segment<br>[2623, 2708, 0]"]
226["Segment<br>[2716, 2723, 0]"]
218["Segment<br>[2060, 2111, 0]"]
219["Segment<br>[2119, 2193, 0]"]
220["Segment<br>[2201, 2240, 0]"]
221["Segment<br>[2248, 2355, 0]"]
222["Segment<br>[2363, 2402, 0]"]
223["Segment<br>[2410, 2527, 0]"]
224["Segment<br>[2535, 2574, 0]"]
225["Segment<br>[2582, 2667, 0]"]
226["Segment<br>[2675, 2682, 0]"]
227[Solid2d]
end
subgraph path256 [Path]
256["Path<br>[1993, 2052, 0]"]
257["Segment<br>[2060, 2152, 0]"]
258["Segment<br>[2160, 2234, 0]"]
259["Segment<br>[2242, 2281, 0]"]
260["Segment<br>[2289, 2396, 0]"]
261["Segment<br>[2404, 2443, 0]"]
262["Segment<br>[2451, 2568, 0]"]
263["Segment<br>[2576, 2615, 0]"]
264["Segment<br>[2623, 2708, 0]"]
265["Segment<br>[2716, 2723, 0]"]
257["Segment<br>[2060, 2111, 0]"]
258["Segment<br>[2119, 2193, 0]"]
259["Segment<br>[2201, 2240, 0]"]
260["Segment<br>[2248, 2355, 0]"]
261["Segment<br>[2363, 2402, 0]"]
262["Segment<br>[2410, 2527, 0]"]
263["Segment<br>[2535, 2574, 0]"]
264["Segment<br>[2582, 2667, 0]"]
265["Segment<br>[2675, 2682, 0]"]
266[Solid2d]
end
subgraph path295 [Path]
295["Path<br>[1993, 2052, 0]"]
296["Segment<br>[2060, 2152, 0]"]
297["Segment<br>[2160, 2234, 0]"]
298["Segment<br>[2242, 2281, 0]"]
299["Segment<br>[2289, 2396, 0]"]
300["Segment<br>[2404, 2443, 0]"]
301["Segment<br>[2451, 2568, 0]"]
302["Segment<br>[2576, 2615, 0]"]
303["Segment<br>[2623, 2708, 0]"]
304["Segment<br>[2716, 2723, 0]"]
296["Segment<br>[2060, 2111, 0]"]
297["Segment<br>[2119, 2193, 0]"]
298["Segment<br>[2201, 2240, 0]"]
299["Segment<br>[2248, 2355, 0]"]
300["Segment<br>[2363, 2402, 0]"]
301["Segment<br>[2410, 2527, 0]"]
302["Segment<br>[2535, 2574, 0]"]
303["Segment<br>[2582, 2667, 0]"]
304["Segment<br>[2675, 2682, 0]"]
305[Solid2d]
end
subgraph path334 [Path]
334["Path<br>[1993, 2052, 0]"]
335["Segment<br>[2060, 2152, 0]"]
336["Segment<br>[2160, 2234, 0]"]
337["Segment<br>[2242, 2281, 0]"]
338["Segment<br>[2289, 2396, 0]"]
339["Segment<br>[2404, 2443, 0]"]
340["Segment<br>[2451, 2568, 0]"]
341["Segment<br>[2576, 2615, 0]"]
342["Segment<br>[2623, 2708, 0]"]
343["Segment<br>[2716, 2723, 0]"]
335["Segment<br>[2060, 2111, 0]"]
336["Segment<br>[2119, 2193, 0]"]
337["Segment<br>[2201, 2240, 0]"]
338["Segment<br>[2248, 2355, 0]"]
339["Segment<br>[2363, 2402, 0]"]
340["Segment<br>[2410, 2527, 0]"]
341["Segment<br>[2535, 2574, 0]"]
342["Segment<br>[2582, 2667, 0]"]
343["Segment<br>[2675, 2682, 0]"]
344[Solid2d]
end
subgraph path373 [Path]
373["Path<br>[1993, 2052, 0]"]
374["Segment<br>[2060, 2152, 0]"]
375["Segment<br>[2160, 2234, 0]"]
376["Segment<br>[2242, 2281, 0]"]
377["Segment<br>[2289, 2396, 0]"]
378["Segment<br>[2404, 2443, 0]"]
379["Segment<br>[2451, 2568, 0]"]
380["Segment<br>[2576, 2615, 0]"]
381["Segment<br>[2623, 2708, 0]"]
382["Segment<br>[2716, 2723, 0]"]
374["Segment<br>[2060, 2111, 0]"]
375["Segment<br>[2119, 2193, 0]"]
376["Segment<br>[2201, 2240, 0]"]
377["Segment<br>[2248, 2355, 0]"]
378["Segment<br>[2363, 2402, 0]"]
379["Segment<br>[2410, 2527, 0]"]
380["Segment<br>[2535, 2574, 0]"]
381["Segment<br>[2582, 2667, 0]"]
382["Segment<br>[2675, 2682, 0]"]
383[Solid2d]
end
subgraph path412 [Path]
412["Path<br>[1993, 2052, 0]"]
413["Segment<br>[2060, 2152, 0]"]
414["Segment<br>[2160, 2234, 0]"]
415["Segment<br>[2242, 2281, 0]"]
416["Segment<br>[2289, 2396, 0]"]
417["Segment<br>[2404, 2443, 0]"]
418["Segment<br>[2451, 2568, 0]"]
419["Segment<br>[2576, 2615, 0]"]
420["Segment<br>[2623, 2708, 0]"]
421["Segment<br>[2716, 2723, 0]"]
413["Segment<br>[2060, 2111, 0]"]
414["Segment<br>[2119, 2193, 0]"]
415["Segment<br>[2201, 2240, 0]"]
416["Segment<br>[2248, 2355, 0]"]
417["Segment<br>[2363, 2402, 0]"]
418["Segment<br>[2410, 2527, 0]"]
419["Segment<br>[2535, 2574, 0]"]
420["Segment<br>[2582, 2667, 0]"]
421["Segment<br>[2675, 2682, 0]"]
422[Solid2d]
end
subgraph path451 [Path]
451["Path<br>[1993, 2052, 0]"]
452["Segment<br>[2060, 2152, 0]"]
453["Segment<br>[2160, 2234, 0]"]
454["Segment<br>[2242, 2281, 0]"]
455["Segment<br>[2289, 2396, 0]"]
456["Segment<br>[2404, 2443, 0]"]
457["Segment<br>[2451, 2568, 0]"]
458["Segment<br>[2576, 2615, 0]"]
459["Segment<br>[2623, 2708, 0]"]
460["Segment<br>[2716, 2723, 0]"]
452["Segment<br>[2060, 2111, 0]"]
453["Segment<br>[2119, 2193, 0]"]
454["Segment<br>[2201, 2240, 0]"]
455["Segment<br>[2248, 2355, 0]"]
456["Segment<br>[2363, 2402, 0]"]
457["Segment<br>[2410, 2527, 0]"]
458["Segment<br>[2535, 2574, 0]"]
459["Segment<br>[2582, 2667, 0]"]
460["Segment<br>[2675, 2682, 0]"]
461[Solid2d]
end
subgraph path490 [Path]
490["Path<br>[1993, 2052, 0]"]
491["Segment<br>[2060, 2152, 0]"]
492["Segment<br>[2160, 2234, 0]"]
493["Segment<br>[2242, 2281, 0]"]
494["Segment<br>[2289, 2396, 0]"]
495["Segment<br>[2404, 2443, 0]"]
496["Segment<br>[2451, 2568, 0]"]
497["Segment<br>[2576, 2615, 0]"]
498["Segment<br>[2623, 2708, 0]"]
499["Segment<br>[2716, 2723, 0]"]
491["Segment<br>[2060, 2111, 0]"]
492["Segment<br>[2119, 2193, 0]"]
493["Segment<br>[2201, 2240, 0]"]
494["Segment<br>[2248, 2355, 0]"]
495["Segment<br>[2363, 2402, 0]"]
496["Segment<br>[2410, 2527, 0]"]
497["Segment<br>[2535, 2574, 0]"]
498["Segment<br>[2582, 2667, 0]"]
499["Segment<br>[2675, 2682, 0]"]
500[Solid2d]
end
subgraph path529 [Path]
529["Path<br>[1993, 2052, 0]"]
530["Segment<br>[2060, 2152, 0]"]
531["Segment<br>[2160, 2234, 0]"]
532["Segment<br>[2242, 2281, 0]"]
533["Segment<br>[2289, 2396, 0]"]
534["Segment<br>[2404, 2443, 0]"]
535["Segment<br>[2451, 2568, 0]"]
536["Segment<br>[2576, 2615, 0]"]
537["Segment<br>[2623, 2708, 0]"]
538["Segment<br>[2716, 2723, 0]"]
530["Segment<br>[2060, 2111, 0]"]
531["Segment<br>[2119, 2193, 0]"]
532["Segment<br>[2201, 2240, 0]"]
533["Segment<br>[2248, 2355, 0]"]
534["Segment<br>[2363, 2402, 0]"]
535["Segment<br>[2410, 2527, 0]"]
536["Segment<br>[2535, 2574, 0]"]
537["Segment<br>[2582, 2667, 0]"]
538["Segment<br>[2675, 2682, 0]"]
539[Solid2d]
end
subgraph path568 [Path]
568["Path<br>[1993, 2052, 0]"]
569["Segment<br>[2060, 2152, 0]"]
570["Segment<br>[2160, 2234, 0]"]
571["Segment<br>[2242, 2281, 0]"]
572["Segment<br>[2289, 2396, 0]"]
573["Segment<br>[2404, 2443, 0]"]
574["Segment<br>[2451, 2568, 0]"]
575["Segment<br>[2576, 2615, 0]"]
576["Segment<br>[2623, 2708, 0]"]
577["Segment<br>[2716, 2723, 0]"]
569["Segment<br>[2060, 2111, 0]"]
570["Segment<br>[2119, 2193, 0]"]
571["Segment<br>[2201, 2240, 0]"]
572["Segment<br>[2248, 2355, 0]"]
573["Segment<br>[2363, 2402, 0]"]
574["Segment<br>[2410, 2527, 0]"]
575["Segment<br>[2535, 2574, 0]"]
576["Segment<br>[2582, 2667, 0]"]
577["Segment<br>[2675, 2682, 0]"]
578[Solid2d]
end
subgraph path607 [Path]
607["Path<br>[1993, 2052, 0]"]
608["Segment<br>[2060, 2152, 0]"]
609["Segment<br>[2160, 2234, 0]"]
610["Segment<br>[2242, 2281, 0]"]
611["Segment<br>[2289, 2396, 0]"]
612["Segment<br>[2404, 2443, 0]"]
613["Segment<br>[2451, 2568, 0]"]
614["Segment<br>[2576, 2615, 0]"]
615["Segment<br>[2623, 2708, 0]"]
616["Segment<br>[2716, 2723, 0]"]
608["Segment<br>[2060, 2111, 0]"]
609["Segment<br>[2119, 2193, 0]"]
610["Segment<br>[2201, 2240, 0]"]
611["Segment<br>[2248, 2355, 0]"]
612["Segment<br>[2363, 2402, 0]"]
613["Segment<br>[2410, 2527, 0]"]
614["Segment<br>[2535, 2574, 0]"]
615["Segment<br>[2582, 2667, 0]"]
616["Segment<br>[2675, 2682, 0]"]
617[Solid2d]
end
subgraph path646 [Path]
646["Path<br>[1993, 2052, 0]"]
647["Segment<br>[2060, 2152, 0]"]
648["Segment<br>[2160, 2234, 0]"]
649["Segment<br>[2242, 2281, 0]"]
650["Segment<br>[2289, 2396, 0]"]
651["Segment<br>[2404, 2443, 0]"]
652["Segment<br>[2451, 2568, 0]"]
653["Segment<br>[2576, 2615, 0]"]
654["Segment<br>[2623, 2708, 0]"]
655["Segment<br>[2716, 2723, 0]"]
647["Segment<br>[2060, 2111, 0]"]
648["Segment<br>[2119, 2193, 0]"]
649["Segment<br>[2201, 2240, 0]"]
650["Segment<br>[2248, 2355, 0]"]
651["Segment<br>[2363, 2402, 0]"]
652["Segment<br>[2410, 2527, 0]"]
653["Segment<br>[2535, 2574, 0]"]
654["Segment<br>[2582, 2667, 0]"]
655["Segment<br>[2675, 2682, 0]"]
656[Solid2d]
end
subgraph path685 [Path]
685["Path<br>[1993, 2052, 0]"]
686["Segment<br>[2060, 2152, 0]"]
687["Segment<br>[2160, 2234, 0]"]
688["Segment<br>[2242, 2281, 0]"]
689["Segment<br>[2289, 2396, 0]"]
690["Segment<br>[2404, 2443, 0]"]
691["Segment<br>[2451, 2568, 0]"]
692["Segment<br>[2576, 2615, 0]"]
693["Segment<br>[2623, 2708, 0]"]
694["Segment<br>[2716, 2723, 0]"]
686["Segment<br>[2060, 2111, 0]"]
687["Segment<br>[2119, 2193, 0]"]
688["Segment<br>[2201, 2240, 0]"]
689["Segment<br>[2248, 2355, 0]"]
690["Segment<br>[2363, 2402, 0]"]
691["Segment<br>[2410, 2527, 0]"]
692["Segment<br>[2535, 2574, 0]"]
693["Segment<br>[2582, 2667, 0]"]
694["Segment<br>[2675, 2682, 0]"]
695[Solid2d]
end
subgraph path724 [Path]
724["Path<br>[1993, 2052, 0]"]
725["Segment<br>[2060, 2152, 0]"]
726["Segment<br>[2160, 2234, 0]"]
727["Segment<br>[2242, 2281, 0]"]
728["Segment<br>[2289, 2396, 0]"]
729["Segment<br>[2404, 2443, 0]"]
730["Segment<br>[2451, 2568, 0]"]
731["Segment<br>[2576, 2615, 0]"]
732["Segment<br>[2623, 2708, 0]"]
733["Segment<br>[2716, 2723, 0]"]
725["Segment<br>[2060, 2111, 0]"]
726["Segment<br>[2119, 2193, 0]"]
727["Segment<br>[2201, 2240, 0]"]
728["Segment<br>[2248, 2355, 0]"]
729["Segment<br>[2363, 2402, 0]"]
730["Segment<br>[2410, 2527, 0]"]
731["Segment<br>[2535, 2574, 0]"]
732["Segment<br>[2582, 2667, 0]"]
733["Segment<br>[2675, 2682, 0]"]
734[Solid2d]
end
subgraph path763 [Path]
763["Path<br>[1993, 2052, 0]"]
764["Segment<br>[2060, 2152, 0]"]
765["Segment<br>[2160, 2234, 0]"]
766["Segment<br>[2242, 2281, 0]"]
767["Segment<br>[2289, 2396, 0]"]
768["Segment<br>[2404, 2443, 0]"]
769["Segment<br>[2451, 2568, 0]"]
770["Segment<br>[2576, 2615, 0]"]
771["Segment<br>[2623, 2708, 0]"]
772["Segment<br>[2716, 2723, 0]"]
764["Segment<br>[2060, 2111, 0]"]
765["Segment<br>[2119, 2193, 0]"]
766["Segment<br>[2201, 2240, 0]"]
767["Segment<br>[2248, 2355, 0]"]
768["Segment<br>[2363, 2402, 0]"]
769["Segment<br>[2410, 2527, 0]"]
770["Segment<br>[2535, 2574, 0]"]
771["Segment<br>[2582, 2667, 0]"]
772["Segment<br>[2675, 2682, 0]"]
773[Solid2d]
end
subgraph path802 [Path]
802["Path<br>[1993, 2052, 0]"]
803["Segment<br>[2060, 2152, 0]"]
804["Segment<br>[2160, 2234, 0]"]
805["Segment<br>[2242, 2281, 0]"]
806["Segment<br>[2289, 2396, 0]"]
807["Segment<br>[2404, 2443, 0]"]
808["Segment<br>[2451, 2568, 0]"]
809["Segment<br>[2576, 2615, 0]"]
810["Segment<br>[2623, 2708, 0]"]
811["Segment<br>[2716, 2723, 0]"]
803["Segment<br>[2060, 2111, 0]"]
804["Segment<br>[2119, 2193, 0]"]
805["Segment<br>[2201, 2240, 0]"]
806["Segment<br>[2248, 2355, 0]"]
807["Segment<br>[2363, 2402, 0]"]
808["Segment<br>[2410, 2527, 0]"]
809["Segment<br>[2535, 2574, 0]"]
810["Segment<br>[2582, 2667, 0]"]
811["Segment<br>[2675, 2682, 0]"]
812[Solid2d]
end
subgraph path841 [Path]
841["Path<br>[1993, 2052, 0]"]
842["Segment<br>[2060, 2152, 0]"]
843["Segment<br>[2160, 2234, 0]"]
844["Segment<br>[2242, 2281, 0]"]
845["Segment<br>[2289, 2396, 0]"]
846["Segment<br>[2404, 2443, 0]"]
847["Segment<br>[2451, 2568, 0]"]
848["Segment<br>[2576, 2615, 0]"]
849["Segment<br>[2623, 2708, 0]"]
850["Segment<br>[2716, 2723, 0]"]
842["Segment<br>[2060, 2111, 0]"]
843["Segment<br>[2119, 2193, 0]"]
844["Segment<br>[2201, 2240, 0]"]
845["Segment<br>[2248, 2355, 0]"]
846["Segment<br>[2363, 2402, 0]"]
847["Segment<br>[2410, 2527, 0]"]
848["Segment<br>[2535, 2574, 0]"]
849["Segment<br>[2582, 2667, 0]"]
850["Segment<br>[2675, 2682, 0]"]
851[Solid2d]
end
subgraph path880 [Path]
880["Path<br>[4955, 5042, 0]"]
881["Segment<br>[5050, 5079, 0]"]
882["Segment<br>[5087, 5115, 0]"]
883["Segment<br>[5123, 5201, 0]"]
884["Segment<br>[5209, 5256, 0]"]
885["Segment<br>[5264, 5292, 0]"]
886["Segment<br>[5300, 5329, 0]"]
887["Segment<br>[5337, 5366, 0]"]
888["Segment<br>[5374, 5440, 0]"]
889["Segment<br>[5448, 5476, 0]"]
890["Segment<br>[5484, 5513, 0]"]
891["Segment<br>[5521, 5583, 0]"]
892["Segment<br>[5591, 5619, 0]"]
893["Segment<br>[5627, 5661, 0]"]
894["Segment<br>[5669, 5699, 0]"]
895["Segment<br>[5707, 5775, 0]"]
896["Segment<br>[5783, 5790, 0]"]
880["Path<br>[4914, 5001, 0]"]
881["Segment<br>[5009, 5038, 0]"]
882["Segment<br>[5046, 5074, 0]"]
883["Segment<br>[5082, 5160, 0]"]
884["Segment<br>[5168, 5215, 0]"]
885["Segment<br>[5223, 5251, 0]"]
886["Segment<br>[5259, 5288, 0]"]
887["Segment<br>[5296, 5325, 0]"]
888["Segment<br>[5333, 5399, 0]"]
889["Segment<br>[5407, 5435, 0]"]
890["Segment<br>[5443, 5472, 0]"]
891["Segment<br>[5480, 5542, 0]"]
892["Segment<br>[5550, 5578, 0]"]
893["Segment<br>[5586, 5620, 0]"]
894["Segment<br>[5628, 5658, 0]"]
895["Segment<br>[5666, 5734, 0]"]
896["Segment<br>[5742, 5749, 0]"]
897[Solid2d]
end
subgraph path950 [Path]
950["Path<br>[5990, 6088, 0]"]
951["Segment<br>[6096, 6215, 0]"]
952["Segment<br>[6223, 6270, 0]"]
953["Segment<br>[6278, 6399, 0]"]
954["Segment<br>[6407, 6414, 0]"]
950["Path<br>[5949, 6047, 0]"]
951["Segment<br>[6055, 6133, 0]"]
952["Segment<br>[6141, 6188, 0]"]
953["Segment<br>[6196, 6276, 0]"]
954["Segment<br>[6284, 6291, 0]"]
955[Solid2d]
end
subgraph path972 [Path]
972["Path<br>[6522, 6619, 0]"]
973["Segment<br>[6627, 6746, 0]"]
974["Segment<br>[6754, 6802, 0]"]
975["Segment<br>[6810, 6931, 0]"]
976["Segment<br>[6939, 6946, 0]"]
972["Path<br>[6399, 6496, 0]"]
973["Segment<br>[6504, 6582, 0]"]
974["Segment<br>[6590, 6638, 0]"]
975["Segment<br>[6646, 6726, 0]"]
976["Segment<br>[6734, 6741, 0]"]
977[Solid2d]
end
subgraph path994 [Path]
994["Path<br>[5990, 6088, 0]"]
995["Segment<br>[6096, 6215, 0]"]
996["Segment<br>[6223, 6270, 0]"]
997["Segment<br>[6278, 6399, 0]"]
998["Segment<br>[6407, 6414, 0]"]
994["Path<br>[5949, 6047, 0]"]
995["Segment<br>[6055, 6133, 0]"]
996["Segment<br>[6141, 6188, 0]"]
997["Segment<br>[6196, 6276, 0]"]
998["Segment<br>[6284, 6291, 0]"]
999[Solid2d]
end
subgraph path1016 [Path]
1016["Path<br>[6522, 6619, 0]"]
1017["Segment<br>[6627, 6746, 0]"]
1018["Segment<br>[6754, 6802, 0]"]
1019["Segment<br>[6810, 6931, 0]"]
1020["Segment<br>[6939, 6946, 0]"]
1016["Path<br>[6399, 6496, 0]"]
1017["Segment<br>[6504, 6582, 0]"]
1018["Segment<br>[6590, 6638, 0]"]
1019["Segment<br>[6646, 6726, 0]"]
1020["Segment<br>[6734, 6741, 0]"]
1021[Solid2d]
end
1["Plane<br>[532, 549, 0]"]
@ -395,7 +395,7 @@ flowchart LR
58["SweepEdge Opposite"]
59["SweepEdge Adjacent"]
60["Plane<br>[1954, 1977, 0]"]
72["Sweep Extrusion<br>[2731, 2757, 0]"]
72["Sweep Extrusion<br>[2690, 2716, 0]"]
73[Wall]
74[Wall]
75[Wall]
@ -423,7 +423,7 @@ flowchart LR
97["SweepEdge Opposite"]
98["SweepEdge Adjacent"]
99["Plane<br>[1954, 1977, 0]"]
111["Sweep Extrusion<br>[2731, 2757, 0]"]
111["Sweep Extrusion<br>[2690, 2716, 0]"]
112[Wall]
113[Wall]
114[Wall]
@ -451,7 +451,7 @@ flowchart LR
136["SweepEdge Opposite"]
137["SweepEdge Adjacent"]
138["Plane<br>[1954, 1977, 0]"]
150["Sweep Extrusion<br>[2731, 2757, 0]"]
150["Sweep Extrusion<br>[2690, 2716, 0]"]
151[Wall]
152[Wall]
153[Wall]
@ -479,7 +479,7 @@ flowchart LR
175["SweepEdge Opposite"]
176["SweepEdge Adjacent"]
177["Plane<br>[1954, 1977, 0]"]
189["Sweep Extrusion<br>[2731, 2757, 0]"]
189["Sweep Extrusion<br>[2690, 2716, 0]"]
190[Wall]
191[Wall]
192[Wall]
@ -507,7 +507,7 @@ flowchart LR
214["SweepEdge Opposite"]
215["SweepEdge Adjacent"]
216["Plane<br>[1954, 1977, 0]"]
228["Sweep Extrusion<br>[2731, 2757, 0]"]
228["Sweep Extrusion<br>[2690, 2716, 0]"]
229[Wall]
230[Wall]
231[Wall]
@ -535,7 +535,7 @@ flowchart LR
253["SweepEdge Opposite"]
254["SweepEdge Adjacent"]
255["Plane<br>[1954, 1977, 0]"]
267["Sweep Extrusion<br>[2731, 2757, 0]"]
267["Sweep Extrusion<br>[2690, 2716, 0]"]
268[Wall]
269[Wall]
270[Wall]
@ -563,7 +563,7 @@ flowchart LR
292["SweepEdge Opposite"]
293["SweepEdge Adjacent"]
294["Plane<br>[1954, 1977, 0]"]
306["Sweep Extrusion<br>[2731, 2757, 0]"]
306["Sweep Extrusion<br>[2690, 2716, 0]"]
307[Wall]
308[Wall]
309[Wall]
@ -591,7 +591,7 @@ flowchart LR
331["SweepEdge Opposite"]
332["SweepEdge Adjacent"]
333["Plane<br>[1954, 1977, 0]"]
345["Sweep Extrusion<br>[2731, 2757, 0]"]
345["Sweep Extrusion<br>[2690, 2716, 0]"]
346[Wall]
347[Wall]
348[Wall]
@ -619,7 +619,7 @@ flowchart LR
370["SweepEdge Opposite"]
371["SweepEdge Adjacent"]
372["Plane<br>[1954, 1977, 0]"]
384["Sweep Extrusion<br>[2731, 2757, 0]"]
384["Sweep Extrusion<br>[2690, 2716, 0]"]
385[Wall]
386[Wall]
387[Wall]
@ -647,7 +647,7 @@ flowchart LR
409["SweepEdge Opposite"]
410["SweepEdge Adjacent"]
411["Plane<br>[1954, 1977, 0]"]
423["Sweep Extrusion<br>[2731, 2757, 0]"]
423["Sweep Extrusion<br>[2690, 2716, 0]"]
424[Wall]
425[Wall]
426[Wall]
@ -675,7 +675,7 @@ flowchart LR
448["SweepEdge Opposite"]
449["SweepEdge Adjacent"]
450["Plane<br>[1954, 1977, 0]"]
462["Sweep Extrusion<br>[2731, 2757, 0]"]
462["Sweep Extrusion<br>[2690, 2716, 0]"]
463[Wall]
464[Wall]
465[Wall]
@ -703,7 +703,7 @@ flowchart LR
487["SweepEdge Opposite"]
488["SweepEdge Adjacent"]
489["Plane<br>[1954, 1977, 0]"]
501["Sweep Extrusion<br>[2731, 2757, 0]"]
501["Sweep Extrusion<br>[2690, 2716, 0]"]
502[Wall]
503[Wall]
504[Wall]
@ -731,7 +731,7 @@ flowchart LR
526["SweepEdge Opposite"]
527["SweepEdge Adjacent"]
528["Plane<br>[1954, 1977, 0]"]
540["Sweep Extrusion<br>[2731, 2757, 0]"]
540["Sweep Extrusion<br>[2690, 2716, 0]"]
541[Wall]
542[Wall]
543[Wall]
@ -759,7 +759,7 @@ flowchart LR
565["SweepEdge Opposite"]
566["SweepEdge Adjacent"]
567["Plane<br>[1954, 1977, 0]"]
579["Sweep Extrusion<br>[2731, 2757, 0]"]
579["Sweep Extrusion<br>[2690, 2716, 0]"]
580[Wall]
581[Wall]
582[Wall]
@ -787,7 +787,7 @@ flowchart LR
604["SweepEdge Opposite"]
605["SweepEdge Adjacent"]
606["Plane<br>[1954, 1977, 0]"]
618["Sweep Extrusion<br>[2731, 2757, 0]"]
618["Sweep Extrusion<br>[2690, 2716, 0]"]
619[Wall]
620[Wall]
621[Wall]
@ -815,7 +815,7 @@ flowchart LR
643["SweepEdge Opposite"]
644["SweepEdge Adjacent"]
645["Plane<br>[1954, 1977, 0]"]
657["Sweep Extrusion<br>[2731, 2757, 0]"]
657["Sweep Extrusion<br>[2690, 2716, 0]"]
658[Wall]
659[Wall]
660[Wall]
@ -843,7 +843,7 @@ flowchart LR
682["SweepEdge Opposite"]
683["SweepEdge Adjacent"]
684["Plane<br>[1954, 1977, 0]"]
696["Sweep Extrusion<br>[2731, 2757, 0]"]
696["Sweep Extrusion<br>[2690, 2716, 0]"]
697[Wall]
698[Wall]
699[Wall]
@ -871,7 +871,7 @@ flowchart LR
721["SweepEdge Opposite"]
722["SweepEdge Adjacent"]
723["Plane<br>[1954, 1977, 0]"]
735["Sweep Extrusion<br>[2731, 2757, 0]"]
735["Sweep Extrusion<br>[2690, 2716, 0]"]
736[Wall]
737[Wall]
738[Wall]
@ -899,7 +899,7 @@ flowchart LR
760["SweepEdge Opposite"]
761["SweepEdge Adjacent"]
762["Plane<br>[1954, 1977, 0]"]
774["Sweep Extrusion<br>[2731, 2757, 0]"]
774["Sweep Extrusion<br>[2690, 2716, 0]"]
775[Wall]
776[Wall]
777[Wall]
@ -927,7 +927,7 @@ flowchart LR
799["SweepEdge Opposite"]
800["SweepEdge Adjacent"]
801["Plane<br>[1954, 1977, 0]"]
813["Sweep Extrusion<br>[2731, 2757, 0]"]
813["Sweep Extrusion<br>[2690, 2716, 0]"]
814[Wall]
815[Wall]
816[Wall]
@ -955,7 +955,7 @@ flowchart LR
838["SweepEdge Opposite"]
839["SweepEdge Adjacent"]
840["Plane<br>[1954, 1977, 0]"]
852["Sweep Extrusion<br>[2731, 2757, 0]"]
852["Sweep Extrusion<br>[2690, 2716, 0]"]
853[Wall]
854[Wall]
855[Wall]
@ -982,8 +982,8 @@ flowchart LR
876["SweepEdge Adjacent"]
877["SweepEdge Opposite"]
878["SweepEdge Adjacent"]
879["Plane<br>[4924, 4947, 0]"]
898["Sweep Extrusion<br>[5798, 5822, 0]"]
879["Plane<br>[4883, 4906, 0]"]
898["Sweep Extrusion<br>[5757, 5781, 0]"]
899[Wall]
900[Wall]
901[Wall]
@ -1034,8 +1034,8 @@ flowchart LR
946["SweepEdge Adjacent"]
947["SweepEdge Opposite"]
948["SweepEdge Adjacent"]
949["Plane<br>[5959, 5982, 0]"]
956["Sweep Extrusion<br>[6422, 6446, 0]"]
949["Plane<br>[5918, 5941, 0]"]
956["Sweep Extrusion<br>[6299, 6323, 0]"]
957[Wall]
958[Wall]
959[Wall]
@ -1050,8 +1050,8 @@ flowchart LR
968["SweepEdge Adjacent"]
969["SweepEdge Opposite"]
970["SweepEdge Adjacent"]
971["Plane<br>[6491, 6514, 0]"]
978["Sweep Extrusion<br>[6954, 6978, 0]"]
971["Plane<br>[6368, 6391, 0]"]
978["Sweep Extrusion<br>[6749, 6773, 0]"]
979[Wall]
980[Wall]
981[Wall]
@ -1066,8 +1066,8 @@ flowchart LR
990["SweepEdge Adjacent"]
991["SweepEdge Opposite"]
992["SweepEdge Adjacent"]
993["Plane<br>[5959, 5982, 0]"]
1000["Sweep Extrusion<br>[6422, 6446, 0]"]
993["Plane<br>[5918, 5941, 0]"]
1000["Sweep Extrusion<br>[6299, 6323, 0]"]
1001[Wall]
1002[Wall]
1003[Wall]
@ -1082,8 +1082,8 @@ flowchart LR
1012["SweepEdge Adjacent"]
1013["SweepEdge Opposite"]
1014["SweepEdge Adjacent"]
1015["Plane<br>[6491, 6514, 0]"]
1022["Sweep Extrusion<br>[6954, 6978, 0]"]
1015["Plane<br>[6368, 6391, 0]"]
1022["Sweep Extrusion<br>[6749, 6773, 0]"]
1023[Wall]
1024[Wall]
1025[Wall]

File diff suppressed because it is too large Load Diff

View File

@ -212,7 +212,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn",
"functionSourceRange": [
1887,
3015,
2974,
0
],
"unlabeledArg": null,
@ -544,7 +544,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn",
"functionSourceRange": [
1887,
3015,
2974,
0
],
"unlabeledArg": null,
@ -876,7 +876,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn",
"functionSourceRange": [
1887,
3015,
2974,
0
],
"unlabeledArg": null,
@ -1208,7 +1208,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn",
"functionSourceRange": [
1887,
3015,
2974,
0
],
"unlabeledArg": null,
@ -1540,7 +1540,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn",
"functionSourceRange": [
1887,
3015,
2974,
0
],
"unlabeledArg": null,
@ -1872,7 +1872,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn",
"functionSourceRange": [
1887,
3015,
2974,
0
],
"unlabeledArg": null,
@ -2204,7 +2204,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn",
"functionSourceRange": [
1887,
3015,
2974,
0
],
"unlabeledArg": null,
@ -2536,7 +2536,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn",
"functionSourceRange": [
1887,
3015,
2974,
0
],
"unlabeledArg": null,
@ -2868,7 +2868,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn",
"functionSourceRange": [
1887,
3015,
2974,
0
],
"unlabeledArg": null,
@ -3200,7 +3200,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn",
"functionSourceRange": [
1887,
3015,
2974,
0
],
"unlabeledArg": null,
@ -3532,7 +3532,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn",
"functionSourceRange": [
1887,
3015,
2974,
0
],
"unlabeledArg": null,
@ -3864,7 +3864,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn",
"functionSourceRange": [
1887,
3015,
2974,
0
],
"unlabeledArg": null,
@ -4196,7 +4196,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn",
"functionSourceRange": [
1887,
3015,
2974,
0
],
"unlabeledArg": null,
@ -4528,7 +4528,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn",
"functionSourceRange": [
1887,
3015,
2974,
0
],
"unlabeledArg": null,
@ -4860,7 +4860,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn",
"functionSourceRange": [
1887,
3015,
2974,
0
],
"unlabeledArg": null,
@ -5192,7 +5192,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn",
"functionSourceRange": [
1887,
3015,
2974,
0
],
"unlabeledArg": null,
@ -5524,7 +5524,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn",
"functionSourceRange": [
1887,
3015,
2974,
0
],
"unlabeledArg": null,
@ -5856,7 +5856,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn",
"functionSourceRange": [
1887,
3015,
2974,
0
],
"unlabeledArg": null,
@ -6188,7 +6188,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn",
"functionSourceRange": [
1887,
3015,
2974,
0
],
"unlabeledArg": null,
@ -6520,7 +6520,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn",
"functionSourceRange": [
1887,
3015,
2974,
0
],
"unlabeledArg": null,
@ -6852,7 +6852,7 @@ description: Operations executed keyboard.kcl
"name": "keyFn",
"functionSourceRange": [
1887,
3015,
2974,
0
],
"unlabeledArg": null,
@ -7201,8 +7201,8 @@ description: Operations executed keyboard.kcl
"type": "FunctionCall",
"name": "z",
"functionSourceRange": [
4893,
5872,
4852,
5831,
0
],
"unlabeledArg": null,
@ -7438,8 +7438,8 @@ description: Operations executed keyboard.kcl
"type": "FunctionCall",
"name": "o",
"functionSourceRange": [
5919,
7028,
5878,
6823,
0
],
"unlabeledArg": null,
@ -7894,8 +7894,8 @@ description: Operations executed keyboard.kcl
"type": "FunctionCall",
"name": "o",
"functionSourceRange": [
5919,
7028,
5878,
6823,
0
],
"unlabeledArg": null,

View File

@ -53,10 +53,10 @@ flowchart LR
subgraph path101 [Path]
101["Path<br>[1785, 1841, 0]"]
102["Segment<br>[1849, 1873, 0]"]
103["Segment<br>[1881, 1999, 0]"]
104["Segment<br>[2007, 2031, 0]"]
105["Segment<br>[2039, 2207, 0]"]
106["Segment<br>[2215, 2222, 0]"]
103["Segment<br>[1881, 1981, 0]"]
104["Segment<br>[1989, 2013, 0]"]
105["Segment<br>[2021, 2199, 0]"]
106["Segment<br>[2207, 2214, 0]"]
107[Solid2d]
end
1["Plane<br>[547, 574, 0]"]
@ -129,7 +129,7 @@ flowchart LR
98["Cap End"]
99["SweepEdge Opposite"]
100["SweepEdge Adjacent"]
108["Sweep Extrusion<br>[2230, 2253, 0]"]
108["Sweep Extrusion<br>[2222, 2245, 0]"]
109[Wall]
110[Wall]
111[Wall]

View File

@ -2873,176 +2873,154 @@ description: Result of parsing makeup-mirror.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"commentStart": 0,
"end": 0,
"key": {
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "interiorAbsolute",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"elements": [
{
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": "interior",
"name": {
"commentStart": 0,
"end": 0,
"name": "offsetX",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Identifier"
"type": "Name",
"type": "Name"
},
"start": 0,
"type": "ObjectProperty",
"value": {
{
"commentStart": 0,
"elements": [
{
"abs_path": false,
"end": 0,
"left": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "offsetX",
"start": 0,
"type": "Identifier"
},
"path": [],
"name": "altitude",
"start": 0,
"type": "Name",
"type": "Name"
"type": "Identifier"
},
{
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"operator": "-",
"right": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"left": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "altitude",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"operator": "-",
"right": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "gestellR",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"name": "gestellR",
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
}
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "end",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"elements": [
{
"commentStart": 0,
"end": 0,
"left": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "offsetX",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"operator": "+",
"right": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "gestellR",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
"type": "Identifier"
},
{
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "altitude",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
],
"end": 0,
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
"type": "BinaryExpression",
"type": "BinaryExpression"
}
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
}
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "endAbsolute",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"elements": [
{
"commentStart": 0,
"end": 0,
"left": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "offsetX",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"operator": "+",
"right": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "gestellR",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
},
{
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "altitude",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
}
}
],
"callee": {
@ -3052,7 +3030,7 @@ description: Result of parsing makeup-mirror.kcl
"name": {
"commentStart": 0,
"end": 0,
"name": "arcTo",
"name": "arc",
"start": 0,
"type": "Identifier"
},
@ -3063,8 +3041,9 @@ description: Result of parsing makeup-mirror.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
@ -3120,32 +3099,47 @@ description: Result of parsing makeup-mirror.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"commentStart": 0,
"end": 0,
"key": {
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "interiorAbsolute",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"elements": [
{
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": "interior",
"name": {
"commentStart": 0,
"end": 0,
"name": "offsetX",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Identifier"
"type": "Name",
"type": "Name"
},
"start": 0,
"type": "ObjectProperty",
"value": {
{
"commentStart": 0,
"elements": [
{
"end": 0,
"left": {
"commentStart": 0,
"end": 0,
"left": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "offsetX",
"name": "altitude",
"start": 0,
"type": "Identifier"
},
@ -3154,172 +3148,135 @@ description: Result of parsing makeup-mirror.kcl
"type": "Name",
"type": "Name"
},
{
"operator": "-",
"right": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"left": {
"name": {
"commentStart": 0,
"end": 0,
"left": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "altitude",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"operator": "-",
"right": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "gestellR",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"name": "gestellR",
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
},
"operator": "-",
"right": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "gestellD",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
}
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "end",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"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"
"type": "Name",
"type": "Name"
},
{
"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"
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
},
"operator": "-",
"right": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "gestellD",
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
}
],
"end": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
"type": "BinaryExpression",
"type": "BinaryExpression"
}
}
],
"start": 0,
"type": "ObjectExpression",
"type": "ObjectExpression"
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
}
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"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,
"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"
}
}
],
"callee": {
@ -3329,7 +3286,7 @@ description: Result of parsing makeup-mirror.kcl
"name": {
"commentStart": 0,
"end": 0,
"name": "arcTo",
"name": "arc",
"start": 0,
"type": "Identifier"
},
@ -3340,8 +3297,9 @@ description: Result of parsing makeup-mirror.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [],

View File

@ -805,7 +805,7 @@ description: Operations executed makeup-mirror.kcl
"name": "mirrorFn",
"functionSourceRange": [
1510,
2272,
2264,
0
],
"unlabeledArg": null,

View File

@ -37,122 +37,122 @@ flowchart LR
subgraph path75 [Path]
75["Path<br>[493, 529, 6]"]
76["Segment<br>[535, 572, 6]"]
77["Segment<br>[578, 666, 6]"]
78["Segment<br>[672, 721, 6]"]
79["Segment<br>[727, 783, 6]"]
80["Segment<br>[789, 796, 6]"]
77["Segment<br>[578, 633, 6]"]
78["Segment<br>[639, 688, 6]"]
79["Segment<br>[694, 750, 6]"]
80["Segment<br>[756, 763, 6]"]
81[Solid2d]
end
subgraph path97 [Path]
97["Path<br>[898, 1073, 6]"]
98["Segment<br>[898, 1073, 6]"]
97["Path<br>[865, 1040, 6]"]
98["Segment<br>[865, 1040, 6]"]
99[Solid2d]
end
subgraph path105 [Path]
105["Path<br>[1282, 1429, 6]"]
106["Segment<br>[1282, 1429, 6]"]
105["Path<br>[1249, 1396, 6]"]
106["Segment<br>[1249, 1396, 6]"]
107[Solid2d]
end
subgraph path116 [Path]
116["Path<br>[1751, 1925, 6]"]
117["Segment<br>[1751, 1925, 6]"]
116["Path<br>[1718, 1892, 6]"]
117["Segment<br>[1718, 1892, 6]"]
118[Solid2d]
end
subgraph path125 [Path]
125["Path<br>[2150, 2190, 6]"]
126["Segment<br>[2150, 2190, 6]"]
125["Path<br>[2117, 2157, 6]"]
126["Segment<br>[2117, 2157, 6]"]
127[Solid2d]
end
subgraph path137 [Path]
137["Path<br>[251, 394, 7]"]
138["Segment<br>[400, 516, 7]"]
139["Segment<br>[522, 574, 7]"]
140["Segment<br>[580, 696, 7]"]
141["Segment<br>[702, 758, 7]"]
142["Segment<br>[764, 771, 7]"]
138["Segment<br>[400, 483, 7]"]
139["Segment<br>[489, 541, 7]"]
140["Segment<br>[547, 630, 7]"]
141["Segment<br>[636, 692, 7]"]
142["Segment<br>[698, 705, 7]"]
143[Solid2d]
end
subgraph path159 [Path]
159["Path<br>[892, 956, 7]"]
160["Segment<br>[892, 956, 7]"]
159["Path<br>[826, 890, 7]"]
160["Segment<br>[826, 890, 7]"]
161[Solid2d]
end
subgraph path167 [Path]
167["Path<br>[1130, 1338, 7]"]
168["Segment<br>[1130, 1338, 7]"]
167["Path<br>[1064, 1272, 7]"]
168["Segment<br>[1064, 1272, 7]"]
169[Solid2d]
end
subgraph path175 [Path]
175["Path<br>[1546, 1590, 7]"]
176["Segment<br>[1546, 1590, 7]"]
175["Path<br>[1480, 1524, 7]"]
176["Segment<br>[1480, 1524, 7]"]
177[Solid2d]
end
subgraph path190 [Path]
190["Path<br>[1833, 2025, 7]"]
191["Segment<br>[1833, 2025, 7]"]
190["Path<br>[1767, 1959, 7]"]
191["Segment<br>[1767, 1959, 7]"]
192[Solid2d]
end
subgraph path201 [Path]
201["Path<br>[2383, 2558, 7]"]
202["Segment<br>[2383, 2558, 7]"]
201["Path<br>[2317, 2492, 7]"]
202["Segment<br>[2317, 2492, 7]"]
203[Solid2d]
end
subgraph path210 [Path]
210["Path<br>[271, 504, 8]"]
211["Segment<br>[510, 629, 8]"]
212["Segment<br>[635, 689, 8]"]
213["Segment<br>[695, 814, 8]"]
214["Segment<br>[820, 890, 8]"]
215["Segment<br>[896, 903, 8]"]
211["Segment<br>[510, 596, 8]"]
212["Segment<br>[602, 656, 8]"]
213["Segment<br>[662, 748, 8]"]
214["Segment<br>[754, 824, 8]"]
215["Segment<br>[830, 837, 8]"]
216[Solid2d]
end
subgraph path232 [Path]
232["Path<br>[1022, 1231, 8]"]
233["Segment<br>[1022, 1231, 8]"]
232["Path<br>[956, 1165, 8]"]
233["Segment<br>[956, 1165, 8]"]
234[Solid2d]
end
subgraph path240 [Path]
240["Path<br>[1441, 1630, 8]"]
241["Segment<br>[1441, 1630, 8]"]
240["Path<br>[1375, 1564, 8]"]
241["Segment<br>[1375, 1564, 8]"]
242[Solid2d]
end
subgraph path255 [Path]
255["Path<br>[2056, 2342, 8]"]
256["Segment<br>[2056, 2342, 8]"]
255["Path<br>[1990, 2276, 8]"]
256["Segment<br>[1990, 2276, 8]"]
257[Solid2d]
end
subgraph path264 [Path]
264["Path<br>[2446, 2730, 8]"]
265["Segment<br>[2446, 2730, 8]"]
264["Path<br>[2380, 2664, 8]"]
265["Segment<br>[2380, 2664, 8]"]
266[Solid2d]
end
subgraph path273 [Path]
273["Path<br>[2889, 2927, 8]"]
274["Segment<br>[2889, 2927, 8]"]
273["Path<br>[2823, 2861, 8]"]
274["Segment<br>[2823, 2861, 8]"]
275[Solid2d]
end
subgraph path282 [Path]
282["Path<br>[3062, 3287, 8]"]
283["Segment<br>[3293, 3361, 8]"]
284["Segment<br>[3367, 3510, 8]"]
285["Segment<br>[3516, 3584, 8]"]
286["Segment<br>[3590, 3666, 8]"]
287["Segment<br>[3672, 3748, 8]"]
288["Segment<br>[3754, 3828, 8]"]
289["Segment<br>[3834, 3890, 8]"]
290["Segment<br>[3896, 3903, 8]"]
282["Path<br>[2996, 3221, 8]"]
283["Segment<br>[3227, 3295, 8]"]
284["Segment<br>[3301, 3411, 8]"]
285["Segment<br>[3417, 3485, 8]"]
286["Segment<br>[3491, 3567, 8]"]
287["Segment<br>[3573, 3649, 8]"]
288["Segment<br>[3655, 3729, 8]"]
289["Segment<br>[3735, 3791, 8]"]
290["Segment<br>[3797, 3804, 8]"]
291[Solid2d]
end
subgraph path316 [Path]
316["Path<br>[4037, 4262, 8]"]
317["Segment<br>[4268, 4338, 8]"]
318["Segment<br>[4344, 4492, 8]"]
319["Segment<br>[4498, 4568, 8]"]
320["Segment<br>[4574, 4652, 8]"]
321["Segment<br>[4658, 4736, 8]"]
322["Segment<br>[4742, 4818, 8]"]
323["Segment<br>[4824, 4880, 8]"]
324["Segment<br>[4886, 4893, 8]"]
316["Path<br>[3938, 4163, 8]"]
317["Segment<br>[4169, 4239, 8]"]
318["Segment<br>[4245, 4360, 8]"]
319["Segment<br>[4366, 4436, 8]"]
320["Segment<br>[4442, 4520, 8]"]
321["Segment<br>[4526, 4604, 8]"]
322["Segment<br>[4610, 4686, 8]"]
323["Segment<br>[4692, 4748, 8]"]
324["Segment<br>[4754, 4761, 8]"]
325[Solid2d]
end
1["Plane<br>[201, 218, 5]"]
@ -207,7 +207,7 @@ flowchart LR
72["SweepEdge Opposite"]
73["SweepEdge Adjacent"]
74["Plane<br>[464, 487, 6]"]
82["Sweep Extrusion<br>[811, 841, 6]"]
82["Sweep Extrusion<br>[778, 808, 6]"]
83[Wall]
84[Wall]
85[Wall]
@ -222,35 +222,35 @@ flowchart LR
94["SweepEdge Adjacent"]
95["SweepEdge Opposite"]
96["SweepEdge Adjacent"]
100["Sweep Extrusion<br>[1087, 1119, 6]"]
100["Sweep Extrusion<br>[1054, 1086, 6]"]
101[Wall]
102["Cap End"]
103["SweepEdge Opposite"]
104["SweepEdge Adjacent"]
108["Sweep Extrusion<br>[1662, 1694, 6]"]
108["Sweep Extrusion<br>[1629, 1661, 6]"]
109[Wall]
110["Cap End"]
111["SweepEdge Opposite"]
112["SweepEdge Adjacent"]
113["Sweep Extrusion<br>[1662, 1694, 6]"]
114["Sweep Extrusion<br>[1662, 1694, 6]"]
115["Sweep Extrusion<br>[1662, 1694, 6]"]
119["Sweep Extrusion<br>[1939, 1972, 6]"]
113["Sweep Extrusion<br>[1629, 1661, 6]"]
114["Sweep Extrusion<br>[1629, 1661, 6]"]
115["Sweep Extrusion<br>[1629, 1661, 6]"]
119["Sweep Extrusion<br>[1906, 1939, 6]"]
120[Wall]
121["Cap End"]
122["SweepEdge Opposite"]
123["SweepEdge Adjacent"]
124["Plane<br>[2121, 2144, 6]"]
128["Sweep Extrusion<br>[2192, 2223, 6]"]
124["Plane<br>[2088, 2111, 6]"]
128["Sweep Extrusion<br>[2159, 2190, 6]"]
129[Wall]
130["Cap Start"]
131["Cap End"]
132["SweepEdge Opposite"]
133["SweepEdge Adjacent"]
134["EdgeCut Fillet<br>[321, 383, 6]"]
135["EdgeCut Fillet<br>[1978, 2040, 6]"]
135["EdgeCut Fillet<br>[1945, 2007, 6]"]
136["Plane<br>[222, 245, 7]"]
144["Sweep Extrusion<br>[785, 833, 7]"]
144["Sweep Extrusion<br>[719, 767, 7]"]
145[Wall]
146[Wall]
147[Wall]
@ -265,43 +265,43 @@ flowchart LR
156["SweepEdge Adjacent"]
157["SweepEdge Opposite"]
158["SweepEdge Adjacent"]
162["Sweep Extrusion<br>[971, 1004, 7]"]
162["Sweep Extrusion<br>[905, 938, 7]"]
163[Wall]
164["Cap End"]
165["SweepEdge Opposite"]
166["SweepEdge Adjacent"]
170["Sweep Extrusion<br>[1353, 1383, 7]"]
170["Sweep Extrusion<br>[1287, 1317, 7]"]
171[Wall]
172["Cap End"]
173["SweepEdge Opposite"]
174["SweepEdge Adjacent"]
178["Sweep Extrusion<br>[1743, 1776, 7]"]
178["Sweep Extrusion<br>[1677, 1710, 7]"]
179[Wall]
180["Cap End"]
181["SweepEdge Opposite"]
182["SweepEdge Adjacent"]
183["Sweep Extrusion<br>[1743, 1776, 7]"]
184["Sweep Extrusion<br>[1743, 1776, 7]"]
185["Sweep Extrusion<br>[1743, 1776, 7]"]
186["Sweep Extrusion<br>[1743, 1776, 7]"]
187["Sweep Extrusion<br>[1743, 1776, 7]"]
188["Sweep Extrusion<br>[1743, 1776, 7]"]
189["Sweep Extrusion<br>[1743, 1776, 7]"]
193["Sweep Extrusion<br>[2293, 2326, 7]"]
183["Sweep Extrusion<br>[1677, 1710, 7]"]
184["Sweep Extrusion<br>[1677, 1710, 7]"]
185["Sweep Extrusion<br>[1677, 1710, 7]"]
186["Sweep Extrusion<br>[1677, 1710, 7]"]
187["Sweep Extrusion<br>[1677, 1710, 7]"]
188["Sweep Extrusion<br>[1677, 1710, 7]"]
189["Sweep Extrusion<br>[1677, 1710, 7]"]
193["Sweep Extrusion<br>[2227, 2260, 7]"]
194[Wall]
195["Cap End"]
196["SweepEdge Opposite"]
197["SweepEdge Adjacent"]
198["Sweep Extrusion<br>[2293, 2326, 7]"]
199["Sweep Extrusion<br>[2293, 2326, 7]"]
200["Sweep Extrusion<br>[2293, 2326, 7]"]
204["Sweep Extrusion<br>[2560, 2590, 7]"]
198["Sweep Extrusion<br>[2227, 2260, 7]"]
199["Sweep Extrusion<br>[2227, 2260, 7]"]
200["Sweep Extrusion<br>[2227, 2260, 7]"]
204["Sweep Extrusion<br>[2494, 2524, 7]"]
205[Wall]
206["Cap End"]
207["SweepEdge Opposite"]
208["SweepEdge Adjacent"]
209["Plane<br>[242, 265, 8]"]
217["Sweep Extrusion<br>[917, 965, 8]"]
217["Sweep Extrusion<br>[851, 899, 8]"]
218[Wall]
219[Wall]
220[Wall]
@ -316,42 +316,42 @@ flowchart LR
229["SweepEdge Adjacent"]
230["SweepEdge Opposite"]
231["SweepEdge Adjacent"]
235["Sweep Extrusion<br>[1246, 1279, 8]"]
235["Sweep Extrusion<br>[1180, 1213, 8]"]
236[Wall]
237["Cap End"]
238["SweepEdge Opposite"]
239["SweepEdge Adjacent"]
243["Sweep Extrusion<br>[1895, 1928, 8]"]
243["Sweep Extrusion<br>[1829, 1862, 8]"]
244[Wall]
245["Cap End"]
246["SweepEdge Opposite"]
247["SweepEdge Adjacent"]
248["Sweep Extrusion<br>[1895, 1928, 8]"]
249["Sweep Extrusion<br>[1895, 1928, 8]"]
250["Sweep Extrusion<br>[1895, 1928, 8]"]
251["Sweep Extrusion<br>[1895, 1928, 8]"]
252["Sweep Extrusion<br>[1895, 1928, 8]"]
253["Sweep Extrusion<br>[1895, 1928, 8]"]
254["Sweep Extrusion<br>[1895, 1928, 8]"]
258["Sweep Extrusion<br>[2356, 2389, 8]"]
248["Sweep Extrusion<br>[1829, 1862, 8]"]
249["Sweep Extrusion<br>[1829, 1862, 8]"]
250["Sweep Extrusion<br>[1829, 1862, 8]"]
251["Sweep Extrusion<br>[1829, 1862, 8]"]
252["Sweep Extrusion<br>[1829, 1862, 8]"]
253["Sweep Extrusion<br>[1829, 1862, 8]"]
254["Sweep Extrusion<br>[1829, 1862, 8]"]
258["Sweep Extrusion<br>[2290, 2323, 8]"]
259[Wall]
260["Cap Start"]
261["Cap End"]
262["SweepEdge Opposite"]
263["SweepEdge Adjacent"]
267["Sweep Extrusion<br>[2745, 2778, 8]"]
267["Sweep Extrusion<br>[2679, 2712, 8]"]
268[Wall]
269["Cap Start"]
270["Cap End"]
271["SweepEdge Opposite"]
272["SweepEdge Adjacent"]
276["Sweep Extrusion<br>[2942, 2976, 8]"]
276["Sweep Extrusion<br>[2876, 2910, 8]"]
277[Wall]
278["Cap Start"]
279["Cap End"]
280["SweepEdge Opposite"]
281["SweepEdge Adjacent"]
292["Sweep Extrusion<br>[3918, 3951, 8]"]
292["Sweep Extrusion<br>[3819, 3852, 8]"]
293[Wall]
294[Wall]
295[Wall]
@ -375,7 +375,7 @@ flowchart LR
313["SweepEdge Adjacent"]
314["SweepEdge Opposite"]
315["SweepEdge Adjacent"]
326["Sweep Extrusion<br>[4895, 4928, 8]"]
326["Sweep Extrusion<br>[4763, 4796, 8]"]
327[Wall]
328[Wall]
329[Wall]
@ -403,21 +403,21 @@ flowchart LR
351["StartSketchOnFace<br>[1368, 1405, 5]"]
352["StartSketchOnFace<br>[1542, 1579, 5]"]
353["StartSketchOnFace<br>[1933, 1970, 5]"]
354["StartSketchOnFace<br>[855, 892, 6]"]
355["StartSketchOnFace<br>[1239, 1276, 6]"]
356["StartSketchOnFace<br>[1708, 1745, 6]"]
357["StartSketchOnFace<br>[847, 886, 7]"]
358["StartSketchOnFace<br>[1085, 1124, 7]"]
359["StartSketchOnFace<br>[1503, 1540, 7]"]
360["StartSketchOnFace<br>[1790, 1827, 7]"]
361["StartSketchOnFace<br>[2340, 2377, 7]"]
362["StartSketchOnFace<br>[979, 1016, 8]"]
363["StartSketchOnFace<br>[1398, 1435, 8]"]
364["StartSketchOnFace<br>[2011, 2050, 8]"]
365["StartSketchOnFace<br>[2403, 2440, 8]"]
366["StartSketchOnFace<br>[2844, 2883, 8]"]
367["StartSketchOnFace<br>[3017, 3056, 8]"]
368["StartSketchOnFace<br>[3992, 4031, 8]"]
354["StartSketchOnFace<br>[822, 859, 6]"]
355["StartSketchOnFace<br>[1206, 1243, 6]"]
356["StartSketchOnFace<br>[1675, 1712, 6]"]
357["StartSketchOnFace<br>[781, 820, 7]"]
358["StartSketchOnFace<br>[1019, 1058, 7]"]
359["StartSketchOnFace<br>[1437, 1474, 7]"]
360["StartSketchOnFace<br>[1724, 1761, 7]"]
361["StartSketchOnFace<br>[2274, 2311, 7]"]
362["StartSketchOnFace<br>[913, 950, 8]"]
363["StartSketchOnFace<br>[1332, 1369, 8]"]
364["StartSketchOnFace<br>[1945, 1984, 8]"]
365["StartSketchOnFace<br>[2337, 2374, 8]"]
366["StartSketchOnFace<br>[2778, 2817, 8]"]
367["StartSketchOnFace<br>[2951, 2990, 8]"]
368["StartSketchOnFace<br>[3893, 3932, 8]"]
1 --- 2
2 --- 3
2 --- 4

View File

@ -3,57 +3,57 @@ flowchart LR
subgraph path2 [Path]
2["Path<br>[538, 581, 0]"]
3["Segment<br>[587, 640, 0]"]
4["Segment<br>[646, 748, 0]"]
5["Segment<br>[754, 807, 0]"]
6["Segment<br>[813, 860, 0]"]
7["Segment<br>[866, 961, 0]"]
8["Segment<br>[967, 1038, 0]"]
9["Segment<br>[1044, 1095, 0]"]
10["Segment<br>[1101, 1154, 0]"]
11["Segment<br>[1160, 1229, 0]"]
12["Segment<br>[1235, 1271, 0]"]
13["Segment<br>[1277, 1307, 0]"]
14["Segment<br>[1313, 1343, 0]"]
15["Segment<br>[1349, 1379, 0]"]
16["Segment<br>[1385, 1415, 0]"]
17["Segment<br>[1421, 1450, 0]"]
18["Segment<br>[1456, 1486, 0]"]
19["Segment<br>[1492, 1521, 0]"]
20["Segment<br>[1527, 1556, 0]"]
21["Segment<br>[1562, 1658, 0]"]
22["Segment<br>[1664, 1720, 0]"]
23["Segment<br>[1726, 1733, 0]"]
4["Segment<br>[646, 757, 0]"]
5["Segment<br>[763, 816, 0]"]
6["Segment<br>[822, 869, 0]"]
7["Segment<br>[875, 970, 0]"]
8["Segment<br>[976, 1047, 0]"]
9["Segment<br>[1053, 1104, 0]"]
10["Segment<br>[1110, 1163, 0]"]
11["Segment<br>[1169, 1238, 0]"]
12["Segment<br>[1244, 1280, 0]"]
13["Segment<br>[1286, 1316, 0]"]
14["Segment<br>[1322, 1352, 0]"]
15["Segment<br>[1358, 1388, 0]"]
16["Segment<br>[1394, 1424, 0]"]
17["Segment<br>[1430, 1459, 0]"]
18["Segment<br>[1465, 1495, 0]"]
19["Segment<br>[1501, 1530, 0]"]
20["Segment<br>[1536, 1565, 0]"]
21["Segment<br>[1571, 1634, 0]"]
22["Segment<br>[1640, 1696, 0]"]
23["Segment<br>[1702, 1709, 0]"]
24[Solid2d]
end
subgraph path85 [Path]
85["Path<br>[1893, 1937, 0]"]
86["Segment<br>[1943, 2023, 0]"]
87["Segment<br>[2029, 2139, 0]"]
88["Segment<br>[2145, 2262, 0]"]
89["Segment<br>[2268, 2324, 0]"]
90["Segment<br>[2330, 2337, 0]"]
85["Path<br>[1869, 1913, 0]"]
86["Segment<br>[1919, 1999, 0]"]
87["Segment<br>[2005, 2115, 0]"]
88["Segment<br>[2121, 2238, 0]"]
89["Segment<br>[2244, 2300, 0]"]
90["Segment<br>[2306, 2313, 0]"]
91[Solid2d]
end
subgraph path107 [Path]
107["Path<br>[2498, 2543, 0]"]
108["Segment<br>[2549, 2627, 0]"]
109["Segment<br>[2633, 2743, 0]"]
110["Segment<br>[2749, 2866, 0]"]
111["Segment<br>[2872, 2928, 0]"]
112["Segment<br>[2934, 2941, 0]"]
107["Path<br>[2474, 2519, 0]"]
108["Segment<br>[2525, 2603, 0]"]
109["Segment<br>[2609, 2719, 0]"]
110["Segment<br>[2725, 2842, 0]"]
111["Segment<br>[2848, 2904, 0]"]
112["Segment<br>[2910, 2917, 0]"]
113[Solid2d]
end
subgraph path129 [Path]
129["Path<br>[3100, 3145, 0]"]
130["Segment<br>[3151, 3236, 0]"]
131["Segment<br>[3242, 3352, 0]"]
132["Segment<br>[3358, 3475, 0]"]
133["Segment<br>[3481, 3537, 0]"]
134["Segment<br>[3543, 3550, 0]"]
129["Path<br>[3076, 3121, 0]"]
130["Segment<br>[3127, 3212, 0]"]
131["Segment<br>[3218, 3328, 0]"]
132["Segment<br>[3334, 3451, 0]"]
133["Segment<br>[3457, 3513, 0]"]
134["Segment<br>[3519, 3526, 0]"]
135[Solid2d]
end
1["Plane<br>[515, 532, 0]"]
25["Sweep Extrusion<br>[1776, 1806, 0]"]
25["Sweep Extrusion<br>[1752, 1782, 0]"]
26[Wall]
27[Wall]
28[Wall]
@ -113,7 +113,7 @@ flowchart LR
82["SweepEdge Adjacent"]
83["SweepEdge Opposite"]
84["SweepEdge Adjacent"]
92["Sweep Extrusion<br>[2381, 2412, 0]"]
92["Sweep Extrusion<br>[2357, 2388, 0]"]
93[Wall]
94[Wall]
95[Wall]
@ -128,7 +128,7 @@ flowchart LR
104["SweepEdge Adjacent"]
105["SweepEdge Opposite"]
106["SweepEdge Adjacent"]
114["Sweep Extrusion<br>[2984, 3015, 0]"]
114["Sweep Extrusion<br>[2960, 2991, 0]"]
115[Wall]
116[Wall]
117[Wall]
@ -143,7 +143,7 @@ flowchart LR
126["SweepEdge Adjacent"]
127["SweepEdge Opposite"]
128["SweepEdge Adjacent"]
136["Sweep Extrusion<br>[3594, 3624, 0]"]
136["Sweep Extrusion<br>[3570, 3600, 0]"]
137[Wall]
138[Wall]
139[Wall]
@ -158,9 +158,9 @@ flowchart LR
148["SweepEdge Adjacent"]
149["SweepEdge Opposite"]
150["SweepEdge Adjacent"]
151["StartSketchOnFace<br>[1848, 1887, 0]"]
152["StartSketchOnFace<br>[2453, 2492, 0]"]
153["StartSketchOnFace<br>[3057, 3094, 0]"]
151["StartSketchOnFace<br>[1824, 1863, 0]"]
152["StartSketchOnFace<br>[2429, 2468, 0]"]
153["StartSketchOnFace<br>[3033, 3070, 0]"]
1 --- 2
2 --- 3
2 --- 4

View File

@ -756,127 +756,112 @@ description: Result of parsing router-template-cross-bar.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"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"
}
}
},
{
"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": {
"commentStart": 0,
"end": 0,
"raw": "10",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 10.0,
"suffix": "None"
}
},
"operator": "+",
"right": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "templateGap",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
}
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"arg": {
"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,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
}
},
{
"commentStart": 0,
"end": 0,
"start": 0,
"type": "TagDeclarator",
"type": "TagDeclarator",
"value": "seg09"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"left": {
"commentStart": 0,
"end": 0,
"raw": "10",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 10.0,
"suffix": "None"
}
},
"operator": "+",
"right": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "templateGap",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "tag",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"start": 0,
"type": "TagDeclarator",
"type": "TagDeclarator",
"value": "seg09"
}
}
],
"callee": {
@ -897,8 +882,9 @@ description: Result of parsing router-template-cross-bar.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
@ -2351,119 +2337,94 @@ description: Result of parsing router-template-cross-bar.kcl
{
"arguments": [
{
"commentStart": 0,
"end": 0,
"properties": [
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"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"
}
}
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"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"
}
}
},
{
"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": {
"commentStart": 0,
"end": 0,
"raw": "10",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 10.0,
"suffix": "None"
}
},
"operator": "+",
"right": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "templateGap",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
}
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleStart",
"start": 0,
"type": "Identifier"
},
"arg": {
"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,
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angleEnd",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"raw": "90",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 90.0,
"suffix": "None"
}
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"left": {
"commentStart": 0,
"end": 0,
"raw": "10",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 10.0,
"suffix": "None"
}
},
"operator": "+",
"right": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "templateGap",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
}
}
],
"callee": {
@ -2484,8 +2445,9 @@ description: Result of parsing router-template-cross-bar.kcl
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [

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