Move axes to std constants; move helix, revolve, and mirror2d to be declated in KCL
Signed-off-by: Nick Cameron <nrc@ncameron.org>
This commit is contained in:
@ -54,7 +54,7 @@ example = extrude(exampleSketch, length = 5)
|
|||||||
// Add color to a revolved solid.
|
// Add color to a revolved solid.
|
||||||
sketch001 = startSketchOn(XY)
|
sketch001 = startSketchOn(XY)
|
||||||
|> circle(center = [15, 0], radius = 5)
|
|> circle(center = [15, 0], radius = 5)
|
||||||
|> revolve(angle = 360, axis = 'y')
|
|> revolve(angle = 360, axis = Y)
|
||||||
|> appearance(color = '#ff0000', metalness = 90, roughness = 90)
|
|> appearance(color = '#ff0000', metalness = 90, roughness = 90)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -9,9 +9,12 @@ layout: manual
|
|||||||
|
|
||||||
### `std`
|
### `std`
|
||||||
|
|
||||||
|
- [`X`](/docs/kcl/consts/std-X)
|
||||||
- [`XY`](/docs/kcl/consts/std-XY)
|
- [`XY`](/docs/kcl/consts/std-XY)
|
||||||
- [`XZ`](/docs/kcl/consts/std-XZ)
|
- [`XZ`](/docs/kcl/consts/std-XZ)
|
||||||
|
- [`Y`](/docs/kcl/consts/std-Y)
|
||||||
- [`YZ`](/docs/kcl/consts/std-YZ)
|
- [`YZ`](/docs/kcl/consts/std-YZ)
|
||||||
|
- [`Z`](/docs/kcl/consts/std-Z)
|
||||||
|
|
||||||
### `std::math`
|
### `std::math`
|
||||||
|
|
||||||
|
15
docs/kcl/consts/std-X.md
Normal file
15
docs/kcl/consts/std-X.md
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
title: "std::X"
|
||||||
|
excerpt: ""
|
||||||
|
layout: manual
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```js
|
||||||
|
std::X
|
||||||
|
```
|
||||||
|
|
||||||
|
|
15
docs/kcl/consts/std-Y.md
Normal file
15
docs/kcl/consts/std-Y.md
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
title: "std::Y"
|
||||||
|
excerpt: ""
|
||||||
|
layout: manual
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```js
|
||||||
|
std::Y
|
||||||
|
```
|
||||||
|
|
||||||
|
|
15
docs/kcl/consts/std-Z.md
Normal file
15
docs/kcl/consts/std-Z.md
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
title: "std::Z"
|
||||||
|
excerpt: ""
|
||||||
|
layout: manual
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```js
|
||||||
|
std::Z
|
||||||
|
```
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
@ -22,6 +22,8 @@ layout: manual
|
|||||||
* [`string`](kcl/types/string)
|
* [`string`](kcl/types/string)
|
||||||
* [`tag`](kcl/types/tag)
|
* [`tag`](kcl/types/tag)
|
||||||
* **std**
|
* **std**
|
||||||
|
* [`Axis2d`](kcl/types/Axis2d)
|
||||||
|
* [`Axis3d`](kcl/types/Axis3d)
|
||||||
* [`Edge`](kcl/types/Edge)
|
* [`Edge`](kcl/types/Edge)
|
||||||
* [`Face`](kcl/types/Face)
|
* [`Face`](kcl/types/Face)
|
||||||
* [`Helix`](kcl/types/Helix)
|
* [`Helix`](kcl/types/Helix)
|
||||||
@ -30,9 +32,12 @@ layout: manual
|
|||||||
* [`Point3d`](kcl/types/Point3d)
|
* [`Point3d`](kcl/types/Point3d)
|
||||||
* [`Sketch`](kcl/types/Sketch)
|
* [`Sketch`](kcl/types/Sketch)
|
||||||
* [`Solid`](kcl/types/Solid)
|
* [`Solid`](kcl/types/Solid)
|
||||||
|
* [`X`](kcl/consts/std-X)
|
||||||
* [`XY`](kcl/consts/std-XY)
|
* [`XY`](kcl/consts/std-XY)
|
||||||
* [`XZ`](kcl/consts/std-XZ)
|
* [`XZ`](kcl/consts/std-XZ)
|
||||||
|
* [`Y`](kcl/consts/std-Y)
|
||||||
* [`YZ`](kcl/consts/std-YZ)
|
* [`YZ`](kcl/consts/std-YZ)
|
||||||
|
* [`Z`](kcl/consts/std-Z)
|
||||||
* [`abs`](kcl/abs)
|
* [`abs`](kcl/abs)
|
||||||
* [`acos`](kcl/acos)
|
* [`acos`](kcl/acos)
|
||||||
* [`angleToMatchLengthX`](kcl/angleToMatchLengthX)
|
* [`angleToMatchLengthX`](kcl/angleToMatchLengthX)
|
||||||
@ -69,7 +74,7 @@ layout: manual
|
|||||||
* [`getNextAdjacentEdge`](kcl/getNextAdjacentEdge)
|
* [`getNextAdjacentEdge`](kcl/getNextAdjacentEdge)
|
||||||
* [`getOppositeEdge`](kcl/getOppositeEdge)
|
* [`getOppositeEdge`](kcl/getOppositeEdge)
|
||||||
* [`getPreviousAdjacentEdge`](kcl/getPreviousAdjacentEdge)
|
* [`getPreviousAdjacentEdge`](kcl/getPreviousAdjacentEdge)
|
||||||
* [`helix`](kcl/helix)
|
* [`helix`](kcl/std-helix)
|
||||||
* [`hole`](kcl/hole)
|
* [`hole`](kcl/hole)
|
||||||
* [`hollow`](kcl/hollow)
|
* [`hollow`](kcl/hollow)
|
||||||
* [`inch`](kcl/inch)
|
* [`inch`](kcl/inch)
|
||||||
@ -88,7 +93,6 @@ layout: manual
|
|||||||
* [`map`](kcl/map)
|
* [`map`](kcl/map)
|
||||||
* [`max`](kcl/max)
|
* [`max`](kcl/max)
|
||||||
* [`min`](kcl/min)
|
* [`min`](kcl/min)
|
||||||
* [`mirror2d`](kcl/mirror2d)
|
|
||||||
* [`mm`](kcl/mm)
|
* [`mm`](kcl/mm)
|
||||||
* [`offsetPlane`](kcl/offsetPlane)
|
* [`offsetPlane`](kcl/offsetPlane)
|
||||||
* [`patternCircular2d`](kcl/patternCircular2d)
|
* [`patternCircular2d`](kcl/patternCircular2d)
|
||||||
@ -107,7 +111,7 @@ layout: manual
|
|||||||
* [`push`](kcl/push)
|
* [`push`](kcl/push)
|
||||||
* [`reduce`](kcl/reduce)
|
* [`reduce`](kcl/reduce)
|
||||||
* [`rem`](kcl/rem)
|
* [`rem`](kcl/rem)
|
||||||
* [`revolve`](kcl/revolve)
|
* [`revolve`](kcl/std-revolve)
|
||||||
* [`rotate`](kcl/rotate)
|
* [`rotate`](kcl/rotate)
|
||||||
* [`round`](kcl/round)
|
* [`round`](kcl/round)
|
||||||
* [`scale`](kcl/scale)
|
* [`scale`](kcl/scale)
|
||||||
@ -143,6 +147,7 @@ layout: manual
|
|||||||
* [`tan`](kcl/std-math-tan)
|
* [`tan`](kcl/std-math-tan)
|
||||||
* **std::sketch**
|
* **std::sketch**
|
||||||
* [`circle`](kcl/std-sketch-circle)
|
* [`circle`](kcl/std-sketch-circle)
|
||||||
|
* [`mirror2d`](kcl/std-sketch-mirror2d)
|
||||||
* **std::turns**
|
* **std::turns**
|
||||||
* [`turns::HALF_TURN`](kcl/consts/std-turns-HALF_TURN)
|
* [`turns::HALF_TURN`](kcl/consts/std-turns-HALF_TURN)
|
||||||
* [`turns::QUARTER_TURN`](kcl/consts/std-turns-QUARTER_TURN)
|
* [`turns::QUARTER_TURN`](kcl/consts/std-turns-QUARTER_TURN)
|
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -146,7 +146,7 @@ exampleSketch = startSketchOn(XY)
|
|||||||
|> line(end = [-2, 0])
|
|> line(end = [-2, 0])
|
||||||
|> close()
|
|> close()
|
||||||
|
|
||||||
example = revolve(exampleSketch, axis = 'y', angle = 180)
|
example = revolve(exampleSketch, axis = Y, angle = 180)
|
||||||
|
|
||||||
exampleSketch002 = startSketchOn(example, 'end')
|
exampleSketch002 = startSketchOn(example, 'end')
|
||||||
|> startProfileAt([4.5, -5], %)
|
|> startProfileAt([4.5, -5], %)
|
||||||
@ -177,7 +177,7 @@ exampleSketch = startSketchOn(XY)
|
|||||||
|
|
||||||
example = revolve(
|
example = revolve(
|
||||||
exampleSketch,
|
exampleSketch,
|
||||||
axis = 'y',
|
axis = Y,
|
||||||
angle = 180,
|
angle = 180,
|
||||||
tagEnd = $end01,
|
tagEnd = $end01,
|
||||||
)
|
)
|
||||||
|
116
docs/kcl/std-helix.md
Normal file
116
docs/kcl/std-helix.md
Normal file
File diff suppressed because one or more lines are too long
246
docs/kcl/std-revolve.md
Normal file
246
docs/kcl/std-revolve.md
Normal file
File diff suppressed because one or more lines are too long
98
docs/kcl/std-sketch-mirror2d.md
Normal file
98
docs/kcl/std-sketch-mirror2d.md
Normal file
File diff suppressed because one or more lines are too long
17412
docs/kcl/std.json
17412
docs/kcl/std.json
File diff suppressed because it is too large
Load Diff
@ -74,7 +74,7 @@ helixPath = helix(
|
|||||||
revolutions = 4,
|
revolutions = 4,
|
||||||
length = 10,
|
length = 10,
|
||||||
radius = 5,
|
radius = 5,
|
||||||
axis = 'Z',
|
axis = Z,
|
||||||
)
|
)
|
||||||
|
|
||||||
// Create a spring by sweeping around the helix path.
|
// Create a spring by sweeping around the helix path.
|
||||||
|
12
docs/kcl/types/Axis2d.md
Normal file
12
docs/kcl/types/Axis2d.md
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
title: "std::Axis2d"
|
||||||
|
excerpt: "An infinte line in 2d space."
|
||||||
|
layout: manual
|
||||||
|
---
|
||||||
|
|
||||||
|
An infinte line in 2d space.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
12
docs/kcl/types/Axis3d.md
Normal file
12
docs/kcl/types/Axis3d.md
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
title: "std::Axis3d"
|
||||||
|
excerpt: "An infinte line in 3d space."
|
||||||
|
layout: manual
|
||||||
|
---
|
||||||
|
|
||||||
|
An infinte line in 3d space.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -21,7 +21,7 @@ sketch001 = startSketchOn(XZ)
|
|||||||
|> angledLine([-45, length001], %)
|
|> angledLine([-45, length001], %)
|
||||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|> close()
|
|> close()
|
||||||
revolve001 = revolve(sketch001, axis = "X")
|
revolve001 = revolve(sketch001, axis = X)
|
||||||
triangle()
|
triangle()
|
||||||
|> extrude(length = 30)
|
|> extrude(length = 30)
|
||||||
plane001 = offsetPlane(XY, offset = 10)
|
plane001 = offsetPlane(XY, offset = 10)
|
||||||
@ -126,7 +126,7 @@ test.describe('Feature Tree pane', () => {
|
|||||||
await testViewSource({
|
await testViewSource({
|
||||||
operationName: 'Revolve',
|
operationName: 'Revolve',
|
||||||
operationIndex: 0,
|
operationIndex: 0,
|
||||||
expectedActiveLine: 'revolve001 = revolve(sketch001, axis = "X")',
|
expectedActiveLine: 'revolve001 = revolve(sketch001, axis = X)',
|
||||||
})
|
})
|
||||||
await testViewSource({
|
await testViewSource({
|
||||||
operationName: 'Triangle',
|
operationName: 'Triangle',
|
||||||
|
@ -3469,7 +3469,7 @@ segAng(rectangleSegmentA002),
|
|||||||
await cmdBar.progressCmdBar()
|
await cmdBar.progressCmdBar()
|
||||||
await cmdBar.progressCmdBar()
|
await cmdBar.progressCmdBar()
|
||||||
|
|
||||||
const newCodeToFind = `revolve001 = revolve(sketch002, angle = 360, axis = 'X')`
|
const newCodeToFind = `revolve001 = revolve(sketch002, angle = 360, axis = X)`
|
||||||
expect(editor.expectEditor.toContain(newCodeToFind)).toBeTruthy()
|
expect(editor.expectEditor.toContain(newCodeToFind)).toBeTruthy()
|
||||||
})
|
})
|
||||||
test('revolve surface around edge from an extruded solid2d', async ({
|
test('revolve surface around edge from an extruded solid2d', async ({
|
||||||
|
@ -674,7 +674,7 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
|
|||||||
|> line(end = [12.73, -0.09])
|
|> line(end = [12.73, -0.09])
|
||||||
|> tangentialArcTo([24.95, -5.38], %)
|
|> tangentialArcTo([24.95, -5.38], %)
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = "X")`
|
|> revolve(axis = X)`
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -761,7 +761,7 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
|
|||||||
|> tangentialArcTo([24.95, -5.38], %)
|
|> tangentialArcTo([24.95, -5.38], %)
|
||||||
|> line(end = [1.97, 2.06])
|
|> line(end = [1.97, 2.06])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = "X")`)
|
|> revolve(axis = X)`)
|
||||||
})
|
})
|
||||||
test('Can add multiple sketches', async ({ page, homePage }) => {
|
test('Can add multiple sketches', async ({ page, homePage }) => {
|
||||||
const u = await getUtils(page)
|
const u = await getUtils(page)
|
||||||
@ -1209,7 +1209,7 @@ profile001 = startProfileAt([${roundOff(scale * 69.6)}, ${roundOff(
|
|||||||
|> xLine(endAbsolute = 0 + .001)
|
|> xLine(endAbsolute = 0 + .001)
|
||||||
|> yLine(endAbsolute = 0)
|
|> yLine(endAbsolute = 0)
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = "Y")
|
|> revolve(axis = Y)
|
||||||
|
|
||||||
return lugSketch
|
return lugSketch
|
||||||
}
|
}
|
||||||
|
@ -319,7 +319,7 @@ part009 = startSketchOn(XY)
|
|||||||
|> line(end = [0, pipeLength])
|
|> line(end = [0, pipeLength])
|
||||||
|> angledLineToX({ angle = 60, to = pipeLargeDia }, %)
|
|> angledLineToX({ angle = 60, to = pipeLargeDia }, %)
|
||||||
|> close()
|
|> close()
|
||||||
rev = revolve(part009, axis = 'y')
|
rev = revolve(part009, axis = Y)
|
||||||
sketch006 = startSketchOn(XY)
|
sketch006 = startSketchOn(XY)
|
||||||
profile001 = circle(
|
profile001 = circle(
|
||||||
sketch006,
|
sketch006,
|
||||||
@ -376,7 +376,7 @@ profile003 = startProfileAt([40.16, -120.48], sketch006)
|
|||||||
await page.waitForTimeout(200)
|
await page.waitForTimeout(200)
|
||||||
|
|
||||||
await expect(u.codeLocator).not.toContainText(
|
await expect(u.codeLocator).not.toContainText(
|
||||||
`rev = revolve(part009, axis: 'y')`
|
`rev = revolve(part009, axis: Y)`
|
||||||
)
|
)
|
||||||
|
|
||||||
// FIXME (commented section below), this test would select a wall that had a sketch on it, and delete the underlying extrude
|
// FIXME (commented section below), this test would select a wall that had a sketch on it, and delete the underlying extrude
|
||||||
|
@ -35,7 +35,7 @@ ballsSketch = startSketchOn(XY)
|
|||||||
|> close()
|
|> close()
|
||||||
|
|
||||||
// Revolve the ball to make a sphere and pattern around the inside wall
|
// Revolve the ball to make a sphere and pattern around the inside wall
|
||||||
balls = revolve(ballsSketch, axis = "X")
|
balls = revolve(ballsSketch, axis = X)
|
||||||
|> patternCircular3d(
|
|> patternCircular3d(
|
||||||
arcDegrees = 360,
|
arcDegrees = 360,
|
||||||
axis = [0, 0, 1],
|
axis = [0, 0, 1],
|
||||||
@ -60,7 +60,7 @@ chainSketch = startSketchOn(XY)
|
|||||||
|> close()
|
|> close()
|
||||||
|
|
||||||
// Revolve the chain sketch
|
// Revolve the chain sketch
|
||||||
chainHead = revolve(chainSketch, axis = "X")
|
chainHead = revolve(chainSketch, axis = X)
|
||||||
|> patternCircular3d(
|
|> patternCircular3d(
|
||||||
arcDegrees = 360,
|
arcDegrees = 360,
|
||||||
axis = [0, 0, 1],
|
axis = [0, 0, 1],
|
||||||
@ -80,7 +80,7 @@ linkSketch = startSketchOn(XZ)
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Revolve the link sketch
|
// Revolve the link sketch
|
||||||
linkRevolve = revolve(linkSketch, axis = 'Y', angle = 360 / nBalls)
|
linkRevolve = revolve(linkSketch, axis = Y, angle = 360 / nBalls)
|
||||||
|> patternCircular3d(
|
|> patternCircular3d(
|
||||||
arcDegrees = 360,
|
arcDegrees = 360,
|
||||||
axis = [0, 0, 1],
|
axis = [0, 0, 1],
|
||||||
|
@ -80,5 +80,5 @@ brakeCaliperSketch = startSketchOn(XY)
|
|||||||
|> close()
|
|> close()
|
||||||
|
|
||||||
// Revolve the brake caliper sketch
|
// Revolve the brake caliper sketch
|
||||||
revolve(brakeCaliperSketch, axis = "Y", angle = -70)
|
revolve(brakeCaliperSketch, axis = Y, angle = -70)
|
||||||
|> appearance(color = "#c82d2d", metalness = 90, roughness = 90)
|
|> appearance(color = "#c82d2d", metalness = 90, roughness = 90)
|
||||||
|
@ -41,5 +41,5 @@ tireSketch = startSketchOn(XY)
|
|||||||
|> close()
|
|> close()
|
||||||
|
|
||||||
// Revolve the sketch to create the tire
|
// Revolve the sketch to create the tire
|
||||||
revolve(tireSketch, axis = "Y")
|
revolve(tireSketch, axis = Y)
|
||||||
|> appearance(color = "#0f0f0f", roughness = 80)
|
|> appearance(color = "#0f0f0f", roughness = 80)
|
||||||
|
@ -54,7 +54,7 @@ wheelCenterInner = startSketchOn(XY)
|
|||||||
|> yLine(endAbsolute = 0)
|
|> yLine(endAbsolute = 0)
|
||||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = 'y')
|
|> revolve(axis = Y)
|
||||||
|> appearance(color = "#ffffff", metalness = 0, roughness = 0)
|
|> appearance(color = "#ffffff", metalness = 0, roughness = 0)
|
||||||
|
|
||||||
wheelCenterOuter = startSketchOn(XY)
|
wheelCenterOuter = startSketchOn(XY)
|
||||||
@ -68,7 +68,7 @@ wheelCenterOuter = startSketchOn(XY)
|
|||||||
|> yLine(endAbsolute = -wheelWidth / 20)
|
|> yLine(endAbsolute = -wheelWidth / 20)
|
||||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = 'y')
|
|> revolve(axis = Y)
|
||||||
|> appearance(color = "#ffffff", metalness = 0, roughness = 0)
|
|> appearance(color = "#ffffff", metalness = 0, roughness = 0)
|
||||||
|
|
||||||
// Write a function that defines the spoke geometry, patterns and extrudes it
|
// Write a function that defines the spoke geometry, patterns and extrudes it
|
||||||
@ -173,5 +173,5 @@ startSketchOn(XY)
|
|||||||
|> xLine(length = wheelWidth * 0.03)
|
|> xLine(length = wheelWidth * 0.03)
|
||||||
|> yLine(length = wheelWidth * 0.05)
|
|> yLine(length = wheelWidth * 0.05)
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = 'y')
|
|> revolve(axis = Y)
|
||||||
|> appearance(color = "#ffffff", metalness = 0, roughness = 0)
|
|> appearance(color = "#ffffff", metalness = 0, roughness = 0)
|
||||||
|
@ -32,7 +32,7 @@ fn lug(plane, length, diameter) {
|
|||||||
|> xLine(endAbsolute = lugThreadDiameter)
|
|> xLine(endAbsolute = lugThreadDiameter)
|
||||||
|> yLine(endAbsolute = 0)
|
|> yLine(endAbsolute = 0)
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = "Y")
|
|> revolve(axis = Y)
|
||||||
|> appearance(color = "#dbcd70", roughness = 90, metalness = 90)
|
|> appearance(color = "#dbcd70", roughness = 90, metalness = 90)
|
||||||
return lugSketch
|
return lugSketch
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,7 @@ sketch001 = startSketchOn(XZ)
|
|||||||
], %, $rectangleSegmentC001)
|
], %, $rectangleSegmentC001)
|
||||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(angle = 360, axis = 'Y')
|
|> revolve(angle = 360, axis = Y)
|
||||||
|
|
||||||
// Create an angled plane to sketch the supports
|
// Create an angled plane to sketch the supports
|
||||||
plane001 = {
|
plane001 = {
|
||||||
@ -132,7 +132,7 @@ sketch005 = startSketchOn(XZ)
|
|||||||
|> xLine(endAbsolute = 0.15)
|
|> xLine(endAbsolute = 0.15)
|
||||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = 'y')
|
|> revolve(axis = Y)
|
||||||
|
|
||||||
// Plunger and stem
|
// Plunger and stem
|
||||||
sketch006 = startSketchOn(XZ)
|
sketch006 = startSketchOn(XZ)
|
||||||
@ -145,7 +145,7 @@ sketch006 = startSketchOn(XZ)
|
|||||||
|> tangentialArc({ radius = 0.6, offset = -90 }, %)
|
|> tangentialArc({ radius = 0.6, offset = -90 }, %)
|
||||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = 'y')
|
|> revolve(axis = Y)
|
||||||
|
|
||||||
// Spiral plate
|
// Spiral plate
|
||||||
sketch007 = startSketchOn(offsetPlane(XY, offset = 1.12))
|
sketch007 = startSketchOn(offsetPlane(XY, offset = 1.12))
|
||||||
@ -201,7 +201,7 @@ sketch011 = startSketchOn(XZ)
|
|||||||
}, %)
|
}, %)
|
||||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = 'y')
|
|> revolve(axis = Y)
|
||||||
|
|
||||||
// Draw and extrude handle
|
// Draw and extrude handle
|
||||||
sketch012 = startSketchOn(offsetPlane(XZ, offset = handleThickness / 2))
|
sketch012 = startSketchOn(offsetPlane(XZ, offset = handleThickness / 2))
|
||||||
|
@ -48,10 +48,8 @@ sides = patternCircular3d(
|
|||||||
|
|
||||||
// define an axis axis000
|
// define an axis axis000
|
||||||
axis000 = {
|
axis000 = {
|
||||||
custom = {
|
direction = [0.0, 1.0],
|
||||||
axis = [0.0, 1.0],
|
|
||||||
origin = [cornerRadius, cornerRadius]
|
origin = [cornerRadius, cornerRadius]
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// create a single corner of the bin
|
// create a single corner of the bin
|
||||||
|
@ -45,10 +45,8 @@ sides = patternCircular3d(
|
|||||||
|
|
||||||
// define an axis axis000
|
// define an axis axis000
|
||||||
axis000 = {
|
axis000 = {
|
||||||
custom = {
|
direction = [0.0, 1.0],
|
||||||
axis = [0.0, 1.0],
|
|
||||||
origin = [cornerRadius, cornerRadius]
|
origin = [cornerRadius, cornerRadius]
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// create a single corner of the bin
|
// create a single corner of the bin
|
||||||
|
@ -65,13 +65,11 @@ sides = patternCircular3d(
|
|||||||
|
|
||||||
// define an axis axis000
|
// define an axis axis000
|
||||||
axis000 = {
|
axis000 = {
|
||||||
custom = {
|
direction = [0.0, 1.0],
|
||||||
axis = [0.0, 1.0],
|
|
||||||
origin = [
|
origin = [
|
||||||
cornerRadius + binTol,
|
cornerRadius + binTol,
|
||||||
cornerRadius + binTol
|
cornerRadius + binTol
|
||||||
]
|
]
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// create a single corner of the bin
|
// create a single corner of the bin
|
||||||
@ -272,10 +270,8 @@ lipWidths = patternCircular3d(
|
|||||||
|
|
||||||
// define an axis axis000
|
// define an axis axis000
|
||||||
axis001 = {
|
axis001 = {
|
||||||
custom = {
|
direction = [0.0, 1.0],
|
||||||
axis = [0.0, 1.0],
|
|
||||||
origin = [cornerRadius, cornerRadius]
|
origin = [cornerRadius, cornerRadius]
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// create a single corner of the bin
|
// create a single corner of the bin
|
||||||
|
@ -58,13 +58,11 @@ sides = patternCircular3d(
|
|||||||
|
|
||||||
// define an axis axis000
|
// define an axis axis000
|
||||||
axis000 = {
|
axis000 = {
|
||||||
custom = {
|
direction = [0.0, 1.0],
|
||||||
axis = [0.0, 1.0],
|
|
||||||
origin = [
|
origin = [
|
||||||
cornerRadius + binTol,
|
cornerRadius + binTol,
|
||||||
cornerRadius + binTol
|
cornerRadius + binTol
|
||||||
]
|
]
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// create a single corner of the bin
|
// create a single corner of the bin
|
||||||
|
@ -20,6 +20,6 @@ sketch001 = startSketchOn(-XZ)
|
|||||||
|> xLine(endAbsolute = webThickness / 2 + rootRadius)
|
|> xLine(endAbsolute = webThickness / 2 + rootRadius)
|
||||||
|> tangentialArc({ radius = rootRadius, offset = 90 }, %)
|
|> tangentialArc({ radius = rootRadius, offset = 90 }, %)
|
||||||
|> yLine(endAbsolute = 0)
|
|> yLine(endAbsolute = 0)
|
||||||
|> mirror2d({ axis = 'X' }, %)
|
|> mirror2d(axis = X)
|
||||||
|> mirror2d({ axis = 'Y' }, %)
|
|> mirror2d(axis = Y)
|
||||||
|> extrude(length = beamLength)
|
|> extrude(length = beamLength)
|
||||||
|
@ -24,4 +24,4 @@ pipeProfile = outerProfile
|
|||||||
|> hole(innerProfile, %)
|
|> hole(innerProfile, %)
|
||||||
|
|
||||||
// revolve the pipe profile at the desired angle
|
// revolve the pipe profile at the desired angle
|
||||||
pipe = revolve(pipeProfile, axis = 'Y', angle = bendAngle)
|
pipe = revolve(pipeProfile, axis = Y, angle = bendAngle)
|
||||||
|
@ -33,4 +33,4 @@ pipeSketch = startSketchOn(XY)
|
|||||||
|> close()
|
|> close()
|
||||||
|
|
||||||
// Revolve the sketch to create the pipe
|
// Revolve the sketch to create the pipe
|
||||||
pipe = revolve(pipeSketch, axis = 'y')
|
pipe = revolve(pipeSketch, axis = Y)
|
||||||
|
@ -34,10 +34,8 @@ part001 = revolve(
|
|||||||
sketch001,
|
sketch001,
|
||||||
angle = 90,
|
angle = 90,
|
||||||
axis = {
|
axis = {
|
||||||
custom = {
|
direction = [1.0, 0.0],
|
||||||
axis = [1.0, 0.0],
|
|
||||||
origin = [0.0, height + .0001]
|
origin = [0.0, height + .0001]
|
||||||
}
|
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ export fn knob() {
|
|||||||
}, %)
|
}, %)
|
||||||
|> xLine(endAbsolute = 0.0001)
|
|> xLine(endAbsolute = 0.0001)
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = "Y")
|
|> revolve(axis = Y)
|
||||||
|> appearance(color = '#D0FF01', metalness = 90, roughness = 50)
|
|> appearance(color = '#D0FF01', metalness = 90, roughness = 50)
|
||||||
|
|
||||||
return knob
|
return knob
|
||||||
|
@ -876,7 +876,7 @@ async fn kcl_test_simple_revolve() {
|
|||||||
|> line(end = [0, -5.5])
|
|> line(end = [0, -5.5])
|
||||||
|> line(end = [-2, 0])
|
|> line(end = [-2, 0])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = 'y')
|
|> revolve(axis = Y)
|
||||||
|
|
||||||
"#;
|
"#;
|
||||||
|
|
||||||
@ -896,7 +896,7 @@ async fn kcl_test_simple_revolve_uppercase() {
|
|||||||
|> line(end = [0, -5.5])
|
|> line(end = [0, -5.5])
|
||||||
|> line(end = [-2, 0])
|
|> line(end = [-2, 0])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = 'Y')
|
|> revolve(axis = Y)
|
||||||
|
|
||||||
"#;
|
"#;
|
||||||
|
|
||||||
@ -916,7 +916,7 @@ async fn kcl_test_simple_revolve_negative() {
|
|||||||
|> line(end = [0, -5.5])
|
|> line(end = [0, -5.5])
|
||||||
|> line(end = [-2, 0])
|
|> line(end = [-2, 0])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = '-Y', angle = 180)
|
|> revolve(axis = -Y, angle = 180)
|
||||||
|
|
||||||
"#;
|
"#;
|
||||||
|
|
||||||
@ -936,7 +936,7 @@ async fn kcl_test_revolve_bad_angle_low() {
|
|||||||
|> line(end = [0, -5.5])
|
|> line(end = [0, -5.5])
|
||||||
|> line(end = [-2, 0])
|
|> line(end = [-2, 0])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = 'y', angle = -455)
|
|> revolve(axis = Y, angle = -455)
|
||||||
|
|
||||||
"#;
|
"#;
|
||||||
|
|
||||||
@ -962,7 +962,7 @@ async fn kcl_test_revolve_bad_angle_high() {
|
|||||||
|> line(end = [0, -5.5])
|
|> line(end = [0, -5.5])
|
||||||
|> line(end = [-2, 0])
|
|> line(end = [-2, 0])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = 'y', angle = 455)
|
|> revolve(axis = Y, angle = 455)
|
||||||
|
|
||||||
"#;
|
"#;
|
||||||
|
|
||||||
@ -988,7 +988,7 @@ async fn kcl_test_simple_revolve_custom_angle() {
|
|||||||
|> line(end = [0, -5.5])
|
|> line(end = [0, -5.5])
|
||||||
|> line(end = [-2, 0])
|
|> line(end = [-2, 0])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = 'y', angle = 180)
|
|> revolve(axis = Y, angle = 180)
|
||||||
|
|
||||||
"#;
|
"#;
|
||||||
|
|
||||||
@ -1008,7 +1008,7 @@ async fn kcl_test_simple_revolve_custom_axis() {
|
|||||||
|> line(end = [0, -5.5])
|
|> line(end = [0, -5.5])
|
||||||
|> line(end = [-2, 0])
|
|> line(end = [-2, 0])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = {custom: {axis: [0, -1], origin: [0,0]}}, angle = 180)
|
|> revolve(axis = { direction = [0, -1], origin: [0,0] }, angle = 180)
|
||||||
|
|
||||||
"#;
|
"#;
|
||||||
|
|
||||||
@ -1106,7 +1106,7 @@ sketch001 = startSketchOn(box, "END")
|
|||||||
|> circle(center = [10,10], radius= 4 )
|
|> circle(center = [10,10], radius= 4 )
|
||||||
|> revolve(
|
|> revolve(
|
||||||
angle = -90,
|
angle = -90,
|
||||||
axis = 'y'
|
axis = Y
|
||||||
)
|
)
|
||||||
"#;
|
"#;
|
||||||
|
|
||||||
@ -1131,7 +1131,7 @@ sketch001 = startSketchOn(box, "end")
|
|||||||
|> line(end = [0, 10])
|
|> line(end = [0, 10])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(
|
|> revolve(
|
||||||
axis = 'y',
|
axis = Y,
|
||||||
angle = -90,
|
angle = -90,
|
||||||
)
|
)
|
||||||
"#;
|
"#;
|
||||||
@ -1146,7 +1146,7 @@ async fn kcl_test_basic_revolve_circle() {
|
|||||||
|> circle(center = [15, 0], radius= 5)
|
|> circle(center = [15, 0], radius= 5)
|
||||||
|> revolve(
|
|> revolve(
|
||||||
angle = 360,
|
angle = 360,
|
||||||
axis = 'y'
|
axis = Y
|
||||||
)
|
)
|
||||||
"#;
|
"#;
|
||||||
|
|
||||||
@ -1166,7 +1166,7 @@ async fn kcl_test_simple_revolve_sketch_on_edge() {
|
|||||||
|> line(end = [0, -5.5])
|
|> line(end = [0, -5.5])
|
||||||
|> line(end = [-2, 0])
|
|> line(end = [-2, 0])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = 'y', angle = 180)
|
|> revolve(axis = Y, angle = 180)
|
||||||
|
|
||||||
part002 = startSketchOn(part001, 'end')
|
part002 = startSketchOn(part001, 'end')
|
||||||
|> startProfileAt([4.5, -5], %)
|
|> startProfileAt([4.5, -5], %)
|
||||||
|
@ -23,8 +23,9 @@ use crate::{
|
|||||||
const TYPES_DIR: &str = "../../docs/kcl/types";
|
const TYPES_DIR: &str = "../../docs/kcl/types";
|
||||||
const LANG_TOPICS: [&str; 5] = ["Types", "Modules", "Settings", "Known Issues", "Constants"];
|
const LANG_TOPICS: [&str; 5] = ["Types", "Modules", "Settings", "Known Issues", "Constants"];
|
||||||
// These types are declared in std.
|
// These types are declared in std.
|
||||||
const DECLARED_TYPES: [&str; 12] = [
|
const DECLARED_TYPES: [&str; 14] = [
|
||||||
"number", "string", "tag", "bool", "Sketch", "Solid", "Plane", "Helix", "Face", "Edge", "Point2d", "Point3d",
|
"number", "string", "tag", "bool", "Sketch", "Solid", "Plane", "Helix", "Face", "Edge", "Point2d", "Point3d",
|
||||||
|
"Axis2d", "Axis3d",
|
||||||
];
|
];
|
||||||
|
|
||||||
fn init_handlebars() -> Result<handlebars::Handlebars<'static>> {
|
fn init_handlebars() -> Result<handlebars::Handlebars<'static>> {
|
||||||
|
@ -508,6 +508,7 @@ pub struct ArgData {
|
|||||||
pub ty: Option<String>,
|
pub ty: Option<String>,
|
||||||
/// If the argument is required.
|
/// If the argument is required.
|
||||||
pub kind: ArgKind,
|
pub kind: ArgKind,
|
||||||
|
pub override_in_snippet: Option<bool>,
|
||||||
/// Additional information that could be used instead of the type's description.
|
/// Additional information that could be used instead of the type's description.
|
||||||
/// This is helpful if the type is really basic, like "number" -- that won't tell the user much about
|
/// This is helpful if the type is really basic, like "number" -- that won't tell the user much about
|
||||||
/// how this argument is meant to be used.
|
/// how this argument is meant to be used.
|
||||||
@ -528,6 +529,7 @@ impl ArgData {
|
|||||||
name: arg.identifier.name.clone(),
|
name: arg.identifier.name.clone(),
|
||||||
ty: arg.type_.as_ref().map(|t| t.to_string()),
|
ty: arg.type_.as_ref().map(|t| t.to_string()),
|
||||||
docs: None,
|
docs: None,
|
||||||
|
override_in_snippet: None,
|
||||||
kind: if arg.labeled {
|
kind: if arg.labeled {
|
||||||
ArgKind::Labelled(arg.optional())
|
ArgKind::Labelled(arg.optional())
|
||||||
} else {
|
} else {
|
||||||
@ -535,26 +537,54 @@ impl ArgData {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
for attr in &arg.identifier.outer_attrs {
|
||||||
|
if let Annotation {
|
||||||
|
name: None,
|
||||||
|
properties: Some(props),
|
||||||
|
..
|
||||||
|
} = &attr.inner
|
||||||
|
{
|
||||||
|
for p in props {
|
||||||
|
match &*p.key.name {
|
||||||
|
"include_in_snippet" => {
|
||||||
|
if let Some(b) = p.value.literal_bool() {
|
||||||
|
result.override_in_snippet = Some(b);
|
||||||
|
} else {
|
||||||
|
panic!(
|
||||||
|
"Invalid value for `include_in_snippet`, expected bool literal, found {:?}",
|
||||||
|
p.value
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_ => {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
result.with_comments(&arg.identifier.pre_comments);
|
result.with_comments(&arg.identifier.pre_comments);
|
||||||
result
|
result
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_autocomplete_snippet(&self, index: usize) -> Option<(usize, String)> {
|
pub fn get_autocomplete_snippet(&self, index: usize) -> Option<(usize, String)> {
|
||||||
|
match self.override_in_snippet {
|
||||||
|
Some(false) => return None,
|
||||||
|
None if !self.kind.required() => return None,
|
||||||
|
_ => {}
|
||||||
|
}
|
||||||
|
|
||||||
let label = if self.kind == ArgKind::Special {
|
let label = if self.kind == ArgKind::Special {
|
||||||
String::new()
|
String::new()
|
||||||
} else {
|
} else {
|
||||||
format!("{} = ", self.name)
|
format!("{} = ", self.name)
|
||||||
};
|
};
|
||||||
match self.ty.as_deref() {
|
match self.ty.as_deref() {
|
||||||
Some(s) if ["Sketch", "Solid", "Plane | Face", "Sketch | Plane | Face"].contains(&s) => {
|
Some(s) if s.starts_with("number") => Some((index, format!(r#"{label}${{{}:3.14}}"#, index))),
|
||||||
Some((index, format!("{label}${{{}:{}}}", index, "%")))
|
Some("Point2d") => Some((
|
||||||
}
|
|
||||||
Some("number") if self.kind.required() => Some((index, format!(r#"{label}${{{}:3.14}}"#, index))),
|
|
||||||
Some("Point2d") if self.kind.required() => Some((
|
|
||||||
index + 1,
|
index + 1,
|
||||||
format!(r#"{label}[${{{}:3.14}}, ${{{}:3.14}}]"#, index, index + 1),
|
format!(r#"{label}[${{{}:3.14}}, ${{{}:3.14}}]"#, index, index + 1),
|
||||||
)),
|
)),
|
||||||
Some("Point3d") if self.kind.required() => Some((
|
Some("Point3d") => Some((
|
||||||
index + 2,
|
index + 2,
|
||||||
format!(
|
format!(
|
||||||
r#"{label}[${{{}:3.14}}, ${{{}:3.14}}, ${{{}:3.14}}]"#,
|
r#"{label}[${{{}:3.14}}, ${{{}:3.14}}, ${{{}:3.14}}]"#,
|
||||||
@ -563,8 +593,10 @@ impl ArgData {
|
|||||||
index + 2
|
index + 2
|
||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
Some("string") if self.kind.required() => Some((index, format!(r#"{label}${{{}:"string"}}"#, index))),
|
Some("Axis2d | Edge") | Some("Axis3d | Edge") => Some((index, format!(r#"{label}${{{}:X}}"#, index))),
|
||||||
Some("bool") if self.kind.required() => Some((index, format!(r#"{label}${{{}:false}}"#, index))),
|
|
||||||
|
Some("string") => Some((index, format!(r#"{label}${{{}:"string"}}"#, index))),
|
||||||
|
Some("bool") => Some((index, format!(r#"{label}${{{}:false}}"#, index))),
|
||||||
_ => None,
|
_ => None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1000,9 +1000,12 @@ mod tests {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn get_autocomplete_snippet_revolve() {
|
fn get_autocomplete_snippet_revolve() {
|
||||||
let revolve_fn: Box<dyn StdLibFn> = Box::new(crate::std::revolve::Revolve);
|
let data = kcl_doc::walk_prelude();
|
||||||
let snippet = revolve_fn.to_autocomplete_snippet().unwrap();
|
let DocData::Fn(revolve_fn) = data.into_iter().find(|d| d.name() == "revolve").unwrap() else {
|
||||||
assert_eq!(snippet, r#"revolve(${0:%}, axis = ${1:"X"})${}"#);
|
panic!();
|
||||||
|
};
|
||||||
|
let snippet = revolve_fn.to_autocomplete_snippet();
|
||||||
|
assert_eq!(snippet, r#"revolve(axis = ${0:X})${}"#);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -1015,7 +1018,7 @@ mod tests {
|
|||||||
let snippet = circle_fn.to_autocomplete_snippet();
|
let snippet = circle_fn.to_autocomplete_snippet();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
snippet,
|
snippet,
|
||||||
r#"circle(${0:%}, center = [${1:3.14}, ${2:3.14}], radius = ${3:3.14})${}"#
|
r#"circle(center = [${0:3.14}, ${1:3.14}], radius = ${2:3.14})${}"#
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1089,11 +1092,14 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
#[allow(clippy::literal_string_with_formatting_args)]
|
#[allow(clippy::literal_string_with_formatting_args)]
|
||||||
fn get_autocomplete_snippet_helix() {
|
fn get_autocomplete_snippet_helix() {
|
||||||
let helix_fn: Box<dyn StdLibFn> = Box::new(crate::std::helix::Helix);
|
let data = kcl_doc::walk_prelude();
|
||||||
let snippet = helix_fn.to_autocomplete_snippet().unwrap();
|
let DocData::Fn(helix_fn) = data.into_iter().find(|d| d.name() == "helix").unwrap() else {
|
||||||
|
panic!();
|
||||||
|
};
|
||||||
|
let snippet = helix_fn.to_autocomplete_snippet();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
snippet,
|
snippet,
|
||||||
r#"helix(revolutions = ${0:3.14}, angleStart = ${1:3.14}, radius = ${2:3.14}, axis = ${3:"X"}, length = ${4:3.14})${}"#
|
r#"helix(revolutions = ${0:3.14}, angleStart = ${1:3.14}, radius = ${2:3.14}, axis = ${3:X}, length = ${4:3.14})${}"#
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,6 +27,19 @@ pub enum Operation {
|
|||||||
is_error: bool,
|
is_error: bool,
|
||||||
},
|
},
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
|
KclStdLibCall {
|
||||||
|
name: String,
|
||||||
|
/// The unlabeled argument to the function.
|
||||||
|
unlabeled_arg: Option<OpArg>,
|
||||||
|
/// The labeled keyword arguments to the function.
|
||||||
|
labeled_args: IndexMap<String, OpArg>,
|
||||||
|
/// The source range of the operation in the source code.
|
||||||
|
source_range: SourceRange,
|
||||||
|
/// True if the operation resulted in an error.
|
||||||
|
#[serde(default, skip_serializing_if = "is_false")]
|
||||||
|
is_error: bool,
|
||||||
|
},
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
UserDefinedFunctionCall {
|
UserDefinedFunctionCall {
|
||||||
/// The name of the user-defined function being called. Anonymous
|
/// The name of the user-defined function being called. Anonymous
|
||||||
/// functions have no name.
|
/// functions have no name.
|
||||||
@ -49,6 +62,7 @@ impl Operation {
|
|||||||
pub(crate) fn set_std_lib_call_is_error(&mut self, is_err: bool) {
|
pub(crate) fn set_std_lib_call_is_error(&mut self, is_err: bool) {
|
||||||
match self {
|
match self {
|
||||||
Self::StdLibCall { ref mut is_error, .. } => *is_error = is_err,
|
Self::StdLibCall { ref mut is_error, .. } => *is_error = is_err,
|
||||||
|
Self::KclStdLibCall { ref mut is_error, .. } => *is_error = is_err,
|
||||||
Self::UserDefinedFunctionCall { .. } | Self::UserDefinedFunctionReturn => {}
|
Self::UserDefinedFunctionCall { .. } | Self::UserDefinedFunctionReturn => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@ use std::collections::HashMap;
|
|||||||
use async_recursion::async_recursion;
|
use async_recursion::async_recursion;
|
||||||
use indexmap::IndexMap;
|
use indexmap::IndexMap;
|
||||||
|
|
||||||
use super::kcl_value::TypeDef;
|
use super::{kcl_value::TypeDef, types::PrimitiveType};
|
||||||
use crate::{
|
use crate::{
|
||||||
engine::ExecutionKind,
|
engine::ExecutionKind,
|
||||||
errors::{KclError, KclErrorDetails},
|
errors::{KclError, KclErrorDetails},
|
||||||
@ -1031,6 +1031,15 @@ impl Node<UnaryExpression> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let value = &self.argument.get_result(exec_state, ctx).await?;
|
let value = &self.argument.get_result(exec_state, ctx).await?;
|
||||||
|
let err = || {
|
||||||
|
KclError::Semantic(KclErrorDetails {
|
||||||
|
message: format!(
|
||||||
|
"You can only negate numbers, planes, or lines, but this is a {}",
|
||||||
|
value.human_friendly_type()
|
||||||
|
),
|
||||||
|
source_ranges: vec![self.into()],
|
||||||
|
})
|
||||||
|
};
|
||||||
match value {
|
match value {
|
||||||
KclValue::Number { value, ty, .. } => {
|
KclValue::Number { value, ty, .. } => {
|
||||||
let meta = vec![Metadata {
|
let meta = vec![Metadata {
|
||||||
@ -1052,13 +1061,63 @@ impl Node<UnaryExpression> {
|
|||||||
plane.id = exec_state.next_uuid();
|
plane.id = exec_state.next_uuid();
|
||||||
Ok(KclValue::Plane { value: plane })
|
Ok(KclValue::Plane { value: plane })
|
||||||
}
|
}
|
||||||
_ => Err(KclError::Semantic(KclErrorDetails {
|
KclValue::Object { value: values, meta } => {
|
||||||
message: format!(
|
// Special-case for negating line-like objects.
|
||||||
"You can only negate numbers or planes, but this is a {}",
|
let Some(direction) = values.get("direction") else {
|
||||||
value.human_friendly_type()
|
return Err(err());
|
||||||
),
|
};
|
||||||
source_ranges: vec![self.into()],
|
|
||||||
})),
|
let direction = match direction {
|
||||||
|
KclValue::MixedArray { value: values, meta } => {
|
||||||
|
let values = values
|
||||||
|
.iter()
|
||||||
|
.map(|v| match v {
|
||||||
|
KclValue::Number { value, ty, meta } => Ok(KclValue::Number {
|
||||||
|
value: *value * -1.0,
|
||||||
|
ty: ty.clone(),
|
||||||
|
meta: meta.clone(),
|
||||||
|
}),
|
||||||
|
_ => Err(err()),
|
||||||
|
})
|
||||||
|
.collect::<Result<Vec<_>, _>>()?;
|
||||||
|
|
||||||
|
KclValue::MixedArray {
|
||||||
|
value: values,
|
||||||
|
meta: meta.clone(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
KclValue::HomArray {
|
||||||
|
value: values,
|
||||||
|
ty: ty @ RuntimeType::Primitive(PrimitiveType::Number(_)),
|
||||||
|
} => {
|
||||||
|
let values = values
|
||||||
|
.iter()
|
||||||
|
.map(|v| match v {
|
||||||
|
KclValue::Number { value, ty, meta } => Ok(KclValue::Number {
|
||||||
|
value: *value * -1.0,
|
||||||
|
ty: ty.clone(),
|
||||||
|
meta: meta.clone(),
|
||||||
|
}),
|
||||||
|
_ => Err(err()),
|
||||||
|
})
|
||||||
|
.collect::<Result<Vec<_>, _>>()?;
|
||||||
|
|
||||||
|
KclValue::HomArray {
|
||||||
|
value: values,
|
||||||
|
ty: ty.clone(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_ => return Err(err()),
|
||||||
|
};
|
||||||
|
|
||||||
|
let mut value = values.clone();
|
||||||
|
value.insert("direction".to_owned(), direction);
|
||||||
|
Ok(KclValue::Object {
|
||||||
|
value,
|
||||||
|
meta: meta.clone(),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
_ => Err(err()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2145,6 +2204,27 @@ impl FunctionSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let op = if props.include_in_feature_tree {
|
||||||
|
let op_labeled_args = args
|
||||||
|
.kw_args
|
||||||
|
.labeled
|
||||||
|
.iter()
|
||||||
|
.map(|(k, arg)| (k.clone(), OpArg::new(OpKclValue::from(&arg.value), arg.source_range)))
|
||||||
|
.collect();
|
||||||
|
Some(Operation::KclStdLibCall {
|
||||||
|
// TODO
|
||||||
|
name: String::new(),
|
||||||
|
unlabeled_arg: args
|
||||||
|
.unlabeled_kw_arg_unconverted()
|
||||||
|
.map(|arg| OpArg::new(OpKclValue::from(&arg.value), arg.source_range)),
|
||||||
|
labeled_args: op_labeled_args,
|
||||||
|
source_range: callsite,
|
||||||
|
is_error: false,
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
};
|
||||||
|
|
||||||
// Attempt to call the function.
|
// Attempt to call the function.
|
||||||
exec_state.mut_stack().push_new_env_for_rust_call();
|
exec_state.mut_stack().push_new_env_for_rust_call();
|
||||||
let mut result = {
|
let mut result = {
|
||||||
@ -2152,7 +2232,15 @@ impl FunctionSource {
|
|||||||
let result = func(exec_state, args).await;
|
let result = func(exec_state, args).await;
|
||||||
exec_state.mut_stack().pop_env();
|
exec_state.mut_stack().pop_env();
|
||||||
|
|
||||||
// TODO support recording op into the feature tree
|
if let Some(mut op) = op {
|
||||||
|
op.set_std_lib_call_is_error(result.is_err());
|
||||||
|
// Track call operation. We do this after the call
|
||||||
|
// since things like patternTransform may call user code
|
||||||
|
// before running, and we will likely want to use the
|
||||||
|
// return value. The call takes ownership of the args,
|
||||||
|
// so we need to build the op before the call.
|
||||||
|
exec_state.global.operations.push(op);
|
||||||
|
}
|
||||||
result
|
result
|
||||||
}?;
|
}?;
|
||||||
|
|
||||||
|
@ -56,6 +56,20 @@ impl RuntimeType {
|
|||||||
RuntimeType::Primitive(PrimitiveType::ImportedGeometry)
|
RuntimeType::Primitive(PrimitiveType::ImportedGeometry)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// `[number; 2]`
|
||||||
|
pub fn point2d() -> Self {
|
||||||
|
RuntimeType::Array(Box::new(RuntimeType::number_any()), ArrayLen::Known(2))
|
||||||
|
}
|
||||||
|
|
||||||
|
/// `[number; 3]`
|
||||||
|
pub fn point3d() -> Self {
|
||||||
|
RuntimeType::Array(Box::new(RuntimeType::number_any()), ArrayLen::Known(3))
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn number_any() -> Self {
|
||||||
|
RuntimeType::Primitive(PrimitiveType::Number(NumericType::Any))
|
||||||
|
}
|
||||||
|
|
||||||
pub fn from_parsed(
|
pub fn from_parsed(
|
||||||
value: Type,
|
value: Type,
|
||||||
exec_state: &mut ExecState,
|
exec_state: &mut ExecState,
|
||||||
@ -93,21 +107,27 @@ impl RuntimeType {
|
|||||||
AstPrimitiveType::Number(suffix) => RuntimeType::Primitive(PrimitiveType::Number(
|
AstPrimitiveType::Number(suffix) => RuntimeType::Primitive(PrimitiveType::Number(
|
||||||
NumericType::from_parsed(suffix, &exec_state.mod_local.settings),
|
NumericType::from_parsed(suffix, &exec_state.mod_local.settings),
|
||||||
)),
|
)),
|
||||||
AstPrimitiveType::Named(name) => {
|
AstPrimitiveType::Named(name) => Self::from_alias(&name.name, exec_state, source_range)?,
|
||||||
|
AstPrimitiveType::Tag => RuntimeType::Primitive(PrimitiveType::Tag),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn from_alias(
|
||||||
|
alias: &str,
|
||||||
|
exec_state: &mut ExecState,
|
||||||
|
source_range: SourceRange,
|
||||||
|
) -> Result<Self, CompilationError> {
|
||||||
let ty_val = exec_state
|
let ty_val = exec_state
|
||||||
.stack()
|
.stack()
|
||||||
.get(&format!("{}{}", memory::TYPE_PREFIX, name.name), source_range)
|
.get(&format!("{}{}", memory::TYPE_PREFIX, alias), source_range)
|
||||||
.map_err(|_| CompilationError::err(source_range, format!("Unknown type: {}", name.name)))?;
|
.map_err(|_| CompilationError::err(source_range, format!("Unknown type: {}", alias)))?;
|
||||||
|
|
||||||
match ty_val {
|
Ok(match ty_val {
|
||||||
KclValue::Type { value, .. } => match value {
|
KclValue::Type { value, .. } => match value {
|
||||||
TypeDef::RustRepr(ty, _) => RuntimeType::Primitive(ty.clone()),
|
TypeDef::RustRepr(ty, _) => RuntimeType::Primitive(ty.clone()),
|
||||||
TypeDef::Alias(ty) => ty.clone(),
|
TypeDef::Alias(ty) => ty.clone(),
|
||||||
},
|
},
|
||||||
_ => unreachable!(),
|
_ => unreachable!(),
|
||||||
}
|
|
||||||
}
|
|
||||||
AstPrimitiveType::Tag => RuntimeType::Primitive(PrimitiveType::Tag),
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -143,6 +163,35 @@ impl RuntimeType {
|
|||||||
(Object(t1), Object(t2)) => t2
|
(Object(t1), Object(t2)) => t2
|
||||||
.iter()
|
.iter()
|
||||||
.all(|(f, t)| t1.iter().any(|(ff, tt)| f == ff && tt.subtype(t))),
|
.all(|(f, t)| t1.iter().any(|(ff, tt)| f == ff && tt.subtype(t))),
|
||||||
|
// Equality between Axis types and there object representation.
|
||||||
|
(Object(t1), Primitive(PrimitiveType::Axis2d)) => {
|
||||||
|
t1.iter()
|
||||||
|
.any(|(n, t)| n == "origin" && t.subtype(&RuntimeType::point2d()))
|
||||||
|
&& t1
|
||||||
|
.iter()
|
||||||
|
.any(|(n, t)| n == "direction" && t.subtype(&RuntimeType::point2d()))
|
||||||
|
}
|
||||||
|
(Object(t1), Primitive(PrimitiveType::Axis3d)) => {
|
||||||
|
t1.iter()
|
||||||
|
.any(|(n, t)| n == "origin" && t.subtype(&RuntimeType::point3d()))
|
||||||
|
&& t1
|
||||||
|
.iter()
|
||||||
|
.any(|(n, t)| n == "direction" && t.subtype(&RuntimeType::point3d()))
|
||||||
|
}
|
||||||
|
(Primitive(PrimitiveType::Axis2d), Object(t2)) => {
|
||||||
|
t2.iter()
|
||||||
|
.any(|(n, t)| n == "origin" && t.subtype(&RuntimeType::point2d()))
|
||||||
|
&& t2
|
||||||
|
.iter()
|
||||||
|
.any(|(n, t)| n == "direction" && t.subtype(&RuntimeType::point2d()))
|
||||||
|
}
|
||||||
|
(Primitive(PrimitiveType::Axis3d), Object(t2)) => {
|
||||||
|
t2.iter()
|
||||||
|
.any(|(n, t)| n == "origin" && t.subtype(&RuntimeType::point3d()))
|
||||||
|
&& t2
|
||||||
|
.iter()
|
||||||
|
.any(|(n, t)| n == "direction" && t.subtype(&RuntimeType::point3d()))
|
||||||
|
}
|
||||||
_ => false,
|
_ => false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -213,11 +262,11 @@ impl ArrayLen {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// True if the length constraint is satisfied by the supplied length.
|
/// True if the length constraint is satisfied by the supplied length.
|
||||||
fn satisfied(self, len: usize) -> bool {
|
fn satisfied(self, len: usize, allow_shrink: bool) -> Option<usize> {
|
||||||
match self {
|
match self {
|
||||||
ArrayLen::None => true,
|
ArrayLen::None => Some(len),
|
||||||
ArrayLen::NonEmpty => len > 0,
|
ArrayLen::NonEmpty => (len > 0).then_some(len),
|
||||||
ArrayLen::Known(s) => len == s,
|
ArrayLen::Known(s) => (if allow_shrink { len >= s } else { len == s }).then_some(s),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -234,6 +283,8 @@ pub enum PrimitiveType {
|
|||||||
Helix,
|
Helix,
|
||||||
Face,
|
Face,
|
||||||
Edge,
|
Edge,
|
||||||
|
Axis2d,
|
||||||
|
Axis3d,
|
||||||
ImportedGeometry,
|
ImportedGeometry,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -250,6 +301,8 @@ impl PrimitiveType {
|
|||||||
PrimitiveType::Helix => "Helices".to_owned(),
|
PrimitiveType::Helix => "Helices".to_owned(),
|
||||||
PrimitiveType::Face => "Faces".to_owned(),
|
PrimitiveType::Face => "Faces".to_owned(),
|
||||||
PrimitiveType::Edge => "Edges".to_owned(),
|
PrimitiveType::Edge => "Edges".to_owned(),
|
||||||
|
PrimitiveType::Axis2d => "2d axes".to_owned(),
|
||||||
|
PrimitiveType::Axis3d => "3d axes".to_owned(),
|
||||||
PrimitiveType::ImportedGeometry => "imported geometries".to_owned(),
|
PrimitiveType::ImportedGeometry => "imported geometries".to_owned(),
|
||||||
PrimitiveType::Tag => "tags".to_owned(),
|
PrimitiveType::Tag => "tags".to_owned(),
|
||||||
}
|
}
|
||||||
@ -276,6 +329,8 @@ impl fmt::Display for PrimitiveType {
|
|||||||
PrimitiveType::Plane => write!(f, "Plane"),
|
PrimitiveType::Plane => write!(f, "Plane"),
|
||||||
PrimitiveType::Face => write!(f, "Face"),
|
PrimitiveType::Face => write!(f, "Face"),
|
||||||
PrimitiveType::Edge => write!(f, "Edge"),
|
PrimitiveType::Edge => write!(f, "Edge"),
|
||||||
|
PrimitiveType::Axis2d => write!(f, "Axis2d"),
|
||||||
|
PrimitiveType::Axis3d => write!(f, "Axis3d"),
|
||||||
PrimitiveType::Helix => write!(f, "Helix"),
|
PrimitiveType::Helix => write!(f, "Helix"),
|
||||||
PrimitiveType::ImportedGeometry => write!(f, "imported geometry"),
|
PrimitiveType::ImportedGeometry => write!(f, "imported geometry"),
|
||||||
}
|
}
|
||||||
@ -301,6 +356,10 @@ impl NumericType {
|
|||||||
NumericType::Known(UnitType::Count)
|
NumericType::Known(UnitType::Count)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn mm() -> Self {
|
||||||
|
NumericType::Known(UnitType::Length(UnitLen::Mm))
|
||||||
|
}
|
||||||
|
|
||||||
/// Combine two types when we expect them to be equal.
|
/// Combine two types when we expect them to be equal.
|
||||||
pub fn combine_eq(self, other: &NumericType) -> NumericType {
|
pub fn combine_eq(self, other: &NumericType) -> NumericType {
|
||||||
if &self == other {
|
if &self == other {
|
||||||
@ -544,7 +603,7 @@ impl KclValue {
|
|||||||
pub fn coerce(&self, ty: &RuntimeType, exec_state: &mut ExecState) -> Option<KclValue> {
|
pub fn coerce(&self, ty: &RuntimeType, exec_state: &mut ExecState) -> Option<KclValue> {
|
||||||
match ty {
|
match ty {
|
||||||
RuntimeType::Primitive(ty) => self.coerce_to_primitive_type(ty, exec_state),
|
RuntimeType::Primitive(ty) => self.coerce_to_primitive_type(ty, exec_state),
|
||||||
RuntimeType::Array(ty, len) => self.coerce_to_array_type(ty, *len, exec_state),
|
RuntimeType::Array(ty, len) => self.coerce_to_array_type(ty, *len, exec_state, false),
|
||||||
RuntimeType::Tuple(tys) => self.coerce_to_tuple_type(tys, exec_state),
|
RuntimeType::Tuple(tys) => self.coerce_to_tuple_type(tys, exec_state),
|
||||||
RuntimeType::Union(tys) => self.coerce_to_union_type(tys, exec_state),
|
RuntimeType::Union(tys) => self.coerce_to_union_type(tys, exec_state),
|
||||||
RuntimeType::Object(tys) => self.coerce_to_object_type(tys, exec_state),
|
RuntimeType::Object(tys) => self.coerce_to_object_type(tys, exec_state),
|
||||||
@ -617,6 +676,50 @@ impl KclValue {
|
|||||||
KclValue::TagIdentifier { .. } => Some(value.clone()),
|
KclValue::TagIdentifier { .. } => Some(value.clone()),
|
||||||
_ => None,
|
_ => None,
|
||||||
},
|
},
|
||||||
|
PrimitiveType::Axis2d => match value {
|
||||||
|
KclValue::Object { value: values, meta } => {
|
||||||
|
if values.get("origin")?.has_type(&RuntimeType::point2d())
|
||||||
|
&& values.get("direction")?.has_type(&RuntimeType::point2d())
|
||||||
|
{
|
||||||
|
return Some(value.clone());
|
||||||
|
}
|
||||||
|
|
||||||
|
let origin = values.get("origin").and_then(|p| {
|
||||||
|
p.coerce_to_array_type(&RuntimeType::number_any(), ArrayLen::Known(2), exec_state, true)
|
||||||
|
})?;
|
||||||
|
let direction = values.get("direction").and_then(|p| {
|
||||||
|
p.coerce_to_array_type(&RuntimeType::number_any(), ArrayLen::Known(2), exec_state, true)
|
||||||
|
})?;
|
||||||
|
|
||||||
|
Some(KclValue::Object {
|
||||||
|
value: [("origin".to_owned(), origin), ("direction".to_owned(), direction)].into(),
|
||||||
|
meta: meta.clone(),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
_ => None,
|
||||||
|
},
|
||||||
|
PrimitiveType::Axis3d => match value {
|
||||||
|
KclValue::Object { value: values, meta } => {
|
||||||
|
if values.get("origin")?.has_type(&RuntimeType::point3d())
|
||||||
|
&& values.get("direction")?.has_type(&RuntimeType::point3d())
|
||||||
|
{
|
||||||
|
return Some(value.clone());
|
||||||
|
}
|
||||||
|
|
||||||
|
let origin = values.get("origin").and_then(|p| {
|
||||||
|
p.coerce_to_array_type(&RuntimeType::number_any(), ArrayLen::Known(3), exec_state, true)
|
||||||
|
})?;
|
||||||
|
let direction = values.get("direction").and_then(|p| {
|
||||||
|
p.coerce_to_array_type(&RuntimeType::number_any(), ArrayLen::Known(3), exec_state, true)
|
||||||
|
})?;
|
||||||
|
|
||||||
|
Some(KclValue::Object {
|
||||||
|
value: [("origin".to_owned(), origin), ("direction".to_owned(), direction)].into(),
|
||||||
|
meta: meta.clone(),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
_ => None,
|
||||||
|
},
|
||||||
PrimitiveType::ImportedGeometry => match value {
|
PrimitiveType::ImportedGeometry => match value {
|
||||||
KclValue::ImportedGeometry { .. } => Some(value.clone()),
|
KclValue::ImportedGeometry { .. } => Some(value.clone()),
|
||||||
_ => None,
|
_ => None,
|
||||||
@ -629,60 +732,35 @@ impl KclValue {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn coerce_to_array_type(&self, ty: &RuntimeType, len: ArrayLen, exec_state: &mut ExecState) -> Option<KclValue> {
|
fn coerce_to_array_type(
|
||||||
|
&self,
|
||||||
|
ty: &RuntimeType,
|
||||||
|
len: ArrayLen,
|
||||||
|
exec_state: &mut ExecState,
|
||||||
|
allow_shrink: bool,
|
||||||
|
) -> Option<KclValue> {
|
||||||
match self {
|
match self {
|
||||||
KclValue::HomArray { value, ty: aty } if aty == ty => {
|
KclValue::HomArray { value, ty: aty } if aty.subtype(ty) => {
|
||||||
let value = match len {
|
len.satisfied(value.len(), allow_shrink).map(|len| KclValue::HomArray {
|
||||||
ArrayLen::None => value.clone(),
|
value: value[..len].to_vec(),
|
||||||
ArrayLen::NonEmpty => {
|
ty: aty.clone(),
|
||||||
if value.is_empty() {
|
})
|
||||||
return None;
|
|
||||||
}
|
}
|
||||||
|
value if len.satisfied(1, false).is_some() && value.has_type(ty) => Some(KclValue::HomArray {
|
||||||
value.clone()
|
|
||||||
}
|
|
||||||
ArrayLen::Known(n) => {
|
|
||||||
if n != value.len() {
|
|
||||||
return None;
|
|
||||||
}
|
|
||||||
|
|
||||||
value[..n].to_vec()
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Some(KclValue::HomArray { value, ty: ty.clone() })
|
|
||||||
}
|
|
||||||
value if len.satisfied(1) && value.has_type(ty) => Some(KclValue::HomArray {
|
|
||||||
value: vec![value.clone()],
|
value: vec![value.clone()],
|
||||||
ty: ty.clone(),
|
ty: ty.clone(),
|
||||||
}),
|
}),
|
||||||
KclValue::MixedArray { value, .. } => {
|
KclValue::MixedArray { value, .. } => {
|
||||||
let value = match len {
|
let len = len.satisfied(value.len(), allow_shrink)?;
|
||||||
ArrayLen::None => value.clone(),
|
|
||||||
ArrayLen::NonEmpty => {
|
|
||||||
if value.is_empty() {
|
|
||||||
return None;
|
|
||||||
}
|
|
||||||
|
|
||||||
value.clone()
|
let value = value[..len]
|
||||||
}
|
|
||||||
ArrayLen::Known(n) => {
|
|
||||||
if n != value.len() {
|
|
||||||
return None;
|
|
||||||
}
|
|
||||||
|
|
||||||
value[..n].to_vec()
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
let value = value
|
|
||||||
.iter()
|
.iter()
|
||||||
.map(|v| v.coerce(ty, exec_state))
|
.map(|v| v.coerce(ty, exec_state))
|
||||||
.collect::<Option<Vec<_>>>()?;
|
.collect::<Option<Vec<_>>>()?;
|
||||||
|
|
||||||
Some(KclValue::HomArray { value, ty: ty.clone() })
|
Some(KclValue::HomArray { value, ty: ty.clone() })
|
||||||
}
|
}
|
||||||
KclValue::KclNone { .. } if len.satisfied(0) => Some(KclValue::HomArray {
|
KclValue::KclNone { .. } if len.satisfied(0, false).is_some() => Some(KclValue::HomArray {
|
||||||
value: Vec::new(),
|
value: Vec::new(),
|
||||||
ty: ty.clone(),
|
ty: ty.clone(),
|
||||||
}),
|
}),
|
||||||
@ -1259,4 +1337,119 @@ mod test {
|
|||||||
assert!(count.coerce(&tyb, &mut exec_state).is_none());
|
assert!(count.coerce(&tyb, &mut exec_state).is_none());
|
||||||
assert!(count.coerce(&tyb2, &mut exec_state).is_none());
|
assert!(count.coerce(&tyb2, &mut exec_state).is_none());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
|
async fn coerce_axes() {
|
||||||
|
let mut exec_state = ExecState::new(&crate::ExecutorContext::new_mock().await);
|
||||||
|
|
||||||
|
// Subtyping
|
||||||
|
assert!(RuntimeType::Primitive(PrimitiveType::Axis2d).subtype(&RuntimeType::Primitive(PrimitiveType::Axis2d)));
|
||||||
|
assert!(RuntimeType::Primitive(PrimitiveType::Axis3d).subtype(&RuntimeType::Primitive(PrimitiveType::Axis3d)));
|
||||||
|
assert!(!RuntimeType::Primitive(PrimitiveType::Axis3d).subtype(&RuntimeType::Primitive(PrimitiveType::Axis2d)));
|
||||||
|
assert!(!RuntimeType::Primitive(PrimitiveType::Axis2d).subtype(&RuntimeType::Primitive(PrimitiveType::Axis3d)));
|
||||||
|
|
||||||
|
// Coercion
|
||||||
|
let a2d = KclValue::Object {
|
||||||
|
value: [
|
||||||
|
(
|
||||||
|
"origin".to_owned(),
|
||||||
|
KclValue::HomArray {
|
||||||
|
value: vec![
|
||||||
|
KclValue::Number {
|
||||||
|
value: 0.0,
|
||||||
|
ty: NumericType::mm(),
|
||||||
|
meta: Vec::new(),
|
||||||
|
},
|
||||||
|
KclValue::Number {
|
||||||
|
value: 0.0,
|
||||||
|
ty: NumericType::mm(),
|
||||||
|
meta: Vec::new(),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
ty: RuntimeType::Primitive(PrimitiveType::Number(NumericType::mm())),
|
||||||
|
},
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"direction".to_owned(),
|
||||||
|
KclValue::HomArray {
|
||||||
|
value: vec![
|
||||||
|
KclValue::Number {
|
||||||
|
value: 1.0,
|
||||||
|
ty: NumericType::mm(),
|
||||||
|
meta: Vec::new(),
|
||||||
|
},
|
||||||
|
KclValue::Number {
|
||||||
|
value: 0.0,
|
||||||
|
ty: NumericType::mm(),
|
||||||
|
meta: Vec::new(),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
ty: RuntimeType::Primitive(PrimitiveType::Number(NumericType::mm())),
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
||||||
|
.into(),
|
||||||
|
meta: Vec::new(),
|
||||||
|
};
|
||||||
|
let a3d = KclValue::Object {
|
||||||
|
value: [
|
||||||
|
(
|
||||||
|
"origin".to_owned(),
|
||||||
|
KclValue::HomArray {
|
||||||
|
value: vec![
|
||||||
|
KclValue::Number {
|
||||||
|
value: 0.0,
|
||||||
|
ty: NumericType::mm(),
|
||||||
|
meta: Vec::new(),
|
||||||
|
},
|
||||||
|
KclValue::Number {
|
||||||
|
value: 0.0,
|
||||||
|
ty: NumericType::mm(),
|
||||||
|
meta: Vec::new(),
|
||||||
|
},
|
||||||
|
KclValue::Number {
|
||||||
|
value: 0.0,
|
||||||
|
ty: NumericType::mm(),
|
||||||
|
meta: Vec::new(),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
ty: RuntimeType::Primitive(PrimitiveType::Number(NumericType::mm())),
|
||||||
|
},
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"direction".to_owned(),
|
||||||
|
KclValue::HomArray {
|
||||||
|
value: vec![
|
||||||
|
KclValue::Number {
|
||||||
|
value: 1.0,
|
||||||
|
ty: NumericType::mm(),
|
||||||
|
meta: Vec::new(),
|
||||||
|
},
|
||||||
|
KclValue::Number {
|
||||||
|
value: 0.0,
|
||||||
|
ty: NumericType::mm(),
|
||||||
|
meta: Vec::new(),
|
||||||
|
},
|
||||||
|
KclValue::Number {
|
||||||
|
value: 1.0,
|
||||||
|
ty: NumericType::mm(),
|
||||||
|
meta: Vec::new(),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
ty: RuntimeType::Primitive(PrimitiveType::Number(NumericType::mm())),
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
||||||
|
.into(),
|
||||||
|
meta: Vec::new(),
|
||||||
|
};
|
||||||
|
|
||||||
|
let ty2d = RuntimeType::Primitive(PrimitiveType::Axis2d);
|
||||||
|
let ty3d = RuntimeType::Primitive(PrimitiveType::Axis3d);
|
||||||
|
|
||||||
|
assert_coerce_results(&a2d, &ty2d, &a2d, &mut exec_state);
|
||||||
|
assert_coerce_results(&a3d, &ty3d, &a3d, &mut exec_state);
|
||||||
|
assert_coerce_results(&a3d, &ty2d, &a2d, &mut exec_state);
|
||||||
|
assert!(a2d.coerce(&ty3d, &mut exec_state).is_none());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -120,7 +120,7 @@ const Part001 = startSketchOn('XY')
|
|||||||
|> line([0, pipeLength], %)
|
|> line([0, pipeLength], %)
|
||||||
|> angledLineToX({ angle: 60, to: pipeLargeDia }, %)
|
|> angledLineToX({ angle: 60, to: pipeLargeDia }, %)
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis: 'y' }, %)
|
|> revolve({ axis = Y }, %)
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -156,7 +156,7 @@ const part001 = startSketchOn('XY')
|
|||||||
|> line([0, pipeLength], %)
|
|> line([0, pipeLength], %)
|
||||||
|> angledLineToX({ angle: 60, to: pipeLargeDia }, %)
|
|> angledLineToX({ angle: 60, to: pipeLargeDia }, %)
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis: 'y' }, %)
|
|> revolve({ axis = Y }, %)
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1632,7 +1632,7 @@ insideRevolve = startSketchOn(XZ)
|
|||||||
|> line(end = [0, -thickness])
|
|> line(end = [0, -thickness])
|
||||||
|> line(end = [-overHangLength, 0])
|
|> line(end = [-overHangLength, 0])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis: 'y' }, %)
|
|> revolve({ axis = Y }, %)
|
||||||
|
|
||||||
// Sketch and revolve one of the balls and duplicate it using a circular pattern. (This is currently a workaround, we have a bug with rotating on a sketch that touches the rotation axis)
|
// Sketch and revolve one of the balls and duplicate it using a circular pattern. (This is currently a workaround, we have a bug with rotating on a sketch that touches the rotation axis)
|
||||||
sphere = startSketchOn(XZ)
|
sphere = startSketchOn(XZ)
|
||||||
@ -1647,7 +1647,7 @@ sphere = startSketchOn(XZ)
|
|||||||
radius: sphereDia / 2 - 0.05
|
radius: sphereDia / 2 - 0.05
|
||||||
}, %)
|
}, %)
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis: 'x' }, %)
|
|> revolve({ axis = X }, %)
|
||||||
|> patternCircular3d(
|
|> patternCircular3d(
|
||||||
axis = [0, 0, 1],
|
axis = [0, 0, 1],
|
||||||
center = [0, 0, 0],
|
center = [0, 0, 0],
|
||||||
@ -1671,7 +1671,7 @@ outsideRevolve = startSketchOn(XZ)
|
|||||||
|> line(end = [0, thickness])
|
|> line(end = [0, thickness])
|
||||||
|> line(end = [overHangLength - thickness, 0])
|
|> line(end = [overHangLength - thickness, 0])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis: 'y' }, %)"#
|
|> revolve({ axis = Y }, %)"#
|
||||||
.to_string(),
|
.to_string(),
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
@ -1705,7 +1705,7 @@ outsideRevolve = startSketchOn(XZ)
|
|||||||
start: tower_lsp::lsp_types::Position { line: 0, character: 0 },
|
start: tower_lsp::lsp_types::Position { line: 0, character: 0 },
|
||||||
end: tower_lsp::lsp_types::Position {
|
end: tower_lsp::lsp_types::Position {
|
||||||
line: 60,
|
line: 60,
|
||||||
character: 30
|
character: 29
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -1732,7 +1732,7 @@ insideRevolve = startSketchOn(XZ)
|
|||||||
|> line(end = [0, -thickness])
|
|> line(end = [0, -thickness])
|
||||||
|> line(end = [-overHangLength, 0])
|
|> line(end = [-overHangLength, 0])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis = 'y' }, %)
|
|> revolve({ axis = Y }, %)
|
||||||
|
|
||||||
// Sketch and revolve one of the balls and duplicate it using a circular pattern. (This is currently a workaround, we have a bug with rotating on a sketch that touches the rotation axis)
|
// Sketch and revolve one of the balls and duplicate it using a circular pattern. (This is currently a workaround, we have a bug with rotating on a sketch that touches the rotation axis)
|
||||||
sphere = startSketchOn(XZ)
|
sphere = startSketchOn(XZ)
|
||||||
@ -1747,7 +1747,7 @@ sphere = startSketchOn(XZ)
|
|||||||
radius = sphereDia / 2 - 0.05
|
radius = sphereDia / 2 - 0.05
|
||||||
}, %)
|
}, %)
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis = 'x' }, %)
|
|> revolve({ axis = X }, %)
|
||||||
|> patternCircular3d(
|
|> patternCircular3d(
|
||||||
axis = [0, 0, 1],
|
axis = [0, 0, 1],
|
||||||
center = [0, 0, 0],
|
center = [0, 0, 0],
|
||||||
@ -1771,7 +1771,7 @@ outsideRevolve = startSketchOn(XZ)
|
|||||||
|> line(end = [0, thickness])
|
|> line(end = [0, thickness])
|
||||||
|> line(end = [overHangLength - thickness, 0])
|
|> line(end = [overHangLength - thickness, 0])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis = 'y' }, %)"#
|
|> revolve({ axis = Y }, %)"#
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -286,6 +286,11 @@ fn non_code_node(i: &mut TokenSlice) -> PResult<Node<NonCodeNode>> {
|
|||||||
alt((non_code_node_leading_whitespace, non_code_node_no_leading_whitespace)).parse_next(i)
|
alt((non_code_node_leading_whitespace, non_code_node_no_leading_whitespace)).parse_next(i)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn outer_annotation(i: &mut TokenSlice) -> PResult<Node<Annotation>> {
|
||||||
|
peek((at_sign, open_paren)).parse_next(i)?;
|
||||||
|
annotation(i)
|
||||||
|
}
|
||||||
|
|
||||||
fn annotation(i: &mut TokenSlice) -> PResult<Node<Annotation>> {
|
fn annotation(i: &mut TokenSlice) -> PResult<Node<Annotation>> {
|
||||||
let at = at_sign.parse_next(i)?;
|
let at = at_sign.parse_next(i)?;
|
||||||
let name = opt(binding_name).parse_next(i)?;
|
let name = opt(binding_name).parse_next(i)?;
|
||||||
@ -2902,13 +2907,17 @@ struct ParamDescription {
|
|||||||
arg_name: Token,
|
arg_name: Token,
|
||||||
type_: std::option::Option<Node<Type>>,
|
type_: std::option::Option<Node<Type>>,
|
||||||
default_value: Option<DefaultParamVal>,
|
default_value: Option<DefaultParamVal>,
|
||||||
|
attr: Option<Node<Annotation>>,
|
||||||
comments: Option<Node<Vec<String>>>,
|
comments: Option<Node<Vec<String>>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
fn parameter(i: &mut TokenSlice) -> PResult<ParamDescription> {
|
fn parameter(i: &mut TokenSlice) -> PResult<ParamDescription> {
|
||||||
let (_, comments, found_at_sign, arg_name, question_mark, _, type_, _ws, default_literal) = (
|
let (_, comments, _, attr, _, found_at_sign, arg_name, question_mark, _, type_, _ws, default_literal) = (
|
||||||
opt(whitespace),
|
opt(whitespace),
|
||||||
opt(comments),
|
opt(comments),
|
||||||
|
opt(whitespace),
|
||||||
|
opt(outer_annotation),
|
||||||
|
opt(whitespace),
|
||||||
opt(at_sign),
|
opt(at_sign),
|
||||||
any.verify(|token: &Token| !matches!(token.token_type, TokenType::Brace) || token.value != ")"),
|
any.verify(|token: &Token| !matches!(token.token_type, TokenType::Brace) || token.value != ")"),
|
||||||
opt(question_mark),
|
opt(question_mark),
|
||||||
@ -2933,6 +2942,7 @@ fn parameter(i: &mut TokenSlice) -> PResult<ParamDescription> {
|
|||||||
return Err(ErrMode::Backtrack(ContextError::from(e)));
|
return Err(ErrMode::Backtrack(ContextError::from(e)));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
attr,
|
||||||
comments,
|
comments,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -2954,6 +2964,7 @@ fn parameters(i: &mut TokenSlice) -> PResult<Vec<Parameter>> {
|
|||||||
arg_name,
|
arg_name,
|
||||||
type_,
|
type_,
|
||||||
default_value,
|
default_value,
|
||||||
|
attr,
|
||||||
comments,
|
comments,
|
||||||
}| {
|
}| {
|
||||||
let mut identifier = Node::<Identifier>::try_from(arg_name)?;
|
let mut identifier = Node::<Identifier>::try_from(arg_name)?;
|
||||||
@ -2961,6 +2972,9 @@ fn parameters(i: &mut TokenSlice) -> PResult<Vec<Parameter>> {
|
|||||||
identifier.comment_start = comments.start;
|
identifier.comment_start = comments.start;
|
||||||
identifier.pre_comments = comments.inner;
|
identifier.pre_comments = comments.inner;
|
||||||
}
|
}
|
||||||
|
if let Some(attr) = attr {
|
||||||
|
identifier.outer_attrs.push(attr);
|
||||||
|
}
|
||||||
|
|
||||||
Ok(Parameter {
|
Ok(Parameter {
|
||||||
identifier,
|
identifier,
|
||||||
|
@ -75,7 +75,7 @@ pub async fn appearance(exec_state: &mut ExecState, args: Args) -> Result<KclVal
|
|||||||
/// This will work on any solid, including extruded solids, revolved solids, and shelled solids.
|
/// This will work on any solid, including extruded solids, revolved solids, and shelled solids.
|
||||||
/// ```no_run
|
/// ```no_run
|
||||||
/// // Add color to an extruded solid.
|
/// // Add color to an extruded solid.
|
||||||
/// exampleSketch = startSketchOn("XZ")
|
/// exampleSketch = startSketchOn(XZ)
|
||||||
/// |> startProfileAt([0, 0], %)
|
/// |> startProfileAt([0, 0], %)
|
||||||
/// |> line(endAbsolute = [10, 0])
|
/// |> line(endAbsolute = [10, 0])
|
||||||
/// |> line(endAbsolute = [0, 10])
|
/// |> line(endAbsolute = [0, 10])
|
||||||
@ -89,9 +89,9 @@ pub async fn appearance(exec_state: &mut ExecState, args: Args) -> Result<KclVal
|
|||||||
///
|
///
|
||||||
/// ```no_run
|
/// ```no_run
|
||||||
/// // Add color to a revolved solid.
|
/// // Add color to a revolved solid.
|
||||||
/// sketch001 = startSketchOn('XY')
|
/// sketch001 = startSketchOn(XY)
|
||||||
/// |> circle( center = [15, 0], radius = 5 )
|
/// |> circle( center = [15, 0], radius = 5 )
|
||||||
/// |> revolve( angle = 360, axis = 'y')
|
/// |> revolve( angle = 360, axis = Y)
|
||||||
/// |> appearance(
|
/// |> appearance(
|
||||||
/// color = '#ff0000',
|
/// color = '#ff0000',
|
||||||
/// metalness = 90,
|
/// metalness = 90,
|
||||||
@ -102,7 +102,7 @@ pub async fn appearance(exec_state: &mut ExecState, args: Args) -> Result<KclVal
|
|||||||
/// ```no_run
|
/// ```no_run
|
||||||
/// // Add color to different solids.
|
/// // Add color to different solids.
|
||||||
/// fn cube(center) {
|
/// fn cube(center) {
|
||||||
/// return startSketchOn('XY')
|
/// return startSketchOn(XY)
|
||||||
/// |> startProfileAt([center[0] - 10, center[1] - 10], %)
|
/// |> startProfileAt([center[0] - 10, center[1] - 10], %)
|
||||||
/// |> line(endAbsolute = [center[0] + 10, center[1] - 10])
|
/// |> line(endAbsolute = [center[0] + 10, center[1] - 10])
|
||||||
/// |> line(endAbsolute = [center[0] + 10, center[1] + 10])
|
/// |> line(endAbsolute = [center[0] + 10, center[1] + 10])
|
||||||
@ -122,7 +122,7 @@ pub async fn appearance(exec_state: &mut ExecState, args: Args) -> Result<KclVal
|
|||||||
/// ```no_run
|
/// ```no_run
|
||||||
/// // You can set the appearance before or after you shell it will yield the same result.
|
/// // You can set the appearance before or after you shell it will yield the same result.
|
||||||
/// // This example shows setting the appearance _after_ the shell.
|
/// // This example shows setting the appearance _after_ the shell.
|
||||||
/// firstSketch = startSketchOn('XY')
|
/// firstSketch = startSketchOn(XY)
|
||||||
/// |> startProfileAt([-12, 12], %)
|
/// |> startProfileAt([-12, 12], %)
|
||||||
/// |> line(end = [24, 0])
|
/// |> line(end = [24, 0])
|
||||||
/// |> line(end = [0, -24])
|
/// |> line(end = [0, -24])
|
||||||
@ -145,7 +145,7 @@ pub async fn appearance(exec_state: &mut ExecState, args: Args) -> Result<KclVal
|
|||||||
/// ```no_run
|
/// ```no_run
|
||||||
/// // You can set the appearance before or after you shell it will yield the same result.
|
/// // You can set the appearance before or after you shell it will yield the same result.
|
||||||
/// // This example shows setting the appearance _before_ the shell.
|
/// // This example shows setting the appearance _before_ the shell.
|
||||||
/// firstSketch = startSketchOn('XY')
|
/// firstSketch = startSketchOn(XY)
|
||||||
/// |> startProfileAt([-12, 12], %)
|
/// |> startProfileAt([-12, 12], %)
|
||||||
/// |> line(end = [24, 0])
|
/// |> line(end = [24, 0])
|
||||||
/// |> line(end = [0, -24])
|
/// |> line(end = [0, -24])
|
||||||
@ -168,7 +168,7 @@ pub async fn appearance(exec_state: &mut ExecState, args: Args) -> Result<KclVal
|
|||||||
/// ```no_run
|
/// ```no_run
|
||||||
/// // Setting the appearance of a 3D pattern can be done _before_ or _after_ the pattern.
|
/// // Setting the appearance of a 3D pattern can be done _before_ or _after_ the pattern.
|
||||||
/// // This example shows _before_ the pattern.
|
/// // This example shows _before_ the pattern.
|
||||||
/// exampleSketch = startSketchOn('XZ')
|
/// exampleSketch = startSketchOn(XZ)
|
||||||
/// |> startProfileAt([0, 0], %)
|
/// |> startProfileAt([0, 0], %)
|
||||||
/// |> line(end = [0, 2])
|
/// |> line(end = [0, 2])
|
||||||
/// |> line(end = [3, 1])
|
/// |> line(end = [3, 1])
|
||||||
@ -191,7 +191,7 @@ pub async fn appearance(exec_state: &mut ExecState, args: Args) -> Result<KclVal
|
|||||||
/// ```no_run
|
/// ```no_run
|
||||||
/// // Setting the appearance of a 3D pattern can be done _before_ or _after_ the pattern.
|
/// // Setting the appearance of a 3D pattern can be done _before_ or _after_ the pattern.
|
||||||
/// // This example shows _after_ the pattern.
|
/// // This example shows _after_ the pattern.
|
||||||
/// exampleSketch = startSketchOn('XZ')
|
/// exampleSketch = startSketchOn(XZ)
|
||||||
/// |> startProfileAt([0, 0], %)
|
/// |> startProfileAt([0, 0], %)
|
||||||
/// |> line(end = [0, 2])
|
/// |> line(end = [0, 2])
|
||||||
/// |> line(end = [3, 1])
|
/// |> line(end = [3, 1])
|
||||||
@ -213,7 +213,7 @@ pub async fn appearance(exec_state: &mut ExecState, args: Args) -> Result<KclVal
|
|||||||
///
|
///
|
||||||
/// ```no_run
|
/// ```no_run
|
||||||
/// // Color the result of a 2D pattern that was extruded.
|
/// // Color the result of a 2D pattern that was extruded.
|
||||||
/// exampleSketch = startSketchOn('XZ')
|
/// exampleSketch = startSketchOn(XZ)
|
||||||
/// |> startProfileAt([.5, 25], %)
|
/// |> startProfileAt([.5, 25], %)
|
||||||
/// |> line(end = [0, 5])
|
/// |> line(end = [0, 5])
|
||||||
/// |> line(end = [-1, 0])
|
/// |> line(end = [-1, 0])
|
||||||
@ -238,7 +238,7 @@ pub async fn appearance(exec_state: &mut ExecState, args: Args) -> Result<KclVal
|
|||||||
/// // Color the result of a sweep.
|
/// // Color the result of a sweep.
|
||||||
///
|
///
|
||||||
/// // Create a path for the sweep.
|
/// // Create a path for the sweep.
|
||||||
/// sweepPath = startSketchOn('XZ')
|
/// sweepPath = startSketchOn(XZ)
|
||||||
/// |> startProfileAt([0.05, 0.05], %)
|
/// |> startProfileAt([0.05, 0.05], %)
|
||||||
/// |> line(end = [0, 7])
|
/// |> line(end = [0, 7])
|
||||||
/// |> tangentialArc({
|
/// |> tangentialArc({
|
||||||
@ -252,13 +252,13 @@ pub async fn appearance(exec_state: &mut ExecState, args: Args) -> Result<KclVal
|
|||||||
/// }, %)
|
/// }, %)
|
||||||
/// |> line(end = [0, 7])
|
/// |> line(end = [0, 7])
|
||||||
///
|
///
|
||||||
/// pipeHole = startSketchOn('XY')
|
/// pipeHole = startSketchOn(XY)
|
||||||
/// |> circle(
|
/// |> circle(
|
||||||
/// center = [0, 0],
|
/// center = [0, 0],
|
||||||
/// radius = 1.5,
|
/// radius = 1.5,
|
||||||
/// )
|
/// )
|
||||||
///
|
///
|
||||||
/// sweepSketch = startSketchOn('XY')
|
/// sweepSketch = startSketchOn(XY)
|
||||||
/// |> circle(
|
/// |> circle(
|
||||||
/// center = [0, 0],
|
/// center = [0, 0],
|
||||||
/// radius = 2,
|
/// radius = 2,
|
||||||
|
@ -154,6 +154,22 @@ impl Args {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub(crate) fn get_kw_arg_opt_typed<T>(
|
||||||
|
&self,
|
||||||
|
label: &str,
|
||||||
|
ty: &RuntimeType,
|
||||||
|
exec_state: &mut ExecState,
|
||||||
|
) -> Result<Option<T>, KclError>
|
||||||
|
where
|
||||||
|
T: for<'a> FromKclValue<'a>,
|
||||||
|
{
|
||||||
|
if self.kw_args.labeled.get(label).is_none() {
|
||||||
|
return Ok(None);
|
||||||
|
};
|
||||||
|
|
||||||
|
self.get_kw_arg_typed(label, ty, exec_state).map(Some)
|
||||||
|
}
|
||||||
|
|
||||||
/// Get a keyword argument. If not set, returns Err.
|
/// Get a keyword argument. If not set, returns Err.
|
||||||
pub(crate) fn get_kw_arg<'a, T>(&'a self, label: &str) -> Result<T, KclError>
|
pub(crate) fn get_kw_arg<'a, T>(&'a self, label: &str) -> Result<T, KclError>
|
||||||
where
|
where
|
||||||
@ -675,37 +691,6 @@ impl Args {
|
|||||||
FromArgs::from_args(self, 0)
|
FromArgs::from_args(self, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn get_data_and_sketches<'a, T>(
|
|
||||||
&'a self,
|
|
||||||
exec_state: &mut ExecState,
|
|
||||||
) -> Result<(T, Vec<Sketch>), KclError>
|
|
||||||
where
|
|
||||||
T: serde::de::DeserializeOwned + FromArgs<'a>,
|
|
||||||
{
|
|
||||||
let data: T = FromArgs::from_args(self, 0)?;
|
|
||||||
let Some(arg1) = self.args.get(1) else {
|
|
||||||
return Err(KclError::Semantic(KclErrorDetails {
|
|
||||||
message: "Expected one or more sketches for second argument".to_owned(),
|
|
||||||
source_ranges: vec![self.source_range],
|
|
||||||
}));
|
|
||||||
};
|
|
||||||
let sarg = arg1
|
|
||||||
.value
|
|
||||||
.coerce(&RuntimeType::sketches(), exec_state)
|
|
||||||
.ok_or(KclError::Type(KclErrorDetails {
|
|
||||||
message: format!(
|
|
||||||
"Expected one or more sketches for second argument, found {}",
|
|
||||||
arg1.value.human_friendly_type()
|
|
||||||
),
|
|
||||||
source_ranges: vec![self.source_range],
|
|
||||||
}))?;
|
|
||||||
let sketches = match sarg {
|
|
||||||
KclValue::HomArray { value, .. } => value.iter().map(|v| v.as_sketch().unwrap().clone()).collect(),
|
|
||||||
_ => unreachable!(),
|
|
||||||
};
|
|
||||||
Ok((data, sketches))
|
|
||||||
}
|
|
||||||
|
|
||||||
pub(crate) fn get_data_and_sketch_and_tag<'a, T>(
|
pub(crate) fn get_data_and_sketch_and_tag<'a, T>(
|
||||||
&'a self,
|
&'a self,
|
||||||
exec_state: &mut ExecState,
|
exec_state: &mut ExecState,
|
||||||
@ -1583,50 +1568,6 @@ impl<'a> FromKclValue<'a> for super::sketch::SketchData {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> FromKclValue<'a> for super::axis_or_reference::AxisAndOrigin2d {
|
|
||||||
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
|
|
||||||
// Case 1: predefined planes.
|
|
||||||
if let Some(s) = arg.as_str() {
|
|
||||||
return match s {
|
|
||||||
"X" | "x" => Some(Self::X),
|
|
||||||
"Y" | "y" => Some(Self::Y),
|
|
||||||
"-X" | "-x" => Some(Self::NegX),
|
|
||||||
"-Y" | "-y" => Some(Self::NegY),
|
|
||||||
_ => None,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
// Case 2: custom planes.
|
|
||||||
let obj = arg.as_object()?;
|
|
||||||
let_field_of!(obj, custom, &KclObjectFields);
|
|
||||||
let_field_of!(custom, origin);
|
|
||||||
let_field_of!(custom, axis);
|
|
||||||
Some(Self::Custom { axis, origin })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'a> FromKclValue<'a> for super::axis_or_reference::AxisAndOrigin3d {
|
|
||||||
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
|
|
||||||
// Case 1: predefined planes.
|
|
||||||
if let Some(s) = arg.as_str() {
|
|
||||||
return match s {
|
|
||||||
"X" | "x" => Some(Self::X),
|
|
||||||
"Y" | "y" => Some(Self::Y),
|
|
||||||
"Z" | "z" => Some(Self::Z),
|
|
||||||
"-X" | "-x" => Some(Self::NegX),
|
|
||||||
"-Y" | "-y" => Some(Self::NegY),
|
|
||||||
"-Z" | "-z" => Some(Self::NegZ),
|
|
||||||
_ => None,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
// Case 2: custom planes.
|
|
||||||
let obj = arg.as_object()?;
|
|
||||||
let_field_of!(obj, custom, &KclObjectFields);
|
|
||||||
let_field_of!(custom, origin);
|
|
||||||
let_field_of!(custom, axis);
|
|
||||||
Some(Self::Custom { axis, origin })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'a> FromKclValue<'a> for super::fillet::EdgeReference {
|
impl<'a> FromKclValue<'a> for super::fillet::EdgeReference {
|
||||||
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
|
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
|
||||||
let id = arg.as_uuid().map(Self::Uuid);
|
let id = arg.as_uuid().map(Self::Uuid);
|
||||||
@ -1637,25 +1578,27 @@ impl<'a> FromKclValue<'a> for super::fillet::EdgeReference {
|
|||||||
|
|
||||||
impl<'a> FromKclValue<'a> for super::axis_or_reference::Axis2dOrEdgeReference {
|
impl<'a> FromKclValue<'a> for super::axis_or_reference::Axis2dOrEdgeReference {
|
||||||
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
|
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
|
||||||
let case1 = super::axis_or_reference::AxisAndOrigin2d::from_kcl_val;
|
let case1 = |arg: &KclValue| {
|
||||||
|
let obj = arg.as_object()?;
|
||||||
|
let_field_of!(obj, direction);
|
||||||
|
let_field_of!(obj, origin);
|
||||||
|
Some(Self::Axis { direction, origin })
|
||||||
|
};
|
||||||
let case2 = super::fillet::EdgeReference::from_kcl_val;
|
let case2 = super::fillet::EdgeReference::from_kcl_val;
|
||||||
case1(arg).map(Self::Axis).or_else(|| case2(arg).map(Self::Edge))
|
case1(arg).or_else(|| case2(arg).map(Self::Edge))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> FromKclValue<'a> for super::axis_or_reference::Axis3dOrEdgeReference {
|
impl<'a> FromKclValue<'a> for super::axis_or_reference::Axis3dOrEdgeReference {
|
||||||
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
|
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
|
||||||
let case1 = super::axis_or_reference::AxisAndOrigin3d::from_kcl_val;
|
let case1 = |arg: &KclValue| {
|
||||||
let case2 = super::fillet::EdgeReference::from_kcl_val;
|
|
||||||
case1(arg).map(Self::Axis).or_else(|| case2(arg).map(Self::Edge))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'a> FromKclValue<'a> for super::mirror::Mirror2dData {
|
|
||||||
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
|
|
||||||
let obj = arg.as_object()?;
|
let obj = arg.as_object()?;
|
||||||
let_field_of!(obj, axis);
|
let_field_of!(obj, direction);
|
||||||
Some(Self { axis })
|
let_field_of!(obj, origin);
|
||||||
|
Some(Self::Axis { direction, origin })
|
||||||
|
};
|
||||||
|
let case2 = super::fillet::EdgeReference::from_kcl_val;
|
||||||
|
case1(arg).or_else(|| case2(arg).map(Self::Edge))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,233 +1,21 @@
|
|||||||
//! Types for referencing an axis or edge.
|
//! Types for referencing an axis or edge.
|
||||||
|
|
||||||
use anyhow::Result;
|
use crate::std::fillet::EdgeReference;
|
||||||
use kcmc::length_unit::LengthUnit;
|
|
||||||
use kittycad_modeling_cmds::{self as kcmc};
|
|
||||||
use schemars::JsonSchema;
|
|
||||||
use serde::{Deserialize, Serialize};
|
|
||||||
|
|
||||||
use crate::{errors::KclError, std::fillet::EdgeReference};
|
|
||||||
|
|
||||||
/// A 2D axis or tagged edge.
|
/// A 2D axis or tagged edge.
|
||||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)]
|
#[derive(Debug, Clone, PartialEq)]
|
||||||
#[ts(export)]
|
|
||||||
#[serde(untagged)]
|
|
||||||
pub enum Axis2dOrEdgeReference {
|
pub enum Axis2dOrEdgeReference {
|
||||||
/// 2D axis and origin.
|
/// 2D axis and origin.
|
||||||
Axis(AxisAndOrigin2d),
|
Axis { direction: [f64; 2], origin: [f64; 2] },
|
||||||
/// Tagged edge.
|
/// Tagged edge.
|
||||||
Edge(EdgeReference),
|
Edge(EdgeReference),
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A 2D axis and origin.
|
|
||||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)]
|
|
||||||
#[ts(export)]
|
|
||||||
#[serde(rename_all = "camelCase")]
|
|
||||||
pub enum AxisAndOrigin2d {
|
|
||||||
/// X-axis.
|
|
||||||
#[serde(rename = "X", alias = "x")]
|
|
||||||
X,
|
|
||||||
/// Y-axis.
|
|
||||||
#[serde(rename = "Y", alias = "y")]
|
|
||||||
Y,
|
|
||||||
/// Flip the X-axis.
|
|
||||||
#[serde(rename = "-X", alias = "-x")]
|
|
||||||
NegX,
|
|
||||||
/// Flip the Y-axis.
|
|
||||||
#[serde(rename = "-Y", alias = "-y")]
|
|
||||||
NegY,
|
|
||||||
Custom {
|
|
||||||
/// The axis.
|
|
||||||
axis: [f64; 2],
|
|
||||||
/// The origin.
|
|
||||||
origin: [f64; 2],
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
impl AxisAndOrigin2d {
|
|
||||||
/// Get the axis and origin.
|
|
||||||
pub fn axis_and_origin(&self) -> Result<(kcmc::shared::Point3d<f64>, kcmc::shared::Point3d<LengthUnit>), KclError> {
|
|
||||||
let (axis, origin) = match self {
|
|
||||||
AxisAndOrigin2d::X => ([1.0, 0.0, 0.0], [0.0, 0.0, 0.0]),
|
|
||||||
AxisAndOrigin2d::Y => ([0.0, 1.0, 0.0], [0.0, 0.0, 0.0]),
|
|
||||||
AxisAndOrigin2d::NegX => ([-1.0, 0.0, 0.0], [0.0, 0.0, 0.0]),
|
|
||||||
AxisAndOrigin2d::NegY => ([0.0, -1.0, 0.0], [0.0, 0.0, 0.0]),
|
|
||||||
AxisAndOrigin2d::Custom { axis, origin } => ([axis[0], axis[1], 0.0], [origin[0], origin[1], 0.0]),
|
|
||||||
};
|
|
||||||
|
|
||||||
Ok((
|
|
||||||
kcmc::shared::Point3d {
|
|
||||||
x: axis[0],
|
|
||||||
y: axis[1],
|
|
||||||
z: axis[2],
|
|
||||||
},
|
|
||||||
kcmc::shared::Point3d {
|
|
||||||
x: LengthUnit(origin[0]),
|
|
||||||
y: LengthUnit(origin[1]),
|
|
||||||
z: LengthUnit(origin[2]),
|
|
||||||
},
|
|
||||||
))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// A 3D axis or tagged edge.
|
/// A 3D axis or tagged edge.
|
||||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)]
|
#[derive(Debug, Clone, PartialEq)]
|
||||||
#[ts(export)]
|
|
||||||
#[serde(untagged)]
|
|
||||||
pub enum Axis3dOrEdgeReference {
|
pub enum Axis3dOrEdgeReference {
|
||||||
/// 3D axis and origin.
|
/// 3D axis and origin.
|
||||||
Axis(AxisAndOrigin3d),
|
Axis { direction: [f64; 3], origin: [f64; 3] },
|
||||||
/// Tagged edge.
|
/// Tagged edge.
|
||||||
Edge(EdgeReference),
|
Edge(EdgeReference),
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A 3D axis and origin.
|
|
||||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)]
|
|
||||||
#[ts(export)]
|
|
||||||
#[serde(rename_all = "camelCase")]
|
|
||||||
pub enum AxisAndOrigin3d {
|
|
||||||
/// X-axis.
|
|
||||||
#[serde(rename = "X", alias = "x")]
|
|
||||||
X,
|
|
||||||
/// Y-axis.
|
|
||||||
#[serde(rename = "Y", alias = "y")]
|
|
||||||
Y,
|
|
||||||
/// Z-axis.
|
|
||||||
#[serde(rename = "Z", alias = "z")]
|
|
||||||
Z,
|
|
||||||
/// Flip the X-axis.
|
|
||||||
#[serde(rename = "-X", alias = "-x")]
|
|
||||||
NegX,
|
|
||||||
/// Flip the Y-axis.
|
|
||||||
#[serde(rename = "-Y", alias = "-y")]
|
|
||||||
NegY,
|
|
||||||
/// Flip the Z-axis.
|
|
||||||
#[serde(rename = "-Z", alias = "-z")]
|
|
||||||
NegZ,
|
|
||||||
Custom {
|
|
||||||
/// The axis.
|
|
||||||
axis: [f64; 3],
|
|
||||||
/// The origin.
|
|
||||||
origin: [f64; 3],
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
impl AxisAndOrigin3d {
|
|
||||||
/// Get the axis and origin.
|
|
||||||
pub fn axis_and_origin(&self) -> Result<(kcmc::shared::Point3d<f64>, kcmc::shared::Point3d<LengthUnit>), KclError> {
|
|
||||||
let (axis, origin) = match self {
|
|
||||||
AxisAndOrigin3d::X => ([1.0, 0.0, 0.0], [0.0, 0.0, 0.0]),
|
|
||||||
AxisAndOrigin3d::Y => ([0.0, 1.0, 0.0], [0.0, 0.0, 0.0]),
|
|
||||||
AxisAndOrigin3d::Z => ([0.0, 0.0, 1.0], [0.0, 0.0, 0.0]),
|
|
||||||
AxisAndOrigin3d::NegX => ([-1.0, 0.0, 0.0], [0.0, 0.0, 0.0]),
|
|
||||||
AxisAndOrigin3d::NegY => ([0.0, -1.0, 0.0], [0.0, 0.0, 0.0]),
|
|
||||||
AxisAndOrigin3d::NegZ => ([0.0, 0.0, -1.0], [0.0, 0.0, 0.0]),
|
|
||||||
AxisAndOrigin3d::Custom { axis, origin } => {
|
|
||||||
([axis[0], axis[1], axis[2]], [origin[0], origin[1], origin[2]])
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Ok((
|
|
||||||
kcmc::shared::Point3d {
|
|
||||||
x: axis[0],
|
|
||||||
y: axis[1],
|
|
||||||
z: axis[2],
|
|
||||||
},
|
|
||||||
kcmc::shared::Point3d {
|
|
||||||
x: LengthUnit(origin[0]),
|
|
||||||
y: LengthUnit(origin[1]),
|
|
||||||
z: LengthUnit(origin[2]),
|
|
||||||
},
|
|
||||||
))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
mod tests {
|
|
||||||
|
|
||||||
use pretty_assertions::assert_eq;
|
|
||||||
|
|
||||||
use crate::std::axis_or_reference::{
|
|
||||||
Axis2dOrEdgeReference, Axis3dOrEdgeReference, AxisAndOrigin2d, AxisAndOrigin3d,
|
|
||||||
};
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_deserialize_revolve_axis_2d() {
|
|
||||||
let data = Axis2dOrEdgeReference::Axis(AxisAndOrigin2d::X);
|
|
||||||
let mut str_json = serde_json::to_string(&data).unwrap();
|
|
||||||
assert_eq!(str_json, "\"X\"");
|
|
||||||
|
|
||||||
str_json = "\"Y\"".to_string();
|
|
||||||
let data: Axis2dOrEdgeReference = serde_json::from_str(&str_json).unwrap();
|
|
||||||
assert_eq!(data, Axis2dOrEdgeReference::Axis(AxisAndOrigin2d::Y));
|
|
||||||
|
|
||||||
str_json = "\"-Y\"".to_string();
|
|
||||||
let data: Axis2dOrEdgeReference = serde_json::from_str(&str_json).unwrap();
|
|
||||||
assert_eq!(data, Axis2dOrEdgeReference::Axis(AxisAndOrigin2d::NegY));
|
|
||||||
|
|
||||||
str_json = "\"-x\"".to_string();
|
|
||||||
let data: Axis2dOrEdgeReference = serde_json::from_str(&str_json).unwrap();
|
|
||||||
assert_eq!(data, Axis2dOrEdgeReference::Axis(AxisAndOrigin2d::NegX));
|
|
||||||
|
|
||||||
let data = Axis2dOrEdgeReference::Axis(AxisAndOrigin2d::Custom {
|
|
||||||
axis: [0.0, -1.0],
|
|
||||||
origin: [1.0, 0.0],
|
|
||||||
});
|
|
||||||
str_json = serde_json::to_string(&data).unwrap();
|
|
||||||
assert_eq!(str_json, r#"{"custom":{"axis":[0.0,-1.0],"origin":[1.0,0.0]}}"#);
|
|
||||||
|
|
||||||
str_json = r#"{"custom": {"axis": [0,-1], "origin": [1,2.0]}}"#.to_string();
|
|
||||||
let data: Axis2dOrEdgeReference = serde_json::from_str(&str_json).unwrap();
|
|
||||||
assert_eq!(
|
|
||||||
data,
|
|
||||||
Axis2dOrEdgeReference::Axis(AxisAndOrigin2d::Custom {
|
|
||||||
axis: [0.0, -1.0],
|
|
||||||
origin: [1.0, 2.0]
|
|
||||||
})
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_deserialize_revolve_axis_3d() {
|
|
||||||
let data = Axis3dOrEdgeReference::Axis(AxisAndOrigin3d::X);
|
|
||||||
let mut str_json = serde_json::to_string(&data).unwrap();
|
|
||||||
assert_eq!(str_json, "\"X\"");
|
|
||||||
|
|
||||||
str_json = "\"Y\"".to_string();
|
|
||||||
let data: Axis3dOrEdgeReference = serde_json::from_str(&str_json).unwrap();
|
|
||||||
assert_eq!(data, Axis3dOrEdgeReference::Axis(AxisAndOrigin3d::Y));
|
|
||||||
|
|
||||||
str_json = "\"Z\"".to_string();
|
|
||||||
let data: Axis3dOrEdgeReference = serde_json::from_str(&str_json).unwrap();
|
|
||||||
assert_eq!(data, Axis3dOrEdgeReference::Axis(AxisAndOrigin3d::Z));
|
|
||||||
|
|
||||||
str_json = "\"-Y\"".to_string();
|
|
||||||
let data: Axis3dOrEdgeReference = serde_json::from_str(&str_json).unwrap();
|
|
||||||
assert_eq!(data, Axis3dOrEdgeReference::Axis(AxisAndOrigin3d::NegY));
|
|
||||||
|
|
||||||
str_json = "\"-x\"".to_string();
|
|
||||||
let data: Axis3dOrEdgeReference = serde_json::from_str(&str_json).unwrap();
|
|
||||||
assert_eq!(data, Axis3dOrEdgeReference::Axis(AxisAndOrigin3d::NegX));
|
|
||||||
|
|
||||||
str_json = "\"-z\"".to_string();
|
|
||||||
let data: Axis3dOrEdgeReference = serde_json::from_str(&str_json).unwrap();
|
|
||||||
assert_eq!(data, Axis3dOrEdgeReference::Axis(AxisAndOrigin3d::NegZ));
|
|
||||||
|
|
||||||
let data = Axis3dOrEdgeReference::Axis(AxisAndOrigin3d::Custom {
|
|
||||||
axis: [0.0, -1.0, 0.0],
|
|
||||||
origin: [1.0, 0.0, 0.0],
|
|
||||||
});
|
|
||||||
str_json = serde_json::to_string(&data).unwrap();
|
|
||||||
assert_eq!(str_json, r#"{"custom":{"axis":[0.0,-1.0,0.0],"origin":[1.0,0.0,0.0]}}"#);
|
|
||||||
|
|
||||||
str_json = r#"{"custom": {"axis": [0,-1,0], "origin": [1,2.0,0]}}"#.to_string();
|
|
||||||
let data: Axis3dOrEdgeReference = serde_json::from_str(&str_json).unwrap();
|
|
||||||
assert_eq!(
|
|
||||||
data,
|
|
||||||
Axis3dOrEdgeReference::Axis(AxisAndOrigin3d::Custom {
|
|
||||||
axis: [0.0, -1.0, 0.0],
|
|
||||||
origin: [1.0, 2.0, 0.0]
|
|
||||||
})
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -1,13 +1,15 @@
|
|||||||
//! Standard library helices.
|
//! Standard library helices.
|
||||||
|
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use kcl_derive_docs::stdlib;
|
|
||||||
use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, shared::Angle, ModelingCmd};
|
use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, shared::Angle, ModelingCmd};
|
||||||
use kittycad_modeling_cmds as kcmc;
|
use kittycad_modeling_cmds::{self as kcmc, shared::Point3d};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
errors::KclError,
|
errors::KclError,
|
||||||
execution::{ExecState, Helix as HelixValue, KclValue, Solid},
|
execution::{
|
||||||
|
types::{PrimitiveType, RuntimeType},
|
||||||
|
ExecState, Helix as HelixValue, KclValue, Solid,
|
||||||
|
},
|
||||||
std::{axis_or_reference::Axis3dOrEdgeReference, Args},
|
std::{axis_or_reference::Axis3dOrEdgeReference, Args},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -17,7 +19,14 @@ pub async fn helix(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
|
|||||||
let revolutions = args.get_kw_arg("revolutions")?;
|
let revolutions = args.get_kw_arg("revolutions")?;
|
||||||
let ccw = args.get_kw_arg_opt("ccw")?;
|
let ccw = args.get_kw_arg_opt("ccw")?;
|
||||||
let radius = args.get_kw_arg_opt("radius")?;
|
let radius = args.get_kw_arg_opt("radius")?;
|
||||||
let axis = args.get_kw_arg_opt("axis")?;
|
let axis: Option<Axis3dOrEdgeReference> = args.get_kw_arg_opt_typed(
|
||||||
|
"axis",
|
||||||
|
&RuntimeType::Union(vec![
|
||||||
|
RuntimeType::Primitive(PrimitiveType::Edge),
|
||||||
|
RuntimeType::Primitive(PrimitiveType::Axis3d),
|
||||||
|
]),
|
||||||
|
exec_state,
|
||||||
|
)?;
|
||||||
let length = args.get_kw_arg_opt("length")?;
|
let length = args.get_kw_arg_opt("length")?;
|
||||||
let cylinder = args.get_kw_arg_opt("cylinder")?;
|
let cylinder = args.get_kw_arg_opt("cylinder")?;
|
||||||
|
|
||||||
@ -84,100 +93,6 @@ pub async fn helix(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
|
|||||||
Ok(KclValue::Helix { value })
|
Ok(KclValue::Helix { value })
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Create a helix.
|
|
||||||
///
|
|
||||||
/// ```no_run
|
|
||||||
/// // Create a helix around the Z axis.
|
|
||||||
/// helixPath = helix(
|
|
||||||
/// angleStart = 0,
|
|
||||||
/// ccw = true,
|
|
||||||
/// revolutions = 5,
|
|
||||||
/// length = 10,
|
|
||||||
/// radius = 5,
|
|
||||||
/// axis = 'Z',
|
|
||||||
/// )
|
|
||||||
///
|
|
||||||
///
|
|
||||||
/// // Create a spring by sweeping around the helix path.
|
|
||||||
/// springSketch = startSketchOn('YZ')
|
|
||||||
/// |> circle( center = [0, 0], radius = 0.5)
|
|
||||||
/// |> sweep(path = helixPath)
|
|
||||||
/// ```
|
|
||||||
///
|
|
||||||
/// ```no_run
|
|
||||||
/// // Create a helix around an edge.
|
|
||||||
/// helper001 = startSketchOn('XZ')
|
|
||||||
/// |> startProfileAt([0, 0], %)
|
|
||||||
/// |> line(end = [0, 10], tag = $edge001)
|
|
||||||
///
|
|
||||||
/// helixPath = helix(
|
|
||||||
/// angleStart = 0,
|
|
||||||
/// ccw = true,
|
|
||||||
/// revolutions = 5,
|
|
||||||
/// length = 10,
|
|
||||||
/// radius = 5,
|
|
||||||
/// axis = edge001,
|
|
||||||
/// )
|
|
||||||
///
|
|
||||||
/// // Create a spring by sweeping around the helix path.
|
|
||||||
/// springSketch = startSketchOn('XY')
|
|
||||||
/// |> circle( center = [0, 0], radius = 0.5 )
|
|
||||||
/// |> sweep(path = helixPath)
|
|
||||||
/// ```
|
|
||||||
///
|
|
||||||
/// ```no_run
|
|
||||||
/// // Create a helix around a custom axis.
|
|
||||||
/// helixPath = helix(
|
|
||||||
/// angleStart = 0,
|
|
||||||
/// ccw = true,
|
|
||||||
/// revolutions = 5,
|
|
||||||
/// length = 10,
|
|
||||||
/// radius = 5,
|
|
||||||
/// axis = {
|
|
||||||
/// custom = {
|
|
||||||
/// axis = [0, 0, 1.0],
|
|
||||||
/// origin = [0, 0.25, 0]
|
|
||||||
/// }
|
|
||||||
/// }
|
|
||||||
/// )
|
|
||||||
///
|
|
||||||
/// // Create a spring by sweeping around the helix path.
|
|
||||||
/// springSketch = startSketchOn('XY')
|
|
||||||
/// |> circle( center = [0, 0], radius = 1 )
|
|
||||||
/// |> sweep(path = helixPath)
|
|
||||||
/// ```
|
|
||||||
///
|
|
||||||
///
|
|
||||||
///
|
|
||||||
/// ```no_run
|
|
||||||
/// // Create a helix on a cylinder.
|
|
||||||
///
|
|
||||||
/// part001 = startSketchOn('XY')
|
|
||||||
/// |> circle( center= [5, 5], radius= 10 )
|
|
||||||
/// |> extrude(length = 10)
|
|
||||||
///
|
|
||||||
/// helix(
|
|
||||||
/// angleStart = 0,
|
|
||||||
/// ccw = true,
|
|
||||||
/// revolutions = 16,
|
|
||||||
/// cylinder = part001,
|
|
||||||
/// )
|
|
||||||
/// ```
|
|
||||||
#[stdlib {
|
|
||||||
name = "helix",
|
|
||||||
keywords = true,
|
|
||||||
unlabeled_first = false,
|
|
||||||
args = {
|
|
||||||
revolutions = { docs = "Number of revolutions."},
|
|
||||||
angle_start = { docs = "Start angle (in degrees)."},
|
|
||||||
ccw = { docs = "Is the helix rotation counter clockwise? The default is `false`.", include_in_snippet = false},
|
|
||||||
radius = { docs = "Radius of the helix.", include_in_snippet = true},
|
|
||||||
axis = { docs = "Axis to use for the helix.", include_in_snippet = true},
|
|
||||||
length = { docs = "Length of the helix. This is not necessary if the helix is created around an edge. If not given the length of the edge is used.", include_in_snippet = true},
|
|
||||||
cylinder = { docs = "Cylinder to create the helix on.", include_in_snippet = false},
|
|
||||||
},
|
|
||||||
feature_tree_operation = true,
|
|
||||||
}]
|
|
||||||
#[allow(clippy::too_many_arguments)]
|
#[allow(clippy::too_many_arguments)]
|
||||||
async fn inner_helix(
|
async fn inner_helix(
|
||||||
revolutions: f64,
|
revolutions: f64,
|
||||||
@ -221,9 +136,7 @@ async fn inner_helix(
|
|||||||
.await?;
|
.await?;
|
||||||
} else if let (Some(axis), Some(radius)) = (axis, radius) {
|
} else if let (Some(axis), Some(radius)) = (axis, radius) {
|
||||||
match axis {
|
match axis {
|
||||||
Axis3dOrEdgeReference::Axis(axis) => {
|
Axis3dOrEdgeReference::Axis { direction, origin } => {
|
||||||
let (axis, origin) = axis.axis_and_origin()?;
|
|
||||||
|
|
||||||
// Make sure they gave us a length.
|
// Make sure they gave us a length.
|
||||||
let Some(length) = length else {
|
let Some(length) = length else {
|
||||||
return Err(KclError::Semantic(crate::errors::KclErrorDetails {
|
return Err(KclError::Semantic(crate::errors::KclErrorDetails {
|
||||||
@ -240,8 +153,16 @@ async fn inner_helix(
|
|||||||
length: LengthUnit(length),
|
length: LengthUnit(length),
|
||||||
revolutions,
|
revolutions,
|
||||||
start_angle: Angle::from_degrees(angle_start),
|
start_angle: Angle::from_degrees(angle_start),
|
||||||
axis,
|
axis: Point3d {
|
||||||
center: origin,
|
x: direction[0],
|
||||||
|
y: direction[1],
|
||||||
|
z: direction[2],
|
||||||
|
},
|
||||||
|
center: Point3d {
|
||||||
|
x: LengthUnit(origin[0]),
|
||||||
|
y: LengthUnit(origin[1]),
|
||||||
|
z: LengthUnit(origin[2]),
|
||||||
|
},
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
@ -1,109 +1,39 @@
|
|||||||
//! Standard library mirror.
|
//! Standard library mirror.
|
||||||
|
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use kcl_derive_docs::stdlib;
|
|
||||||
use kcmc::{each_cmd as mcmd, ModelingCmd};
|
use kcmc::{each_cmd as mcmd, ModelingCmd};
|
||||||
use kittycad_modeling_cmds::{self as kcmc};
|
use kittycad_modeling_cmds::{self as kcmc, length_unit::LengthUnit, shared::Point3d};
|
||||||
use schemars::JsonSchema;
|
|
||||||
use serde::{Deserialize, Serialize};
|
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
errors::KclError,
|
errors::KclError,
|
||||||
execution::{ExecState, KclValue, Sketch},
|
execution::{
|
||||||
|
types::{PrimitiveType, RuntimeType},
|
||||||
|
ExecState, KclValue, Sketch,
|
||||||
|
},
|
||||||
std::{axis_or_reference::Axis2dOrEdgeReference, Args},
|
std::{axis_or_reference::Axis2dOrEdgeReference, Args},
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Data for a mirror.
|
|
||||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)]
|
|
||||||
#[ts(export)]
|
|
||||||
#[serde(rename_all = "camelCase")]
|
|
||||||
pub struct Mirror2dData {
|
|
||||||
/// Axis to use as mirror.
|
|
||||||
pub axis: Axis2dOrEdgeReference,
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Mirror a sketch.
|
/// Mirror a sketch.
|
||||||
///
|
///
|
||||||
/// Only works on unclosed sketches for now.
|
/// Only works on unclosed sketches for now.
|
||||||
pub async fn mirror_2d(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
|
pub async fn mirror_2d(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
|
||||||
let (data, sketch_set): (Mirror2dData, Vec<Sketch>) = args.get_data_and_sketches(exec_state)?;
|
let sketches = args.get_unlabeled_kw_arg_typed("sketches", &RuntimeType::sketches(), exec_state)?;
|
||||||
|
let axis = args.get_kw_arg_typed(
|
||||||
|
"axis",
|
||||||
|
&RuntimeType::Union(vec![
|
||||||
|
RuntimeType::Primitive(PrimitiveType::Edge),
|
||||||
|
RuntimeType::Primitive(PrimitiveType::Axis2d),
|
||||||
|
]),
|
||||||
|
exec_state,
|
||||||
|
)?;
|
||||||
|
|
||||||
let sketches = inner_mirror_2d(data, sketch_set, exec_state, args).await?;
|
let sketches = inner_mirror_2d(sketches, axis, exec_state, args).await?;
|
||||||
Ok(sketches.into())
|
Ok(sketches.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Mirror a sketch.
|
|
||||||
///
|
|
||||||
/// Only works on unclosed sketches for now.
|
|
||||||
///
|
|
||||||
/// Mirror occurs around a local sketch axis rather than a global axis.
|
|
||||||
///
|
|
||||||
/// ```no_run
|
|
||||||
/// // Mirror an un-closed sketch across the Y axis.
|
|
||||||
/// sketch001 = startSketchOn('XZ')
|
|
||||||
/// |> startProfileAt([0, 10], %)
|
|
||||||
/// |> line(end = [15, 0])
|
|
||||||
/// |> line(end = [-7, -3])
|
|
||||||
/// |> line(end = [9, -1])
|
|
||||||
/// |> line(end = [-8, -5])
|
|
||||||
/// |> line(end = [9, -3])
|
|
||||||
/// |> line(end = [-8, -3])
|
|
||||||
/// |> line(end = [9, -1])
|
|
||||||
/// |> line(end = [-19, -0])
|
|
||||||
/// |> mirror2d({axis = 'Y'}, %)
|
|
||||||
///
|
|
||||||
/// example = extrude(sketch001, length = 10)
|
|
||||||
/// ```
|
|
||||||
///
|
|
||||||
/// ```no_run
|
|
||||||
/// // Mirror a un-closed sketch across the Y axis.
|
|
||||||
/// sketch001 = startSketchOn('XZ')
|
|
||||||
/// |> startProfileAt([0, 8.5], %)
|
|
||||||
/// |> line(end = [20, -8.5])
|
|
||||||
/// |> line(end = [-20, -8.5])
|
|
||||||
/// |> mirror2d({axis = 'Y'}, %)
|
|
||||||
///
|
|
||||||
/// example = extrude(sketch001, length = 10)
|
|
||||||
/// ```
|
|
||||||
///
|
|
||||||
/// ```no_run
|
|
||||||
/// // Mirror a un-closed sketch across an edge.
|
|
||||||
/// helper001 = startSketchOn('XZ')
|
|
||||||
/// |> startProfileAt([0, 0], %)
|
|
||||||
/// |> line(end = [0, 10], tag = $edge001)
|
|
||||||
///
|
|
||||||
/// sketch001 = startSketchOn('XZ')
|
|
||||||
/// |> startProfileAt([0, 8.5], %)
|
|
||||||
/// |> line(end = [20, -8.5])
|
|
||||||
/// |> line(end = [-20, -8.5])
|
|
||||||
/// |> mirror2d({axis = edge001}, %)
|
|
||||||
///
|
|
||||||
/// // example = extrude(sketch001, length = 10)
|
|
||||||
/// ```
|
|
||||||
///
|
|
||||||
/// ```no_run
|
|
||||||
/// // Mirror an un-closed sketch across a custom axis.
|
|
||||||
/// sketch001 = startSketchOn('XZ')
|
|
||||||
/// |> startProfileAt([0, 8.5], %)
|
|
||||||
/// |> line(end = [20, -8.5])
|
|
||||||
/// |> line(end = [-20, -8.5])
|
|
||||||
/// |> mirror2d({
|
|
||||||
/// axis = {
|
|
||||||
/// custom = {
|
|
||||||
/// axis = [0.0, 1.0],
|
|
||||||
/// origin = [0.0, 0.0]
|
|
||||||
/// }
|
|
||||||
/// }
|
|
||||||
/// }, %)
|
|
||||||
///
|
|
||||||
/// example = extrude(sketch001, length = 10)
|
|
||||||
/// ```
|
|
||||||
#[stdlib {
|
|
||||||
name = "mirror2d",
|
|
||||||
}]
|
|
||||||
async fn inner_mirror_2d(
|
async fn inner_mirror_2d(
|
||||||
data: Mirror2dData,
|
|
||||||
sketches: Vec<Sketch>,
|
sketches: Vec<Sketch>,
|
||||||
|
axis: Axis2dOrEdgeReference,
|
||||||
exec_state: &mut ExecState,
|
exec_state: &mut ExecState,
|
||||||
args: Args,
|
args: Args,
|
||||||
) -> Result<Vec<Sketch>, KclError> {
|
) -> Result<Vec<Sketch>, KclError> {
|
||||||
@ -113,16 +43,22 @@ async fn inner_mirror_2d(
|
|||||||
return Ok(starting_sketches);
|
return Ok(starting_sketches);
|
||||||
}
|
}
|
||||||
|
|
||||||
match data.axis {
|
match axis {
|
||||||
Axis2dOrEdgeReference::Axis(axis) => {
|
Axis2dOrEdgeReference::Axis { direction, origin } => {
|
||||||
let (axis, origin) = axis.axis_and_origin()?;
|
|
||||||
|
|
||||||
args.batch_modeling_cmd(
|
args.batch_modeling_cmd(
|
||||||
exec_state.next_uuid(),
|
exec_state.next_uuid(),
|
||||||
ModelingCmd::from(mcmd::EntityMirror {
|
ModelingCmd::from(mcmd::EntityMirror {
|
||||||
ids: starting_sketches.iter().map(|sketch| sketch.id).collect(),
|
ids: starting_sketches.iter().map(|sketch| sketch.id).collect(),
|
||||||
axis,
|
axis: Point3d {
|
||||||
point: origin,
|
x: direction[0],
|
||||||
|
y: direction[1],
|
||||||
|
z: 0.0,
|
||||||
|
},
|
||||||
|
point: Point3d {
|
||||||
|
x: LengthUnit(origin[0]),
|
||||||
|
y: LengthUnit(origin[1]),
|
||||||
|
z: LengthUnit(0.0),
|
||||||
|
},
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
@ -26,7 +26,6 @@ pub mod shell;
|
|||||||
pub mod sketch;
|
pub mod sketch;
|
||||||
pub mod sweep;
|
pub mod sweep;
|
||||||
pub mod transform;
|
pub mod transform;
|
||||||
pub mod types;
|
|
||||||
pub mod units;
|
pub mod units;
|
||||||
pub mod utils;
|
pub mod utils;
|
||||||
|
|
||||||
@ -96,7 +95,6 @@ lazy_static! {
|
|||||||
Box::new(crate::std::sketch::TangentialArcToRelative),
|
Box::new(crate::std::sketch::TangentialArcToRelative),
|
||||||
Box::new(crate::std::sketch::BezierCurve),
|
Box::new(crate::std::sketch::BezierCurve),
|
||||||
Box::new(crate::std::sketch::Hole),
|
Box::new(crate::std::sketch::Hole),
|
||||||
Box::new(crate::std::mirror::Mirror2D),
|
|
||||||
Box::new(crate::std::patterns::PatternLinear2D),
|
Box::new(crate::std::patterns::PatternLinear2D),
|
||||||
Box::new(crate::std::patterns::PatternLinear3D),
|
Box::new(crate::std::patterns::PatternLinear3D),
|
||||||
Box::new(crate::std::patterns::PatternCircular2D),
|
Box::new(crate::std::patterns::PatternCircular2D),
|
||||||
@ -113,10 +111,8 @@ lazy_static! {
|
|||||||
Box::new(crate::std::edge::GetNextAdjacentEdge),
|
Box::new(crate::std::edge::GetNextAdjacentEdge),
|
||||||
Box::new(crate::std::edge::GetPreviousAdjacentEdge),
|
Box::new(crate::std::edge::GetPreviousAdjacentEdge),
|
||||||
Box::new(crate::std::edge::GetCommonEdge),
|
Box::new(crate::std::edge::GetCommonEdge),
|
||||||
Box::new(crate::std::helix::Helix),
|
|
||||||
Box::new(crate::std::shell::Shell),
|
Box::new(crate::std::shell::Shell),
|
||||||
Box::new(crate::std::shell::Hollow),
|
Box::new(crate::std::shell::Hollow),
|
||||||
Box::new(crate::std::revolve::Revolve),
|
|
||||||
Box::new(crate::std::sweep::Sweep),
|
Box::new(crate::std::sweep::Sweep),
|
||||||
Box::new(crate::std::loft::Loft),
|
Box::new(crate::std::loft::Loft),
|
||||||
Box::new(crate::std::planes::OffsetPlane),
|
Box::new(crate::std::planes::OffsetPlane),
|
||||||
@ -177,6 +173,7 @@ pub fn get_stdlib_fn(name: &str) -> Option<Box<dyn StdLibFn>> {
|
|||||||
pub struct StdFnProps {
|
pub struct StdFnProps {
|
||||||
pub name: String,
|
pub name: String,
|
||||||
pub deprecated: bool,
|
pub deprecated: bool,
|
||||||
|
pub include_in_feature_tree: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl StdFnProps {
|
impl StdFnProps {
|
||||||
@ -184,8 +181,14 @@ impl StdFnProps {
|
|||||||
Self {
|
Self {
|
||||||
name: name.to_owned(),
|
name: name.to_owned(),
|
||||||
deprecated: false,
|
deprecated: false,
|
||||||
|
include_in_feature_tree: false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn include_in_feature_tree(mut self) -> Self {
|
||||||
|
self.include_in_feature_tree = true;
|
||||||
|
self
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn std_fn(path: &str, fn_name: &str) -> (crate::std::StdFn, StdFnProps) {
|
pub(crate) fn std_fn(path: &str, fn_name: &str) -> (crate::std::StdFn, StdFnProps) {
|
||||||
@ -206,6 +209,18 @@ pub(crate) fn std_fn(path: &str, fn_name: &str) -> (crate::std::StdFn, StdFnProp
|
|||||||
|e, a| Box::pin(crate::std::shapes::circle(e, a)),
|
|e, a| Box::pin(crate::std::shapes::circle(e, a)),
|
||||||
StdFnProps::default("std::sketch::circle"),
|
StdFnProps::default("std::sketch::circle"),
|
||||||
),
|
),
|
||||||
|
("prelude", "helix") => (
|
||||||
|
|e, a| Box::pin(crate::std::helix::helix(e, a)),
|
||||||
|
StdFnProps::default("std::helix").include_in_feature_tree(),
|
||||||
|
),
|
||||||
|
("sketch", "mirror2d") => (
|
||||||
|
|e, a| Box::pin(crate::std::mirror::mirror_2d(e, a)),
|
||||||
|
StdFnProps::default("std::sketch::mirror2d"),
|
||||||
|
),
|
||||||
|
("prelude", "revolve") => (
|
||||||
|
|e, a| Box::pin(crate::std::revolve::revolve(e, a)),
|
||||||
|
StdFnProps::default("std::revolve").include_in_feature_tree(),
|
||||||
|
),
|
||||||
_ => unreachable!(),
|
_ => unreachable!(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -217,6 +232,9 @@ pub(crate) fn std_ty(path: &str, fn_name: &str) -> (PrimitiveType, StdFnProps) {
|
|||||||
("prelude", "Plane") => (PrimitiveType::Plane, StdFnProps::default("std::Plane")),
|
("prelude", "Plane") => (PrimitiveType::Plane, StdFnProps::default("std::Plane")),
|
||||||
("prelude", "Face") => (PrimitiveType::Face, StdFnProps::default("std::Face")),
|
("prelude", "Face") => (PrimitiveType::Face, StdFnProps::default("std::Face")),
|
||||||
("prelude", "Helix") => (PrimitiveType::Helix, StdFnProps::default("std::Helix")),
|
("prelude", "Helix") => (PrimitiveType::Helix, StdFnProps::default("std::Helix")),
|
||||||
|
("prelude", "Edge") => (PrimitiveType::Edge, StdFnProps::default("std::Edge")),
|
||||||
|
("prelude", "Axis2d") => (PrimitiveType::Axis2d, StdFnProps::default("std::Axis2d")),
|
||||||
|
("prelude", "Axis3d") => (PrimitiveType::Axis3d, StdFnProps::default("std::Axis3d")),
|
||||||
_ => unreachable!(),
|
_ => unreachable!(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,15 @@
|
|||||||
//! Standard library revolution surfaces.
|
//! Standard library revolution surfaces.
|
||||||
|
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use kcl_derive_docs::stdlib;
|
|
||||||
use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, shared::Angle, ModelingCmd};
|
use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, shared::Angle, ModelingCmd};
|
||||||
use kittycad_modeling_cmds::{self as kcmc};
|
use kittycad_modeling_cmds::{self as kcmc, shared::Point3d};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
errors::{KclError, KclErrorDetails},
|
errors::{KclError, KclErrorDetails},
|
||||||
execution::{types::RuntimeType, ExecState, KclValue, Sketch, Solid},
|
execution::{
|
||||||
|
types::{PrimitiveType, RuntimeType},
|
||||||
|
ExecState, KclValue, Sketch, Solid,
|
||||||
|
},
|
||||||
parsing::ast::types::TagNode,
|
parsing::ast::types::TagNode,
|
||||||
std::{axis_or_reference::Axis2dOrEdgeReference, extrude::do_post_extrude, fillet::default_tolerance, Args},
|
std::{axis_or_reference::Axis2dOrEdgeReference, extrude::do_post_extrude, fillet::default_tolerance, Args},
|
||||||
};
|
};
|
||||||
@ -15,7 +17,14 @@ use crate::{
|
|||||||
/// Revolve a sketch or set of sketches around an axis.
|
/// Revolve a sketch or set of sketches around an axis.
|
||||||
pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
|
pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
|
||||||
let sketches = args.get_unlabeled_kw_arg_typed("sketches", &RuntimeType::sketches(), exec_state)?;
|
let sketches = args.get_unlabeled_kw_arg_typed("sketches", &RuntimeType::sketches(), exec_state)?;
|
||||||
let axis: Axis2dOrEdgeReference = args.get_kw_arg("axis")?;
|
let axis = args.get_kw_arg_typed(
|
||||||
|
"axis",
|
||||||
|
&RuntimeType::Union(vec![
|
||||||
|
RuntimeType::Primitive(PrimitiveType::Edge),
|
||||||
|
RuntimeType::Primitive(PrimitiveType::Axis2d),
|
||||||
|
]),
|
||||||
|
exec_state,
|
||||||
|
)?;
|
||||||
let angle = args.get_kw_arg_opt("angle")?;
|
let angle = args.get_kw_arg_opt("angle")?;
|
||||||
let tolerance = args.get_kw_arg_opt("tolerance")?;
|
let tolerance = args.get_kw_arg_opt("tolerance")?;
|
||||||
let tag_start = args.get_kw_arg_opt("tagStart")?;
|
let tag_start = args.get_kw_arg_opt("tagStart")?;
|
||||||
@ -25,215 +34,6 @@ pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
|
|||||||
Ok(value.into())
|
Ok(value.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Rotate a sketch around some provided axis, creating a solid from its extent.
|
|
||||||
///
|
|
||||||
/// This, like extrude, is able to create a 3-dimensional solid from a
|
|
||||||
/// 2-dimensional sketch. However, unlike extrude, this creates a solid
|
|
||||||
/// by using the extent of the sketch as its revolved around an axis rather
|
|
||||||
/// than using the extent of the sketch linearly translated through a third
|
|
||||||
/// dimension.
|
|
||||||
///
|
|
||||||
/// Revolve occurs around a local sketch axis rather than a global axis.
|
|
||||||
///
|
|
||||||
/// You can provide more than one sketch to revolve, and they will all be
|
|
||||||
/// revolved around the same axis.
|
|
||||||
///
|
|
||||||
/// ```no_run
|
|
||||||
/// part001 = startSketchOn('XY')
|
|
||||||
/// |> startProfileAt([4, 12], %)
|
|
||||||
/// |> line(end = [2, 0])
|
|
||||||
/// |> line(end = [0, -6])
|
|
||||||
/// |> line(end = [4, -6])
|
|
||||||
/// |> line(end = [0, -6])
|
|
||||||
/// |> line(end = [-3.75, -4.5])
|
|
||||||
/// |> line(end = [0, -5.5])
|
|
||||||
/// |> line(end = [-2, 0])
|
|
||||||
/// |> close()
|
|
||||||
/// |> revolve(axis = 'y') // default angle is 360
|
|
||||||
/// ```
|
|
||||||
///
|
|
||||||
/// ```no_run
|
|
||||||
/// // A donut shape.
|
|
||||||
/// sketch001 = startSketchOn('XY')
|
|
||||||
/// |> circle( center = [15, 0], radius = 5 )
|
|
||||||
/// |> revolve(
|
|
||||||
/// angle = 360,
|
|
||||||
/// axis = 'y'
|
|
||||||
/// )
|
|
||||||
/// ```
|
|
||||||
///
|
|
||||||
/// ```no_run
|
|
||||||
/// part001 = startSketchOn('XY')
|
|
||||||
/// |> startProfileAt([4, 12], %)
|
|
||||||
/// |> line(end = [2, 0])
|
|
||||||
/// |> line(end = [0, -6])
|
|
||||||
/// |> line(end = [4, -6])
|
|
||||||
/// |> line(end = [0, -6])
|
|
||||||
/// |> line(end = [-3.75, -4.5])
|
|
||||||
/// |> line(end = [0, -5.5])
|
|
||||||
/// |> line(end = [-2, 0])
|
|
||||||
/// |> close()
|
|
||||||
/// |> revolve(axis = 'y', angle = 180)
|
|
||||||
/// ```
|
|
||||||
///
|
|
||||||
/// ```no_run
|
|
||||||
/// part001 = startSketchOn('XY')
|
|
||||||
/// |> startProfileAt([4, 12], %)
|
|
||||||
/// |> line(end = [2, 0])
|
|
||||||
/// |> line(end = [0, -6])
|
|
||||||
/// |> line(end = [4, -6])
|
|
||||||
/// |> line(end = [0, -6])
|
|
||||||
/// |> line(end = [-3.75, -4.5])
|
|
||||||
/// |> line(end = [0, -5.5])
|
|
||||||
/// |> line(end = [-2, 0])
|
|
||||||
/// |> close()
|
|
||||||
/// |> revolve(axis = 'y', angle = 180)
|
|
||||||
///
|
|
||||||
/// part002 = startSketchOn(part001, 'end')
|
|
||||||
/// |> startProfileAt([4.5, -5], %)
|
|
||||||
/// |> line(end = [0, 5])
|
|
||||||
/// |> line(end = [5, 0])
|
|
||||||
/// |> line(end = [0, -5])
|
|
||||||
/// |> close()
|
|
||||||
/// |> extrude(length = 5)
|
|
||||||
/// ```
|
|
||||||
///
|
|
||||||
/// ```no_run
|
|
||||||
/// box = startSketchOn('XY')
|
|
||||||
/// |> startProfileAt([0, 0], %)
|
|
||||||
/// |> line(end = [0, 20])
|
|
||||||
/// |> line(end = [20, 0])
|
|
||||||
/// |> line(end = [0, -20])
|
|
||||||
/// |> close()
|
|
||||||
/// |> extrude(length = 20)
|
|
||||||
///
|
|
||||||
/// sketch001 = startSketchOn(box, "END")
|
|
||||||
/// |> circle( center = [10,10], radius = 4 )
|
|
||||||
/// |> revolve(
|
|
||||||
/// angle = -90,
|
|
||||||
/// axis = 'y'
|
|
||||||
/// )
|
|
||||||
/// ```
|
|
||||||
///
|
|
||||||
/// ```no_run
|
|
||||||
/// box = startSketchOn('XY')
|
|
||||||
/// |> startProfileAt([0, 0], %)
|
|
||||||
/// |> line(end = [0, 20])
|
|
||||||
/// |> line(end = [20, 0])
|
|
||||||
/// |> line(end = [0, -20], tag = $revolveAxis)
|
|
||||||
/// |> close()
|
|
||||||
/// |> extrude(length = 20)
|
|
||||||
///
|
|
||||||
/// sketch001 = startSketchOn(box, "END")
|
|
||||||
/// |> circle( center = [10,10], radius = 4 )
|
|
||||||
/// |> revolve(
|
|
||||||
/// angle = 90,
|
|
||||||
/// axis = getOppositeEdge(revolveAxis)
|
|
||||||
/// )
|
|
||||||
/// ```
|
|
||||||
///
|
|
||||||
/// ```no_run
|
|
||||||
/// box = startSketchOn('XY')
|
|
||||||
/// |> startProfileAt([0, 0], %)
|
|
||||||
/// |> line(end = [0, 20])
|
|
||||||
/// |> line(end = [20, 0])
|
|
||||||
/// |> line(end = [0, -20], tag = $revolveAxis)
|
|
||||||
/// |> close()
|
|
||||||
/// |> extrude(length = 20)
|
|
||||||
///
|
|
||||||
/// sketch001 = startSketchOn(box, "END")
|
|
||||||
/// |> circle( center = [10,10], radius = 4 )
|
|
||||||
/// |> revolve(
|
|
||||||
/// angle = 90,
|
|
||||||
/// axis = getOppositeEdge(revolveAxis),
|
|
||||||
/// tolerance = 0.0001
|
|
||||||
/// )
|
|
||||||
/// ```
|
|
||||||
///
|
|
||||||
/// ```no_run
|
|
||||||
/// sketch001 = startSketchOn('XY')
|
|
||||||
/// |> startProfileAt([10, 0], %)
|
|
||||||
/// |> line(end = [5, -5])
|
|
||||||
/// |> line(end = [5, 5])
|
|
||||||
/// |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
|
||||||
/// |> close()
|
|
||||||
///
|
|
||||||
/// part001 = revolve(
|
|
||||||
/// sketch001,
|
|
||||||
/// axis = {
|
|
||||||
/// custom: {
|
|
||||||
/// axis = [0.0, 1.0],
|
|
||||||
/// origin: [0.0, 0.0]
|
|
||||||
/// }
|
|
||||||
/// }
|
|
||||||
/// )
|
|
||||||
/// ```
|
|
||||||
///
|
|
||||||
/// ```no_run
|
|
||||||
/// // Revolve two sketches around the same axis.
|
|
||||||
///
|
|
||||||
/// sketch001 = startSketchOn('XY')
|
|
||||||
/// profile001 = startProfileAt([4, 8], sketch001)
|
|
||||||
/// |> xLine(length = 3)
|
|
||||||
/// |> yLine(length = -3)
|
|
||||||
/// |> xLine(length = -3)
|
|
||||||
/// |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
|
||||||
/// |> close()
|
|
||||||
///
|
|
||||||
/// profile002 = startProfileAt([-5, 8], sketch001)
|
|
||||||
/// |> xLine(length = 3)
|
|
||||||
/// |> yLine(length = -3)
|
|
||||||
/// |> xLine(length = -3)
|
|
||||||
/// |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
|
||||||
/// |> close()
|
|
||||||
///
|
|
||||||
/// revolve(
|
|
||||||
/// [profile001, profile002],
|
|
||||||
/// axis = "X",
|
|
||||||
/// )
|
|
||||||
/// ```
|
|
||||||
///
|
|
||||||
/// ```no_run
|
|
||||||
/// // Revolve around a path that has not been extruded.
|
|
||||||
///
|
|
||||||
/// profile001 = startSketchOn('XY')
|
|
||||||
/// |> startProfileAt([0, 0], %)
|
|
||||||
/// |> line(end = [0, 20], tag = $revolveAxis)
|
|
||||||
/// |> line(end = [20, 0])
|
|
||||||
/// |> line(end = [0, -20])
|
|
||||||
/// |> close(%)
|
|
||||||
///
|
|
||||||
/// sketch001 = startSketchOn('XY')
|
|
||||||
/// |> circle(center = [-10, 10], radius = 4)
|
|
||||||
/// |> revolve(angle = 90, axis = revolveAxis)
|
|
||||||
/// ```
|
|
||||||
///
|
|
||||||
/// ```no_run
|
|
||||||
/// // Revolve around a path that has not been extruded or closed.
|
|
||||||
///
|
|
||||||
/// profile001 = startSketchOn('XY')
|
|
||||||
/// |> startProfileAt([0, 0], %)
|
|
||||||
/// |> line(end = [0, 20], tag = $revolveAxis)
|
|
||||||
/// |> line(end = [20, 0])
|
|
||||||
///
|
|
||||||
/// sketch001 = startSketchOn('XY')
|
|
||||||
/// |> circle(center = [-10, 10], radius = 4)
|
|
||||||
/// |> revolve(angle = 90, axis = revolveAxis)
|
|
||||||
/// ```
|
|
||||||
#[stdlib {
|
|
||||||
name = "revolve",
|
|
||||||
feature_tree_operation = true,
|
|
||||||
keywords = true,
|
|
||||||
unlabeled_first = true,
|
|
||||||
args = {
|
|
||||||
sketches = { docs = "The sketch or set of sketches that should be revolved" },
|
|
||||||
axis = { docs = "Axis of revolution." },
|
|
||||||
angle = { docs = "Angle to revolve (in degrees). Default is 360." },
|
|
||||||
tolerance = { docs = "Tolerance for the revolve operation." },
|
|
||||||
tag_start = { docs = "A named tag for the face at the start of the revolve, i.e. the original sketch" },
|
|
||||||
tag_end = { docs = "A named tag for the face at the end of the revolve" },
|
|
||||||
}
|
|
||||||
}]
|
|
||||||
#[allow(clippy::too_many_arguments)]
|
#[allow(clippy::too_many_arguments)]
|
||||||
async fn inner_revolve(
|
async fn inner_revolve(
|
||||||
sketches: Vec<Sketch>,
|
sketches: Vec<Sketch>,
|
||||||
@ -264,15 +64,22 @@ async fn inner_revolve(
|
|||||||
let id = exec_state.next_uuid();
|
let id = exec_state.next_uuid();
|
||||||
|
|
||||||
match &axis {
|
match &axis {
|
||||||
Axis2dOrEdgeReference::Axis(axis) => {
|
Axis2dOrEdgeReference::Axis { direction, origin } => {
|
||||||
let (axis, origin) = axis.axis_and_origin()?;
|
|
||||||
args.batch_modeling_cmd(
|
args.batch_modeling_cmd(
|
||||||
id,
|
id,
|
||||||
ModelingCmd::from(mcmd::Revolve {
|
ModelingCmd::from(mcmd::Revolve {
|
||||||
angle,
|
angle,
|
||||||
target: sketch.id.into(),
|
target: sketch.id.into(),
|
||||||
axis,
|
axis: Point3d {
|
||||||
origin,
|
x: direction[0],
|
||||||
|
y: direction[1],
|
||||||
|
z: 0.0,
|
||||||
|
},
|
||||||
|
origin: Point3d {
|
||||||
|
x: LengthUnit(origin[0]),
|
||||||
|
y: LengthUnit(origin[1]),
|
||||||
|
z: LengthUnit(0.0),
|
||||||
|
},
|
||||||
tolerance: LengthUnit(tolerance.unwrap_or(default_tolerance(&args.ctx.settings.units))),
|
tolerance: LengthUnit(tolerance.unwrap_or(default_tolerance(&args.ctx.settings.units))),
|
||||||
axis_is_2d: true,
|
axis_is_2d: true,
|
||||||
}),
|
}),
|
||||||
|
@ -1021,7 +1021,7 @@ pub async fn start_sketch_on(exec_state: &mut ExecState, args: Args) -> Result<K
|
|||||||
/// |> line(end = [-2, 0])
|
/// |> line(end = [-2, 0])
|
||||||
/// |> close()
|
/// |> close()
|
||||||
///
|
///
|
||||||
/// example = revolve(exampleSketch, axis = 'y', angle = 180)
|
/// example = revolve(exampleSketch, axis = Y, angle = 180)
|
||||||
///
|
///
|
||||||
/// exampleSketch002 = startSketchOn(example, 'end')
|
/// exampleSketch002 = startSketchOn(example, 'end')
|
||||||
/// |> startProfileAt([4.5, -5], %)
|
/// |> startProfileAt([4.5, -5], %)
|
||||||
@ -1047,7 +1047,7 @@ pub async fn start_sketch_on(exec_state: &mut ExecState, args: Args) -> Result<K
|
|||||||
/// |> line(end = [-2, 0])
|
/// |> line(end = [-2, 0])
|
||||||
/// |> close()
|
/// |> close()
|
||||||
///
|
///
|
||||||
/// example = revolve(exampleSketch, axis = 'y', angle = 180, tagEnd = $end01)
|
/// example = revolve(exampleSketch, axis = Y, angle = 180, tagEnd = $end01)
|
||||||
///
|
///
|
||||||
/// exampleSketch002 = startSketchOn(example, end01)
|
/// exampleSketch002 = startSketchOn(example, end01)
|
||||||
/// |> startProfileAt([4.5, -5], %)
|
/// |> startProfileAt([4.5, -5], %)
|
||||||
|
@ -54,7 +54,7 @@ pub async fn sweep(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
|
|||||||
/// // Create a pipe using a sweep.
|
/// // Create a pipe using a sweep.
|
||||||
///
|
///
|
||||||
/// // Create a path for the sweep.
|
/// // Create a path for the sweep.
|
||||||
/// sweepPath = startSketchOn('XZ')
|
/// sweepPath = startSketchOn(XZ)
|
||||||
/// |> startProfileAt([0.05, 0.05], %)
|
/// |> startProfileAt([0.05, 0.05], %)
|
||||||
/// |> line(end = [0, 7])
|
/// |> line(end = [0, 7])
|
||||||
/// |> tangentialArc({
|
/// |> tangentialArc({
|
||||||
@ -69,13 +69,13 @@ pub async fn sweep(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
|
|||||||
/// |> line(end = [0, 7])
|
/// |> line(end = [0, 7])
|
||||||
///
|
///
|
||||||
/// // Create a hole for the pipe.
|
/// // Create a hole for the pipe.
|
||||||
/// pipeHole = startSketchOn('XY')
|
/// pipeHole = startSketchOn(XY)
|
||||||
/// |> circle(
|
/// |> circle(
|
||||||
/// center = [0, 0],
|
/// center = [0, 0],
|
||||||
/// radius = 1.5,
|
/// radius = 1.5,
|
||||||
/// )
|
/// )
|
||||||
///
|
///
|
||||||
/// sweepSketch = startSketchOn('XY')
|
/// sweepSketch = startSketchOn(XY)
|
||||||
/// |> circle(
|
/// |> circle(
|
||||||
/// center = [0, 0],
|
/// center = [0, 0],
|
||||||
/// radius = 2,
|
/// radius = 2,
|
||||||
@ -94,12 +94,12 @@ pub async fn sweep(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
|
|||||||
/// revolutions = 4,
|
/// revolutions = 4,
|
||||||
/// length = 10,
|
/// length = 10,
|
||||||
/// radius = 5,
|
/// radius = 5,
|
||||||
/// axis = 'Z',
|
/// axis = Z,
|
||||||
/// )
|
/// )
|
||||||
///
|
///
|
||||||
///
|
///
|
||||||
/// // Create a spring by sweeping around the helix path.
|
/// // Create a spring by sweeping around the helix path.
|
||||||
/// springSketch = startSketchOn('YZ')
|
/// springSketch = startSketchOn(YZ)
|
||||||
/// |> circle( center = [0, 0], radius = 1)
|
/// |> circle( center = [0, 0], radius = 1)
|
||||||
/// |> sweep(path = helixPath)
|
/// |> sweep(path = helixPath)
|
||||||
/// ```
|
/// ```
|
||||||
@ -107,7 +107,7 @@ pub async fn sweep(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
|
|||||||
/// ```
|
/// ```
|
||||||
/// // Sweep two sketches along the same path.
|
/// // Sweep two sketches along the same path.
|
||||||
///
|
///
|
||||||
/// sketch001 = startSketchOn('XY')
|
/// sketch001 = startSketchOn(XY)
|
||||||
/// rectangleSketch = startProfileAt([-200, 23.86], sketch001)
|
/// rectangleSketch = startProfileAt([-200, 23.86], sketch001)
|
||||||
/// |> angledLine([0, 73.47], %, $rectangleSegmentA001)
|
/// |> angledLine([0, 73.47], %, $rectangleSegmentA001)
|
||||||
/// |> angledLine([
|
/// |> angledLine([
|
||||||
@ -123,7 +123,7 @@ pub async fn sweep(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
|
|||||||
///
|
///
|
||||||
/// circleSketch = circle(sketch001, center = [200, -30.29], radius = 32.63)
|
/// circleSketch = circle(sketch001, center = [200, -30.29], radius = 32.63)
|
||||||
///
|
///
|
||||||
/// sketch002 = startSketchOn('YZ')
|
/// sketch002 = startSketchOn(YZ)
|
||||||
/// sweepPath = startProfileAt([0, 0], sketch002)
|
/// sweepPath = startProfileAt([0, 0], sketch002)
|
||||||
/// |> yLine(length = 231.81)
|
/// |> yLine(length = 231.81)
|
||||||
/// |> tangentialArc({
|
/// |> tangentialArc({
|
||||||
@ -137,7 +137,7 @@ pub async fn sweep(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
|
|||||||
/// ```
|
/// ```
|
||||||
/// // Sectionally sweep one sketch along the path
|
/// // Sectionally sweep one sketch along the path
|
||||||
///
|
///
|
||||||
/// sketch001 = startSketchOn('XY')
|
/// sketch001 = startSketchOn(XY)
|
||||||
/// circleSketch = circle(sketch001, center = [200, -30.29], radius = 32.63)
|
/// circleSketch = circle(sketch001, center = [200, -30.29], radius = 32.63)
|
||||||
///
|
///
|
||||||
/// sketch002 = startSketchOn('YZ')
|
/// sketch002 = startSketchOn('YZ')
|
||||||
|
@ -1 +0,0 @@
|
|||||||
|
|
@ -1235,7 +1235,7 @@ insideRevolve = startSketchOn(XZ)
|
|||||||
|> line([0, -thickness], %)
|
|> line([0, -thickness], %)
|
||||||
|> line([-overHangLength, 0], %)
|
|> line([-overHangLength, 0], %)
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis: 'y' }, %)
|
|> revolve({ axis = Y }, %)
|
||||||
|
|
||||||
// Sketch and revolve one of the balls and duplicate it using a circular pattern. (This is currently a workaround, we have a bug with rotating on a sketch that touches the rotation axis)
|
// Sketch and revolve one of the balls and duplicate it using a circular pattern. (This is currently a workaround, we have a bug with rotating on a sketch that touches the rotation axis)
|
||||||
sphere = startSketchOn(XZ)
|
sphere = startSketchOn(XZ)
|
||||||
@ -1250,7 +1250,7 @@ sphere = startSketchOn(XZ)
|
|||||||
radius = sphereDia / 2 - 0.05
|
radius = sphereDia / 2 - 0.05
|
||||||
}, %)
|
}, %)
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis: 'x' }, %)
|
|> revolve({ axis = X }, %)
|
||||||
|> patternCircular3d(
|
|> patternCircular3d(
|
||||||
axis = [0, 0, 1],
|
axis = [0, 0, 1],
|
||||||
center = [0, 0, 0],
|
center = [0, 0, 0],
|
||||||
@ -1274,7 +1274,7 @@ outsideRevolve = startSketchOn(XZ)
|
|||||||
|> line([0, thickness], %)
|
|> line([0, thickness], %)
|
||||||
|> line([overHangLength - thickness, 0], %)
|
|> line([overHangLength - thickness, 0], %)
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis: 'y' }, %)"#;
|
|> revolve({ axis = Y }, %)"#;
|
||||||
let program = crate::parsing::top_level_parse(some_program_string).unwrap();
|
let program = crate::parsing::top_level_parse(some_program_string).unwrap();
|
||||||
|
|
||||||
let recasted = program.recast(&Default::default(), 0);
|
let recasted = program.recast(&Default::default(), 0);
|
||||||
@ -1301,7 +1301,7 @@ insideRevolve = startSketchOn(XZ)
|
|||||||
|> line([0, -thickness], %)
|
|> line([0, -thickness], %)
|
||||||
|> line([-overHangLength, 0], %)
|
|> line([-overHangLength, 0], %)
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis = 'y' }, %)
|
|> revolve({ axis = Y }, %)
|
||||||
|
|
||||||
// Sketch and revolve one of the balls and duplicate it using a circular pattern. (This is currently a workaround, we have a bug with rotating on a sketch that touches the rotation axis)
|
// Sketch and revolve one of the balls and duplicate it using a circular pattern. (This is currently a workaround, we have a bug with rotating on a sketch that touches the rotation axis)
|
||||||
sphere = startSketchOn(XZ)
|
sphere = startSketchOn(XZ)
|
||||||
@ -1316,7 +1316,7 @@ sphere = startSketchOn(XZ)
|
|||||||
radius = sphereDia / 2 - 0.05
|
radius = sphereDia / 2 - 0.05
|
||||||
}, %)
|
}, %)
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis = 'x' }, %)
|
|> revolve({ axis = X }, %)
|
||||||
|> patternCircular3d(
|
|> patternCircular3d(
|
||||||
axis = [0, 0, 1],
|
axis = [0, 0, 1],
|
||||||
center = [0, 0, 0],
|
center = [0, 0, 0],
|
||||||
@ -1340,7 +1340,7 @@ outsideRevolve = startSketchOn(XZ)
|
|||||||
|> line([0, thickness], %)
|
|> line([0, thickness], %)
|
||||||
|> line([overHangLength - thickness, 0], %)
|
|> line([overHangLength - thickness, 0], %)
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis = 'y' }, %)
|
|> revolve({ axis = Y }, %)
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -1613,9 +1613,9 @@ fn bracketSketch = (w, d, t) => {
|
|||||||
s = startSketchOn({
|
s = startSketchOn({
|
||||||
plane: {
|
plane: {
|
||||||
origin: { x = 0, y = length / 2 + thk, z = 0 },
|
origin: { x = 0, y = length / 2 + thk, z = 0 },
|
||||||
x_axis: { x = 1, y = 0, z = 0 },
|
x_axis = { x = 1, y = 0, z = 0 },
|
||||||
y_axis: { x = 0, y = 0, z = 1 },
|
y_axis = { x = 0, y = 0, z = 1 },
|
||||||
z_axis: { x = 0, y = 1, z = 0 }
|
z_axis = { x = 0, y = 1, z = 0 }
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|> startProfileAt([-w / 2 - t, d + t], %)
|
|> startProfileAt([-w / 2 - t, d + t], %)
|
||||||
@ -1645,9 +1645,9 @@ bracket_body = bracketSketch(width, depth, thk)
|
|||||||
tabs_r = startSketchOn({
|
tabs_r = startSketchOn({
|
||||||
plane: {
|
plane: {
|
||||||
origin: { x = 0, y = 0, z = depth + thk },
|
origin: { x = 0, y = 0, z = depth + thk },
|
||||||
x_axis: { x = 1, y = 0, z = 0 },
|
x_axis = { x = 1, y = 0, z = 0 },
|
||||||
y_axis: { x = 0, y = 1, z = 0 },
|
y_axis = { x = 0, y = 1, z = 0 },
|
||||||
z_axis: { x = 0, y = 0, z = 1 }
|
z_axis = { x = 0, y = 0, z = 1 }
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|> startProfileAt([width / 2 + thk, length / 2 + thk], %)
|
|> startProfileAt([width / 2 + thk, length / 2 + thk], %)
|
||||||
@ -2528,9 +2528,9 @@ fn f() {
|
|||||||
sketch002 = startSketchOn({
|
sketch002 = startSketchOn({
|
||||||
plane: {
|
plane: {
|
||||||
origin: { x = 1, y = 2, z = 3 },
|
origin: { x = 1, y = 2, z = 3 },
|
||||||
x_axis: { x = 4, y = 5, z = 6 },
|
x_axis = { x = 4, y = 5, z = 6 },
|
||||||
y_axis: { x = 7, y = 8, z = 9 },
|
y_axis = { x = 7, y = 8, z = 9 },
|
||||||
z_axis: { x = 10, y = 11, z = 12 }
|
z_axis = { x = 10, y = 11, z = 12 }
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
"#;
|
"#;
|
||||||
|
@ -270,3 +270,330 @@ export YZ = {
|
|||||||
yAxis = { x = 0, y = 0, z = 1 },
|
yAxis = { x = 0, y = 0, z = 1 },
|
||||||
zAxis = { x = 1, y = 0, z = 0 },
|
zAxis = { x = 1, y = 0, z = 0 },
|
||||||
}: Plane
|
}: Plane
|
||||||
|
|
||||||
|
/// An infinte line in 2d space.
|
||||||
|
@(impl = std_rust)
|
||||||
|
export type Axis2d
|
||||||
|
|
||||||
|
/// An infinte line in 3d space.
|
||||||
|
@(impl = std_rust)
|
||||||
|
export type Axis3d
|
||||||
|
|
||||||
|
export X = {
|
||||||
|
origin = [0, 0, 0],
|
||||||
|
direction = [1, 0, 0],
|
||||||
|
}: Axis3d
|
||||||
|
|
||||||
|
export Y = {
|
||||||
|
origin = [0, 0, 0],
|
||||||
|
direction = [0, 1, 0],
|
||||||
|
}: Axis3d
|
||||||
|
|
||||||
|
export Z = {
|
||||||
|
origin = [0, 0, 0],
|
||||||
|
direction = [0, 0, 1],
|
||||||
|
}: Axis3d
|
||||||
|
|
||||||
|
/// Create a helix.
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// // Create a helix around the Z axis.
|
||||||
|
/// helixPath = helix(
|
||||||
|
/// angleStart = 0,
|
||||||
|
/// ccw = true,
|
||||||
|
/// revolutions = 5,
|
||||||
|
/// length = 10,
|
||||||
|
/// radius = 5,
|
||||||
|
/// axis = Z,
|
||||||
|
/// )
|
||||||
|
///
|
||||||
|
/// // Create a spring by sweeping around the helix path.
|
||||||
|
/// springSketch = startSketchOn(YZ)
|
||||||
|
/// |> circle( center = [0, 0], radius = 0.5)
|
||||||
|
/// |> sweep(path = helixPath)
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// // Create a helix around an edge.
|
||||||
|
/// helper001 = startSketchOn(XZ)
|
||||||
|
/// |> startProfileAt([0, 0], %)
|
||||||
|
/// |> line(end = [0, 10], tag = $edge001)
|
||||||
|
///
|
||||||
|
/// helixPath = helix(
|
||||||
|
/// angleStart = 0,
|
||||||
|
/// ccw = true,
|
||||||
|
/// revolutions = 5,
|
||||||
|
/// length = 10,
|
||||||
|
/// radius = 5,
|
||||||
|
/// axis = edge001,
|
||||||
|
/// )
|
||||||
|
///
|
||||||
|
/// // Create a spring by sweeping around the helix path.
|
||||||
|
/// springSketch = startSketchOn(XY)
|
||||||
|
/// |> circle( center = [0, 0], radius = 0.5 )
|
||||||
|
/// |> sweep(path = helixPath)
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// // Create a helix around a custom axis.
|
||||||
|
/// helixPath = helix(
|
||||||
|
/// angleStart = 0,
|
||||||
|
/// ccw = true,
|
||||||
|
/// revolutions = 5,
|
||||||
|
/// length = 10,
|
||||||
|
/// radius = 5,
|
||||||
|
/// axis = {
|
||||||
|
/// direction = [0, 0, 1.0],
|
||||||
|
/// origin = [0, 0.25, 0]
|
||||||
|
/// }
|
||||||
|
/// )
|
||||||
|
///
|
||||||
|
/// // Create a spring by sweeping around the helix path.
|
||||||
|
/// springSketch = startSketchOn(XY)
|
||||||
|
/// |> circle( center = [0, 0], radius = 1 )
|
||||||
|
/// |> sweep(path = helixPath)
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// // Create a helix on a cylinder.
|
||||||
|
///
|
||||||
|
/// part001 = startSketchOn(XY)
|
||||||
|
/// |> circle( center= [5, 5], radius= 10 )
|
||||||
|
/// |> extrude(length = 10)
|
||||||
|
///
|
||||||
|
/// helix(
|
||||||
|
/// angleStart = 0,
|
||||||
|
/// ccw = true,
|
||||||
|
/// revolutions = 16,
|
||||||
|
/// cylinder = part001,
|
||||||
|
/// )
|
||||||
|
/// ```
|
||||||
|
@(impl = std_rust)
|
||||||
|
export fn helix(
|
||||||
|
/// Number of revolutions.
|
||||||
|
revolutions: number(_),
|
||||||
|
/// Start angle (in degrees).
|
||||||
|
angleStart: number(deg),
|
||||||
|
/// Is the helix rotation counter clockwise? The default is `false`.
|
||||||
|
ccw?: bool,
|
||||||
|
/// Radius of the helix.
|
||||||
|
@(include_in_snippet = true)
|
||||||
|
radius?: number(mm),
|
||||||
|
/// Axis to use for the helix.
|
||||||
|
@(include_in_snippet = true)
|
||||||
|
axis?: Axis3d | Edge,
|
||||||
|
/// Length of the helix. This is not necessary if the helix is created around an edge. If not given the length of the edge is used.
|
||||||
|
@(include_in_snippet = true)
|
||||||
|
length?: number(mm),
|
||||||
|
/// Cylinder to create the helix on.
|
||||||
|
cylinder?: Solid,
|
||||||
|
): Helix {}
|
||||||
|
|
||||||
|
/// Rotate a sketch around some provided axis, creating a solid from its extent.
|
||||||
|
///
|
||||||
|
/// This, like extrude, is able to create a 3-dimensional solid from a
|
||||||
|
/// 2-dimensional sketch. However, unlike extrude, this creates a solid
|
||||||
|
/// by using the extent of the sketch as its revolved around an axis rather
|
||||||
|
/// than using the extent of the sketch linearly translated through a third
|
||||||
|
/// dimension.
|
||||||
|
///
|
||||||
|
/// Revolve occurs around a local sketch axis rather than a global axis.
|
||||||
|
///
|
||||||
|
/// You can provide more than one sketch to revolve, and they will all be
|
||||||
|
/// revolved around the same axis.
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// part001 = startSketchOn(XY)
|
||||||
|
/// |> startProfileAt([4, 12], %)
|
||||||
|
/// |> line(end = [2, 0])
|
||||||
|
/// |> line(end = [0, -6])
|
||||||
|
/// |> line(end = [4, -6])
|
||||||
|
/// |> line(end = [0, -6])
|
||||||
|
/// |> line(end = [-3.75, -4.5])
|
||||||
|
/// |> line(end = [0, -5.5])
|
||||||
|
/// |> line(end = [-2, 0])
|
||||||
|
/// |> close()
|
||||||
|
/// |> revolve(axis = Y) // default angle is 360
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// // A donut shape.
|
||||||
|
/// sketch001 = startSketchOn(XY)
|
||||||
|
/// |> circle( center = [15, 0], radius = 5 )
|
||||||
|
/// |> revolve(
|
||||||
|
/// angle = 360,
|
||||||
|
/// axis = Y,
|
||||||
|
/// )
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// part001 = startSketchOn(XY)
|
||||||
|
/// |> startProfileAt([4, 12], %)
|
||||||
|
/// |> line(end = [2, 0])
|
||||||
|
/// |> line(end = [0, -6])
|
||||||
|
/// |> line(end = [4, -6])
|
||||||
|
/// |> line(end = [0, -6])
|
||||||
|
/// |> line(end = [-3.75, -4.5])
|
||||||
|
/// |> line(end = [0, -5.5])
|
||||||
|
/// |> line(end = [-2, 0])
|
||||||
|
/// |> close()
|
||||||
|
/// |> revolve(axis = Y, angle = 180)
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// part001 = startSketchOn(XY)
|
||||||
|
/// |> startProfileAt([4, 12], %)
|
||||||
|
/// |> line(end = [2, 0])
|
||||||
|
/// |> line(end = [0, -6])
|
||||||
|
/// |> line(end = [4, -6])
|
||||||
|
/// |> line(end = [0, -6])
|
||||||
|
/// |> line(end = [-3.75, -4.5])
|
||||||
|
/// |> line(end = [0, -5.5])
|
||||||
|
/// |> line(end = [-2, 0])
|
||||||
|
/// |> close()
|
||||||
|
/// |> revolve(axis = Y, angle = 180)
|
||||||
|
///
|
||||||
|
/// part002 = startSketchOn(part001, 'end')
|
||||||
|
/// |> startProfileAt([4.5, -5], %)
|
||||||
|
/// |> line(end = [0, 5])
|
||||||
|
/// |> line(end = [5, 0])
|
||||||
|
/// |> line(end = [0, -5])
|
||||||
|
/// |> close()
|
||||||
|
/// |> extrude(length = 5)
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// box = startSketchOn(XY)
|
||||||
|
/// |> startProfileAt([0, 0], %)
|
||||||
|
/// |> line(end = [0, 20])
|
||||||
|
/// |> line(end = [20, 0])
|
||||||
|
/// |> line(end = [0, -20])
|
||||||
|
/// |> close()
|
||||||
|
/// |> extrude(length = 20)
|
||||||
|
///
|
||||||
|
/// sketch001 = startSketchOn(box, "END")
|
||||||
|
/// |> circle( center = [10,10], radius = 4 )
|
||||||
|
/// |> revolve(
|
||||||
|
/// angle = -90,
|
||||||
|
/// axis = Y
|
||||||
|
/// )
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// box = startSketchOn(XY)
|
||||||
|
/// |> startProfileAt([0, 0], %)
|
||||||
|
/// |> line(end = [0, 20])
|
||||||
|
/// |> line(end = [20, 0])
|
||||||
|
/// |> line(end = [0, -20], tag = $revolveAxis)
|
||||||
|
/// |> close()
|
||||||
|
/// |> extrude(length = 20)
|
||||||
|
///
|
||||||
|
/// sketch001 = startSketchOn(box, "END")
|
||||||
|
/// |> circle( center = [10,10], radius = 4 )
|
||||||
|
/// |> revolve(
|
||||||
|
/// angle = 90,
|
||||||
|
/// axis = getOppositeEdge(revolveAxis)
|
||||||
|
/// )
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// box = startSketchOn(XY)
|
||||||
|
/// |> startProfileAt([0, 0], %)
|
||||||
|
/// |> line(end = [0, 20])
|
||||||
|
/// |> line(end = [20, 0])
|
||||||
|
/// |> line(end = [0, -20], tag = $revolveAxis)
|
||||||
|
/// |> close()
|
||||||
|
/// |> extrude(length = 20)
|
||||||
|
///
|
||||||
|
/// sketch001 = startSketchOn(box, "END")
|
||||||
|
/// |> circle( center = [10,10], radius = 4 )
|
||||||
|
/// |> revolve(
|
||||||
|
/// angle = 90,
|
||||||
|
/// axis = getOppositeEdge(revolveAxis),
|
||||||
|
/// tolerance = 0.0001
|
||||||
|
/// )
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// sketch001 = startSketchOn(XY)
|
||||||
|
/// |> startProfileAt([10, 0], %)
|
||||||
|
/// |> line(end = [5, -5])
|
||||||
|
/// |> line(end = [5, 5])
|
||||||
|
/// |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|
/// |> close()
|
||||||
|
///
|
||||||
|
/// part001 = revolve(
|
||||||
|
/// sketch001,
|
||||||
|
/// axis = {
|
||||||
|
/// direction = [0.0, 1.0],
|
||||||
|
/// origin: [0.0, 0.0]
|
||||||
|
/// }
|
||||||
|
/// )
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// // Revolve two sketches around the same axis.
|
||||||
|
///
|
||||||
|
/// sketch001 = startSketchOn(XY)
|
||||||
|
/// profile001 = startProfileAt([4, 8], sketch001)
|
||||||
|
/// |> xLine(length = 3)
|
||||||
|
/// |> yLine(length = -3)
|
||||||
|
/// |> xLine(length = -3)
|
||||||
|
/// |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|
/// |> close()
|
||||||
|
///
|
||||||
|
/// profile002 = startProfileAt([-5, 8], sketch001)
|
||||||
|
/// |> xLine(length = 3)
|
||||||
|
/// |> yLine(length = -3)
|
||||||
|
/// |> xLine(length = -3)
|
||||||
|
/// |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|
/// |> close()
|
||||||
|
///
|
||||||
|
/// revolve(
|
||||||
|
/// [profile001, profile002],
|
||||||
|
/// axis = X,
|
||||||
|
/// )
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// // Revolve around a path that has not been extruded.
|
||||||
|
///
|
||||||
|
/// profile001 = startSketchOn(XY)
|
||||||
|
/// |> startProfileAt([0, 0], %)
|
||||||
|
/// |> line(end = [0, 20], tag = $revolveAxis)
|
||||||
|
/// |> line(end = [20, 0])
|
||||||
|
/// |> line(end = [0, -20])
|
||||||
|
/// |> close(%)
|
||||||
|
///
|
||||||
|
/// sketch001 = startSketchOn(XY)
|
||||||
|
/// |> circle(center = [-10, 10], radius = 4)
|
||||||
|
/// |> revolve(angle = 90, axis = revolveAxis)
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// // Revolve around a path that has not been extruded or closed.
|
||||||
|
///
|
||||||
|
/// profile001 = startSketchOn(XY)
|
||||||
|
/// |> startProfileAt([0, 0], %)
|
||||||
|
/// |> line(end = [0, 20], tag = $revolveAxis)
|
||||||
|
/// |> line(end = [20, 0])
|
||||||
|
///
|
||||||
|
/// sketch001 = startSketchOn(XY)
|
||||||
|
/// |> circle(center = [-10, 10], radius = 4)
|
||||||
|
/// |> revolve(angle = 90, axis = revolveAxis)
|
||||||
|
/// ```
|
||||||
|
@(impl = std_rust)
|
||||||
|
export fn revolve(
|
||||||
|
/// The sketch or set of sketches that should be revolved
|
||||||
|
@sketches: [Sketch; 1+],
|
||||||
|
/// Axis of revolution.
|
||||||
|
axis: Axis2d | Edge,
|
||||||
|
/// Angle to revolve (in degrees). Default is 360.
|
||||||
|
angle?: number(deg),
|
||||||
|
/// Tolerance for the revolve operation.
|
||||||
|
tolerance?: number(mm),
|
||||||
|
/// A named tag for the face at the start of the revolve, i.e. the original sketch.
|
||||||
|
tagStart?: tag,
|
||||||
|
/// A named tag for the face at the end of the revolve.
|
||||||
|
tagEnd?: tag,
|
||||||
|
): Solid {}
|
||||||
|
@ -32,3 +32,74 @@ export fn circle(
|
|||||||
/// Create a new tag which refers to this circle.
|
/// Create a new tag which refers to this circle.
|
||||||
tag?: tag,
|
tag?: tag,
|
||||||
): Sketch {}
|
): Sketch {}
|
||||||
|
|
||||||
|
/// Mirror a sketch.
|
||||||
|
///
|
||||||
|
/// Only works on unclosed sketches for now.
|
||||||
|
///
|
||||||
|
/// Mirror occurs around a local sketch axis rather than a global axis.
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// // Mirror an un-closed sketch across the Y axis.
|
||||||
|
/// sketch001 = startSketchOn(XZ)
|
||||||
|
/// |> startProfileAt([0, 10], %)
|
||||||
|
/// |> line(end = [15, 0])
|
||||||
|
/// |> line(end = [-7, -3])
|
||||||
|
/// |> line(end = [9, -1])
|
||||||
|
/// |> line(end = [-8, -5])
|
||||||
|
/// |> line(end = [9, -3])
|
||||||
|
/// |> line(end = [-8, -3])
|
||||||
|
/// |> line(end = [9, -1])
|
||||||
|
/// |> line(end = [-19, -0])
|
||||||
|
/// |> mirror2d(axis = Y)
|
||||||
|
///
|
||||||
|
/// example = extrude(sketch001, length = 10)
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// // Mirror a un-closed sketch across the Y axis.
|
||||||
|
/// sketch001 = startSketchOn(XZ)
|
||||||
|
/// |> startProfileAt([0, 8.5], %)
|
||||||
|
/// |> line(end = [20, -8.5])
|
||||||
|
/// |> line(end = [-20, -8.5])
|
||||||
|
/// |> mirror2d(axis = Y)
|
||||||
|
///
|
||||||
|
/// example = extrude(sketch001, length = 10)
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// // Mirror a un-closed sketch across an edge.
|
||||||
|
/// helper001 = startSketchOn(XZ)
|
||||||
|
/// |> startProfileAt([0, 0], %)
|
||||||
|
/// |> line(end = [0, 10], tag = $edge001)
|
||||||
|
///
|
||||||
|
/// sketch001 = startSketchOn(XZ)
|
||||||
|
/// |> startProfileAt([0, 8.5], %)
|
||||||
|
/// |> line(end = [20, -8.5])
|
||||||
|
/// |> line(end = [-20, -8.5])
|
||||||
|
/// |> mirror2d(axis = edge001)
|
||||||
|
///
|
||||||
|
/// // example = extrude(sketch001, length = 10)
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// // Mirror an un-closed sketch across a custom axis.
|
||||||
|
/// sketch001 = startSketchOn(XZ)
|
||||||
|
/// |> startProfileAt([0, 8.5], %)
|
||||||
|
/// |> line(end = [20, -8.5])
|
||||||
|
/// |> line(end = [-20, -8.5])
|
||||||
|
/// |> mirror2d(
|
||||||
|
/// axis = {
|
||||||
|
/// direction = [0.0, 1.0],
|
||||||
|
/// origin = [0.0, 0.0]
|
||||||
|
/// })
|
||||||
|
///
|
||||||
|
/// example = extrude(sketch001, length = 10)
|
||||||
|
/// ```
|
||||||
|
@(impl = std_rust)
|
||||||
|
export fn mirror2d(
|
||||||
|
/// The sketch or sketches to be reflected.
|
||||||
|
@sketches: [Sketch; 1+],
|
||||||
|
/// The axis to refect around.
|
||||||
|
axis: Axis2d | Edge,
|
||||||
|
): Sketch {}
|
||||||
|
@ -148,6 +148,22 @@ description: Operations executed crazy_multi_profile.kcl
|
|||||||
"type": "UserDefinedFunctionReturn"
|
"type": "UserDefinedFunctionReturn"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"type": "UserDefinedFunctionCall",
|
||||||
|
"name": "revolve",
|
||||||
|
"functionSourceRange": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"angle": {
|
"angle": {
|
||||||
"value": {
|
"value": {
|
||||||
@ -173,19 +189,55 @@ description: Operations executed crazy_multi_profile.kcl
|
|||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "revolve",
|
"sourceRange": []
|
||||||
"sourceRange": [],
|
},
|
||||||
"type": "StdLibCall",
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "",
|
||||||
"unlabeledArg": {
|
"unlabeledArg": {
|
||||||
"value": {
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
"type": "Sketch",
|
"type": "Sketch",
|
||||||
"value": {
|
"value": {
|
||||||
"artifactId": "[uuid]"
|
"artifactId": "[uuid]"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"angle": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 45.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Uuid",
|
||||||
|
"value": "[uuid]"
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"length": {
|
"length": {
|
||||||
@ -338,6 +390,22 @@ description: Operations executed crazy_multi_profile.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"type": "UserDefinedFunctionCall",
|
||||||
|
"name": "revolve",
|
||||||
|
"functionSourceRange": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"angle": {
|
"angle": {
|
||||||
"value": {
|
"value": {
|
||||||
@ -364,17 +432,54 @@ description: Operations executed crazy_multi_profile.kcl
|
|||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "revolve",
|
"sourceRange": []
|
||||||
"sourceRange": [],
|
},
|
||||||
"type": "StdLibCall",
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "",
|
||||||
"unlabeledArg": {
|
"unlabeledArg": {
|
||||||
"value": {
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
"type": "Sketch",
|
"type": "Sketch",
|
||||||
"value": {
|
"value": {
|
||||||
"artifactId": "[uuid]"
|
"artifactId": "[uuid]"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"angle": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 45.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "TagIdentifier",
|
||||||
|
"value": "seg02",
|
||||||
|
"artifact_id": "[uuid]"
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -117,6 +117,14 @@ description: Operations executed helix_ccw.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"type": "UserDefinedFunctionCall",
|
||||||
|
"name": "helix",
|
||||||
|
"functionSourceRange": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"unlabeledArg": null,
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"angleStart": {
|
"angleStart": {
|
||||||
"value": {
|
"value": {
|
||||||
@ -167,9 +175,11 @@ description: Operations executed helix_ccw.kcl
|
|||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "helix",
|
"sourceRange": []
|
||||||
"sourceRange": [],
|
},
|
||||||
"type": "StdLibCall",
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "",
|
||||||
"unlabeledArg": {
|
"unlabeledArg": {
|
||||||
"value": {
|
"value": {
|
||||||
"type": "Solid",
|
"type": "Solid",
|
||||||
@ -178,6 +188,60 @@ description: Operations executed helix_ccw.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"angleStart": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"ccw": {
|
||||||
|
"value": {
|
||||||
|
"type": "Bool",
|
||||||
|
"value": true
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"cylinder": {
|
||||||
|
"value": {
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"revolutions": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 16.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
|
@ -19,6 +19,14 @@ description: Operations executed helix_simple.kcl
|
|||||||
"unlabeledArg": null
|
"unlabeledArg": null
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"type": "UserDefinedFunctionCall",
|
||||||
|
"name": "helix",
|
||||||
|
"functionSourceRange": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"unlabeledArg": null,
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"angleStart": {
|
"angleStart": {
|
||||||
"value": {
|
"value": {
|
||||||
@ -100,9 +108,96 @@ description: Operations executed helix_simple.kcl
|
|||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "helix",
|
"sourceRange": []
|
||||||
"sourceRange": [],
|
},
|
||||||
"type": "StdLibCall",
|
{
|
||||||
"unlabeledArg": null
|
"type": "KclStdLibCall",
|
||||||
|
"name": "",
|
||||||
|
"unlabeledArg": null,
|
||||||
|
"labeledArgs": {
|
||||||
|
"angleStart": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "TagIdentifier",
|
||||||
|
"value": "edge001",
|
||||||
|
"artifact_id": "[uuid]"
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"ccw": {
|
||||||
|
"value": {
|
||||||
|
"type": "Bool",
|
||||||
|
"value": true
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"length": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 10.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"radius": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 5.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"revolutions": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 5.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
@settings(defaultLengthUnit = mm)
|
@settings(defaultLengthUnit = mm)
|
||||||
|
|
||||||
export part001 = startSketchOn('XY')
|
export part001 = startSketchOn(XY)
|
||||||
|> startProfileAt([4, 12], %)
|
|> startProfileAt([4, 12], %)
|
||||||
|> line(end = [2, 0])
|
|> line(end = [2, 0])
|
||||||
|> line(end = [0, -6])
|
|> line(end = [0, -6])
|
||||||
@ -10,7 +10,7 @@ export part001 = startSketchOn('XY')
|
|||||||
|> line(end = [0, -5.5])
|
|> line(end = [0, -5.5])
|
||||||
|> line(end = [-2, 0])
|
|> line(end = [-2, 0])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = 'y') // default angle is 360
|
|> revolve(axis = Y) // default angle is 360
|
||||||
|
|
||||||
export fn two() {
|
export fn two() {
|
||||||
return 5
|
return 5
|
||||||
|
@ -7,8 +7,8 @@ description: Operations executed import_function_not_sketch.kcl
|
|||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"data": {
|
"data": {
|
||||||
"value": {
|
"value": {
|
||||||
"type": "String",
|
"type": "Plane",
|
||||||
"value": "XY"
|
"artifact_id": "[uuid]"
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
@ -19,18 +19,117 @@ description: Operations executed import_function_not_sketch.kcl
|
|||||||
"unlabeledArg": null
|
"unlabeledArg": null
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"type": "UserDefinedFunctionCall",
|
||||||
|
"name": "revolve",
|
||||||
|
"functionSourceRange": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"unlabeledArg": null,
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"axis": {
|
"axis": {
|
||||||
"value": {
|
"value": {
|
||||||
"type": "String",
|
"type": "Object",
|
||||||
"value": "y"
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "revolve",
|
"sourceRange": []
|
||||||
"sourceRange": [],
|
},
|
||||||
"type": "StdLibCall",
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "",
|
||||||
"unlabeledArg": {
|
"unlabeledArg": {
|
||||||
"value": {
|
"value": {
|
||||||
"type": "Sketch",
|
"type": "Sketch",
|
||||||
@ -39,6 +138,82 @@ description: Operations executed import_function_not_sketch.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
|
@ -14,7 +14,7 @@ export part001 = startSketchOn(XY)
|
|||||||
|> line(end = [0, -5.5])
|
|> line(end = [0, -5.5])
|
||||||
|> line(end = [-2, 0])
|
|> line(end = [-2, 0])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = 'y') // default angle is 360
|
|> revolve(axis = Y) // default angle is 360
|
||||||
|
|
||||||
export fn two() {
|
export fn two() {
|
||||||
return 5
|
return 5
|
||||||
|
@ -17,26 +17,26 @@ flowchart LR
|
|||||||
18[Solid2d]
|
18[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path24 [Path]
|
subgraph path24 [Path]
|
||||||
24["Path<br>[1576, 1709, 0]"]
|
24["Path<br>[1574, 1707, 0]"]
|
||||||
25["Segment<br>[1715, 1808, 0]"]
|
25["Segment<br>[1713, 1806, 0]"]
|
||||||
26["Segment<br>[1814, 1845, 0]"]
|
26["Segment<br>[1812, 1843, 0]"]
|
||||||
27["Segment<br>[1851, 1879, 0]"]
|
27["Segment<br>[1849, 1877, 0]"]
|
||||||
28["Segment<br>[1885, 1892, 0]"]
|
28["Segment<br>[1883, 1890, 0]"]
|
||||||
29[Solid2d]
|
29[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path40 [Path]
|
subgraph path40 [Path]
|
||||||
40["Path<br>[2228, 2370, 0]"]
|
40["Path<br>[2224, 2366, 0]"]
|
||||||
41["Segment<br>[2228, 2370, 0]"]
|
41["Segment<br>[2224, 2366, 0]"]
|
||||||
42[Solid2d]
|
42[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path50 [Path]
|
subgraph path50 [Path]
|
||||||
50["Path<br>[2766, 2819, 0]"]
|
50["Path<br>[2760, 2813, 0]"]
|
||||||
51["Segment<br>[2766, 2819, 0]"]
|
51["Segment<br>[2760, 2813, 0]"]
|
||||||
52[Solid2d]
|
52[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path53 [Path]
|
subgraph path53 [Path]
|
||||||
53["Path<br>[2830, 2904, 0]"]
|
53["Path<br>[2824, 2898, 0]"]
|
||||||
54["Segment<br>[2830, 2904, 0]"]
|
54["Segment<br>[2824, 2898, 0]"]
|
||||||
55[Solid2d]
|
55[Solid2d]
|
||||||
end
|
end
|
||||||
1["Plane<br>[677, 724, 0]"]
|
1["Plane<br>[677, 724, 0]"]
|
||||||
@ -47,12 +47,12 @@ flowchart LR
|
|||||||
12["SweepEdge Opposite"]
|
12["SweepEdge Opposite"]
|
||||||
13["SweepEdge Adjacent"]
|
13["SweepEdge Adjacent"]
|
||||||
14["Plane<br>[1014, 1031, 0]"]
|
14["Plane<br>[1014, 1031, 0]"]
|
||||||
19["Sweep Revolve<br>[1286, 1318, 0]"]
|
19["Sweep Revolve<br>[1286, 1316, 0]"]
|
||||||
20[Wall]
|
20[Wall]
|
||||||
21[Wall]
|
21[Wall]
|
||||||
22["SweepEdge Adjacent"]
|
22["SweepEdge Adjacent"]
|
||||||
23["Plane<br>[1553, 1570, 0]"]
|
23["Plane<br>[1551, 1568, 0]"]
|
||||||
30["Sweep Revolve<br>[1934, 1966, 0]"]
|
30["Sweep Revolve<br>[1932, 1962, 0]"]
|
||||||
31[Wall]
|
31[Wall]
|
||||||
32[Wall]
|
32[Wall]
|
||||||
33[Wall]
|
33[Wall]
|
||||||
@ -61,22 +61,22 @@ flowchart LR
|
|||||||
36["SweepEdge Adjacent"]
|
36["SweepEdge Adjacent"]
|
||||||
37["SweepEdge Adjacent"]
|
37["SweepEdge Adjacent"]
|
||||||
38["SweepEdge Adjacent"]
|
38["SweepEdge Adjacent"]
|
||||||
39["Plane<br>[2205, 2222, 0]"]
|
39["Plane<br>[2201, 2218, 0]"]
|
||||||
43["Sweep Revolve<br>[2413, 2466, 0]"]
|
43["Sweep Revolve<br>[2409, 2460, 0]"]
|
||||||
44[Wall]
|
44[Wall]
|
||||||
45["Cap Start"]
|
45["Cap Start"]
|
||||||
46["Cap End"]
|
46["Cap End"]
|
||||||
47["SweepEdge Opposite"]
|
47["SweepEdge Opposite"]
|
||||||
48["SweepEdge Adjacent"]
|
48["SweepEdge Adjacent"]
|
||||||
49["Plane<br>[2712, 2759, 0]"]
|
49["Plane<br>[2706, 2753, 0]"]
|
||||||
56["Sweep Extrusion<br>[2924, 2977, 0]"]
|
56["Sweep Extrusion<br>[2918, 2971, 0]"]
|
||||||
57[Wall]
|
57[Wall]
|
||||||
58["Cap Start"]
|
58["Cap Start"]
|
||||||
59["Cap End"]
|
59["Cap End"]
|
||||||
60["SweepEdge Opposite"]
|
60["SweepEdge Opposite"]
|
||||||
61["SweepEdge Adjacent"]
|
61["SweepEdge Adjacent"]
|
||||||
62["StartSketchOnPlane<br>[663, 725, 0]"]
|
62["StartSketchOnPlane<br>[663, 725, 0]"]
|
||||||
63["StartSketchOnPlane<br>[2698, 2760, 0]"]
|
63["StartSketchOnPlane<br>[2692, 2754, 0]"]
|
||||||
1 --- 2
|
1 --- 2
|
||||||
1 --- 5
|
1 --- 5
|
||||||
2 --- 3
|
2 --- 3
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -236,18 +236,13 @@ description: Operations executed ball-bearing.kcl
|
|||||||
"unlabeledArg": null
|
"unlabeledArg": null
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"labeledArgs": {
|
"type": "UserDefinedFunctionCall",
|
||||||
"axis": {
|
|
||||||
"value": {
|
|
||||||
"type": "String",
|
|
||||||
"value": "X"
|
|
||||||
},
|
|
||||||
"sourceRange": []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"name": "revolve",
|
"name": "revolve",
|
||||||
"sourceRange": [],
|
"functionSourceRange": [
|
||||||
"type": "StdLibCall",
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
"unlabeledArg": {
|
"unlabeledArg": {
|
||||||
"value": {
|
"value": {
|
||||||
"type": "Sketch",
|
"type": "Sketch",
|
||||||
@ -256,7 +251,200 @@ description: Operations executed ball-bearing.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
@ -438,18 +626,13 @@ description: Operations executed ball-bearing.kcl
|
|||||||
"type": "UserDefinedFunctionReturn"
|
"type": "UserDefinedFunctionReturn"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"labeledArgs": {
|
"type": "UserDefinedFunctionCall",
|
||||||
"axis": {
|
|
||||||
"value": {
|
|
||||||
"type": "String",
|
|
||||||
"value": "X"
|
|
||||||
},
|
|
||||||
"sourceRange": []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"name": "revolve",
|
"name": "revolve",
|
||||||
"sourceRange": [],
|
"functionSourceRange": [
|
||||||
"type": "StdLibCall",
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
"unlabeledArg": {
|
"unlabeledArg": {
|
||||||
"value": {
|
"value": {
|
||||||
"type": "Sketch",
|
"type": "Sketch",
|
||||||
@ -458,7 +641,200 @@ description: Operations executed ball-bearing.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
@ -679,6 +1055,22 @@ description: Operations executed ball-bearing.kcl
|
|||||||
"type": "UserDefinedFunctionReturn"
|
"type": "UserDefinedFunctionReturn"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"type": "UserDefinedFunctionCall",
|
||||||
|
"name": "revolve",
|
||||||
|
"functionSourceRange": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"angle": {
|
"angle": {
|
||||||
"value": {
|
"value": {
|
||||||
@ -692,25 +1084,207 @@ description: Operations executed ball-bearing.kcl
|
|||||||
},
|
},
|
||||||
"axis": {
|
"axis": {
|
||||||
"value": {
|
"value": {
|
||||||
"type": "String",
|
"type": "Object",
|
||||||
"value": "Y"
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "revolve",
|
"sourceRange": []
|
||||||
"sourceRange": [],
|
},
|
||||||
"type": "StdLibCall",
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "",
|
||||||
"unlabeledArg": {
|
"unlabeledArg": {
|
||||||
"value": {
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
"type": "Sketch",
|
"type": "Sketch",
|
||||||
"value": {
|
"value": {
|
||||||
"artifactId": "[uuid]"
|
"artifactId": "[uuid]"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"angle": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 36.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"arcDegrees": {
|
"arcDegrees": {
|
||||||
|
@ -93,58 +93,58 @@ flowchart LR
|
|||||||
185[Solid2d]
|
185[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path195 [Path]
|
subgraph path195 [Path]
|
||||||
195["Path<br>[2107, 2153, 5]"]
|
195["Path<br>[2105, 2151, 5]"]
|
||||||
196["Segment<br>[2159, 2211, 5]"]
|
196["Segment<br>[2157, 2209, 5]"]
|
||||||
197["Segment<br>[2217, 2324, 5]"]
|
197["Segment<br>[2215, 2322, 5]"]
|
||||||
198["Segment<br>[2330, 2367, 5]"]
|
198["Segment<br>[2328, 2365, 5]"]
|
||||||
199["Segment<br>[2373, 2429, 5]"]
|
199["Segment<br>[2371, 2427, 5]"]
|
||||||
200["Segment<br>[2435, 2442, 5]"]
|
200["Segment<br>[2433, 2440, 5]"]
|
||||||
201[Solid2d]
|
201[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path212 [Path]
|
subgraph path212 [Path]
|
||||||
212["Path<br>[2953, 3000, 5]"]
|
212["Path<br>[2949, 2996, 5]"]
|
||||||
213["Segment<br>[3008, 3348, 5]"]
|
213["Segment<br>[3004, 3344, 5]"]
|
||||||
214["Segment<br>[3356, 3388, 5]"]
|
214["Segment<br>[3352, 3384, 5]"]
|
||||||
215["Segment<br>[3396, 3740, 5]"]
|
215["Segment<br>[3392, 3736, 5]"]
|
||||||
216["Segment<br>[3748, 3804, 5]"]
|
216["Segment<br>[3744, 3800, 5]"]
|
||||||
217["Segment<br>[3812, 3819, 5]"]
|
217["Segment<br>[3808, 3815, 5]"]
|
||||||
218[Solid2d]
|
218[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path235 [Path]
|
subgraph path235 [Path]
|
||||||
235["Path<br>[2953, 3000, 5]"]
|
235["Path<br>[2949, 2996, 5]"]
|
||||||
236["Segment<br>[3008, 3348, 5]"]
|
236["Segment<br>[3004, 3344, 5]"]
|
||||||
237["Segment<br>[3356, 3388, 5]"]
|
237["Segment<br>[3352, 3384, 5]"]
|
||||||
238["Segment<br>[3396, 3740, 5]"]
|
238["Segment<br>[3392, 3736, 5]"]
|
||||||
239["Segment<br>[3748, 3804, 5]"]
|
239["Segment<br>[3744, 3800, 5]"]
|
||||||
240["Segment<br>[3812, 3819, 5]"]
|
240["Segment<br>[3808, 3815, 5]"]
|
||||||
241[Solid2d]
|
241[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path258 [Path]
|
subgraph path258 [Path]
|
||||||
258["Path<br>[4347, 4442, 5]"]
|
258["Path<br>[4343, 4438, 5]"]
|
||||||
259["Segment<br>[4448, 4481, 5]"]
|
259["Segment<br>[4444, 4477, 5]"]
|
||||||
260["Segment<br>[4487, 4538, 5]"]
|
260["Segment<br>[4483, 4534, 5]"]
|
||||||
261["Segment<br>[4544, 4577, 5]"]
|
261["Segment<br>[4540, 4573, 5]"]
|
||||||
262["Segment<br>[4583, 4633, 5]"]
|
262["Segment<br>[4579, 4629, 5]"]
|
||||||
263["Segment<br>[4639, 4680, 5]"]
|
263["Segment<br>[4635, 4676, 5]"]
|
||||||
264["Segment<br>[4686, 4735, 5]"]
|
264["Segment<br>[4682, 4731, 5]"]
|
||||||
265["Segment<br>[4741, 4774, 5]"]
|
265["Segment<br>[4737, 4770, 5]"]
|
||||||
266["Segment<br>[4780, 4814, 5]"]
|
266["Segment<br>[4776, 4810, 5]"]
|
||||||
267["Segment<br>[4820, 4854, 5]"]
|
267["Segment<br>[4816, 4850, 5]"]
|
||||||
268["Segment<br>[4860, 4912, 5]"]
|
268["Segment<br>[4856, 4908, 5]"]
|
||||||
269["Segment<br>[4918, 4952, 5]"]
|
269["Segment<br>[4914, 4948, 5]"]
|
||||||
270["Segment<br>[4958, 5034, 5]"]
|
270["Segment<br>[4954, 5030, 5]"]
|
||||||
271["Segment<br>[5040, 5073, 5]"]
|
271["Segment<br>[5036, 5069, 5]"]
|
||||||
272["Segment<br>[5079, 5155, 5]"]
|
272["Segment<br>[5075, 5151, 5]"]
|
||||||
273["Segment<br>[5161, 5195, 5]"]
|
273["Segment<br>[5157, 5191, 5]"]
|
||||||
274["Segment<br>[5201, 5275, 5]"]
|
274["Segment<br>[5197, 5271, 5]"]
|
||||||
275["Segment<br>[5281, 5315, 5]"]
|
275["Segment<br>[5277, 5311, 5]"]
|
||||||
276["Segment<br>[5321, 5372, 5]"]
|
276["Segment<br>[5317, 5368, 5]"]
|
||||||
277["Segment<br>[5378, 5440, 5]"]
|
277["Segment<br>[5374, 5436, 5]"]
|
||||||
278["Segment<br>[5446, 5497, 5]"]
|
278["Segment<br>[5442, 5493, 5]"]
|
||||||
279["Segment<br>[5503, 5537, 5]"]
|
279["Segment<br>[5499, 5533, 5]"]
|
||||||
280["Segment<br>[5543, 5576, 5]"]
|
280["Segment<br>[5539, 5572, 5]"]
|
||||||
281["Segment<br>[5582, 5615, 5]"]
|
281["Segment<br>[5578, 5611, 5]"]
|
||||||
282["Segment<br>[5621, 5628, 5]"]
|
282["Segment<br>[5617, 5624, 5]"]
|
||||||
283[Solid2d]
|
283[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path334 [Path]
|
subgraph path334 [Path]
|
||||||
@ -324,7 +324,7 @@ flowchart LR
|
|||||||
176["Sweep Extrusion<br>[1444, 1478, 5]"]
|
176["Sweep Extrusion<br>[1444, 1478, 5]"]
|
||||||
177["Sweep Extrusion<br>[1444, 1478, 5]"]
|
177["Sweep Extrusion<br>[1444, 1478, 5]"]
|
||||||
178["Plane<br>[1632, 1649, 5]"]
|
178["Plane<br>[1632, 1649, 5]"]
|
||||||
186["Sweep Revolve<br>[1979, 1998, 5]"]
|
186["Sweep Revolve<br>[1979, 1996, 5]"]
|
||||||
187[Wall]
|
187[Wall]
|
||||||
188[Wall]
|
188[Wall]
|
||||||
189[Wall]
|
189[Wall]
|
||||||
@ -332,8 +332,8 @@ flowchart LR
|
|||||||
191["SweepEdge Adjacent"]
|
191["SweepEdge Adjacent"]
|
||||||
192["SweepEdge Adjacent"]
|
192["SweepEdge Adjacent"]
|
||||||
193["SweepEdge Adjacent"]
|
193["SweepEdge Adjacent"]
|
||||||
194["Plane<br>[2084, 2101, 5]"]
|
194["Plane<br>[2082, 2099, 5]"]
|
||||||
202["Sweep Revolve<br>[2448, 2467, 5]"]
|
202["Sweep Revolve<br>[2446, 2463, 5]"]
|
||||||
203[Wall]
|
203[Wall]
|
||||||
204[Wall]
|
204[Wall]
|
||||||
205[Wall]
|
205[Wall]
|
||||||
@ -342,8 +342,8 @@ flowchart LR
|
|||||||
208["SweepEdge Adjacent"]
|
208["SweepEdge Adjacent"]
|
||||||
209["SweepEdge Adjacent"]
|
209["SweepEdge Adjacent"]
|
||||||
210["SweepEdge Adjacent"]
|
210["SweepEdge Adjacent"]
|
||||||
211["Plane<br>[2922, 2945, 5]"]
|
211["Plane<br>[2918, 2941, 5]"]
|
||||||
219["Sweep Extrusion<br>[3867, 3913, 5]"]
|
219["Sweep Extrusion<br>[3863, 3909, 5]"]
|
||||||
220[Wall]
|
220[Wall]
|
||||||
221[Wall]
|
221[Wall]
|
||||||
222[Wall]
|
222[Wall]
|
||||||
@ -358,8 +358,8 @@ flowchart LR
|
|||||||
231["SweepEdge Adjacent"]
|
231["SweepEdge Adjacent"]
|
||||||
232["SweepEdge Opposite"]
|
232["SweepEdge Opposite"]
|
||||||
233["SweepEdge Adjacent"]
|
233["SweepEdge Adjacent"]
|
||||||
234["Plane<br>[2922, 2945, 5]"]
|
234["Plane<br>[2918, 2941, 5]"]
|
||||||
242["Sweep Extrusion<br>[3867, 3913, 5]"]
|
242["Sweep Extrusion<br>[3863, 3909, 5]"]
|
||||||
243[Wall]
|
243[Wall]
|
||||||
244[Wall]
|
244[Wall]
|
||||||
245[Wall]
|
245[Wall]
|
||||||
@ -374,8 +374,8 @@ flowchart LR
|
|||||||
254["SweepEdge Adjacent"]
|
254["SweepEdge Adjacent"]
|
||||||
255["SweepEdge Opposite"]
|
255["SweepEdge Opposite"]
|
||||||
256["SweepEdge Adjacent"]
|
256["SweepEdge Adjacent"]
|
||||||
257["Plane<br>[4324, 4341, 5]"]
|
257["Plane<br>[4320, 4337, 5]"]
|
||||||
284["Sweep Revolve<br>[5634, 5653, 5]"]
|
284["Sweep Revolve<br>[5630, 5647, 5]"]
|
||||||
285[Wall]
|
285[Wall]
|
||||||
286[Wall]
|
286[Wall]
|
||||||
287[Wall]
|
287[Wall]
|
||||||
@ -425,7 +425,7 @@ flowchart LR
|
|||||||
331["SweepEdge Adjacent"]
|
331["SweepEdge Adjacent"]
|
||||||
332["SweepEdge Adjacent"]
|
332["SweepEdge Adjacent"]
|
||||||
333["Plane<br>[706, 732, 8]"]
|
333["Plane<br>[706, 732, 8]"]
|
||||||
345["Sweep Revolve<br>[1182, 1201, 8]"]
|
345["Sweep Revolve<br>[1182, 1199, 8]"]
|
||||||
346[Wall]
|
346[Wall]
|
||||||
347[Wall]
|
347[Wall]
|
||||||
348[Wall]
|
348[Wall]
|
||||||
@ -445,7 +445,7 @@ flowchart LR
|
|||||||
362["SweepEdge Adjacent"]
|
362["SweepEdge Adjacent"]
|
||||||
363["SweepEdge Adjacent"]
|
363["SweepEdge Adjacent"]
|
||||||
364["Plane<br>[484, 501, 7]"]
|
364["Plane<br>[484, 501, 7]"]
|
||||||
384["Sweep Revolve<br>[2243, 2295, 7]"]
|
384["Sweep Revolve<br>[2243, 2293, 7]"]
|
||||||
385[Wall]
|
385[Wall]
|
||||||
386[Wall]
|
386[Wall]
|
||||||
387[Wall]
|
387[Wall]
|
||||||
@ -500,7 +500,7 @@ flowchart LR
|
|||||||
436["SweepEdge Opposite"]
|
436["SweepEdge Opposite"]
|
||||||
437["SweepEdge Adjacent"]
|
437["SweepEdge Adjacent"]
|
||||||
438["Plane<br>[460, 477, 9]"]
|
438["Plane<br>[460, 477, 9]"]
|
||||||
455["Sweep Revolve<br>[1486, 1517, 9]"]
|
455["Sweep Revolve<br>[1486, 1515, 9]"]
|
||||||
456[Wall]
|
456[Wall]
|
||||||
457[Wall]
|
457[Wall]
|
||||||
458[Wall]
|
458[Wall]
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -10,118 +10,118 @@ flowchart LR
|
|||||||
8[Solid2d]
|
8[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path18 [Path]
|
subgraph path18 [Path]
|
||||||
18["Path<br>[984, 1028, 0]"]
|
18["Path<br>[982, 1026, 0]"]
|
||||||
19["Segment<br>[1034, 1053, 0]"]
|
19["Segment<br>[1032, 1051, 0]"]
|
||||||
20["Segment<br>[1059, 1093, 0]"]
|
20["Segment<br>[1057, 1091, 0]"]
|
||||||
21["Segment<br>[1099, 1183, 0]"]
|
21["Segment<br>[1097, 1181, 0]"]
|
||||||
22["Segment<br>[1189, 1241, 0]"]
|
22["Segment<br>[1187, 1239, 0]"]
|
||||||
23["Segment<br>[1247, 1331, 0]"]
|
23["Segment<br>[1245, 1329, 0]"]
|
||||||
24["Segment<br>[1337, 1389, 0]"]
|
24["Segment<br>[1335, 1387, 0]"]
|
||||||
25["Segment<br>[1395, 1477, 0]"]
|
25["Segment<br>[1393, 1475, 0]"]
|
||||||
26["Segment<br>[1483, 1523, 0]"]
|
26["Segment<br>[1481, 1521, 0]"]
|
||||||
27["Segment<br>[1529, 1548, 0]"]
|
27["Segment<br>[1527, 1546, 0]"]
|
||||||
28["Segment<br>[1554, 1607, 0]"]
|
28["Segment<br>[1552, 1605, 0]"]
|
||||||
29["Segment<br>[1613, 1695, 0]"]
|
29["Segment<br>[1611, 1693, 0]"]
|
||||||
30["Segment<br>[1701, 1791, 0]"]
|
30["Segment<br>[1699, 1789, 0]"]
|
||||||
31["Segment<br>[1797, 1881, 0]"]
|
31["Segment<br>[1795, 1879, 0]"]
|
||||||
32["Segment<br>[1887, 1977, 0]"]
|
32["Segment<br>[1885, 1975, 0]"]
|
||||||
33["Segment<br>[1983, 2067, 0]"]
|
33["Segment<br>[1981, 2065, 0]"]
|
||||||
34["Segment<br>[2073, 2129, 0]"]
|
34["Segment<br>[2071, 2127, 0]"]
|
||||||
35["Segment<br>[2135, 2142, 0]"]
|
35["Segment<br>[2133, 2140, 0]"]
|
||||||
36[Solid2d]
|
36[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path89 [Path]
|
subgraph path89 [Path]
|
||||||
89["Path<br>[2409, 2468, 0]"]
|
89["Path<br>[2407, 2466, 0]"]
|
||||||
90["Segment<br>[2409, 2468, 0]"]
|
90["Segment<br>[2407, 2466, 0]"]
|
||||||
91[Solid2d]
|
91[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path98 [Path]
|
subgraph path98 [Path]
|
||||||
98["Path<br>[2569, 2599, 0]"]
|
98["Path<br>[2567, 2597, 0]"]
|
||||||
99["Segment<br>[2605, 2624, 0]"]
|
99["Segment<br>[2603, 2622, 0]"]
|
||||||
100["Segment<br>[2630, 2713, 0]"]
|
100["Segment<br>[2628, 2711, 0]"]
|
||||||
101["Segment<br>[2719, 2775, 0]"]
|
101["Segment<br>[2717, 2773, 0]"]
|
||||||
102["Segment<br>[2781, 2788, 0]"]
|
102["Segment<br>[2779, 2786, 0]"]
|
||||||
103[Solid2d]
|
103[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path117 [Path]
|
subgraph path117 [Path]
|
||||||
117["Path<br>[3026, 3057, 0]"]
|
117["Path<br>[3024, 3055, 0]"]
|
||||||
118["Segment<br>[3063, 3108, 0]"]
|
118["Segment<br>[3061, 3106, 0]"]
|
||||||
119["Segment<br>[3114, 3204, 0]"]
|
119["Segment<br>[3112, 3202, 0]"]
|
||||||
120["Segment<br>[3210, 3256, 0]"]
|
120["Segment<br>[3208, 3254, 0]"]
|
||||||
121["Segment<br>[3262, 3315, 0]"]
|
121["Segment<br>[3260, 3313, 0]"]
|
||||||
122["Segment<br>[3321, 3346, 0]"]
|
122["Segment<br>[3319, 3344, 0]"]
|
||||||
123["Segment<br>[3352, 3408, 0]"]
|
123["Segment<br>[3350, 3406, 0]"]
|
||||||
124["Segment<br>[3414, 3421, 0]"]
|
124["Segment<br>[3412, 3419, 0]"]
|
||||||
125[Solid2d]
|
125[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path140 [Path]
|
subgraph path140 [Path]
|
||||||
140["Path<br>[3503, 3530, 0]"]
|
140["Path<br>[3499, 3526, 0]"]
|
||||||
141["Segment<br>[3536, 3556, 0]"]
|
141["Segment<br>[3532, 3552, 0]"]
|
||||||
142["Segment<br>[3562, 3605, 0]"]
|
142["Segment<br>[3558, 3601, 0]"]
|
||||||
143["Segment<br>[3611, 3629, 0]"]
|
143["Segment<br>[3607, 3625, 0]"]
|
||||||
144["Segment<br>[3635, 3655, 0]"]
|
144["Segment<br>[3631, 3651, 0]"]
|
||||||
145["Segment<br>[3661, 3681, 0]"]
|
145["Segment<br>[3657, 3677, 0]"]
|
||||||
146["Segment<br>[3687, 3735, 0]"]
|
146["Segment<br>[3683, 3731, 0]"]
|
||||||
147["Segment<br>[3741, 3797, 0]"]
|
147["Segment<br>[3737, 3793, 0]"]
|
||||||
148["Segment<br>[3803, 3810, 0]"]
|
148["Segment<br>[3799, 3806, 0]"]
|
||||||
149[Solid2d]
|
149[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path166 [Path]
|
subgraph path166 [Path]
|
||||||
166["Path<br>[3916, 3975, 0]"]
|
166["Path<br>[3910, 3969, 0]"]
|
||||||
167["Segment<br>[3916, 3975, 0]"]
|
167["Segment<br>[3910, 3969, 0]"]
|
||||||
168[Solid2d]
|
168[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path169 [Path]
|
subgraph path169 [Path]
|
||||||
169["Path<br>[3986, 4023, 0]"]
|
169["Path<br>[3980, 4017, 0]"]
|
||||||
170["Segment<br>[3986, 4023, 0]"]
|
170["Segment<br>[3980, 4017, 0]"]
|
||||||
171[Solid2d]
|
171[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path178 [Path]
|
subgraph path178 [Path]
|
||||||
178["Path<br>[4165, 4203, 0]"]
|
178["Path<br>[4159, 4197, 0]"]
|
||||||
179["Segment<br>[4165, 4203, 0]"]
|
179["Segment<br>[4159, 4197, 0]"]
|
||||||
180[Solid2d]
|
180[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path192 [Path]
|
subgraph path192 [Path]
|
||||||
192["Path<br>[4476, 4514, 0]"]
|
192["Path<br>[4470, 4508, 0]"]
|
||||||
193["Segment<br>[4476, 4514, 0]"]
|
193["Segment<br>[4470, 4508, 0]"]
|
||||||
194[Solid2d]
|
194[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path203 [Path]
|
subgraph path203 [Path]
|
||||||
203["Path<br>[4766, 4818, 0]"]
|
203["Path<br>[4760, 4812, 0]"]
|
||||||
204["Segment<br>[4766, 4818, 0]"]
|
204["Segment<br>[4760, 4812, 0]"]
|
||||||
205[Solid2d]
|
205[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path213 [Path]
|
subgraph path213 [Path]
|
||||||
213["Path<br>[5065, 5109, 0]"]
|
213["Path<br>[5059, 5103, 0]"]
|
||||||
214["Segment<br>[5115, 5155, 0]"]
|
214["Segment<br>[5109, 5149, 0]"]
|
||||||
215["Segment<br>[5161, 5180, 0]"]
|
215["Segment<br>[5155, 5174, 0]"]
|
||||||
216["Segment<br>[5186, 5205, 0]"]
|
216["Segment<br>[5180, 5199, 0]"]
|
||||||
217["Segment<br>[5211, 5230, 0]"]
|
217["Segment<br>[5205, 5224, 0]"]
|
||||||
218["Segment<br>[5236, 5261, 0]"]
|
218["Segment<br>[5230, 5255, 0]"]
|
||||||
219["Segment<br>[5267, 5407, 0]"]
|
219["Segment<br>[5261, 5401, 0]"]
|
||||||
220["Segment<br>[5413, 5469, 0]"]
|
220["Segment<br>[5407, 5463, 0]"]
|
||||||
221["Segment<br>[5475, 5482, 0]"]
|
221["Segment<br>[5469, 5476, 0]"]
|
||||||
222[Solid2d]
|
222[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path239 [Path]
|
subgraph path239 [Path]
|
||||||
239["Path<br>[5614, 5643, 0]"]
|
239["Path<br>[5606, 5635, 0]"]
|
||||||
240["Segment<br>[5649, 5670, 0]"]
|
240["Segment<br>[5641, 5662, 0]"]
|
||||||
241["Segment<br>[5676, 5707, 0]"]
|
241["Segment<br>[5668, 5699, 0]"]
|
||||||
242["Segment<br>[5713, 5744, 0]"]
|
242["Segment<br>[5705, 5736, 0]"]
|
||||||
243["Segment<br>[5750, 5782, 0]"]
|
243["Segment<br>[5742, 5774, 0]"]
|
||||||
244["Segment<br>[5788, 5810, 0]"]
|
244["Segment<br>[5780, 5802, 0]"]
|
||||||
245["Segment<br>[5816, 5837, 0]"]
|
245["Segment<br>[5808, 5829, 0]"]
|
||||||
246["Segment<br>[5843, 5868, 0]"]
|
246["Segment<br>[5835, 5860, 0]"]
|
||||||
247["Segment<br>[5874, 5905, 0]"]
|
247["Segment<br>[5866, 5897, 0]"]
|
||||||
248["Segment<br>[5911, 5943, 0]"]
|
248["Segment<br>[5903, 5935, 0]"]
|
||||||
249["Segment<br>[5949, 5981, 0]"]
|
249["Segment<br>[5941, 5973, 0]"]
|
||||||
250["Segment<br>[5987, 6008, 0]"]
|
250["Segment<br>[5979, 6000, 0]"]
|
||||||
251["Segment<br>[6014, 6070, 0]"]
|
251["Segment<br>[6006, 6062, 0]"]
|
||||||
252["Segment<br>[6076, 6083, 0]"]
|
252["Segment<br>[6068, 6075, 0]"]
|
||||||
253[Solid2d]
|
253[Solid2d]
|
||||||
end
|
end
|
||||||
1["Plane<br>[241, 258, 0]"]
|
1["Plane<br>[241, 258, 0]"]
|
||||||
9["Sweep Revolve<br>[674, 706, 0]"]
|
9["Sweep Revolve<br>[674, 704, 0]"]
|
||||||
10[Wall]
|
10[Wall]
|
||||||
11[Wall]
|
11[Wall]
|
||||||
12[Wall]
|
12[Wall]
|
||||||
@ -129,8 +129,8 @@ flowchart LR
|
|||||||
14["SweepEdge Adjacent"]
|
14["SweepEdge Adjacent"]
|
||||||
15["SweepEdge Adjacent"]
|
15["SweepEdge Adjacent"]
|
||||||
16["SweepEdge Adjacent"]
|
16["SweepEdge Adjacent"]
|
||||||
17["Plane<br>[955, 978, 0]"]
|
17["Plane<br>[953, 976, 0]"]
|
||||||
37["Sweep Extrusion<br>[2148, 2170, 0]"]
|
37["Sweep Extrusion<br>[2146, 2168, 0]"]
|
||||||
38[Wall]
|
38[Wall]
|
||||||
39[Wall]
|
39[Wall]
|
||||||
40[Wall]
|
40[Wall]
|
||||||
@ -181,14 +181,14 @@ flowchart LR
|
|||||||
85["SweepEdge Adjacent"]
|
85["SweepEdge Adjacent"]
|
||||||
86["SweepEdge Opposite"]
|
86["SweepEdge Opposite"]
|
||||||
87["SweepEdge Adjacent"]
|
87["SweepEdge Adjacent"]
|
||||||
88["Plane<br>[2375, 2402, 0]"]
|
88["Plane<br>[2373, 2400, 0]"]
|
||||||
92["Sweep Extrusion<br>[2483, 2517, 0]"]
|
92["Sweep Extrusion<br>[2481, 2515, 0]"]
|
||||||
93[Wall]
|
93[Wall]
|
||||||
94["Cap Start"]
|
94["Cap Start"]
|
||||||
95["Cap End"]
|
95["Cap End"]
|
||||||
96["SweepEdge Opposite"]
|
96["SweepEdge Opposite"]
|
||||||
97["SweepEdge Adjacent"]
|
97["SweepEdge Adjacent"]
|
||||||
104["Sweep Extrusion<br>[2937, 2972, 0]"]
|
104["Sweep Extrusion<br>[2935, 2970, 0]"]
|
||||||
105[Wall]
|
105[Wall]
|
||||||
106[Wall]
|
106[Wall]
|
||||||
107[Wall]
|
107[Wall]
|
||||||
@ -198,10 +198,10 @@ flowchart LR
|
|||||||
111["SweepEdge Adjacent"]
|
111["SweepEdge Adjacent"]
|
||||||
112["SweepEdge Opposite"]
|
112["SweepEdge Opposite"]
|
||||||
113["SweepEdge Adjacent"]
|
113["SweepEdge Adjacent"]
|
||||||
114["Sweep Extrusion<br>[2937, 2972, 0]"]
|
114["Sweep Extrusion<br>[2935, 2970, 0]"]
|
||||||
115["Sweep Extrusion<br>[2937, 2972, 0]"]
|
115["Sweep Extrusion<br>[2935, 2970, 0]"]
|
||||||
116["Plane<br>[3003, 3020, 0]"]
|
116["Plane<br>[3001, 3018, 0]"]
|
||||||
126["Sweep Revolve<br>[3427, 3446, 0]"]
|
126["Sweep Revolve<br>[3425, 3442, 0]"]
|
||||||
127[Wall]
|
127[Wall]
|
||||||
128[Wall]
|
128[Wall]
|
||||||
129[Wall]
|
129[Wall]
|
||||||
@ -214,8 +214,8 @@ flowchart LR
|
|||||||
136["SweepEdge Adjacent"]
|
136["SweepEdge Adjacent"]
|
||||||
137["SweepEdge Adjacent"]
|
137["SweepEdge Adjacent"]
|
||||||
138["SweepEdge Adjacent"]
|
138["SweepEdge Adjacent"]
|
||||||
139["Plane<br>[3480, 3497, 0]"]
|
139["Plane<br>[3476, 3493, 0]"]
|
||||||
150["Sweep Revolve<br>[3816, 3835, 0]"]
|
150["Sweep Revolve<br>[3812, 3829, 0]"]
|
||||||
151[Wall]
|
151[Wall]
|
||||||
152[Wall]
|
152[Wall]
|
||||||
153[Wall]
|
153[Wall]
|
||||||
@ -230,40 +230,40 @@ flowchart LR
|
|||||||
162["SweepEdge Adjacent"]
|
162["SweepEdge Adjacent"]
|
||||||
163["SweepEdge Adjacent"]
|
163["SweepEdge Adjacent"]
|
||||||
164["SweepEdge Adjacent"]
|
164["SweepEdge Adjacent"]
|
||||||
165["Plane<br>[3879, 3909, 0]"]
|
165["Plane<br>[3873, 3903, 0]"]
|
||||||
172["Sweep Extrusion<br>[4042, 4076, 0]"]
|
172["Sweep Extrusion<br>[4036, 4070, 0]"]
|
||||||
173[Wall]
|
173[Wall]
|
||||||
174["Cap Start"]
|
174["Cap Start"]
|
||||||
175["Cap End"]
|
175["Cap End"]
|
||||||
176["SweepEdge Opposite"]
|
176["SweepEdge Opposite"]
|
||||||
177["SweepEdge Adjacent"]
|
177["SweepEdge Adjacent"]
|
||||||
181["Sweep Extrusion<br>[4352, 4387, 0]"]
|
181["Sweep Extrusion<br>[4346, 4381, 0]"]
|
||||||
182[Wall]
|
182[Wall]
|
||||||
183["SweepEdge Opposite"]
|
183["SweepEdge Opposite"]
|
||||||
184["SweepEdge Adjacent"]
|
184["SweepEdge Adjacent"]
|
||||||
185["Sweep Extrusion<br>[4352, 4387, 0]"]
|
185["Sweep Extrusion<br>[4346, 4381, 0]"]
|
||||||
186["Sweep Extrusion<br>[4352, 4387, 0]"]
|
186["Sweep Extrusion<br>[4346, 4381, 0]"]
|
||||||
187["Sweep Extrusion<br>[4352, 4387, 0]"]
|
187["Sweep Extrusion<br>[4346, 4381, 0]"]
|
||||||
188["Sweep Extrusion<br>[4352, 4387, 0]"]
|
188["Sweep Extrusion<br>[4346, 4381, 0]"]
|
||||||
189["Sweep Extrusion<br>[4352, 4387, 0]"]
|
189["Sweep Extrusion<br>[4346, 4381, 0]"]
|
||||||
190["Sweep Extrusion<br>[4352, 4387, 0]"]
|
190["Sweep Extrusion<br>[4346, 4381, 0]"]
|
||||||
191["Sweep Extrusion<br>[4352, 4387, 0]"]
|
191["Sweep Extrusion<br>[4346, 4381, 0]"]
|
||||||
195["Sweep Extrusion<br>[4663, 4698, 0]"]
|
195["Sweep Extrusion<br>[4657, 4692, 0]"]
|
||||||
196[Wall]
|
196[Wall]
|
||||||
197["SweepEdge Opposite"]
|
197["SweepEdge Opposite"]
|
||||||
198["SweepEdge Adjacent"]
|
198["SweepEdge Adjacent"]
|
||||||
199["Sweep Extrusion<br>[4663, 4698, 0]"]
|
199["Sweep Extrusion<br>[4657, 4692, 0]"]
|
||||||
200["Sweep Extrusion<br>[4663, 4698, 0]"]
|
200["Sweep Extrusion<br>[4657, 4692, 0]"]
|
||||||
201["Sweep Extrusion<br>[4663, 4698, 0]"]
|
201["Sweep Extrusion<br>[4657, 4692, 0]"]
|
||||||
202["Plane<br>[4743, 4760, 0]"]
|
202["Plane<br>[4737, 4754, 0]"]
|
||||||
206["Sweep Extrusion<br>[4914, 4955, 0]"]
|
206["Sweep Extrusion<br>[4908, 4949, 0]"]
|
||||||
207[Wall]
|
207[Wall]
|
||||||
208["Cap Start"]
|
208["Cap Start"]
|
||||||
209["Cap End"]
|
209["Cap End"]
|
||||||
210["SweepEdge Opposite"]
|
210["SweepEdge Opposite"]
|
||||||
211["SweepEdge Adjacent"]
|
211["SweepEdge Adjacent"]
|
||||||
212["Plane<br>[5042, 5059, 0]"]
|
212["Plane<br>[5036, 5053, 0]"]
|
||||||
223["Sweep Revolve<br>[5488, 5507, 0]"]
|
223["Sweep Revolve<br>[5482, 5499, 0]"]
|
||||||
224[Wall]
|
224[Wall]
|
||||||
225[Wall]
|
225[Wall]
|
||||||
226[Wall]
|
226[Wall]
|
||||||
@ -278,8 +278,8 @@ flowchart LR
|
|||||||
235["SweepEdge Adjacent"]
|
235["SweepEdge Adjacent"]
|
||||||
236["SweepEdge Adjacent"]
|
236["SweepEdge Adjacent"]
|
||||||
237["SweepEdge Adjacent"]
|
237["SweepEdge Adjacent"]
|
||||||
238["Plane<br>[5562, 5607, 0]"]
|
238["Plane<br>[5554, 5599, 0]"]
|
||||||
254["Sweep Extrusion<br>[6097, 6142, 0]"]
|
254["Sweep Extrusion<br>[6089, 6134, 0]"]
|
||||||
255[Wall]
|
255[Wall]
|
||||||
256[Wall]
|
256[Wall]
|
||||||
257[Wall]
|
257[Wall]
|
||||||
@ -318,12 +318,12 @@ flowchart LR
|
|||||||
290["SweepEdge Adjacent"]
|
290["SweepEdge Adjacent"]
|
||||||
291["SweepEdge Opposite"]
|
291["SweepEdge Opposite"]
|
||||||
292["SweepEdge Adjacent"]
|
292["SweepEdge Adjacent"]
|
||||||
293["StartSketchOnPlane<br>[2361, 2403, 0]"]
|
293["StartSketchOnPlane<br>[2359, 2401, 0]"]
|
||||||
294["StartSketchOnFace<br>[2531, 2563, 0]"]
|
294["StartSketchOnFace<br>[2529, 2561, 0]"]
|
||||||
295["StartSketchOnPlane<br>[3865, 3910, 0]"]
|
295["StartSketchOnPlane<br>[3859, 3904, 0]"]
|
||||||
296["StartSketchOnFace<br>[4127, 4159, 0]"]
|
296["StartSketchOnFace<br>[4121, 4153, 0]"]
|
||||||
297["StartSketchOnFace<br>[4438, 4470, 0]"]
|
297["StartSketchOnFace<br>[4432, 4464, 0]"]
|
||||||
298["StartSketchOnPlane<br>[5548, 5608, 0]"]
|
298["StartSketchOnPlane<br>[5540, 5600, 0]"]
|
||||||
1 --- 2
|
1 --- 2
|
||||||
2 --- 3
|
2 --- 3
|
||||||
2 --- 4
|
2 --- 4
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -19,6 +19,14 @@ description: Operations executed french-press.kcl
|
|||||||
"unlabeledArg": null
|
"unlabeledArg": null
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"type": "UserDefinedFunctionCall",
|
||||||
|
"name": "revolve",
|
||||||
|
"functionSourceRange": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"unlabeledArg": null,
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"angle": {
|
"angle": {
|
||||||
"value": {
|
"value": {
|
||||||
@ -38,15 +46,106 @@ description: Operations executed french-press.kcl
|
|||||||
},
|
},
|
||||||
"axis": {
|
"axis": {
|
||||||
"value": {
|
"value": {
|
||||||
"type": "String",
|
"type": "Object",
|
||||||
"value": "Y"
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "revolve",
|
"sourceRange": []
|
||||||
"sourceRange": [],
|
},
|
||||||
"type": "StdLibCall",
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "",
|
||||||
"unlabeledArg": {
|
"unlabeledArg": {
|
||||||
"value": {
|
"value": {
|
||||||
"type": "Sketch",
|
"type": "Sketch",
|
||||||
@ -55,7 +154,99 @@ description: Operations executed french-press.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"angle": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 360.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
@ -661,18 +852,117 @@ description: Operations executed french-press.kcl
|
|||||||
"unlabeledArg": null
|
"unlabeledArg": null
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"type": "UserDefinedFunctionCall",
|
||||||
|
"name": "revolve",
|
||||||
|
"functionSourceRange": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"unlabeledArg": null,
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"axis": {
|
"axis": {
|
||||||
"value": {
|
"value": {
|
||||||
"type": "String",
|
"type": "Object",
|
||||||
"value": "y"
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "revolve",
|
"sourceRange": []
|
||||||
"sourceRange": [],
|
},
|
||||||
"type": "StdLibCall",
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "",
|
||||||
"unlabeledArg": {
|
"unlabeledArg": {
|
||||||
"value": {
|
"value": {
|
||||||
"type": "Sketch",
|
"type": "Sketch",
|
||||||
@ -681,7 +971,83 @@ description: Operations executed french-press.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
@ -699,18 +1065,117 @@ description: Operations executed french-press.kcl
|
|||||||
"unlabeledArg": null
|
"unlabeledArg": null
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"type": "UserDefinedFunctionCall",
|
||||||
|
"name": "revolve",
|
||||||
|
"functionSourceRange": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"unlabeledArg": null,
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"axis": {
|
"axis": {
|
||||||
"value": {
|
"value": {
|
||||||
"type": "String",
|
"type": "Object",
|
||||||
"value": "y"
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "revolve",
|
"sourceRange": []
|
||||||
"sourceRange": [],
|
},
|
||||||
"type": "StdLibCall",
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "",
|
||||||
"unlabeledArg": {
|
"unlabeledArg": {
|
||||||
"value": {
|
"value": {
|
||||||
"type": "Sketch",
|
"type": "Sketch",
|
||||||
@ -719,7 +1184,83 @@ description: Operations executed french-press.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
@ -1431,18 +1972,117 @@ description: Operations executed french-press.kcl
|
|||||||
"unlabeledArg": null
|
"unlabeledArg": null
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"type": "UserDefinedFunctionCall",
|
||||||
|
"name": "revolve",
|
||||||
|
"functionSourceRange": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"unlabeledArg": null,
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"axis": {
|
"axis": {
|
||||||
"value": {
|
"value": {
|
||||||
"type": "String",
|
"type": "Object",
|
||||||
"value": "y"
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "revolve",
|
"sourceRange": []
|
||||||
"sourceRange": [],
|
},
|
||||||
"type": "StdLibCall",
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "",
|
||||||
"unlabeledArg": {
|
"unlabeledArg": {
|
||||||
"value": {
|
"value": {
|
||||||
"type": "Sketch",
|
"type": "Sketch",
|
||||||
@ -1451,7 +2091,83 @@ description: Operations executed french-press.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
|
@ -4593,9 +4593,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1086,
|
"commentStart": 1084,
|
||||||
"end": 1092,
|
"end": 1090,
|
||||||
"start": 1086,
|
"start": 1084,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge1"
|
"value": "edge1"
|
||||||
},
|
},
|
||||||
@ -4613,9 +4613,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1234,
|
"commentStart": 1232,
|
||||||
"end": 1240,
|
"end": 1238,
|
||||||
"start": 1234,
|
"start": 1232,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge2"
|
"value": "edge2"
|
||||||
},
|
},
|
||||||
@ -4633,9 +4633,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1382,
|
"commentStart": 1380,
|
||||||
"end": 1388,
|
"end": 1386,
|
||||||
"start": 1382,
|
"start": 1380,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge3"
|
"value": "edge3"
|
||||||
},
|
},
|
||||||
@ -4653,9 +4653,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1514,
|
"commentStart": 1512,
|
||||||
"end": 1522,
|
"end": 1520,
|
||||||
"start": 1514,
|
"start": 1512,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edgeLen"
|
"value": "edgeLen"
|
||||||
},
|
},
|
||||||
@ -4673,9 +4673,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1600,
|
"commentStart": 1598,
|
||||||
"end": 1606,
|
"end": 1604,
|
||||||
"start": 1600,
|
"start": 1598,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge4"
|
"value": "edge4"
|
||||||
},
|
},
|
||||||
@ -4693,9 +4693,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1784,
|
"commentStart": 1782,
|
||||||
"end": 1790,
|
"end": 1788,
|
||||||
"start": 1784,
|
"start": 1782,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge5"
|
"value": "edge5"
|
||||||
},
|
},
|
||||||
@ -4713,9 +4713,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1970,
|
"commentStart": 1968,
|
||||||
"end": 1976,
|
"end": 1974,
|
||||||
"start": 1970,
|
"start": 1968,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge6"
|
"value": "edge6"
|
||||||
},
|
},
|
||||||
@ -4769,9 +4769,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
5.7
|
5.7
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1086,
|
"commentStart": 1084,
|
||||||
"end": 1092,
|
"end": 1090,
|
||||||
"start": 1086,
|
"start": 1084,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge1"
|
"value": "edge1"
|
||||||
},
|
},
|
||||||
@ -4819,9 +4819,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
0.3732
|
0.3732
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1234,
|
"commentStart": 1232,
|
||||||
"end": 1240,
|
"end": 1238,
|
||||||
"start": 1234,
|
"start": 1232,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge2"
|
"value": "edge2"
|
||||||
},
|
},
|
||||||
@ -4869,9 +4869,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
-0.966
|
-0.966
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1382,
|
"commentStart": 1380,
|
||||||
"end": 1388,
|
"end": 1386,
|
||||||
"start": 1382,
|
"start": 1380,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge3"
|
"value": "edge3"
|
||||||
},
|
},
|
||||||
@ -4919,9 +4919,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
-0.133
|
-0.133
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1514,
|
"commentStart": 1512,
|
||||||
"end": 1522,
|
"end": 1520,
|
||||||
"start": 1514,
|
"start": 1512,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edgeLen"
|
"value": "edgeLen"
|
||||||
},
|
},
|
||||||
@ -4963,9 +4963,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
-0.033
|
-0.033
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1600,
|
"commentStart": 1598,
|
||||||
"end": 1606,
|
"end": 1604,
|
||||||
"start": 1600,
|
"start": 1598,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge4"
|
"value": "edge4"
|
||||||
},
|
},
|
||||||
@ -5013,9 +5013,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
-0.1134
|
-0.1134
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1784,
|
"commentStart": 1782,
|
||||||
"end": 1790,
|
"end": 1788,
|
||||||
"start": 1784,
|
"start": 1782,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge5"
|
"value": "edge5"
|
||||||
},
|
},
|
||||||
@ -5063,9 +5063,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
-0.1789
|
-0.1789
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1970,
|
"commentStart": 1968,
|
||||||
"end": 1976,
|
"end": 1974,
|
||||||
"start": 1970,
|
"start": 1968,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge6"
|
"value": "edge6"
|
||||||
},
|
},
|
||||||
@ -5252,9 +5252,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1086,
|
"commentStart": 1084,
|
||||||
"end": 1092,
|
"end": 1090,
|
||||||
"start": 1086,
|
"start": 1084,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge1"
|
"value": "edge1"
|
||||||
},
|
},
|
||||||
@ -5272,9 +5272,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1234,
|
"commentStart": 1232,
|
||||||
"end": 1240,
|
"end": 1238,
|
||||||
"start": 1234,
|
"start": 1232,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge2"
|
"value": "edge2"
|
||||||
},
|
},
|
||||||
@ -5292,9 +5292,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1382,
|
"commentStart": 1380,
|
||||||
"end": 1388,
|
"end": 1386,
|
||||||
"start": 1382,
|
"start": 1380,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge3"
|
"value": "edge3"
|
||||||
},
|
},
|
||||||
@ -5312,9 +5312,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1514,
|
"commentStart": 1512,
|
||||||
"end": 1522,
|
"end": 1520,
|
||||||
"start": 1514,
|
"start": 1512,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edgeLen"
|
"value": "edgeLen"
|
||||||
},
|
},
|
||||||
@ -5332,9 +5332,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1600,
|
"commentStart": 1598,
|
||||||
"end": 1606,
|
"end": 1604,
|
||||||
"start": 1600,
|
"start": 1598,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge4"
|
"value": "edge4"
|
||||||
},
|
},
|
||||||
@ -5352,9 +5352,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1784,
|
"commentStart": 1782,
|
||||||
"end": 1790,
|
"end": 1788,
|
||||||
"start": 1784,
|
"start": 1782,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge5"
|
"value": "edge5"
|
||||||
},
|
},
|
||||||
@ -5372,9 +5372,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1970,
|
"commentStart": 1968,
|
||||||
"end": 1976,
|
"end": 1974,
|
||||||
"start": 1970,
|
"start": 1968,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge6"
|
"value": "edge6"
|
||||||
},
|
},
|
||||||
@ -5428,9 +5428,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
5.7
|
5.7
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1086,
|
"commentStart": 1084,
|
||||||
"end": 1092,
|
"end": 1090,
|
||||||
"start": 1086,
|
"start": 1084,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge1"
|
"value": "edge1"
|
||||||
},
|
},
|
||||||
@ -5478,9 +5478,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
0.3732
|
0.3732
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1234,
|
"commentStart": 1232,
|
||||||
"end": 1240,
|
"end": 1238,
|
||||||
"start": 1234,
|
"start": 1232,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge2"
|
"value": "edge2"
|
||||||
},
|
},
|
||||||
@ -5528,9 +5528,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
-0.966
|
-0.966
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1382,
|
"commentStart": 1380,
|
||||||
"end": 1388,
|
"end": 1386,
|
||||||
"start": 1382,
|
"start": 1380,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge3"
|
"value": "edge3"
|
||||||
},
|
},
|
||||||
@ -5578,9 +5578,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
-0.133
|
-0.133
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1514,
|
"commentStart": 1512,
|
||||||
"end": 1522,
|
"end": 1520,
|
||||||
"start": 1514,
|
"start": 1512,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edgeLen"
|
"value": "edgeLen"
|
||||||
},
|
},
|
||||||
@ -5622,9 +5622,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
-0.033
|
-0.033
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1600,
|
"commentStart": 1598,
|
||||||
"end": 1606,
|
"end": 1604,
|
||||||
"start": 1600,
|
"start": 1598,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge4"
|
"value": "edge4"
|
||||||
},
|
},
|
||||||
@ -5672,9 +5672,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
-0.1134
|
-0.1134
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1784,
|
"commentStart": 1782,
|
||||||
"end": 1790,
|
"end": 1788,
|
||||||
"start": 1784,
|
"start": 1782,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge5"
|
"value": "edge5"
|
||||||
},
|
},
|
||||||
@ -5722,9 +5722,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
-0.1789
|
-0.1789
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1970,
|
"commentStart": 1968,
|
||||||
"end": 1976,
|
"end": 1974,
|
||||||
"start": 1970,
|
"start": 1968,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge6"
|
"value": "edge6"
|
||||||
},
|
},
|
||||||
@ -5911,9 +5911,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1086,
|
"commentStart": 1084,
|
||||||
"end": 1092,
|
"end": 1090,
|
||||||
"start": 1086,
|
"start": 1084,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge1"
|
"value": "edge1"
|
||||||
},
|
},
|
||||||
@ -5931,9 +5931,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1234,
|
"commentStart": 1232,
|
||||||
"end": 1240,
|
"end": 1238,
|
||||||
"start": 1234,
|
"start": 1232,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge2"
|
"value": "edge2"
|
||||||
},
|
},
|
||||||
@ -5951,9 +5951,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1382,
|
"commentStart": 1380,
|
||||||
"end": 1388,
|
"end": 1386,
|
||||||
"start": 1382,
|
"start": 1380,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge3"
|
"value": "edge3"
|
||||||
},
|
},
|
||||||
@ -5971,9 +5971,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1514,
|
"commentStart": 1512,
|
||||||
"end": 1522,
|
"end": 1520,
|
||||||
"start": 1514,
|
"start": 1512,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edgeLen"
|
"value": "edgeLen"
|
||||||
},
|
},
|
||||||
@ -5991,9 +5991,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1600,
|
"commentStart": 1598,
|
||||||
"end": 1606,
|
"end": 1604,
|
||||||
"start": 1600,
|
"start": 1598,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge4"
|
"value": "edge4"
|
||||||
},
|
},
|
||||||
@ -6011,9 +6011,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1784,
|
"commentStart": 1782,
|
||||||
"end": 1790,
|
"end": 1788,
|
||||||
"start": 1784,
|
"start": 1782,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge5"
|
"value": "edge5"
|
||||||
},
|
},
|
||||||
@ -6031,9 +6031,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1970,
|
"commentStart": 1968,
|
||||||
"end": 1976,
|
"end": 1974,
|
||||||
"start": 1970,
|
"start": 1968,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge6"
|
"value": "edge6"
|
||||||
},
|
},
|
||||||
@ -6087,9 +6087,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
5.7
|
5.7
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1086,
|
"commentStart": 1084,
|
||||||
"end": 1092,
|
"end": 1090,
|
||||||
"start": 1086,
|
"start": 1084,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge1"
|
"value": "edge1"
|
||||||
},
|
},
|
||||||
@ -6137,9 +6137,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
0.3732
|
0.3732
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1234,
|
"commentStart": 1232,
|
||||||
"end": 1240,
|
"end": 1238,
|
||||||
"start": 1234,
|
"start": 1232,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge2"
|
"value": "edge2"
|
||||||
},
|
},
|
||||||
@ -6187,9 +6187,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
-0.966
|
-0.966
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1382,
|
"commentStart": 1380,
|
||||||
"end": 1388,
|
"end": 1386,
|
||||||
"start": 1382,
|
"start": 1380,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge3"
|
"value": "edge3"
|
||||||
},
|
},
|
||||||
@ -6237,9 +6237,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
-0.133
|
-0.133
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1514,
|
"commentStart": 1512,
|
||||||
"end": 1522,
|
"end": 1520,
|
||||||
"start": 1514,
|
"start": 1512,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edgeLen"
|
"value": "edgeLen"
|
||||||
},
|
},
|
||||||
@ -6281,9 +6281,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
-0.033
|
-0.033
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1600,
|
"commentStart": 1598,
|
||||||
"end": 1606,
|
"end": 1604,
|
||||||
"start": 1600,
|
"start": 1598,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge4"
|
"value": "edge4"
|
||||||
},
|
},
|
||||||
@ -6331,9 +6331,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
-0.1134
|
-0.1134
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1784,
|
"commentStart": 1782,
|
||||||
"end": 1790,
|
"end": 1788,
|
||||||
"start": 1784,
|
"start": 1782,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge5"
|
"value": "edge5"
|
||||||
},
|
},
|
||||||
@ -6381,9 +6381,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
-0.1789
|
-0.1789
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1970,
|
"commentStart": 1968,
|
||||||
"end": 1976,
|
"end": 1974,
|
||||||
"start": 1970,
|
"start": 1968,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge6"
|
"value": "edge6"
|
||||||
},
|
},
|
||||||
@ -6570,9 +6570,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1086,
|
"commentStart": 1084,
|
||||||
"end": 1092,
|
"end": 1090,
|
||||||
"start": 1086,
|
"start": 1084,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge1"
|
"value": "edge1"
|
||||||
},
|
},
|
||||||
@ -6590,9 +6590,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1234,
|
"commentStart": 1232,
|
||||||
"end": 1240,
|
"end": 1238,
|
||||||
"start": 1234,
|
"start": 1232,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge2"
|
"value": "edge2"
|
||||||
},
|
},
|
||||||
@ -6610,9 +6610,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1382,
|
"commentStart": 1380,
|
||||||
"end": 1388,
|
"end": 1386,
|
||||||
"start": 1382,
|
"start": 1380,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge3"
|
"value": "edge3"
|
||||||
},
|
},
|
||||||
@ -6630,9 +6630,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1514,
|
"commentStart": 1512,
|
||||||
"end": 1522,
|
"end": 1520,
|
||||||
"start": 1514,
|
"start": 1512,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edgeLen"
|
"value": "edgeLen"
|
||||||
},
|
},
|
||||||
@ -6650,9 +6650,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1600,
|
"commentStart": 1598,
|
||||||
"end": 1606,
|
"end": 1604,
|
||||||
"start": 1600,
|
"start": 1598,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge4"
|
"value": "edge4"
|
||||||
},
|
},
|
||||||
@ -6670,9 +6670,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1784,
|
"commentStart": 1782,
|
||||||
"end": 1790,
|
"end": 1788,
|
||||||
"start": 1784,
|
"start": 1782,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge5"
|
"value": "edge5"
|
||||||
},
|
},
|
||||||
@ -6690,9 +6690,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1970,
|
"commentStart": 1968,
|
||||||
"end": 1976,
|
"end": 1974,
|
||||||
"start": 1970,
|
"start": 1968,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge6"
|
"value": "edge6"
|
||||||
},
|
},
|
||||||
@ -6746,9 +6746,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
5.7
|
5.7
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1086,
|
"commentStart": 1084,
|
||||||
"end": 1092,
|
"end": 1090,
|
||||||
"start": 1086,
|
"start": 1084,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge1"
|
"value": "edge1"
|
||||||
},
|
},
|
||||||
@ -6796,9 +6796,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
0.3732
|
0.3732
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1234,
|
"commentStart": 1232,
|
||||||
"end": 1240,
|
"end": 1238,
|
||||||
"start": 1234,
|
"start": 1232,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge2"
|
"value": "edge2"
|
||||||
},
|
},
|
||||||
@ -6846,9 +6846,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
-0.966
|
-0.966
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1382,
|
"commentStart": 1380,
|
||||||
"end": 1388,
|
"end": 1386,
|
||||||
"start": 1382,
|
"start": 1380,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge3"
|
"value": "edge3"
|
||||||
},
|
},
|
||||||
@ -6896,9 +6896,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
-0.133
|
-0.133
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1514,
|
"commentStart": 1512,
|
||||||
"end": 1522,
|
"end": 1520,
|
||||||
"start": 1514,
|
"start": 1512,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edgeLen"
|
"value": "edgeLen"
|
||||||
},
|
},
|
||||||
@ -6940,9 +6940,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
-0.033
|
-0.033
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1600,
|
"commentStart": 1598,
|
||||||
"end": 1606,
|
"end": 1604,
|
||||||
"start": 1600,
|
"start": 1598,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge4"
|
"value": "edge4"
|
||||||
},
|
},
|
||||||
@ -6990,9 +6990,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
-0.1134
|
-0.1134
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1784,
|
"commentStart": 1782,
|
||||||
"end": 1790,
|
"end": 1788,
|
||||||
"start": 1784,
|
"start": 1782,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge5"
|
"value": "edge5"
|
||||||
},
|
},
|
||||||
@ -7040,9 +7040,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
-0.1789
|
-0.1789
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 1970,
|
"commentStart": 1968,
|
||||||
"end": 1976,
|
"end": 1974,
|
||||||
"start": 1970,
|
"start": 1968,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "edge6"
|
"value": "edge6"
|
||||||
},
|
},
|
||||||
@ -8045,9 +8045,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 3198,
|
"commentStart": 3196,
|
||||||
"end": 3203,
|
"end": 3201,
|
||||||
"start": 3198,
|
"start": 3196,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "seg1"
|
"value": "seg1"
|
||||||
},
|
},
|
||||||
@ -8115,9 +8115,9 @@ description: Variables in memory after executing french-press.kcl
|
|||||||
1.11
|
1.11
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 3198,
|
"commentStart": 3196,
|
||||||
"end": 3203,
|
"end": 3201,
|
||||||
"start": 3198,
|
"start": 3196,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "seg1"
|
"value": "seg1"
|
||||||
},
|
},
|
||||||
|
@ -19,66 +19,66 @@ flowchart LR
|
|||||||
34[Solid2d]
|
34[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path54 [Path]
|
subgraph path54 [Path]
|
||||||
54["Path<br>[4792, 4872, 0]"]
|
54["Path<br>[4776, 4856, 0]"]
|
||||||
55["Segment<br>[4792, 4872, 0]"]
|
55["Segment<br>[4776, 4856, 0]"]
|
||||||
56[Solid2d]
|
56[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path58 [Path]
|
subgraph path58 [Path]
|
||||||
58["Path<br>[4423, 4448, 0]"]
|
58["Path<br>[4407, 4432, 0]"]
|
||||||
59["Segment<br>[4456, 4497, 0]"]
|
59["Segment<br>[4440, 4481, 0]"]
|
||||||
60["Segment<br>[4505, 4546, 0]"]
|
60["Segment<br>[4489, 4530, 0]"]
|
||||||
61["Segment<br>[4554, 4607, 0]"]
|
61["Segment<br>[4538, 4591, 0]"]
|
||||||
62["Segment<br>[4615, 4636, 0]"]
|
62["Segment<br>[4599, 4620, 0]"]
|
||||||
63[Solid2d]
|
63[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path65 [Path]
|
subgraph path65 [Path]
|
||||||
65["Path<br>[2768, 2855, 0]"]
|
65["Path<br>[2752, 2839, 0]"]
|
||||||
66["Segment<br>[2863, 2942, 0]"]
|
66["Segment<br>[2847, 2926, 0]"]
|
||||||
67["Segment<br>[2950, 3056, 0]"]
|
67["Segment<br>[2934, 3040, 0]"]
|
||||||
68["Segment<br>[3064, 3146, 0]"]
|
68["Segment<br>[3048, 3130, 0]"]
|
||||||
69["Segment<br>[3154, 3200, 0]"]
|
69["Segment<br>[3138, 3184, 0]"]
|
||||||
70["Segment<br>[3208, 3287, 0]"]
|
70["Segment<br>[3192, 3271, 0]"]
|
||||||
71["Segment<br>[3295, 3403, 0]"]
|
71["Segment<br>[3279, 3387, 0]"]
|
||||||
72["Segment<br>[3411, 3490, 0]"]
|
72["Segment<br>[3395, 3474, 0]"]
|
||||||
73["Segment<br>[3498, 3544, 0]"]
|
73["Segment<br>[3482, 3528, 0]"]
|
||||||
74["Segment<br>[3552, 3634, 0]"]
|
74["Segment<br>[3536, 3618, 0]"]
|
||||||
75["Segment<br>[3642, 3751, 0]"]
|
75["Segment<br>[3626, 3735, 0]"]
|
||||||
76["Segment<br>[3759, 3838, 0]"]
|
76["Segment<br>[3743, 3822, 0]"]
|
||||||
77["Segment<br>[3846, 3911, 0]"]
|
77["Segment<br>[3830, 3895, 0]"]
|
||||||
78["Segment<br>[3919, 4001, 0]"]
|
78["Segment<br>[3903, 3985, 0]"]
|
||||||
79["Segment<br>[4009, 4118, 0]"]
|
79["Segment<br>[3993, 4102, 0]"]
|
||||||
80["Segment<br>[4126, 4208, 0]"]
|
80["Segment<br>[4110, 4192, 0]"]
|
||||||
81["Segment<br>[4216, 4265, 0]"]
|
81["Segment<br>[4200, 4249, 0]"]
|
||||||
82["Segment<br>[4273, 4280, 0]"]
|
82["Segment<br>[4257, 4264, 0]"]
|
||||||
83[Solid2d]
|
83[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path100 [Path]
|
subgraph path100 [Path]
|
||||||
100["Path<br>[4423, 4448, 0]"]
|
100["Path<br>[4407, 4432, 0]"]
|
||||||
101["Segment<br>[4456, 4497, 0]"]
|
101["Segment<br>[4440, 4481, 0]"]
|
||||||
102["Segment<br>[4505, 4546, 0]"]
|
102["Segment<br>[4489, 4530, 0]"]
|
||||||
103["Segment<br>[4554, 4607, 0]"]
|
103["Segment<br>[4538, 4591, 0]"]
|
||||||
104["Segment<br>[4615, 4636, 0]"]
|
104["Segment<br>[4599, 4620, 0]"]
|
||||||
105[Solid2d]
|
105[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path106 [Path]
|
subgraph path106 [Path]
|
||||||
106["Path<br>[2768, 2855, 0]"]
|
106["Path<br>[2752, 2839, 0]"]
|
||||||
107["Segment<br>[2863, 2942, 0]"]
|
107["Segment<br>[2847, 2926, 0]"]
|
||||||
108["Segment<br>[2950, 3056, 0]"]
|
108["Segment<br>[2934, 3040, 0]"]
|
||||||
109["Segment<br>[3064, 3146, 0]"]
|
109["Segment<br>[3048, 3130, 0]"]
|
||||||
110["Segment<br>[3154, 3200, 0]"]
|
110["Segment<br>[3138, 3184, 0]"]
|
||||||
111["Segment<br>[3208, 3287, 0]"]
|
111["Segment<br>[3192, 3271, 0]"]
|
||||||
112["Segment<br>[3295, 3403, 0]"]
|
112["Segment<br>[3279, 3387, 0]"]
|
||||||
113["Segment<br>[3411, 3490, 0]"]
|
113["Segment<br>[3395, 3474, 0]"]
|
||||||
114["Segment<br>[3498, 3544, 0]"]
|
114["Segment<br>[3482, 3528, 0]"]
|
||||||
115["Segment<br>[3552, 3634, 0]"]
|
115["Segment<br>[3536, 3618, 0]"]
|
||||||
116["Segment<br>[3642, 3751, 0]"]
|
116["Segment<br>[3626, 3735, 0]"]
|
||||||
117["Segment<br>[3759, 3838, 0]"]
|
117["Segment<br>[3743, 3822, 0]"]
|
||||||
118["Segment<br>[3846, 3911, 0]"]
|
118["Segment<br>[3830, 3895, 0]"]
|
||||||
119["Segment<br>[3919, 4001, 0]"]
|
119["Segment<br>[3903, 3985, 0]"]
|
||||||
120["Segment<br>[4009, 4118, 0]"]
|
120["Segment<br>[3993, 4102, 0]"]
|
||||||
121["Segment<br>[4126, 4208, 0]"]
|
121["Segment<br>[4110, 4192, 0]"]
|
||||||
122["Segment<br>[4216, 4265, 0]"]
|
122["Segment<br>[4200, 4249, 0]"]
|
||||||
123["Segment<br>[4273, 4280, 0]"]
|
123["Segment<br>[4257, 4264, 0]"]
|
||||||
124[Solid2d]
|
124[Solid2d]
|
||||||
end
|
end
|
||||||
1["Plane<br>[1246, 1284, 0]"]
|
1["Plane<br>[1246, 1284, 0]"]
|
||||||
@ -100,8 +100,8 @@ flowchart LR
|
|||||||
24["SweepEdge Adjacent"]
|
24["SweepEdge Adjacent"]
|
||||||
25["SweepEdge Opposite"]
|
25["SweepEdge Opposite"]
|
||||||
26["SweepEdge Adjacent"]
|
26["SweepEdge Adjacent"]
|
||||||
27["Plane<br>[1756, 1794, 0]"]
|
27["Plane<br>[1740, 1778, 0]"]
|
||||||
35["Sweep Revolve<br>[1743, 1825, 0]"]
|
35["Sweep Revolve<br>[1727, 1809, 0]"]
|
||||||
36[Wall]
|
36[Wall]
|
||||||
37[Wall]
|
37[Wall]
|
||||||
38[Wall]
|
38[Wall]
|
||||||
@ -119,10 +119,10 @@ flowchart LR
|
|||||||
50["SweepEdge Adjacent"]
|
50["SweepEdge Adjacent"]
|
||||||
51["SweepEdge Opposite"]
|
51["SweepEdge Opposite"]
|
||||||
52["SweepEdge Adjacent"]
|
52["SweepEdge Adjacent"]
|
||||||
53["Plane<br>[4769, 4786, 0]"]
|
53["Plane<br>[4753, 4770, 0]"]
|
||||||
57["Plane<br>[4395, 4415, 0]"]
|
57["Plane<br>[4379, 4399, 0]"]
|
||||||
64["Plane<br>[2740, 2760, 0]"]
|
64["Plane<br>[2724, 2744, 0]"]
|
||||||
84["Sweep Extrusion<br>[5215, 5257, 0]"]
|
84["Sweep Extrusion<br>[5199, 5241, 0]"]
|
||||||
85[Wall]
|
85[Wall]
|
||||||
86[Wall]
|
86[Wall]
|
||||||
87[Wall]
|
87[Wall]
|
||||||
@ -137,8 +137,8 @@ flowchart LR
|
|||||||
96["SweepEdge Adjacent"]
|
96["SweepEdge Adjacent"]
|
||||||
97["SweepEdge Opposite"]
|
97["SweepEdge Opposite"]
|
||||||
98["SweepEdge Adjacent"]
|
98["SweepEdge Adjacent"]
|
||||||
99["Plane<br>[5751, 5786, 0]"]
|
99["Plane<br>[5735, 5770, 0]"]
|
||||||
125["Sweep Extrusion<br>[5869, 5920, 0]"]
|
125["Sweep Extrusion<br>[5853, 5904, 0]"]
|
||||||
126[Wall]
|
126[Wall]
|
||||||
127[Wall]
|
127[Wall]
|
||||||
128[Wall]
|
128[Wall]
|
||||||
@ -153,18 +153,18 @@ flowchart LR
|
|||||||
137["SweepEdge Adjacent"]
|
137["SweepEdge Adjacent"]
|
||||||
138["SweepEdge Opposite"]
|
138["SweepEdge Opposite"]
|
||||||
139["SweepEdge Adjacent"]
|
139["SweepEdge Adjacent"]
|
||||||
140["EdgeCut Fillet<br>[5320, 5659, 0]"]
|
140["EdgeCut Fillet<br>[5304, 5643, 0]"]
|
||||||
141["EdgeCut Fillet<br>[5320, 5659, 0]"]
|
141["EdgeCut Fillet<br>[5304, 5643, 0]"]
|
||||||
142["EdgeCut Fillet<br>[5320, 5659, 0]"]
|
142["EdgeCut Fillet<br>[5304, 5643, 0]"]
|
||||||
143["EdgeCut Fillet<br>[5320, 5659, 0]"]
|
143["EdgeCut Fillet<br>[5304, 5643, 0]"]
|
||||||
144["EdgeCut Fillet<br>[5984, 6328, 0]"]
|
144["EdgeCut Fillet<br>[5968, 6312, 0]"]
|
||||||
145["EdgeCut Fillet<br>[5984, 6328, 0]"]
|
145["EdgeCut Fillet<br>[5968, 6312, 0]"]
|
||||||
146["EdgeCut Fillet<br>[5984, 6328, 0]"]
|
146["EdgeCut Fillet<br>[5968, 6312, 0]"]
|
||||||
147["EdgeCut Fillet<br>[5984, 6328, 0]"]
|
147["EdgeCut Fillet<br>[5968, 6312, 0]"]
|
||||||
148["StartSketchOnPlane<br>[893, 913, 0]"]
|
148["StartSketchOnPlane<br>[893, 913, 0]"]
|
||||||
149["StartSketchOnPlane<br>[893, 913, 0]"]
|
149["StartSketchOnPlane<br>[893, 913, 0]"]
|
||||||
150["StartSketchOnPlane<br>[4395, 4415, 0]"]
|
150["StartSketchOnPlane<br>[4379, 4399, 0]"]
|
||||||
151["StartSketchOnPlane<br>[2740, 2760, 0]"]
|
151["StartSketchOnPlane<br>[2724, 2744, 0]"]
|
||||||
1 --- 2
|
1 --- 2
|
||||||
2 --- 3
|
2 --- 3
|
||||||
2 --- 4
|
2 --- 4
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -287,6 +287,22 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
|
|||||||
"type": "UserDefinedFunctionReturn"
|
"type": "UserDefinedFunctionReturn"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"type": "UserDefinedFunctionCall",
|
||||||
|
"name": "revolve",
|
||||||
|
"functionSourceRange": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"angle": {
|
"angle": {
|
||||||
"value": {
|
"value": {
|
||||||
@ -308,10 +324,7 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
|
|||||||
"value": {
|
"value": {
|
||||||
"type": "Object",
|
"type": "Object",
|
||||||
"value": {
|
"value": {
|
||||||
"custom": {
|
"direction": {
|
||||||
"type": "Object",
|
|
||||||
"value": {
|
|
||||||
"axis": {
|
|
||||||
"type": "Array",
|
"type": "Array",
|
||||||
"value": [
|
"value": [
|
||||||
{
|
{
|
||||||
@ -374,25 +387,122 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "revolve",
|
"sourceRange": []
|
||||||
"sourceRange": [],
|
},
|
||||||
"type": "StdLibCall",
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "",
|
||||||
"unlabeledArg": {
|
"unlabeledArg": {
|
||||||
"value": {
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
"type": "Sketch",
|
"type": "Sketch",
|
||||||
"value": {
|
"value": {
|
||||||
"artifactId": "[uuid]"
|
"artifactId": "[uuid]"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"angle": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": -90.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 4.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 4.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"arcDegrees": {
|
"arcDegrees": {
|
||||||
@ -1117,8 +1227,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
|
|||||||
"type": "UserDefinedFunctionCall",
|
"type": "UserDefinedFunctionCall",
|
||||||
"name": "magnetBase",
|
"name": "magnetBase",
|
||||||
"functionSourceRange": [
|
"functionSourceRange": [
|
||||||
4364,
|
4348,
|
||||||
4706,
|
4690,
|
||||||
0
|
0
|
||||||
],
|
],
|
||||||
"unlabeledArg": null,
|
"unlabeledArg": null,
|
||||||
@ -1144,8 +1254,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
|
|||||||
"type": "UserDefinedFunctionCall",
|
"type": "UserDefinedFunctionCall",
|
||||||
"name": "magnetCenterCutout",
|
"name": "magnetCenterCutout",
|
||||||
"functionSourceRange": [
|
"functionSourceRange": [
|
||||||
2713,
|
2697,
|
||||||
4304,
|
4288,
|
||||||
0
|
0
|
||||||
],
|
],
|
||||||
"unlabeledArg": null,
|
"unlabeledArg": null,
|
||||||
@ -1370,8 +1480,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
|
|||||||
"type": "UserDefinedFunctionCall",
|
"type": "UserDefinedFunctionCall",
|
||||||
"name": "magnetBase",
|
"name": "magnetBase",
|
||||||
"functionSourceRange": [
|
"functionSourceRange": [
|
||||||
4364,
|
4348,
|
||||||
4706,
|
4690,
|
||||||
0
|
0
|
||||||
],
|
],
|
||||||
"unlabeledArg": null,
|
"unlabeledArg": null,
|
||||||
@ -1397,8 +1507,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
|
|||||||
"type": "UserDefinedFunctionCall",
|
"type": "UserDefinedFunctionCall",
|
||||||
"name": "magnetCenterCutout",
|
"name": "magnetCenterCutout",
|
||||||
"functionSourceRange": [
|
"functionSourceRange": [
|
||||||
2713,
|
2697,
|
||||||
4304,
|
4288,
|
||||||
0
|
0
|
||||||
],
|
],
|
||||||
"unlabeledArg": null,
|
"unlabeledArg": null,
|
||||||
|
@ -6,10 +6,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
"axis000": {
|
"axis000": {
|
||||||
"type": "Object",
|
"type": "Object",
|
||||||
"value": {
|
"value": {
|
||||||
"custom": {
|
"direction": {
|
||||||
"type": "Object",
|
|
||||||
"value": {
|
|
||||||
"axis": {
|
|
||||||
"type": "MixedArray",
|
"type": "MixedArray",
|
||||||
"value": [
|
"value": [
|
||||||
{
|
{
|
||||||
@ -72,8 +69,6 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"basePlateCorners": {
|
"basePlateCorners": {
|
||||||
"type": "HomArray",
|
"type": "HomArray",
|
||||||
@ -10856,9 +10851,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4488,
|
"commentStart": 4472,
|
||||||
"end": 4496,
|
"end": 4480,
|
||||||
"start": 4488,
|
"start": 4472,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line001"
|
"value": "line001"
|
||||||
},
|
},
|
||||||
@ -10869,9 +10864,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4537,
|
"commentStart": 4521,
|
||||||
"end": 4545,
|
"end": 4529,
|
||||||
"start": 4537,
|
"start": 4521,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line002"
|
"value": "line002"
|
||||||
},
|
},
|
||||||
@ -10882,9 +10877,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4598,
|
"commentStart": 4582,
|
||||||
"end": 4606,
|
"end": 4590,
|
||||||
"start": 4598,
|
"start": 4582,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line003"
|
"value": "line003"
|
||||||
},
|
},
|
||||||
@ -10895,9 +10890,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4627,
|
"commentStart": 4611,
|
||||||
"end": 4635,
|
"end": 4619,
|
||||||
"start": 4627,
|
"start": 4611,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line004"
|
"value": "line004"
|
||||||
},
|
},
|
||||||
@ -10918,9 +10913,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
0.0
|
0.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4488,
|
"commentStart": 4472,
|
||||||
"end": 4496,
|
"end": 4480,
|
||||||
"start": 4488,
|
"start": 4472,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line001"
|
"value": "line001"
|
||||||
},
|
},
|
||||||
@ -10943,9 +10938,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
0.0
|
0.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4537,
|
"commentStart": 4521,
|
||||||
"end": 4545,
|
"end": 4529,
|
||||||
"start": 4537,
|
"start": 4521,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line002"
|
"value": "line002"
|
||||||
},
|
},
|
||||||
@ -10968,9 +10963,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
42.0
|
42.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4598,
|
"commentStart": 4582,
|
||||||
"end": 4606,
|
"end": 4590,
|
||||||
"start": 4598,
|
"start": 4582,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line003"
|
"value": "line003"
|
||||||
},
|
},
|
||||||
@ -10993,9 +10988,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
42.0
|
42.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4627,
|
"commentStart": 4611,
|
||||||
"end": 4635,
|
"end": 4619,
|
||||||
"start": 4627,
|
"start": 4611,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line004"
|
"value": "line004"
|
||||||
},
|
},
|
||||||
@ -11100,9 +11095,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4488,
|
"commentStart": 4472,
|
||||||
"end": 4496,
|
"end": 4480,
|
||||||
"start": 4488,
|
"start": 4472,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line001"
|
"value": "line001"
|
||||||
},
|
},
|
||||||
@ -11113,9 +11108,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4537,
|
"commentStart": 4521,
|
||||||
"end": 4545,
|
"end": 4529,
|
||||||
"start": 4537,
|
"start": 4521,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line002"
|
"value": "line002"
|
||||||
},
|
},
|
||||||
@ -11126,9 +11121,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4598,
|
"commentStart": 4582,
|
||||||
"end": 4606,
|
"end": 4590,
|
||||||
"start": 4598,
|
"start": 4582,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line003"
|
"value": "line003"
|
||||||
},
|
},
|
||||||
@ -11139,9 +11134,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4627,
|
"commentStart": 4611,
|
||||||
"end": 4635,
|
"end": 4619,
|
||||||
"start": 4627,
|
"start": 4611,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line004"
|
"value": "line004"
|
||||||
},
|
},
|
||||||
@ -11162,9 +11157,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
0.0
|
0.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4488,
|
"commentStart": 4472,
|
||||||
"end": 4496,
|
"end": 4480,
|
||||||
"start": 4488,
|
"start": 4472,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line001"
|
"value": "line001"
|
||||||
},
|
},
|
||||||
@ -11187,9 +11182,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
0.0
|
0.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4537,
|
"commentStart": 4521,
|
||||||
"end": 4545,
|
"end": 4529,
|
||||||
"start": 4537,
|
"start": 4521,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line002"
|
"value": "line002"
|
||||||
},
|
},
|
||||||
@ -11212,9 +11207,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
42.0
|
42.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4598,
|
"commentStart": 4582,
|
||||||
"end": 4606,
|
"end": 4590,
|
||||||
"start": 4598,
|
"start": 4582,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line003"
|
"value": "line003"
|
||||||
},
|
},
|
||||||
@ -11237,9 +11232,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
42.0
|
42.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4627,
|
"commentStart": 4611,
|
||||||
"end": 4635,
|
"end": 4619,
|
||||||
"start": 4627,
|
"start": 4611,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line004"
|
"value": "line004"
|
||||||
},
|
},
|
||||||
@ -11374,9 +11369,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4488,
|
"commentStart": 4472,
|
||||||
"end": 4496,
|
"end": 4480,
|
||||||
"start": 4488,
|
"start": 4472,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line001"
|
"value": "line001"
|
||||||
},
|
},
|
||||||
@ -11387,9 +11382,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4537,
|
"commentStart": 4521,
|
||||||
"end": 4545,
|
"end": 4529,
|
||||||
"start": 4537,
|
"start": 4521,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line002"
|
"value": "line002"
|
||||||
},
|
},
|
||||||
@ -11400,9 +11395,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4598,
|
"commentStart": 4582,
|
||||||
"end": 4606,
|
"end": 4590,
|
||||||
"start": 4598,
|
"start": 4582,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line003"
|
"value": "line003"
|
||||||
},
|
},
|
||||||
@ -11413,9 +11408,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4627,
|
"commentStart": 4611,
|
||||||
"end": 4635,
|
"end": 4619,
|
||||||
"start": 4627,
|
"start": 4611,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line004"
|
"value": "line004"
|
||||||
},
|
},
|
||||||
@ -11436,9 +11431,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
0.0
|
0.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4488,
|
"commentStart": 4472,
|
||||||
"end": 4496,
|
"end": 4480,
|
||||||
"start": 4488,
|
"start": 4472,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line001"
|
"value": "line001"
|
||||||
},
|
},
|
||||||
@ -11461,9 +11456,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
0.0
|
0.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4537,
|
"commentStart": 4521,
|
||||||
"end": 4545,
|
"end": 4529,
|
||||||
"start": 4537,
|
"start": 4521,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line002"
|
"value": "line002"
|
||||||
},
|
},
|
||||||
@ -11486,9 +11481,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
42.0
|
42.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4598,
|
"commentStart": 4582,
|
||||||
"end": 4606,
|
"end": 4590,
|
||||||
"start": 4598,
|
"start": 4582,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line003"
|
"value": "line003"
|
||||||
},
|
},
|
||||||
@ -11511,9 +11506,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
42.0
|
42.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4627,
|
"commentStart": 4611,
|
||||||
"end": 4635,
|
"end": 4619,
|
||||||
"start": 4627,
|
"start": 4611,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line004"
|
"value": "line004"
|
||||||
},
|
},
|
||||||
@ -11618,9 +11613,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4488,
|
"commentStart": 4472,
|
||||||
"end": 4496,
|
"end": 4480,
|
||||||
"start": 4488,
|
"start": 4472,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line001"
|
"value": "line001"
|
||||||
},
|
},
|
||||||
@ -11631,9 +11626,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4537,
|
"commentStart": 4521,
|
||||||
"end": 4545,
|
"end": 4529,
|
||||||
"start": 4537,
|
"start": 4521,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line002"
|
"value": "line002"
|
||||||
},
|
},
|
||||||
@ -11644,9 +11639,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4598,
|
"commentStart": 4582,
|
||||||
"end": 4606,
|
"end": 4590,
|
||||||
"start": 4598,
|
"start": 4582,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line003"
|
"value": "line003"
|
||||||
},
|
},
|
||||||
@ -11657,9 +11652,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
"id": "[uuid]",
|
"id": "[uuid]",
|
||||||
"sourceRange": [],
|
"sourceRange": [],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4627,
|
"commentStart": 4611,
|
||||||
"end": 4635,
|
"end": 4619,
|
||||||
"start": 4627,
|
"start": 4611,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line004"
|
"value": "line004"
|
||||||
},
|
},
|
||||||
@ -11680,9 +11675,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
0.0
|
0.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4488,
|
"commentStart": 4472,
|
||||||
"end": 4496,
|
"end": 4480,
|
||||||
"start": 4488,
|
"start": 4472,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line001"
|
"value": "line001"
|
||||||
},
|
},
|
||||||
@ -11705,9 +11700,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
0.0
|
0.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4537,
|
"commentStart": 4521,
|
||||||
"end": 4545,
|
"end": 4529,
|
||||||
"start": 4537,
|
"start": 4521,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line002"
|
"value": "line002"
|
||||||
},
|
},
|
||||||
@ -11730,9 +11725,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
42.0
|
42.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4598,
|
"commentStart": 4582,
|
||||||
"end": 4606,
|
"end": 4590,
|
||||||
"start": 4598,
|
"start": 4582,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line003"
|
"value": "line003"
|
||||||
},
|
},
|
||||||
@ -11755,9 +11750,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
42.0
|
42.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4627,
|
"commentStart": 4611,
|
||||||
"end": 4635,
|
"end": 4619,
|
||||||
"start": 4627,
|
"start": 4611,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line004"
|
"value": "line004"
|
||||||
},
|
},
|
||||||
@ -11896,9 +11891,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
0.0
|
0.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4488,
|
"commentStart": 4472,
|
||||||
"end": 4496,
|
"end": 4480,
|
||||||
"start": 4488,
|
"start": 4472,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line001"
|
"value": "line001"
|
||||||
},
|
},
|
||||||
@ -11921,9 +11916,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
0.0
|
0.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4537,
|
"commentStart": 4521,
|
||||||
"end": 4545,
|
"end": 4529,
|
||||||
"start": 4537,
|
"start": 4521,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line002"
|
"value": "line002"
|
||||||
},
|
},
|
||||||
@ -11946,9 +11941,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
42.0
|
42.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4598,
|
"commentStart": 4582,
|
||||||
"end": 4606,
|
"end": 4590,
|
||||||
"start": 4598,
|
"start": 4582,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line003"
|
"value": "line003"
|
||||||
},
|
},
|
||||||
@ -11971,9 +11966,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
42.0
|
42.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4627,
|
"commentStart": 4611,
|
||||||
"end": 4635,
|
"end": 4619,
|
||||||
"start": 4627,
|
"start": 4611,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line004"
|
"value": "line004"
|
||||||
},
|
},
|
||||||
@ -12075,9 +12070,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
0.0
|
0.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4488,
|
"commentStart": 4472,
|
||||||
"end": 4496,
|
"end": 4480,
|
||||||
"start": 4488,
|
"start": 4472,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line001"
|
"value": "line001"
|
||||||
},
|
},
|
||||||
@ -12100,9 +12095,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
0.0
|
0.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4537,
|
"commentStart": 4521,
|
||||||
"end": 4545,
|
"end": 4529,
|
||||||
"start": 4537,
|
"start": 4521,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line002"
|
"value": "line002"
|
||||||
},
|
},
|
||||||
@ -12125,9 +12120,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
42.0
|
42.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4598,
|
"commentStart": 4582,
|
||||||
"end": 4606,
|
"end": 4590,
|
||||||
"start": 4598,
|
"start": 4582,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line003"
|
"value": "line003"
|
||||||
},
|
},
|
||||||
@ -12150,9 +12145,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
|||||||
42.0
|
42.0
|
||||||
],
|
],
|
||||||
"tag": {
|
"tag": {
|
||||||
"commentStart": 4627,
|
"commentStart": 4611,
|
||||||
"end": 4635,
|
"end": 4619,
|
||||||
"start": 4627,
|
"start": 4611,
|
||||||
"type": "TagDeclarator",
|
"type": "TagDeclarator",
|
||||||
"value": "line004"
|
"value": "line004"
|
||||||
},
|
},
|
||||||
|
@ -37,8 +37,8 @@ flowchart LR
|
|||||||
24["SweepEdge Adjacent"]
|
24["SweepEdge Adjacent"]
|
||||||
25["SweepEdge Opposite"]
|
25["SweepEdge Opposite"]
|
||||||
26["SweepEdge Adjacent"]
|
26["SweepEdge Adjacent"]
|
||||||
27["Plane<br>[1633, 1671, 0]"]
|
27["Plane<br>[1617, 1655, 0]"]
|
||||||
35["Sweep Revolve<br>[1620, 1702, 0]"]
|
35["Sweep Revolve<br>[1604, 1686, 0]"]
|
||||||
36[Wall]
|
36[Wall]
|
||||||
37[Wall]
|
37[Wall]
|
||||||
38[Wall]
|
38[Wall]
|
||||||
|
@ -1399,33 +1399,17 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
"key": {
|
"key": {
|
||||||
"commentStart": 1485,
|
"commentStart": 1485,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "custom",
|
"name": "direction",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Identifier"
|
"type": "Identifier"
|
||||||
},
|
},
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "ObjectProperty",
|
"type": "ObjectProperty",
|
||||||
"value": {
|
"value": {
|
||||||
"commentStart": 1494,
|
"commentStart": 1497,
|
||||||
"end": 0,
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"commentStart": 1500,
|
|
||||||
"end": 0,
|
|
||||||
"key": {
|
|
||||||
"commentStart": 1500,
|
|
||||||
"end": 0,
|
|
||||||
"name": "axis",
|
|
||||||
"start": 0,
|
|
||||||
"type": "Identifier"
|
|
||||||
},
|
|
||||||
"start": 0,
|
|
||||||
"type": "ObjectProperty",
|
|
||||||
"value": {
|
|
||||||
"commentStart": 1507,
|
|
||||||
"elements": [
|
"elements": [
|
||||||
{
|
{
|
||||||
"commentStart": 1508,
|
"commentStart": 1498,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "0.0",
|
"raw": "0.0",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1437,7 +1421,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"commentStart": 1513,
|
"commentStart": 1503,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "1.0",
|
"raw": "1.0",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1456,10 +1440,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"commentStart": 1523,
|
"commentStart": 1511,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"key": {
|
"key": {
|
||||||
"commentStart": 1523,
|
"commentStart": 1511,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "origin",
|
"name": "origin",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1468,14 +1452,14 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "ObjectProperty",
|
"type": "ObjectProperty",
|
||||||
"value": {
|
"value": {
|
||||||
"commentStart": 1532,
|
"commentStart": 1520,
|
||||||
"elements": [
|
"elements": [
|
||||||
{
|
{
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 1533,
|
"commentStart": 1521,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 1533,
|
"commentStart": 1521,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "cornerRadius",
|
"name": "cornerRadius",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1488,10 +1472,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 1547,
|
"commentStart": 1535,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 1547,
|
"commentStart": 1535,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "cornerRadius",
|
"name": "cornerRadius",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1513,12 +1497,6 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "ObjectExpression",
|
"type": "ObjectExpression",
|
||||||
"type": "ObjectExpression"
|
"type": "ObjectExpression"
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"start": 0,
|
|
||||||
"type": "ObjectExpression",
|
|
||||||
"type": "ObjectExpression"
|
|
||||||
},
|
},
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "VariableDeclarator"
|
"type": "VariableDeclarator"
|
||||||
@ -1535,12 +1513,12 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
"type": "VariableDeclaration"
|
"type": "VariableDeclaration"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"commentStart": 1566,
|
"commentStart": 1550,
|
||||||
"declaration": {
|
"declaration": {
|
||||||
"commentStart": 1605,
|
"commentStart": 1589,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"id": {
|
"id": {
|
||||||
"commentStart": 1605,
|
"commentStart": 1589,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "singleCorner",
|
"name": "singleCorner",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1551,7 +1529,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 1674,
|
"commentStart": 1658,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "angle",
|
"name": "angle",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1559,7 +1537,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"argument": {
|
"argument": {
|
||||||
"commentStart": 1683,
|
"commentStart": 1667,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "90",
|
"raw": "90",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1570,7 +1548,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
"suffix": "None"
|
"suffix": "None"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"commentStart": 1682,
|
"commentStart": 1666,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"operator": "-",
|
"operator": "-",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1581,7 +1559,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 1687,
|
"commentStart": 1671,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "axis",
|
"name": "axis",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1589,10 +1567,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 1694,
|
"commentStart": 1678,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 1694,
|
"commentStart": 1678,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "axis000",
|
"name": "axis000",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1607,10 +1585,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
],
|
],
|
||||||
"callee": {
|
"callee": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 1620,
|
"commentStart": 1604,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 1620,
|
"commentStart": 1604,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "revolve",
|
"name": "revolve",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1620,7 +1598,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Name"
|
"type": "Name"
|
||||||
},
|
},
|
||||||
"commentStart": 1620,
|
"commentStart": 1604,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "CallExpressionKw",
|
"type": "CallExpressionKw",
|
||||||
@ -1632,7 +1610,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 1649,
|
"commentStart": 1633,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "offset",
|
"name": "offset",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1640,10 +1618,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 1658,
|
"commentStart": 1642,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 1658,
|
"commentStart": 1642,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "cornerRadius",
|
"name": "cornerRadius",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1658,10 +1636,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
],
|
],
|
||||||
"callee": {
|
"callee": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 1633,
|
"commentStart": 1617,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 1633,
|
"commentStart": 1617,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "offsetPlane",
|
"name": "offsetPlane",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1671,17 +1649,17 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Name"
|
"type": "Name"
|
||||||
},
|
},
|
||||||
"commentStart": 1633,
|
"commentStart": 1617,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "CallExpressionKw",
|
"type": "CallExpressionKw",
|
||||||
"type": "CallExpressionKw",
|
"type": "CallExpressionKw",
|
||||||
"unlabeled": {
|
"unlabeled": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 1645,
|
"commentStart": 1629,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 1645,
|
"commentStart": 1629,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "YZ",
|
"name": "YZ",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1696,10 +1674,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
],
|
],
|
||||||
"callee": {
|
"callee": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 1628,
|
"commentStart": 1612,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 1628,
|
"commentStart": 1612,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "face",
|
"name": "face",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1709,7 +1687,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Name"
|
"type": "Name"
|
||||||
},
|
},
|
||||||
"commentStart": 1628,
|
"commentStart": 1612,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "CallExpression",
|
"type": "CallExpression",
|
||||||
@ -1731,12 +1709,12 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
"type": "VariableDeclaration"
|
"type": "VariableDeclaration"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"commentStart": 1702,
|
"commentStart": 1686,
|
||||||
"declaration": {
|
"declaration": {
|
||||||
"commentStart": 1737,
|
"commentStart": 1721,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"id": {
|
"id": {
|
||||||
"commentStart": 1737,
|
"commentStart": 1721,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "corners",
|
"name": "corners",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1747,14 +1725,14 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 1784,
|
"commentStart": 1768,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "arcDegrees",
|
"name": "arcDegrees",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Identifier"
|
"type": "Identifier"
|
||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"commentStart": 1797,
|
"commentStart": 1781,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "360",
|
"raw": "360",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1769,17 +1747,17 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 1804,
|
"commentStart": 1788,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "axis",
|
"name": "axis",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Identifier"
|
"type": "Identifier"
|
||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"commentStart": 1811,
|
"commentStart": 1795,
|
||||||
"elements": [
|
"elements": [
|
||||||
{
|
{
|
||||||
"commentStart": 1812,
|
"commentStart": 1796,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "0",
|
"raw": "0",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1791,7 +1769,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"commentStart": 1815,
|
"commentStart": 1799,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "0",
|
"raw": "0",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1803,7 +1781,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"commentStart": 1818,
|
"commentStart": 1802,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "1",
|
"raw": "1",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1824,24 +1802,24 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 1824,
|
"commentStart": 1808,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "center",
|
"name": "center",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Identifier"
|
"type": "Identifier"
|
||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"commentStart": 1833,
|
"commentStart": 1817,
|
||||||
"elements": [
|
"elements": [
|
||||||
{
|
{
|
||||||
"commentStart": 1834,
|
"commentStart": 1818,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"left": {
|
"left": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 1834,
|
"commentStart": 1818,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 1834,
|
"commentStart": 1818,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "binLength",
|
"name": "binLength",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1854,7 +1832,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
},
|
},
|
||||||
"operator": "/",
|
"operator": "/",
|
||||||
"right": {
|
"right": {
|
||||||
"commentStart": 1846,
|
"commentStart": 1830,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "2",
|
"raw": "2",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1870,14 +1848,14 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
"type": "BinaryExpression"
|
"type": "BinaryExpression"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"commentStart": 1849,
|
"commentStart": 1833,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"left": {
|
"left": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 1849,
|
"commentStart": 1833,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 1849,
|
"commentStart": 1833,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "binLength",
|
"name": "binLength",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1890,7 +1868,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
},
|
},
|
||||||
"operator": "/",
|
"operator": "/",
|
||||||
"right": {
|
"right": {
|
||||||
"commentStart": 1861,
|
"commentStart": 1845,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "2",
|
"raw": "2",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1906,7 +1884,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
"type": "BinaryExpression"
|
"type": "BinaryExpression"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"commentStart": 1864,
|
"commentStart": 1848,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "0",
|
"raw": "0",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1927,14 +1905,14 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 1870,
|
"commentStart": 1854,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "instances",
|
"name": "instances",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Identifier"
|
"type": "Identifier"
|
||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"commentStart": 1882,
|
"commentStart": 1866,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "4",
|
"raw": "4",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1949,14 +1927,14 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 1887,
|
"commentStart": 1871,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "rotateDuplicates",
|
"name": "rotateDuplicates",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Identifier"
|
"type": "Identifier"
|
||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"commentStart": 1906,
|
"commentStart": 1890,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "true",
|
"raw": "true",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1968,10 +1946,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
],
|
],
|
||||||
"callee": {
|
"callee": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 1747,
|
"commentStart": 1731,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 1747,
|
"commentStart": 1731,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "patternCircular3d",
|
"name": "patternCircular3d",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -1981,17 +1959,17 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Name"
|
"type": "Name"
|
||||||
},
|
},
|
||||||
"commentStart": 1747,
|
"commentStart": 1731,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "CallExpressionKw",
|
"type": "CallExpressionKw",
|
||||||
"type": "CallExpressionKw",
|
"type": "CallExpressionKw",
|
||||||
"unlabeled": {
|
"unlabeled": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 1768,
|
"commentStart": 1752,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 1768,
|
"commentStart": 1752,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "singleCorner",
|
"name": "singleCorner",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2018,12 +1996,12 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
"type": "VariableDeclaration"
|
"type": "VariableDeclaration"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"commentStart": 1913,
|
"commentStart": 1897,
|
||||||
"declaration": {
|
"declaration": {
|
||||||
"commentStart": 1959,
|
"commentStart": 1943,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"id": {
|
"id": {
|
||||||
"commentStart": 1959,
|
"commentStart": 1943,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "basePlateSides",
|
"name": "basePlateSides",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2036,17 +2014,17 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 2014,
|
"commentStart": 1998,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "axis",
|
"name": "axis",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Identifier"
|
"type": "Identifier"
|
||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"commentStart": 2021,
|
"commentStart": 2005,
|
||||||
"elements": [
|
"elements": [
|
||||||
{
|
{
|
||||||
"commentStart": 2022,
|
"commentStart": 2006,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "1.0",
|
"raw": "1.0",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2058,7 +2036,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"commentStart": 2027,
|
"commentStart": 2011,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "0.0",
|
"raw": "0.0",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2070,7 +2048,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"commentStart": 2032,
|
"commentStart": 2016,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "0.0",
|
"raw": "0.0",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2091,7 +2069,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 2045,
|
"commentStart": 2029,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "instances",
|
"name": "instances",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2099,10 +2077,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 2057,
|
"commentStart": 2041,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 2057,
|
"commentStart": 2041,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "countBinWidth",
|
"name": "countBinWidth",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2117,7 +2095,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 2079,
|
"commentStart": 2063,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "distance",
|
"name": "distance",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2125,10 +2103,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 2090,
|
"commentStart": 2074,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 2090,
|
"commentStart": 2074,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "binLength",
|
"name": "binLength",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2143,10 +2121,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
],
|
],
|
||||||
"callee": {
|
"callee": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 1976,
|
"commentStart": 1960,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 1976,
|
"commentStart": 1960,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "patternLinear3d",
|
"name": "patternLinear3d",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2156,17 +2134,17 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Name"
|
"type": "Name"
|
||||||
},
|
},
|
||||||
"commentStart": 1976,
|
"commentStart": 1960,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "CallExpressionKw",
|
"type": "CallExpressionKw",
|
||||||
"type": "CallExpressionKw",
|
"type": "CallExpressionKw",
|
||||||
"unlabeled": {
|
"unlabeled": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 2000,
|
"commentStart": 1984,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 2000,
|
"commentStart": 1984,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "sides",
|
"name": "sides",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2183,17 +2161,17 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 2129,
|
"commentStart": 2113,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "axis",
|
"name": "axis",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Identifier"
|
"type": "Identifier"
|
||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"commentStart": 2136,
|
"commentStart": 2120,
|
||||||
"elements": [
|
"elements": [
|
||||||
{
|
{
|
||||||
"commentStart": 2137,
|
"commentStart": 2121,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "0.0",
|
"raw": "0.0",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2205,7 +2183,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"commentStart": 2142,
|
"commentStart": 2126,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "1.0",
|
"raw": "1.0",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2217,7 +2195,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"commentStart": 2147,
|
"commentStart": 2131,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "0.0",
|
"raw": "0.0",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2238,7 +2216,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 2153,
|
"commentStart": 2137,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "instances",
|
"name": "instances",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2246,10 +2224,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 2165,
|
"commentStart": 2149,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 2165,
|
"commentStart": 2149,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "countBinLength",
|
"name": "countBinLength",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2264,7 +2242,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 2181,
|
"commentStart": 2165,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "distance",
|
"name": "distance",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2272,10 +2250,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 2192,
|
"commentStart": 2176,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 2192,
|
"commentStart": 2176,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "binLength",
|
"name": "binLength",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2290,10 +2268,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
],
|
],
|
||||||
"callee": {
|
"callee": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 2113,
|
"commentStart": 2097,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 2113,
|
"commentStart": 2097,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "patternLinear3d",
|
"name": "patternLinear3d",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2303,7 +2281,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Name"
|
"type": "Name"
|
||||||
},
|
},
|
||||||
"commentStart": 2113,
|
"commentStart": 2097,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "CallExpressionKw",
|
"type": "CallExpressionKw",
|
||||||
@ -2311,13 +2289,13 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
"unlabeled": null
|
"unlabeled": null
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"commentStart": 1976,
|
"commentStart": 1960,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"nonCodeMeta": {
|
"nonCodeMeta": {
|
||||||
"nonCodeNodes": {
|
"nonCodeNodes": {
|
||||||
"1": [
|
"1": [
|
||||||
{
|
{
|
||||||
"commentStart": 2202,
|
"commentStart": 2186,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "NonCodeNode",
|
"type": "NonCodeNode",
|
||||||
@ -2350,12 +2328,12 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
"type": "VariableDeclaration"
|
"type": "VariableDeclaration"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"commentStart": 2269,
|
"commentStart": 2253,
|
||||||
"declaration": {
|
"declaration": {
|
||||||
"commentStart": 2269,
|
"commentStart": 2253,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"id": {
|
"id": {
|
||||||
"commentStart": 2269,
|
"commentStart": 2253,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "basePlateCorners",
|
"name": "basePlateCorners",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2368,17 +2346,17 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 2328,
|
"commentStart": 2312,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "axis",
|
"name": "axis",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Identifier"
|
"type": "Identifier"
|
||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"commentStart": 2335,
|
"commentStart": 2319,
|
||||||
"elements": [
|
"elements": [
|
||||||
{
|
{
|
||||||
"commentStart": 2336,
|
"commentStart": 2320,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "1.0",
|
"raw": "1.0",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2390,7 +2368,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"commentStart": 2341,
|
"commentStart": 2325,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "0.0",
|
"raw": "0.0",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2402,7 +2380,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"commentStart": 2346,
|
"commentStart": 2330,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "0.0",
|
"raw": "0.0",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2423,7 +2401,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 2359,
|
"commentStart": 2343,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "instances",
|
"name": "instances",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2431,10 +2409,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 2371,
|
"commentStart": 2355,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 2371,
|
"commentStart": 2355,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "countBinWidth",
|
"name": "countBinWidth",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2449,7 +2427,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 2393,
|
"commentStart": 2377,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "distance",
|
"name": "distance",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2457,10 +2435,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 2404,
|
"commentStart": 2388,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 2404,
|
"commentStart": 2388,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "binLength",
|
"name": "binLength",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2475,10 +2453,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
],
|
],
|
||||||
"callee": {
|
"callee": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 2288,
|
"commentStart": 2272,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 2288,
|
"commentStart": 2272,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "patternLinear3d",
|
"name": "patternLinear3d",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2488,17 +2466,17 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Name"
|
"type": "Name"
|
||||||
},
|
},
|
||||||
"commentStart": 2288,
|
"commentStart": 2272,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "CallExpressionKw",
|
"type": "CallExpressionKw",
|
||||||
"type": "CallExpressionKw",
|
"type": "CallExpressionKw",
|
||||||
"unlabeled": {
|
"unlabeled": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 2312,
|
"commentStart": 2296,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 2312,
|
"commentStart": 2296,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "corners",
|
"name": "corners",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2515,17 +2493,17 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 2443,
|
"commentStart": 2427,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "axis",
|
"name": "axis",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Identifier"
|
"type": "Identifier"
|
||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"commentStart": 2450,
|
"commentStart": 2434,
|
||||||
"elements": [
|
"elements": [
|
||||||
{
|
{
|
||||||
"commentStart": 2451,
|
"commentStart": 2435,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "0.0",
|
"raw": "0.0",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2537,7 +2515,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"commentStart": 2456,
|
"commentStart": 2440,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "1.0",
|
"raw": "1.0",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2549,7 +2527,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"commentStart": 2461,
|
"commentStart": 2445,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "0.0",
|
"raw": "0.0",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2570,7 +2548,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 2467,
|
"commentStart": 2451,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "instances",
|
"name": "instances",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2578,10 +2556,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 2479,
|
"commentStart": 2463,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 2479,
|
"commentStart": 2463,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "countBinLength",
|
"name": "countBinLength",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2596,7 +2574,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 2495,
|
"commentStart": 2479,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "distance",
|
"name": "distance",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2604,10 +2582,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 2506,
|
"commentStart": 2490,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 2506,
|
"commentStart": 2490,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "binLength",
|
"name": "binLength",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2622,10 +2600,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
],
|
],
|
||||||
"callee": {
|
"callee": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 2427,
|
"commentStart": 2411,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 2427,
|
"commentStart": 2411,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "patternLinear3d",
|
"name": "patternLinear3d",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -2635,7 +2613,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Name"
|
"type": "Name"
|
||||||
},
|
},
|
||||||
"commentStart": 2427,
|
"commentStart": 2411,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "CallExpressionKw",
|
"type": "CallExpressionKw",
|
||||||
@ -2643,7 +2621,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
|||||||
"unlabeled": null
|
"unlabeled": null
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"commentStart": 2288,
|
"commentStart": 2272,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "PipeExpression",
|
"type": "PipeExpression",
|
||||||
|
@ -287,6 +287,22 @@ description: Operations executed gridfinity-baseplate.kcl
|
|||||||
"type": "UserDefinedFunctionReturn"
|
"type": "UserDefinedFunctionReturn"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"type": "UserDefinedFunctionCall",
|
||||||
|
"name": "revolve",
|
||||||
|
"functionSourceRange": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"angle": {
|
"angle": {
|
||||||
"value": {
|
"value": {
|
||||||
@ -308,10 +324,7 @@ description: Operations executed gridfinity-baseplate.kcl
|
|||||||
"value": {
|
"value": {
|
||||||
"type": "Object",
|
"type": "Object",
|
||||||
"value": {
|
"value": {
|
||||||
"custom": {
|
"direction": {
|
||||||
"type": "Object",
|
|
||||||
"value": {
|
|
||||||
"axis": {
|
|
||||||
"type": "Array",
|
"type": "Array",
|
||||||
"value": [
|
"value": [
|
||||||
{
|
{
|
||||||
@ -374,25 +387,122 @@ description: Operations executed gridfinity-baseplate.kcl
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "revolve",
|
"sourceRange": []
|
||||||
"sourceRange": [],
|
},
|
||||||
"type": "StdLibCall",
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "",
|
||||||
"unlabeledArg": {
|
"unlabeledArg": {
|
||||||
"value": {
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
"type": "Sketch",
|
"type": "Sketch",
|
||||||
"value": {
|
"value": {
|
||||||
"artifactId": "[uuid]"
|
"artifactId": "[uuid]"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"angle": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": -90.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 4.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 4.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"arcDegrees": {
|
"arcDegrees": {
|
||||||
|
@ -6,10 +6,7 @@ description: Variables in memory after executing gridfinity-baseplate.kcl
|
|||||||
"axis000": {
|
"axis000": {
|
||||||
"type": "Object",
|
"type": "Object",
|
||||||
"value": {
|
"value": {
|
||||||
"custom": {
|
"direction": {
|
||||||
"type": "Object",
|
|
||||||
"value": {
|
|
||||||
"axis": {
|
|
||||||
"type": "MixedArray",
|
"type": "MixedArray",
|
||||||
"value": [
|
"value": [
|
||||||
{
|
{
|
||||||
@ -72,8 +69,6 @@ description: Variables in memory after executing gridfinity-baseplate.kcl
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"basePlateCorners": {
|
"basePlateCorners": {
|
||||||
"type": "HomArray",
|
"type": "HomArray",
|
||||||
|
@ -21,72 +21,72 @@ flowchart LR
|
|||||||
36[Solid2d]
|
36[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path56 [Path]
|
subgraph path56 [Path]
|
||||||
56["Path<br>[2547, 2635, 0]"]
|
56["Path<br>[2525, 2613, 0]"]
|
||||||
57["Segment<br>[2641, 2705, 0]"]
|
57["Segment<br>[2619, 2683, 0]"]
|
||||||
58["Segment<br>[2711, 2775, 0]"]
|
58["Segment<br>[2689, 2753, 0]"]
|
||||||
59["Segment<br>[2781, 2834, 0]"]
|
59["Segment<br>[2759, 2812, 0]"]
|
||||||
60["Segment<br>[2840, 2861, 0]"]
|
60["Segment<br>[2818, 2839, 0]"]
|
||||||
61[Solid2d]
|
61[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path81 [Path]
|
subgraph path81 [Path]
|
||||||
81["Path<br>[3187, 3353, 0]"]
|
81["Path<br>[3165, 3331, 0]"]
|
||||||
82["Segment<br>[3187, 3353, 0]"]
|
82["Segment<br>[3165, 3331, 0]"]
|
||||||
83[Solid2d]
|
83[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path93 [Path]
|
subgraph path93 [Path]
|
||||||
93["Path<br>[4640, 4665, 0]"]
|
93["Path<br>[4618, 4643, 0]"]
|
||||||
94["Segment<br>[4671, 4743, 0]"]
|
94["Segment<br>[4649, 4721, 0]"]
|
||||||
95["Segment<br>[4749, 4822, 0]"]
|
95["Segment<br>[4727, 4800, 0]"]
|
||||||
96["Segment<br>[4828, 4881, 0]"]
|
96["Segment<br>[4806, 4859, 0]"]
|
||||||
97["Segment<br>[4887, 4908, 0]"]
|
97["Segment<br>[4865, 4886, 0]"]
|
||||||
98[Solid2d]
|
98[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path119 [Path]
|
subgraph path119 [Path]
|
||||||
119["Path<br>[5377, 5402, 0]"]
|
119["Path<br>[5355, 5380, 0]"]
|
||||||
120["Segment<br>[5462, 5505, 0]"]
|
120["Segment<br>[5440, 5483, 0]"]
|
||||||
121["Segment<br>[5513, 5622, 0]"]
|
121["Segment<br>[5491, 5600, 0]"]
|
||||||
122["Segment<br>[5697, 5746, 0]"]
|
122["Segment<br>[5675, 5724, 0]"]
|
||||||
123["Segment<br>[5754, 5779, 0]"]
|
123["Segment<br>[5732, 5757, 0]"]
|
||||||
124["Segment<br>[5787, 5845, 0]"]
|
124["Segment<br>[5765, 5823, 0]"]
|
||||||
125["Segment<br>[5853, 5878, 0]"]
|
125["Segment<br>[5831, 5856, 0]"]
|
||||||
126["Segment<br>[5886, 5945, 0]"]
|
126["Segment<br>[5864, 5923, 0]"]
|
||||||
127["Segment<br>[5953, 5960, 0]"]
|
127["Segment<br>[5931, 5938, 0]"]
|
||||||
128[Solid2d]
|
128[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path157 [Path]
|
subgraph path157 [Path]
|
||||||
157["Path<br>[5377, 5402, 0]"]
|
157["Path<br>[5355, 5380, 0]"]
|
||||||
158["Segment<br>[5462, 5505, 0]"]
|
158["Segment<br>[5440, 5483, 0]"]
|
||||||
159["Segment<br>[5513, 5622, 0]"]
|
159["Segment<br>[5491, 5600, 0]"]
|
||||||
160["Segment<br>[5697, 5746, 0]"]
|
160["Segment<br>[5675, 5724, 0]"]
|
||||||
161["Segment<br>[5754, 5779, 0]"]
|
161["Segment<br>[5732, 5757, 0]"]
|
||||||
162["Segment<br>[5787, 5845, 0]"]
|
162["Segment<br>[5765, 5823, 0]"]
|
||||||
163["Segment<br>[5853, 5878, 0]"]
|
163["Segment<br>[5831, 5856, 0]"]
|
||||||
164["Segment<br>[5886, 5945, 0]"]
|
164["Segment<br>[5864, 5923, 0]"]
|
||||||
165["Segment<br>[5953, 5960, 0]"]
|
165["Segment<br>[5931, 5938, 0]"]
|
||||||
166[Solid2d]
|
166[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path195 [Path]
|
subgraph path195 [Path]
|
||||||
195["Path<br>[5377, 5402, 0]"]
|
195["Path<br>[5355, 5380, 0]"]
|
||||||
196["Segment<br>[5462, 5505, 0]"]
|
196["Segment<br>[5440, 5483, 0]"]
|
||||||
197["Segment<br>[5513, 5622, 0]"]
|
197["Segment<br>[5491, 5600, 0]"]
|
||||||
198["Segment<br>[5697, 5746, 0]"]
|
198["Segment<br>[5675, 5724, 0]"]
|
||||||
199["Segment<br>[5754, 5779, 0]"]
|
199["Segment<br>[5732, 5757, 0]"]
|
||||||
200["Segment<br>[5787, 5845, 0]"]
|
200["Segment<br>[5765, 5823, 0]"]
|
||||||
201["Segment<br>[5853, 5878, 0]"]
|
201["Segment<br>[5831, 5856, 0]"]
|
||||||
202["Segment<br>[5886, 5945, 0]"]
|
202["Segment<br>[5864, 5923, 0]"]
|
||||||
203["Segment<br>[5953, 5960, 0]"]
|
203["Segment<br>[5931, 5938, 0]"]
|
||||||
204[Solid2d]
|
204[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path233 [Path]
|
subgraph path233 [Path]
|
||||||
233["Path<br>[5377, 5402, 0]"]
|
233["Path<br>[5355, 5380, 0]"]
|
||||||
234["Segment<br>[5462, 5505, 0]"]
|
234["Segment<br>[5440, 5483, 0]"]
|
||||||
235["Segment<br>[5513, 5622, 0]"]
|
235["Segment<br>[5491, 5600, 0]"]
|
||||||
236["Segment<br>[5697, 5746, 0]"]
|
236["Segment<br>[5675, 5724, 0]"]
|
||||||
237["Segment<br>[5754, 5779, 0]"]
|
237["Segment<br>[5732, 5757, 0]"]
|
||||||
238["Segment<br>[5787, 5845, 0]"]
|
238["Segment<br>[5765, 5823, 0]"]
|
||||||
239["Segment<br>[5853, 5878, 0]"]
|
239["Segment<br>[5831, 5856, 0]"]
|
||||||
240["Segment<br>[5886, 5945, 0]"]
|
240["Segment<br>[5864, 5923, 0]"]
|
||||||
241["Segment<br>[5953, 5960, 0]"]
|
241["Segment<br>[5931, 5938, 0]"]
|
||||||
242[Solid2d]
|
242[Solid2d]
|
||||||
end
|
end
|
||||||
1["Plane<br>[1570, 1617, 0]"]
|
1["Plane<br>[1570, 1617, 0]"]
|
||||||
@ -108,8 +108,8 @@ flowchart LR
|
|||||||
25["SweepEdge Adjacent"]
|
25["SweepEdge Adjacent"]
|
||||||
26["SweepEdge Opposite"]
|
26["SweepEdge Opposite"]
|
||||||
27["SweepEdge Adjacent"]
|
27["SweepEdge Adjacent"]
|
||||||
28["Plane<br>[2171, 2218, 0]"]
|
28["Plane<br>[2149, 2196, 0]"]
|
||||||
37["Sweep Revolve<br>[2158, 2249, 0]"]
|
37["Sweep Revolve<br>[2136, 2227, 0]"]
|
||||||
38[Wall]
|
38[Wall]
|
||||||
39[Wall]
|
39[Wall]
|
||||||
40[Wall]
|
40[Wall]
|
||||||
@ -127,8 +127,8 @@ flowchart LR
|
|||||||
52["SweepEdge Adjacent"]
|
52["SweepEdge Adjacent"]
|
||||||
53["SweepEdge Opposite"]
|
53["SweepEdge Opposite"]
|
||||||
54["SweepEdge Adjacent"]
|
54["SweepEdge Adjacent"]
|
||||||
55["Plane<br>[2524, 2541, 0]"]
|
55["Plane<br>[2502, 2519, 0]"]
|
||||||
62["Sweep Extrusion<br>[2867, 2891, 0]"]
|
62["Sweep Extrusion<br>[2845, 2869, 0]"]
|
||||||
63[Wall]
|
63[Wall]
|
||||||
64[Wall]
|
64[Wall]
|
||||||
65[Wall]
|
65[Wall]
|
||||||
@ -143,20 +143,20 @@ flowchart LR
|
|||||||
74["SweepEdge Adjacent"]
|
74["SweepEdge Adjacent"]
|
||||||
75["SweepEdge Opposite"]
|
75["SweepEdge Opposite"]
|
||||||
76["SweepEdge Adjacent"]
|
76["SweepEdge Adjacent"]
|
||||||
77["EdgeCut Fillet<br>[2897, 3127, 0]"]
|
77["EdgeCut Fillet<br>[2875, 3105, 0]"]
|
||||||
78["EdgeCut Fillet<br>[2897, 3127, 0]"]
|
78["EdgeCut Fillet<br>[2875, 3105, 0]"]
|
||||||
79["EdgeCut Fillet<br>[2897, 3127, 0]"]
|
79["EdgeCut Fillet<br>[2875, 3105, 0]"]
|
||||||
80["EdgeCut Fillet<br>[2897, 3127, 0]"]
|
80["EdgeCut Fillet<br>[2875, 3105, 0]"]
|
||||||
84["Sweep Extrusion<br>[3575, 3602, 0]"]
|
84["Sweep Extrusion<br>[3553, 3580, 0]"]
|
||||||
85[Wall]
|
85[Wall]
|
||||||
86["Cap Start"]
|
86["Cap Start"]
|
||||||
87["SweepEdge Opposite"]
|
87["SweepEdge Opposite"]
|
||||||
88["SweepEdge Adjacent"]
|
88["SweepEdge Adjacent"]
|
||||||
89["Sweep Extrusion<br>[3575, 3602, 0]"]
|
89["Sweep Extrusion<br>[3553, 3580, 0]"]
|
||||||
90["Sweep Extrusion<br>[3575, 3602, 0]"]
|
90["Sweep Extrusion<br>[3553, 3580, 0]"]
|
||||||
91["Sweep Extrusion<br>[3575, 3602, 0]"]
|
91["Sweep Extrusion<br>[3553, 3580, 0]"]
|
||||||
92["Plane<br>[4601, 4633, 0]"]
|
92["Plane<br>[4579, 4611, 0]"]
|
||||||
99["Sweep Extrusion<br>[4914, 4958, 0]"]
|
99["Sweep Extrusion<br>[4892, 4936, 0]"]
|
||||||
100[Wall]
|
100[Wall]
|
||||||
101[Wall]
|
101[Wall]
|
||||||
102[Wall]
|
102[Wall]
|
||||||
@ -171,12 +171,12 @@ flowchart LR
|
|||||||
111["SweepEdge Adjacent"]
|
111["SweepEdge Adjacent"]
|
||||||
112["SweepEdge Opposite"]
|
112["SweepEdge Opposite"]
|
||||||
113["SweepEdge Adjacent"]
|
113["SweepEdge Adjacent"]
|
||||||
114["EdgeCut Fillet<br>[4964, 5197, 0]"]
|
114["EdgeCut Fillet<br>[4942, 5175, 0]"]
|
||||||
115["EdgeCut Fillet<br>[4964, 5197, 0]"]
|
115["EdgeCut Fillet<br>[4942, 5175, 0]"]
|
||||||
116["EdgeCut Fillet<br>[4964, 5197, 0]"]
|
116["EdgeCut Fillet<br>[4942, 5175, 0]"]
|
||||||
117["EdgeCut Fillet<br>[4964, 5197, 0]"]
|
117["EdgeCut Fillet<br>[4942, 5175, 0]"]
|
||||||
118["Plane<br>[5349, 5369, 0]"]
|
118["Plane<br>[5327, 5347, 0]"]
|
||||||
129["Sweep Extrusion<br>[6731, 6843, 0]"]
|
129["Sweep Extrusion<br>[6709, 6821, 0]"]
|
||||||
130[Wall]
|
130[Wall]
|
||||||
131[Wall]
|
131[Wall]
|
||||||
132[Wall]
|
132[Wall]
|
||||||
@ -203,8 +203,8 @@ flowchart LR
|
|||||||
153["SweepEdge Adjacent"]
|
153["SweepEdge Adjacent"]
|
||||||
154["SweepEdge Opposite"]
|
154["SweepEdge Opposite"]
|
||||||
155["SweepEdge Adjacent"]
|
155["SweepEdge Adjacent"]
|
||||||
156["Plane<br>[5349, 5369, 0]"]
|
156["Plane<br>[5327, 5347, 0]"]
|
||||||
167["Sweep Extrusion<br>[6909, 7023, 0]"]
|
167["Sweep Extrusion<br>[6887, 7001, 0]"]
|
||||||
168[Wall]
|
168[Wall]
|
||||||
169[Wall]
|
169[Wall]
|
||||||
170[Wall]
|
170[Wall]
|
||||||
@ -231,8 +231,8 @@ flowchart LR
|
|||||||
191["SweepEdge Adjacent"]
|
191["SweepEdge Adjacent"]
|
||||||
192["SweepEdge Opposite"]
|
192["SweepEdge Opposite"]
|
||||||
193["SweepEdge Adjacent"]
|
193["SweepEdge Adjacent"]
|
||||||
194["Plane<br>[5349, 5369, 0]"]
|
194["Plane<br>[5327, 5347, 0]"]
|
||||||
205["Sweep Revolve<br>[7865, 7920, 0]"]
|
205["Sweep Revolve<br>[7827, 7882, 0]"]
|
||||||
206[Wall]
|
206[Wall]
|
||||||
207[Wall]
|
207[Wall]
|
||||||
208[Wall]
|
208[Wall]
|
||||||
@ -259,8 +259,8 @@ flowchart LR
|
|||||||
229["SweepEdge Adjacent"]
|
229["SweepEdge Adjacent"]
|
||||||
230["SweepEdge Opposite"]
|
230["SweepEdge Opposite"]
|
||||||
231["SweepEdge Adjacent"]
|
231["SweepEdge Adjacent"]
|
||||||
232["Plane<br>[5349, 5369, 0]"]
|
232["Plane<br>[5327, 5347, 0]"]
|
||||||
243["Sweep Revolve<br>[7982, 8036, 0]"]
|
243["Sweep Revolve<br>[7944, 7998, 0]"]
|
||||||
244[Wall]
|
244[Wall]
|
||||||
245[Wall]
|
245[Wall]
|
||||||
246[Wall]
|
246[Wall]
|
||||||
@ -289,8 +289,8 @@ flowchart LR
|
|||||||
269["SweepEdge Adjacent"]
|
269["SweepEdge Adjacent"]
|
||||||
270["StartSketchOnPlane<br>[1158, 1178, 0]"]
|
270["StartSketchOnPlane<br>[1158, 1178, 0]"]
|
||||||
271["StartSketchOnPlane<br>[1158, 1178, 0]"]
|
271["StartSketchOnPlane<br>[1158, 1178, 0]"]
|
||||||
272["StartSketchOnFace<br>[3144, 3181, 0]"]
|
272["StartSketchOnFace<br>[3122, 3159, 0]"]
|
||||||
273["StartSketchOnPlane<br>[4587, 4634, 0]"]
|
273["StartSketchOnPlane<br>[4565, 4612, 0]"]
|
||||||
1 --- 2
|
1 --- 2
|
||||||
2 --- 3
|
2 --- 3
|
||||||
2 --- 4
|
2 --- 4
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -287,6 +287,22 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
|||||||
"type": "UserDefinedFunctionReturn"
|
"type": "UserDefinedFunctionReturn"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"type": "UserDefinedFunctionCall",
|
||||||
|
"name": "revolve",
|
||||||
|
"functionSourceRange": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"angle": {
|
"angle": {
|
||||||
"value": {
|
"value": {
|
||||||
@ -308,10 +324,7 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
|||||||
"value": {
|
"value": {
|
||||||
"type": "Object",
|
"type": "Object",
|
||||||
"value": {
|
"value": {
|
||||||
"custom": {
|
"direction": {
|
||||||
"type": "Object",
|
|
||||||
"value": {
|
|
||||||
"axis": {
|
|
||||||
"type": "Array",
|
"type": "Array",
|
||||||
"value": [
|
"value": [
|
||||||
{
|
{
|
||||||
@ -374,25 +387,122 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "revolve",
|
"sourceRange": []
|
||||||
"sourceRange": [],
|
},
|
||||||
"type": "StdLibCall",
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "",
|
||||||
"unlabeledArg": {
|
"unlabeledArg": {
|
||||||
"value": {
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
"type": "Sketch",
|
"type": "Sketch",
|
||||||
"value": {
|
"value": {
|
||||||
"artifactId": "[uuid]"
|
"artifactId": "[uuid]"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"angle": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": -90.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 4.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 4.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"arcDegrees": {
|
"arcDegrees": {
|
||||||
@ -1632,8 +1742,8 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
|||||||
"type": "UserDefinedFunctionCall",
|
"type": "UserDefinedFunctionCall",
|
||||||
"name": "lipFace",
|
"name": "lipFace",
|
||||||
"functionSourceRange": [
|
"functionSourceRange": [
|
||||||
5324,
|
5302,
|
||||||
5982,
|
5960,
|
||||||
0
|
0
|
||||||
],
|
],
|
||||||
"unlabeledArg": null,
|
"unlabeledArg": null,
|
||||||
@ -1864,8 +1974,8 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
|||||||
"type": "UserDefinedFunctionCall",
|
"type": "UserDefinedFunctionCall",
|
||||||
"name": "lipFace",
|
"name": "lipFace",
|
||||||
"functionSourceRange": [
|
"functionSourceRange": [
|
||||||
5324,
|
5302,
|
||||||
5982,
|
5960,
|
||||||
0
|
0
|
||||||
],
|
],
|
||||||
"unlabeledArg": null,
|
"unlabeledArg": null,
|
||||||
@ -2370,8 +2480,8 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
|||||||
"type": "UserDefinedFunctionCall",
|
"type": "UserDefinedFunctionCall",
|
||||||
"name": "lipFace",
|
"name": "lipFace",
|
||||||
"functionSourceRange": [
|
"functionSourceRange": [
|
||||||
5324,
|
5302,
|
||||||
5982,
|
5960,
|
||||||
0
|
0
|
||||||
],
|
],
|
||||||
"unlabeledArg": null,
|
"unlabeledArg": null,
|
||||||
@ -2573,6 +2683,22 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
|||||||
"type": "UserDefinedFunctionReturn"
|
"type": "UserDefinedFunctionReturn"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"type": "UserDefinedFunctionCall",
|
||||||
|
"name": "revolve",
|
||||||
|
"functionSourceRange": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"angle": {
|
"angle": {
|
||||||
"value": {
|
"value": {
|
||||||
@ -2594,10 +2720,7 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
|||||||
"value": {
|
"value": {
|
||||||
"type": "Object",
|
"type": "Object",
|
||||||
"value": {
|
"value": {
|
||||||
"custom": {
|
"direction": {
|
||||||
"type": "Object",
|
|
||||||
"value": {
|
|
||||||
"axis": {
|
|
||||||
"type": "Array",
|
"type": "Array",
|
||||||
"value": [
|
"value": [
|
||||||
{
|
{
|
||||||
@ -2660,31 +2783,128 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "revolve",
|
"sourceRange": []
|
||||||
"sourceRange": [],
|
},
|
||||||
"type": "StdLibCall",
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "",
|
||||||
"unlabeledArg": {
|
"unlabeledArg": {
|
||||||
"value": {
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
"type": "Sketch",
|
"type": "Sketch",
|
||||||
"value": {
|
"value": {
|
||||||
"artifactId": "[uuid]"
|
"artifactId": "[uuid]"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"angle": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": -90.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 3.75,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 3.75,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "UserDefinedFunctionCall",
|
"type": "UserDefinedFunctionCall",
|
||||||
"name": "lipFace",
|
"name": "lipFace",
|
||||||
"functionSourceRange": [
|
"functionSourceRange": [
|
||||||
5324,
|
5302,
|
||||||
5982,
|
5960,
|
||||||
0
|
0
|
||||||
],
|
],
|
||||||
"unlabeledArg": null,
|
"unlabeledArg": null,
|
||||||
@ -2880,6 +3100,22 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
|||||||
"type": "UserDefinedFunctionReturn"
|
"type": "UserDefinedFunctionReturn"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"type": "UserDefinedFunctionCall",
|
||||||
|
"name": "revolve",
|
||||||
|
"functionSourceRange": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"angle": {
|
"angle": {
|
||||||
"value": {
|
"value": {
|
||||||
@ -2901,10 +3137,7 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
|||||||
"value": {
|
"value": {
|
||||||
"type": "Object",
|
"type": "Object",
|
||||||
"value": {
|
"value": {
|
||||||
"custom": {
|
"direction": {
|
||||||
"type": "Object",
|
|
||||||
"value": {
|
|
||||||
"axis": {
|
|
||||||
"type": "Array",
|
"type": "Array",
|
||||||
"value": [
|
"value": [
|
||||||
{
|
{
|
||||||
@ -2967,25 +3200,122 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "revolve",
|
"sourceRange": []
|
||||||
"sourceRange": [],
|
},
|
||||||
"type": "StdLibCall",
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "",
|
||||||
"unlabeledArg": {
|
"unlabeledArg": {
|
||||||
"value": {
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
"type": "Sketch",
|
"type": "Sketch",
|
||||||
"value": {
|
"value": {
|
||||||
"artifactId": "[uuid]"
|
"artifactId": "[uuid]"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"angle": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 90.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 3.75,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 3.75,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"arcDegrees": {
|
"arcDegrees": {
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -21,24 +21,24 @@ flowchart LR
|
|||||||
36[Solid2d]
|
36[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path56 [Path]
|
subgraph path56 [Path]
|
||||||
56["Path<br>[2288, 2376, 0]"]
|
56["Path<br>[2266, 2354, 0]"]
|
||||||
57["Segment<br>[2382, 2446, 0]"]
|
57["Segment<br>[2360, 2424, 0]"]
|
||||||
58["Segment<br>[2452, 2516, 0]"]
|
58["Segment<br>[2430, 2494, 0]"]
|
||||||
59["Segment<br>[2522, 2575, 0]"]
|
59["Segment<br>[2500, 2553, 0]"]
|
||||||
60["Segment<br>[2581, 2602, 0]"]
|
60["Segment<br>[2559, 2580, 0]"]
|
||||||
61[Solid2d]
|
61[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path81 [Path]
|
subgraph path81 [Path]
|
||||||
81["Path<br>[2928, 3094, 0]"]
|
81["Path<br>[2906, 3072, 0]"]
|
||||||
82["Segment<br>[2928, 3094, 0]"]
|
82["Segment<br>[2906, 3072, 0]"]
|
||||||
83[Solid2d]
|
83[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path93 [Path]
|
subgraph path93 [Path]
|
||||||
93["Path<br>[4407, 4432, 0]"]
|
93["Path<br>[4385, 4410, 0]"]
|
||||||
94["Segment<br>[4438, 4510, 0]"]
|
94["Segment<br>[4416, 4488, 0]"]
|
||||||
95["Segment<br>[4516, 4589, 0]"]
|
95["Segment<br>[4494, 4567, 0]"]
|
||||||
96["Segment<br>[4595, 4648, 0]"]
|
96["Segment<br>[4573, 4626, 0]"]
|
||||||
97["Segment<br>[4654, 4675, 0]"]
|
97["Segment<br>[4632, 4653, 0]"]
|
||||||
98[Solid2d]
|
98[Solid2d]
|
||||||
end
|
end
|
||||||
1["Plane<br>[1311, 1358, 0]"]
|
1["Plane<br>[1311, 1358, 0]"]
|
||||||
@ -60,8 +60,8 @@ flowchart LR
|
|||||||
25["SweepEdge Adjacent"]
|
25["SweepEdge Adjacent"]
|
||||||
26["SweepEdge Opposite"]
|
26["SweepEdge Opposite"]
|
||||||
27["SweepEdge Adjacent"]
|
27["SweepEdge Adjacent"]
|
||||||
28["Plane<br>[1912, 1959, 0]"]
|
28["Plane<br>[1890, 1937, 0]"]
|
||||||
37["Sweep Revolve<br>[1899, 1990, 0]"]
|
37["Sweep Revolve<br>[1877, 1968, 0]"]
|
||||||
38[Wall]
|
38[Wall]
|
||||||
39[Wall]
|
39[Wall]
|
||||||
40[Wall]
|
40[Wall]
|
||||||
@ -79,8 +79,8 @@ flowchart LR
|
|||||||
52["SweepEdge Adjacent"]
|
52["SweepEdge Adjacent"]
|
||||||
53["SweepEdge Opposite"]
|
53["SweepEdge Opposite"]
|
||||||
54["SweepEdge Adjacent"]
|
54["SweepEdge Adjacent"]
|
||||||
55["Plane<br>[2265, 2282, 0]"]
|
55["Plane<br>[2243, 2260, 0]"]
|
||||||
62["Sweep Extrusion<br>[2608, 2632, 0]"]
|
62["Sweep Extrusion<br>[2586, 2610, 0]"]
|
||||||
63[Wall]
|
63[Wall]
|
||||||
64[Wall]
|
64[Wall]
|
||||||
65[Wall]
|
65[Wall]
|
||||||
@ -95,20 +95,20 @@ flowchart LR
|
|||||||
74["SweepEdge Adjacent"]
|
74["SweepEdge Adjacent"]
|
||||||
75["SweepEdge Opposite"]
|
75["SweepEdge Opposite"]
|
||||||
76["SweepEdge Adjacent"]
|
76["SweepEdge Adjacent"]
|
||||||
77["EdgeCut Fillet<br>[2638, 2868, 0]"]
|
77["EdgeCut Fillet<br>[2616, 2846, 0]"]
|
||||||
78["EdgeCut Fillet<br>[2638, 2868, 0]"]
|
78["EdgeCut Fillet<br>[2616, 2846, 0]"]
|
||||||
79["EdgeCut Fillet<br>[2638, 2868, 0]"]
|
79["EdgeCut Fillet<br>[2616, 2846, 0]"]
|
||||||
80["EdgeCut Fillet<br>[2638, 2868, 0]"]
|
80["EdgeCut Fillet<br>[2616, 2846, 0]"]
|
||||||
84["Sweep Extrusion<br>[3316, 3343, 0]"]
|
84["Sweep Extrusion<br>[3294, 3321, 0]"]
|
||||||
85[Wall]
|
85[Wall]
|
||||||
86["Cap Start"]
|
86["Cap Start"]
|
||||||
87["SweepEdge Opposite"]
|
87["SweepEdge Opposite"]
|
||||||
88["SweepEdge Adjacent"]
|
88["SweepEdge Adjacent"]
|
||||||
89["Sweep Extrusion<br>[3316, 3343, 0]"]
|
89["Sweep Extrusion<br>[3294, 3321, 0]"]
|
||||||
90["Sweep Extrusion<br>[3316, 3343, 0]"]
|
90["Sweep Extrusion<br>[3294, 3321, 0]"]
|
||||||
91["Sweep Extrusion<br>[3316, 3343, 0]"]
|
91["Sweep Extrusion<br>[3294, 3321, 0]"]
|
||||||
92["Plane<br>[4368, 4400, 0]"]
|
92["Plane<br>[4346, 4378, 0]"]
|
||||||
99["Sweep Extrusion<br>[4681, 4725, 0]"]
|
99["Sweep Extrusion<br>[4659, 4703, 0]"]
|
||||||
100[Wall]
|
100[Wall]
|
||||||
101[Wall]
|
101[Wall]
|
||||||
102[Wall]
|
102[Wall]
|
||||||
@ -123,14 +123,14 @@ flowchart LR
|
|||||||
111["SweepEdge Adjacent"]
|
111["SweepEdge Adjacent"]
|
||||||
112["SweepEdge Opposite"]
|
112["SweepEdge Opposite"]
|
||||||
113["SweepEdge Adjacent"]
|
113["SweepEdge Adjacent"]
|
||||||
114["EdgeCut Fillet<br>[4731, 4964, 0]"]
|
114["EdgeCut Fillet<br>[4709, 4942, 0]"]
|
||||||
115["EdgeCut Fillet<br>[4731, 4964, 0]"]
|
115["EdgeCut Fillet<br>[4709, 4942, 0]"]
|
||||||
116["EdgeCut Fillet<br>[4731, 4964, 0]"]
|
116["EdgeCut Fillet<br>[4709, 4942, 0]"]
|
||||||
117["EdgeCut Fillet<br>[4731, 4964, 0]"]
|
117["EdgeCut Fillet<br>[4709, 4942, 0]"]
|
||||||
118["StartSketchOnPlane<br>[899, 919, 0]"]
|
118["StartSketchOnPlane<br>[899, 919, 0]"]
|
||||||
119["StartSketchOnPlane<br>[899, 919, 0]"]
|
119["StartSketchOnPlane<br>[899, 919, 0]"]
|
||||||
120["StartSketchOnFace<br>[2885, 2922, 0]"]
|
120["StartSketchOnFace<br>[2863, 2900, 0]"]
|
||||||
121["StartSketchOnPlane<br>[4354, 4401, 0]"]
|
121["StartSketchOnPlane<br>[4332, 4379, 0]"]
|
||||||
1 --- 2
|
1 --- 2
|
||||||
2 --- 3
|
2 --- 3
|
||||||
2 --- 4
|
2 --- 4
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -287,6 +287,22 @@ description: Operations executed gridfinity-bins.kcl
|
|||||||
"type": "UserDefinedFunctionReturn"
|
"type": "UserDefinedFunctionReturn"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"type": "UserDefinedFunctionCall",
|
||||||
|
"name": "revolve",
|
||||||
|
"functionSourceRange": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"angle": {
|
"angle": {
|
||||||
"value": {
|
"value": {
|
||||||
@ -308,10 +324,7 @@ description: Operations executed gridfinity-bins.kcl
|
|||||||
"value": {
|
"value": {
|
||||||
"type": "Object",
|
"type": "Object",
|
||||||
"value": {
|
"value": {
|
||||||
"custom": {
|
"direction": {
|
||||||
"type": "Object",
|
|
||||||
"value": {
|
|
||||||
"axis": {
|
|
||||||
"type": "Array",
|
"type": "Array",
|
||||||
"value": [
|
"value": [
|
||||||
{
|
{
|
||||||
@ -374,25 +387,122 @@ description: Operations executed gridfinity-bins.kcl
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "revolve",
|
"sourceRange": []
|
||||||
"sourceRange": [],
|
},
|
||||||
"type": "StdLibCall",
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "",
|
||||||
"unlabeledArg": {
|
"unlabeledArg": {
|
||||||
"value": {
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
"type": "Sketch",
|
"type": "Sketch",
|
||||||
"value": {
|
"value": {
|
||||||
"artifactId": "[uuid]"
|
"artifactId": "[uuid]"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"angle": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": -90.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 4.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 4.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"arcDegrees": {
|
"arcDegrees": {
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -9,7 +9,7 @@ flowchart LR
|
|||||||
7["Segment<br>[704, 726, 0]"]
|
7["Segment<br>[704, 726, 0]"]
|
||||||
end
|
end
|
||||||
1["Plane<br>[445, 463, 0]"]
|
1["Plane<br>[445, 463, 0]"]
|
||||||
8["Sweep Extrusion<br>[798, 826, 0]"]
|
8["Sweep Extrusion<br>[780, 808, 0]"]
|
||||||
1 --- 2
|
1 --- 2
|
||||||
2 --- 3
|
2 --- 3
|
||||||
2 --- 4
|
2 --- 4
|
||||||
|
@ -756,42 +756,30 @@ description: Result of parsing i-beam.kcl
|
|||||||
{
|
{
|
||||||
"arguments": [
|
"arguments": [
|
||||||
{
|
{
|
||||||
|
"type": "LabeledArg",
|
||||||
|
"label": {
|
||||||
"commentStart": 741,
|
"commentStart": 741,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"commentStart": 743,
|
|
||||||
"end": 0,
|
|
||||||
"key": {
|
|
||||||
"commentStart": 743,
|
|
||||||
"end": 0,
|
|
||||||
"name": "axis",
|
"name": "axis",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Identifier"
|
"type": "Identifier"
|
||||||
},
|
},
|
||||||
"start": 0,
|
"arg": {
|
||||||
"type": "ObjectProperty",
|
"abs_path": false,
|
||||||
"value": {
|
"commentStart": 748,
|
||||||
"commentStart": 750,
|
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "'X'",
|
"name": {
|
||||||
|
"commentStart": 748,
|
||||||
|
"end": 0,
|
||||||
|
"name": "X",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Literal",
|
"type": "Identifier"
|
||||||
"type": "Literal",
|
|
||||||
"value": "X"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"start": 0,
|
|
||||||
"type": "ObjectExpression",
|
|
||||||
"type": "ObjectExpression"
|
|
||||||
},
|
},
|
||||||
{
|
"path": [],
|
||||||
"commentStart": 757,
|
|
||||||
"end": 0,
|
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "PipeSubstitution",
|
"type": "Name",
|
||||||
"type": "PipeSubstitution"
|
"type": "Name"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"callee": {
|
"callee": {
|
||||||
@ -812,77 +800,67 @@ description: Result of parsing i-beam.kcl
|
|||||||
"commentStart": 732,
|
"commentStart": 732,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "CallExpression",
|
"type": "CallExpressionKw",
|
||||||
"type": "CallExpression"
|
"type": "CallExpressionKw",
|
||||||
},
|
"unlabeled": null
|
||||||
{
|
|
||||||
"arguments": [
|
|
||||||
{
|
|
||||||
"commentStart": 774,
|
|
||||||
"end": 0,
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"commentStart": 776,
|
|
||||||
"end": 0,
|
|
||||||
"key": {
|
|
||||||
"commentStart": 776,
|
|
||||||
"end": 0,
|
|
||||||
"name": "axis",
|
|
||||||
"start": 0,
|
|
||||||
"type": "Identifier"
|
|
||||||
},
|
|
||||||
"start": 0,
|
|
||||||
"type": "ObjectProperty",
|
|
||||||
"value": {
|
|
||||||
"commentStart": 783,
|
|
||||||
"end": 0,
|
|
||||||
"raw": "'Y'",
|
|
||||||
"start": 0,
|
|
||||||
"type": "Literal",
|
|
||||||
"type": "Literal",
|
|
||||||
"value": "Y"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"start": 0,
|
|
||||||
"type": "ObjectExpression",
|
|
||||||
"type": "ObjectExpression"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"commentStart": 790,
|
|
||||||
"end": 0,
|
|
||||||
"start": 0,
|
|
||||||
"type": "PipeSubstitution",
|
|
||||||
"type": "PipeSubstitution"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"callee": {
|
|
||||||
"abs_path": false,
|
|
||||||
"commentStart": 765,
|
|
||||||
"end": 0,
|
|
||||||
"name": {
|
|
||||||
"commentStart": 765,
|
|
||||||
"end": 0,
|
|
||||||
"name": "mirror2d",
|
|
||||||
"start": 0,
|
|
||||||
"type": "Identifier"
|
|
||||||
},
|
|
||||||
"path": [],
|
|
||||||
"start": 0,
|
|
||||||
"type": "Name"
|
|
||||||
},
|
|
||||||
"commentStart": 765,
|
|
||||||
"end": 0,
|
|
||||||
"start": 0,
|
|
||||||
"type": "CallExpression",
|
|
||||||
"type": "CallExpression"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"arguments": [
|
"arguments": [
|
||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 806,
|
"commentStart": 765,
|
||||||
|
"end": 0,
|
||||||
|
"name": "axis",
|
||||||
|
"start": 0,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"arg": {
|
||||||
|
"abs_path": false,
|
||||||
|
"commentStart": 772,
|
||||||
|
"end": 0,
|
||||||
|
"name": {
|
||||||
|
"commentStart": 772,
|
||||||
|
"end": 0,
|
||||||
|
"name": "Y",
|
||||||
|
"start": 0,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"path": [],
|
||||||
|
"start": 0,
|
||||||
|
"type": "Name",
|
||||||
|
"type": "Name"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"abs_path": false,
|
||||||
|
"commentStart": 756,
|
||||||
|
"end": 0,
|
||||||
|
"name": {
|
||||||
|
"commentStart": 756,
|
||||||
|
"end": 0,
|
||||||
|
"name": "mirror2d",
|
||||||
|
"start": 0,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"path": [],
|
||||||
|
"start": 0,
|
||||||
|
"type": "Name"
|
||||||
|
},
|
||||||
|
"commentStart": 756,
|
||||||
|
"end": 0,
|
||||||
|
"start": 0,
|
||||||
|
"type": "CallExpressionKw",
|
||||||
|
"type": "CallExpressionKw",
|
||||||
|
"unlabeled": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"type": "LabeledArg",
|
||||||
|
"label": {
|
||||||
|
"commentStart": 788,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "length",
|
"name": "length",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -890,10 +868,10 @@ description: Result of parsing i-beam.kcl
|
|||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 815,
|
"commentStart": 797,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 815,
|
"commentStart": 797,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "beamLength",
|
"name": "beamLength",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -908,10 +886,10 @@ description: Result of parsing i-beam.kcl
|
|||||||
],
|
],
|
||||||
"callee": {
|
"callee": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 798,
|
"commentStart": 780,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 798,
|
"commentStart": 780,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "extrude",
|
"name": "extrude",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -921,7 +899,7 @@ description: Result of parsing i-beam.kcl
|
|||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Name"
|
"type": "Name"
|
||||||
},
|
},
|
||||||
"commentStart": 798,
|
"commentStart": 780,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "CallExpressionKw",
|
"type": "CallExpressionKw",
|
||||||
|
@ -18,6 +18,230 @@ description: Operations executed i-beam.kcl
|
|||||||
"type": "StdLibCall",
|
"type": "StdLibCall",
|
||||||
"unlabeledArg": null
|
"unlabeledArg": null
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionCall",
|
||||||
|
"name": "mirror2d",
|
||||||
|
"functionSourceRange": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"unlabeledArg": null,
|
||||||
|
"labeledArgs": {
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionCall",
|
||||||
|
"name": "mirror2d",
|
||||||
|
"functionSourceRange": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"unlabeledArg": null,
|
||||||
|
"labeledArgs": {
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"length": {
|
"length": {
|
||||||
|
@ -11,7 +11,7 @@ flowchart LR
|
|||||||
7[Solid2d]
|
7[Solid2d]
|
||||||
end
|
end
|
||||||
1["Plane<br>[350, 367, 0]"]
|
1["Plane<br>[350, 367, 0]"]
|
||||||
8["Sweep Revolve<br>[776, 827, 0]"]
|
8["Sweep Revolve<br>[776, 825, 0]"]
|
||||||
9[Wall]
|
9[Wall]
|
||||||
10["Cap Start"]
|
10["Cap Start"]
|
||||||
11["Cap End"]
|
11["Cap End"]
|
||||||
|
@ -664,19 +664,26 @@ description: Result of parsing pipe-with-bend.kcl
|
|||||||
"type": "Identifier"
|
"type": "Identifier"
|
||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
|
"abs_path": false,
|
||||||
"commentStart": 804,
|
"commentStart": 804,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "'Y'",
|
"name": {
|
||||||
|
"commentStart": 804,
|
||||||
|
"end": 0,
|
||||||
|
"name": "Y",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Literal",
|
"type": "Identifier"
|
||||||
"type": "Literal",
|
},
|
||||||
"value": "Y"
|
"path": [],
|
||||||
|
"start": 0,
|
||||||
|
"type": "Name",
|
||||||
|
"type": "Name"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "LabeledArg",
|
"type": "LabeledArg",
|
||||||
"label": {
|
"label": {
|
||||||
"commentStart": 809,
|
"commentStart": 807,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "angle",
|
"name": "angle",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
@ -684,10 +691,10 @@ description: Result of parsing pipe-with-bend.kcl
|
|||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
"abs_path": false,
|
"abs_path": false,
|
||||||
"commentStart": 817,
|
"commentStart": 815,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": {
|
"name": {
|
||||||
"commentStart": 817,
|
"commentStart": 815,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"name": "bendAngle",
|
"name": "bendAngle",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
|
@ -177,6 +177,22 @@ description: Operations executed pipe-with-bend.kcl
|
|||||||
"unlabeledArg": null
|
"unlabeledArg": null
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"type": "UserDefinedFunctionCall",
|
||||||
|
"name": "revolve",
|
||||||
|
"functionSourceRange": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"angle": {
|
"angle": {
|
||||||
"value": {
|
"value": {
|
||||||
@ -196,23 +212,211 @@ description: Operations executed pipe-with-bend.kcl
|
|||||||
},
|
},
|
||||||
"axis": {
|
"axis": {
|
||||||
"value": {
|
"value": {
|
||||||
"type": "String",
|
"type": "Object",
|
||||||
"value": "Y"
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "revolve",
|
"sourceRange": []
|
||||||
"sourceRange": [],
|
},
|
||||||
"type": "StdLibCall",
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "",
|
||||||
"unlabeledArg": {
|
"unlabeledArg": {
|
||||||
"value": {
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
"type": "Sketch",
|
"type": "Sketch",
|
||||||
"value": {
|
"value": {
|
||||||
"artifactId": "[uuid]"
|
"artifactId": "[uuid]"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"angle": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 90.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -13,7 +13,7 @@ flowchart LR
|
|||||||
11[Solid2d]
|
11[Solid2d]
|
||||||
end
|
end
|
||||||
1["Plane<br>[605, 622, 0]"]
|
1["Plane<br>[605, 622, 0]"]
|
||||||
12["Sweep Revolve<br>[1148, 1179, 0]"]
|
12["Sweep Revolve<br>[1148, 1177, 0]"]
|
||||||
13[Wall]
|
13[Wall]
|
||||||
14[Wall]
|
14[Wall]
|
||||||
15[Wall]
|
15[Wall]
|
||||||
|
@ -1211,13 +1211,20 @@ description: Result of parsing pipe.kcl
|
|||||||
"type": "Identifier"
|
"type": "Identifier"
|
||||||
},
|
},
|
||||||
"arg": {
|
"arg": {
|
||||||
|
"abs_path": false,
|
||||||
"commentStart": 1175,
|
"commentStart": 1175,
|
||||||
"end": 0,
|
"end": 0,
|
||||||
"raw": "'y'",
|
"name": {
|
||||||
|
"commentStart": 1175,
|
||||||
|
"end": 0,
|
||||||
|
"name": "Y",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
"type": "Literal",
|
"type": "Identifier"
|
||||||
"type": "Literal",
|
},
|
||||||
"value": "y"
|
"path": [],
|
||||||
|
"start": 0,
|
||||||
|
"type": "Name",
|
||||||
|
"type": "Name"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -19,18 +19,13 @@ description: Operations executed pipe.kcl
|
|||||||
"unlabeledArg": null
|
"unlabeledArg": null
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"labeledArgs": {
|
"type": "UserDefinedFunctionCall",
|
||||||
"axis": {
|
|
||||||
"value": {
|
|
||||||
"type": "String",
|
|
||||||
"value": "y"
|
|
||||||
},
|
|
||||||
"sourceRange": []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"name": "revolve",
|
"name": "revolve",
|
||||||
"sourceRange": [],
|
"functionSourceRange": [
|
||||||
"type": "StdLibCall",
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
"unlabeledArg": {
|
"unlabeledArg": {
|
||||||
"value": {
|
"value": {
|
||||||
"type": "Sketch",
|
"type": "Sketch",
|
||||||
@ -39,6 +34,199 @@ description: Operations executed pipe.kcl
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UserDefinedFunctionReturn"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
|
@ -18,81 +18,81 @@ flowchart LR
|
|||||||
16[Solid2d]
|
16[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path60 [Path]
|
subgraph path60 [Path]
|
||||||
60["Path<br>[1082, 1120, 0]"]
|
60["Path<br>[1062, 1100, 0]"]
|
||||||
61["Segment<br>[1126, 1159, 0]"]
|
61["Segment<br>[1106, 1139, 0]"]
|
||||||
62["Segment<br>[1165, 1222, 0]"]
|
62["Segment<br>[1145, 1202, 0]"]
|
||||||
63["Segment<br>[1228, 1255, 0]"]
|
63["Segment<br>[1208, 1235, 0]"]
|
||||||
64["Segment<br>[1261, 1291, 0]"]
|
64["Segment<br>[1241, 1271, 0]"]
|
||||||
65["Segment<br>[1297, 1332, 0]"]
|
65["Segment<br>[1277, 1312, 0]"]
|
||||||
66["Segment<br>[1338, 1430, 0]"]
|
66["Segment<br>[1318, 1410, 0]"]
|
||||||
67["Segment<br>[1436, 1466, 0]"]
|
67["Segment<br>[1416, 1446, 0]"]
|
||||||
68["Segment<br>[1472, 1530, 0]"]
|
68["Segment<br>[1452, 1510, 0]"]
|
||||||
69["Segment<br>[1536, 1563, 0]"]
|
69["Segment<br>[1516, 1543, 0]"]
|
||||||
70["Segment<br>[1569, 1591, 0]"]
|
70["Segment<br>[1549, 1571, 0]"]
|
||||||
71["Segment<br>[1597, 1632, 0]"]
|
71["Segment<br>[1577, 1612, 0]"]
|
||||||
72["Segment<br>[1638, 1684, 0]"]
|
72["Segment<br>[1618, 1664, 0]"]
|
||||||
73["Segment<br>[1690, 1697, 0]"]
|
73["Segment<br>[1670, 1677, 0]"]
|
||||||
74[Solid2d]
|
74[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path118 [Path]
|
subgraph path118 [Path]
|
||||||
118["Path<br>[2029, 2054, 0]"]
|
118["Path<br>[2009, 2034, 0]"]
|
||||||
119["Segment<br>[2060, 2110, 0]"]
|
119["Segment<br>[2040, 2090, 0]"]
|
||||||
120["Segment<br>[2116, 2156, 0]"]
|
120["Segment<br>[2096, 2136, 0]"]
|
||||||
121["Segment<br>[2162, 2169, 0]"]
|
121["Segment<br>[2142, 2149, 0]"]
|
||||||
122[Solid2d]
|
122[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path135 [Path]
|
subgraph path135 [Path]
|
||||||
135["Path<br>[2257, 2282, 0]"]
|
135["Path<br>[2237, 2262, 0]"]
|
||||||
136["Segment<br>[2288, 2315, 0]"]
|
136["Segment<br>[2268, 2295, 0]"]
|
||||||
137["Segment<br>[2321, 2355, 0]"]
|
137["Segment<br>[2301, 2335, 0]"]
|
||||||
138["Segment<br>[2361, 2396, 0]"]
|
138["Segment<br>[2341, 2376, 0]"]
|
||||||
139["Segment<br>[2402, 2502, 0]"]
|
139["Segment<br>[2382, 2482, 0]"]
|
||||||
140["Segment<br>[2508, 2537, 0]"]
|
140["Segment<br>[2488, 2517, 0]"]
|
||||||
141["Segment<br>[2543, 2596, 0]"]
|
141["Segment<br>[2523, 2576, 0]"]
|
||||||
142["Segment<br>[2602, 2629, 0]"]
|
142["Segment<br>[2582, 2609, 0]"]
|
||||||
143["Segment<br>[2635, 2664, 0]"]
|
143["Segment<br>[2615, 2644, 0]"]
|
||||||
144["Segment<br>[2670, 2794, 0]"]
|
144["Segment<br>[2650, 2774, 0]"]
|
||||||
145["Segment<br>[2800, 2845, 0]"]
|
145["Segment<br>[2780, 2825, 0]"]
|
||||||
146["Segment<br>[2851, 2873, 0]"]
|
146["Segment<br>[2831, 2853, 0]"]
|
||||||
147["Segment<br>[2879, 2898, 0]"]
|
147["Segment<br>[2859, 2878, 0]"]
|
||||||
148[Solid2d]
|
148[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path189 [Path]
|
subgraph path189 [Path]
|
||||||
189["Path<br>[3226, 3251, 0]"]
|
189["Path<br>[3206, 3231, 0]"]
|
||||||
190["Segment<br>[3257, 3284, 0]"]
|
190["Segment<br>[3237, 3264, 0]"]
|
||||||
191["Segment<br>[3290, 3321, 0]"]
|
191["Segment<br>[3270, 3301, 0]"]
|
||||||
192["Segment<br>[3327, 3451, 0]"]
|
192["Segment<br>[3307, 3431, 0]"]
|
||||||
193["Segment<br>[3457, 3502, 0]"]
|
193["Segment<br>[3437, 3482, 0]"]
|
||||||
194["Segment<br>[3508, 3544, 0]"]
|
194["Segment<br>[3488, 3524, 0]"]
|
||||||
195["Segment<br>[3550, 3557, 0]"]
|
195["Segment<br>[3530, 3537, 0]"]
|
||||||
196[Solid2d]
|
196[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path218 [Path]
|
subgraph path218 [Path]
|
||||||
218["Path<br>[3645, 3695, 0]"]
|
218["Path<br>[3625, 3675, 0]"]
|
||||||
219["Segment<br>[3701, 3733, 0]"]
|
219["Segment<br>[3681, 3713, 0]"]
|
||||||
220["Segment<br>[3739, 3766, 0]"]
|
220["Segment<br>[3719, 3746, 0]"]
|
||||||
221["Segment<br>[3772, 3794, 0]"]
|
221["Segment<br>[3752, 3774, 0]"]
|
||||||
222["Segment<br>[3800, 3807, 0]"]
|
222["Segment<br>[3780, 3787, 0]"]
|
||||||
223[Solid2d]
|
223[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path239 [Path]
|
subgraph path239 [Path]
|
||||||
239["Path<br>[3895, 3920, 0]"]
|
239["Path<br>[3875, 3900, 0]"]
|
||||||
240["Segment<br>[3926, 3960, 0]"]
|
240["Segment<br>[3906, 3940, 0]"]
|
||||||
241["Segment<br>[3966, 3993, 0]"]
|
241["Segment<br>[3946, 3973, 0]"]
|
||||||
242["Segment<br>[3999, 4021, 0]"]
|
242["Segment<br>[3979, 4001, 0]"]
|
||||||
243["Segment<br>[4027, 4034, 0]"]
|
243["Segment<br>[4007, 4014, 0]"]
|
||||||
244[Solid2d]
|
244[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path261 [Path]
|
subgraph path261 [Path]
|
||||||
261["Path<br>[4394, 4443, 0]"]
|
261["Path<br>[4374, 4423, 0]"]
|
||||||
262["Segment<br>[4449, 4481, 0]"]
|
262["Segment<br>[4429, 4461, 0]"]
|
||||||
263["Segment<br>[4487, 4535, 0]"]
|
263["Segment<br>[4467, 4515, 0]"]
|
||||||
264["Segment<br>[4541, 4575, 0]"]
|
264["Segment<br>[4521, 4555, 0]"]
|
||||||
265["Segment<br>[4581, 4588, 0]"]
|
265["Segment<br>[4561, 4568, 0]"]
|
||||||
266[Solid2d]
|
266[Solid2d]
|
||||||
end
|
end
|
||||||
1["Plane<br>[258, 276, 0]"]
|
1["Plane<br>[258, 276, 0]"]
|
||||||
17["Sweep Revolve<br>[908, 1044, 0]"]
|
17["Sweep Revolve<br>[908, 1024, 0]"]
|
||||||
18[Wall]
|
18[Wall]
|
||||||
19[Wall]
|
19[Wall]
|
||||||
20[Wall]
|
20[Wall]
|
||||||
@ -134,8 +134,8 @@ flowchart LR
|
|||||||
56["SweepEdge Adjacent"]
|
56["SweepEdge Adjacent"]
|
||||||
57["SweepEdge Opposite"]
|
57["SweepEdge Opposite"]
|
||||||
58["SweepEdge Adjacent"]
|
58["SweepEdge Adjacent"]
|
||||||
59["Plane<br>[1058, 1076, 0]"]
|
59["Plane<br>[1038, 1056, 0]"]
|
||||||
75["Sweep Extrusion<br>[1703, 1740, 0]"]
|
75["Sweep Extrusion<br>[1683, 1720, 0]"]
|
||||||
76[Wall]
|
76[Wall]
|
||||||
77[Wall]
|
77[Wall]
|
||||||
78[Wall]
|
78[Wall]
|
||||||
@ -177,8 +177,8 @@ flowchart LR
|
|||||||
114["SweepEdge Adjacent"]
|
114["SweepEdge Adjacent"]
|
||||||
115["SweepEdge Opposite"]
|
115["SweepEdge Opposite"]
|
||||||
116["SweepEdge Adjacent"]
|
116["SweepEdge Adjacent"]
|
||||||
117["Plane<br>[1997, 2023, 0]"]
|
117["Plane<br>[1977, 2003, 0]"]
|
||||||
123["Sweep Extrusion<br>[2175, 2206, 0]"]
|
123["Sweep Extrusion<br>[2155, 2186, 0]"]
|
||||||
124[Wall]
|
124[Wall]
|
||||||
125[Wall]
|
125[Wall]
|
||||||
126[Wall]
|
126[Wall]
|
||||||
@ -190,7 +190,7 @@ flowchart LR
|
|||||||
132["SweepEdge Adjacent"]
|
132["SweepEdge Adjacent"]
|
||||||
133["SweepEdge Opposite"]
|
133["SweepEdge Opposite"]
|
||||||
134["SweepEdge Adjacent"]
|
134["SweepEdge Adjacent"]
|
||||||
149["Sweep Extrusion<br>[2904, 2935, 0]"]
|
149["Sweep Extrusion<br>[2884, 2915, 0]"]
|
||||||
150[Wall]
|
150[Wall]
|
||||||
151[Wall]
|
151[Wall]
|
||||||
152[Wall]
|
152[Wall]
|
||||||
@ -229,8 +229,8 @@ flowchart LR
|
|||||||
185["SweepEdge Adjacent"]
|
185["SweepEdge Adjacent"]
|
||||||
186["SweepEdge Opposite"]
|
186["SweepEdge Opposite"]
|
||||||
187["SweepEdge Adjacent"]
|
187["SweepEdge Adjacent"]
|
||||||
188["Plane<br>[3193, 3220, 0]"]
|
188["Plane<br>[3173, 3200, 0]"]
|
||||||
197["Sweep Extrusion<br>[3563, 3594, 0]"]
|
197["Sweep Extrusion<br>[3543, 3574, 0]"]
|
||||||
198[Wall]
|
198[Wall]
|
||||||
199[Wall]
|
199[Wall]
|
||||||
200[Wall]
|
200[Wall]
|
||||||
@ -251,7 +251,7 @@ flowchart LR
|
|||||||
215["SweepEdge Adjacent"]
|
215["SweepEdge Adjacent"]
|
||||||
216["SweepEdge Opposite"]
|
216["SweepEdge Opposite"]
|
||||||
217["SweepEdge Adjacent"]
|
217["SweepEdge Adjacent"]
|
||||||
224["Sweep Extrusion<br>[3813, 3844, 0]"]
|
224["Sweep Extrusion<br>[3793, 3824, 0]"]
|
||||||
225[Wall]
|
225[Wall]
|
||||||
226[Wall]
|
226[Wall]
|
||||||
227[Wall]
|
227[Wall]
|
||||||
@ -266,7 +266,7 @@ flowchart LR
|
|||||||
236["SweepEdge Adjacent"]
|
236["SweepEdge Adjacent"]
|
||||||
237["SweepEdge Opposite"]
|
237["SweepEdge Opposite"]
|
||||||
238["SweepEdge Adjacent"]
|
238["SweepEdge Adjacent"]
|
||||||
245["Sweep Extrusion<br>[4040, 4090, 0]"]
|
245["Sweep Extrusion<br>[4020, 4070, 0]"]
|
||||||
246[Wall]
|
246[Wall]
|
||||||
247[Wall]
|
247[Wall]
|
||||||
248[Wall]
|
248[Wall]
|
||||||
@ -281,8 +281,8 @@ flowchart LR
|
|||||||
257["SweepEdge Adjacent"]
|
257["SweepEdge Adjacent"]
|
||||||
258["SweepEdge Opposite"]
|
258["SweepEdge Opposite"]
|
||||||
259["SweepEdge Adjacent"]
|
259["SweepEdge Adjacent"]
|
||||||
260["Plane<br>[4361, 4388, 0]"]
|
260["Plane<br>[4341, 4368, 0]"]
|
||||||
267["Sweep Extrusion<br>[4594, 4626, 0]"]
|
267["Sweep Extrusion<br>[4574, 4606, 0]"]
|
||||||
268[Wall]
|
268[Wall]
|
||||||
269[Wall]
|
269[Wall]
|
||||||
270[Wall]
|
270[Wall]
|
||||||
@ -297,9 +297,9 @@ flowchart LR
|
|||||||
279["SweepEdge Adjacent"]
|
279["SweepEdge Adjacent"]
|
||||||
280["SweepEdge Opposite"]
|
280["SweepEdge Opposite"]
|
||||||
281["SweepEdge Adjacent"]
|
281["SweepEdge Adjacent"]
|
||||||
282["StartSketchOnFace<br>[2220, 2251, 0]"]
|
282["StartSketchOnFace<br>[2200, 2231, 0]"]
|
||||||
283["StartSketchOnFace<br>[3608, 3639, 0]"]
|
283["StartSketchOnFace<br>[3588, 3619, 0]"]
|
||||||
284["StartSketchOnFace<br>[3858, 3889, 0]"]
|
284["StartSketchOnFace<br>[3838, 3869, 0]"]
|
||||||
1 --- 2
|
1 --- 2
|
||||||
2 --- 3
|
2 --- 3
|
||||||
2 --- 4
|
2 --- 4
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user