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.
|
||||
sketch001 = startSketchOn(XY)
|
||||
|> circle(center = [15, 0], radius = 5)
|
||||
|> revolve(angle = 360, axis = 'y')
|
||||
|> revolve(angle = 360, axis = Y)
|
||||
|> appearance(color = '#ff0000', metalness = 90, roughness = 90)
|
||||
```
|
||||
|
||||
|
@ -9,9 +9,12 @@ layout: manual
|
||||
|
||||
### `std`
|
||||
|
||||
- [`X`](/docs/kcl/consts/std-X)
|
||||
- [`XY`](/docs/kcl/consts/std-XY)
|
||||
- [`XZ`](/docs/kcl/consts/std-XZ)
|
||||
- [`Y`](/docs/kcl/consts/std-Y)
|
||||
- [`YZ`](/docs/kcl/consts/std-YZ)
|
||||
- [`Z`](/docs/kcl/consts/std-Z)
|
||||
|
||||
### `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)
|
||||
* [`tag`](kcl/types/tag)
|
||||
* **std**
|
||||
* [`Axis2d`](kcl/types/Axis2d)
|
||||
* [`Axis3d`](kcl/types/Axis3d)
|
||||
* [`Edge`](kcl/types/Edge)
|
||||
* [`Face`](kcl/types/Face)
|
||||
* [`Helix`](kcl/types/Helix)
|
||||
@ -30,9 +32,12 @@ layout: manual
|
||||
* [`Point3d`](kcl/types/Point3d)
|
||||
* [`Sketch`](kcl/types/Sketch)
|
||||
* [`Solid`](kcl/types/Solid)
|
||||
* [`X`](kcl/consts/std-X)
|
||||
* [`XY`](kcl/consts/std-XY)
|
||||
* [`XZ`](kcl/consts/std-XZ)
|
||||
* [`Y`](kcl/consts/std-Y)
|
||||
* [`YZ`](kcl/consts/std-YZ)
|
||||
* [`Z`](kcl/consts/std-Z)
|
||||
* [`abs`](kcl/abs)
|
||||
* [`acos`](kcl/acos)
|
||||
* [`angleToMatchLengthX`](kcl/angleToMatchLengthX)
|
||||
@ -69,7 +74,7 @@ layout: manual
|
||||
* [`getNextAdjacentEdge`](kcl/getNextAdjacentEdge)
|
||||
* [`getOppositeEdge`](kcl/getOppositeEdge)
|
||||
* [`getPreviousAdjacentEdge`](kcl/getPreviousAdjacentEdge)
|
||||
* [`helix`](kcl/helix)
|
||||
* [`helix`](kcl/std-helix)
|
||||
* [`hole`](kcl/hole)
|
||||
* [`hollow`](kcl/hollow)
|
||||
* [`inch`](kcl/inch)
|
||||
@ -88,7 +93,6 @@ layout: manual
|
||||
* [`map`](kcl/map)
|
||||
* [`max`](kcl/max)
|
||||
* [`min`](kcl/min)
|
||||
* [`mirror2d`](kcl/mirror2d)
|
||||
* [`mm`](kcl/mm)
|
||||
* [`offsetPlane`](kcl/offsetPlane)
|
||||
* [`patternCircular2d`](kcl/patternCircular2d)
|
||||
@ -107,7 +111,7 @@ layout: manual
|
||||
* [`push`](kcl/push)
|
||||
* [`reduce`](kcl/reduce)
|
||||
* [`rem`](kcl/rem)
|
||||
* [`revolve`](kcl/revolve)
|
||||
* [`revolve`](kcl/std-revolve)
|
||||
* [`rotate`](kcl/rotate)
|
||||
* [`round`](kcl/round)
|
||||
* [`scale`](kcl/scale)
|
||||
@ -143,6 +147,7 @@ layout: manual
|
||||
* [`tan`](kcl/std-math-tan)
|
||||
* **std::sketch**
|
||||
* [`circle`](kcl/std-sketch-circle)
|
||||
* [`mirror2d`](kcl/std-sketch-mirror2d)
|
||||
* **std::turns**
|
||||
* [`turns::HALF_TURN`](kcl/consts/std-turns-HALF_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])
|
||||
|> close()
|
||||
|
||||
example = revolve(exampleSketch, axis = 'y', angle = 180)
|
||||
example = revolve(exampleSketch, axis = Y, angle = 180)
|
||||
|
||||
exampleSketch002 = startSketchOn(example, 'end')
|
||||
|> startProfileAt([4.5, -5], %)
|
||||
@ -177,7 +177,7 @@ exampleSketch = startSketchOn(XY)
|
||||
|
||||
example = revolve(
|
||||
exampleSketch,
|
||||
axis = 'y',
|
||||
axis = Y,
|
||||
angle = 180,
|
||||
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,
|
||||
length = 10,
|
||||
radius = 5,
|
||||
axis = 'Z',
|
||||
axis = Z,
|
||||
)
|
||||
|
||||
// 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], %)
|
||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||
|> close()
|
||||
revolve001 = revolve(sketch001, axis = "X")
|
||||
revolve001 = revolve(sketch001, axis = X)
|
||||
triangle()
|
||||
|> extrude(length = 30)
|
||||
plane001 = offsetPlane(XY, offset = 10)
|
||||
@ -126,7 +126,7 @@ test.describe('Feature Tree pane', () => {
|
||||
await testViewSource({
|
||||
operationName: 'Revolve',
|
||||
operationIndex: 0,
|
||||
expectedActiveLine: 'revolve001 = revolve(sketch001, axis = "X")',
|
||||
expectedActiveLine: 'revolve001 = revolve(sketch001, axis = X)',
|
||||
})
|
||||
await testViewSource({
|
||||
operationName: 'Triangle',
|
||||
|
@ -3469,7 +3469,7 @@ segAng(rectangleSegmentA002),
|
||||
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()
|
||||
})
|
||||
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])
|
||||
|> tangentialArcTo([24.95, -5.38], %)
|
||||
|> close()
|
||||
|> revolve(axis = "X")`
|
||||
|> revolve(axis = X)`
|
||||
)
|
||||
})
|
||||
|
||||
@ -761,7 +761,7 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
|
||||
|> tangentialArcTo([24.95, -5.38], %)
|
||||
|> line(end = [1.97, 2.06])
|
||||
|> close()
|
||||
|> revolve(axis = "X")`)
|
||||
|> revolve(axis = X)`)
|
||||
})
|
||||
test('Can add multiple sketches', async ({ page, homePage }) => {
|
||||
const u = await getUtils(page)
|
||||
@ -1209,7 +1209,7 @@ profile001 = startProfileAt([${roundOff(scale * 69.6)}, ${roundOff(
|
||||
|> xLine(endAbsolute = 0 + .001)
|
||||
|> yLine(endAbsolute = 0)
|
||||
|> close()
|
||||
|> revolve(axis = "Y")
|
||||
|> revolve(axis = Y)
|
||||
|
||||
return lugSketch
|
||||
}
|
||||
|
@ -319,7 +319,7 @@ part009 = startSketchOn(XY)
|
||||
|> line(end = [0, pipeLength])
|
||||
|> angledLineToX({ angle = 60, to = pipeLargeDia }, %)
|
||||
|> close()
|
||||
rev = revolve(part009, axis = 'y')
|
||||
rev = revolve(part009, axis = Y)
|
||||
sketch006 = startSketchOn(XY)
|
||||
profile001 = circle(
|
||||
sketch006,
|
||||
@ -376,7 +376,7 @@ profile003 = startProfileAt([40.16, -120.48], sketch006)
|
||||
await page.waitForTimeout(200)
|
||||
|
||||
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
|
||||
|
@ -35,7 +35,7 @@ ballsSketch = startSketchOn(XY)
|
||||
|> close()
|
||||
|
||||
// Revolve the ball to make a sphere and pattern around the inside wall
|
||||
balls = revolve(ballsSketch, axis = "X")
|
||||
balls = revolve(ballsSketch, axis = X)
|
||||
|> patternCircular3d(
|
||||
arcDegrees = 360,
|
||||
axis = [0, 0, 1],
|
||||
@ -60,7 +60,7 @@ chainSketch = startSketchOn(XY)
|
||||
|> close()
|
||||
|
||||
// Revolve the chain sketch
|
||||
chainHead = revolve(chainSketch, axis = "X")
|
||||
chainHead = revolve(chainSketch, axis = X)
|
||||
|> patternCircular3d(
|
||||
arcDegrees = 360,
|
||||
axis = [0, 0, 1],
|
||||
@ -80,7 +80,7 @@ linkSketch = startSketchOn(XZ)
|
||||
)
|
||||
|
||||
// Revolve the link sketch
|
||||
linkRevolve = revolve(linkSketch, axis = 'Y', angle = 360 / nBalls)
|
||||
linkRevolve = revolve(linkSketch, axis = Y, angle = 360 / nBalls)
|
||||
|> patternCircular3d(
|
||||
arcDegrees = 360,
|
||||
axis = [0, 0, 1],
|
||||
|
@ -80,5 +80,5 @@ brakeCaliperSketch = startSketchOn(XY)
|
||||
|> close()
|
||||
|
||||
// Revolve the brake caliper sketch
|
||||
revolve(brakeCaliperSketch, axis = "Y", angle = -70)
|
||||
revolve(brakeCaliperSketch, axis = Y, angle = -70)
|
||||
|> appearance(color = "#c82d2d", metalness = 90, roughness = 90)
|
||||
|
@ -41,5 +41,5 @@ tireSketch = startSketchOn(XY)
|
||||
|> close()
|
||||
|
||||
// Revolve the sketch to create the tire
|
||||
revolve(tireSketch, axis = "Y")
|
||||
revolve(tireSketch, axis = Y)
|
||||
|> appearance(color = "#0f0f0f", roughness = 80)
|
||||
|
@ -54,7 +54,7 @@ wheelCenterInner = startSketchOn(XY)
|
||||
|> yLine(endAbsolute = 0)
|
||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||
|> close()
|
||||
|> revolve(axis = 'y')
|
||||
|> revolve(axis = Y)
|
||||
|> appearance(color = "#ffffff", metalness = 0, roughness = 0)
|
||||
|
||||
wheelCenterOuter = startSketchOn(XY)
|
||||
@ -68,7 +68,7 @@ wheelCenterOuter = startSketchOn(XY)
|
||||
|> yLine(endAbsolute = -wheelWidth / 20)
|
||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||
|> close()
|
||||
|> revolve(axis = 'y')
|
||||
|> revolve(axis = Y)
|
||||
|> appearance(color = "#ffffff", metalness = 0, roughness = 0)
|
||||
|
||||
// Write a function that defines the spoke geometry, patterns and extrudes it
|
||||
@ -173,5 +173,5 @@ startSketchOn(XY)
|
||||
|> xLine(length = wheelWidth * 0.03)
|
||||
|> yLine(length = wheelWidth * 0.05)
|
||||
|> close()
|
||||
|> revolve(axis = 'y')
|
||||
|> revolve(axis = Y)
|
||||
|> appearance(color = "#ffffff", metalness = 0, roughness = 0)
|
||||
|
@ -32,7 +32,7 @@ fn lug(plane, length, diameter) {
|
||||
|> xLine(endAbsolute = lugThreadDiameter)
|
||||
|> yLine(endAbsolute = 0)
|
||||
|> close()
|
||||
|> revolve(axis = "Y")
|
||||
|> revolve(axis = Y)
|
||||
|> appearance(color = "#dbcd70", roughness = 90, metalness = 90)
|
||||
return lugSketch
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ sketch001 = startSketchOn(XZ)
|
||||
], %, $rectangleSegmentC001)
|
||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||
|> close()
|
||||
|> revolve(angle = 360, axis = 'Y')
|
||||
|> revolve(angle = 360, axis = Y)
|
||||
|
||||
// Create an angled plane to sketch the supports
|
||||
plane001 = {
|
||||
@ -132,7 +132,7 @@ sketch005 = startSketchOn(XZ)
|
||||
|> xLine(endAbsolute = 0.15)
|
||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||
|> close()
|
||||
|> revolve(axis = 'y')
|
||||
|> revolve(axis = Y)
|
||||
|
||||
// Plunger and stem
|
||||
sketch006 = startSketchOn(XZ)
|
||||
@ -145,7 +145,7 @@ sketch006 = startSketchOn(XZ)
|
||||
|> tangentialArc({ radius = 0.6, offset = -90 }, %)
|
||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||
|> close()
|
||||
|> revolve(axis = 'y')
|
||||
|> revolve(axis = Y)
|
||||
|
||||
// Spiral plate
|
||||
sketch007 = startSketchOn(offsetPlane(XY, offset = 1.12))
|
||||
@ -201,7 +201,7 @@ sketch011 = startSketchOn(XZ)
|
||||
}, %)
|
||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||
|> close()
|
||||
|> revolve(axis = 'y')
|
||||
|> revolve(axis = Y)
|
||||
|
||||
// Draw and extrude handle
|
||||
sketch012 = startSketchOn(offsetPlane(XZ, offset = handleThickness / 2))
|
||||
|
@ -48,10 +48,8 @@ sides = patternCircular3d(
|
||||
|
||||
// define an axis axis000
|
||||
axis000 = {
|
||||
custom = {
|
||||
axis = [0.0, 1.0],
|
||||
direction = [0.0, 1.0],
|
||||
origin = [cornerRadius, cornerRadius]
|
||||
}
|
||||
}
|
||||
|
||||
// create a single corner of the bin
|
||||
|
@ -45,10 +45,8 @@ sides = patternCircular3d(
|
||||
|
||||
// define an axis axis000
|
||||
axis000 = {
|
||||
custom = {
|
||||
axis = [0.0, 1.0],
|
||||
direction = [0.0, 1.0],
|
||||
origin = [cornerRadius, cornerRadius]
|
||||
}
|
||||
}
|
||||
|
||||
// create a single corner of the bin
|
||||
|
@ -65,13 +65,11 @@ sides = patternCircular3d(
|
||||
|
||||
// define an axis axis000
|
||||
axis000 = {
|
||||
custom = {
|
||||
axis = [0.0, 1.0],
|
||||
direction = [0.0, 1.0],
|
||||
origin = [
|
||||
cornerRadius + binTol,
|
||||
cornerRadius + binTol
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
// create a single corner of the bin
|
||||
@ -272,10 +270,8 @@ lipWidths = patternCircular3d(
|
||||
|
||||
// define an axis axis000
|
||||
axis001 = {
|
||||
custom = {
|
||||
axis = [0.0, 1.0],
|
||||
direction = [0.0, 1.0],
|
||||
origin = [cornerRadius, cornerRadius]
|
||||
}
|
||||
}
|
||||
|
||||
// create a single corner of the bin
|
||||
|
@ -58,13 +58,11 @@ sides = patternCircular3d(
|
||||
|
||||
// define an axis axis000
|
||||
axis000 = {
|
||||
custom = {
|
||||
axis = [0.0, 1.0],
|
||||
direction = [0.0, 1.0],
|
||||
origin = [
|
||||
cornerRadius + binTol,
|
||||
cornerRadius + binTol
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
// create a single corner of the bin
|
||||
|
@ -20,6 +20,6 @@ sketch001 = startSketchOn(-XZ)
|
||||
|> xLine(endAbsolute = webThickness / 2 + rootRadius)
|
||||
|> tangentialArc({ radius = rootRadius, offset = 90 }, %)
|
||||
|> yLine(endAbsolute = 0)
|
||||
|> mirror2d({ axis = 'X' }, %)
|
||||
|> mirror2d({ axis = 'Y' }, %)
|
||||
|> mirror2d(axis = X)
|
||||
|> mirror2d(axis = Y)
|
||||
|> extrude(length = beamLength)
|
||||
|
@ -24,4 +24,4 @@ pipeProfile = outerProfile
|
||||
|> hole(innerProfile, %)
|
||||
|
||||
// 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()
|
||||
|
||||
// Revolve the sketch to create the pipe
|
||||
pipe = revolve(pipeSketch, axis = 'y')
|
||||
pipe = revolve(pipeSketch, axis = Y)
|
||||
|
@ -34,10 +34,8 @@ part001 = revolve(
|
||||
sketch001,
|
||||
angle = 90,
|
||||
axis = {
|
||||
custom = {
|
||||
axis = [1.0, 0.0],
|
||||
direction = [1.0, 0.0],
|
||||
origin = [0.0, height + .0001]
|
||||
}
|
||||
},
|
||||
)
|
||||
|
||||
|
@ -21,7 +21,7 @@ export fn knob() {
|
||||
}, %)
|
||||
|> xLine(endAbsolute = 0.0001)
|
||||
|> close()
|
||||
|> revolve(axis = "Y")
|
||||
|> revolve(axis = Y)
|
||||
|> appearance(color = '#D0FF01', metalness = 90, roughness = 50)
|
||||
|
||||
return knob
|
||||
|
@ -876,7 +876,7 @@ async fn kcl_test_simple_revolve() {
|
||||
|> line(end = [0, -5.5])
|
||||
|> line(end = [-2, 0])
|
||||
|> 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 = [-2, 0])
|
||||
|> 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 = [-2, 0])
|
||||
|> 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 = [-2, 0])
|
||||
|> 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 = [-2, 0])
|
||||
|> 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 = [-2, 0])
|
||||
|> 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 = [-2, 0])
|
||||
|> 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 )
|
||||
|> revolve(
|
||||
angle = -90,
|
||||
axis = 'y'
|
||||
axis = Y
|
||||
)
|
||||
"#;
|
||||
|
||||
@ -1131,7 +1131,7 @@ sketch001 = startSketchOn(box, "end")
|
||||
|> line(end = [0, 10])
|
||||
|> close()
|
||||
|> revolve(
|
||||
axis = 'y',
|
||||
axis = Y,
|
||||
angle = -90,
|
||||
)
|
||||
"#;
|
||||
@ -1146,7 +1146,7 @@ async fn kcl_test_basic_revolve_circle() {
|
||||
|> circle(center = [15, 0], radius= 5)
|
||||
|> revolve(
|
||||
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 = [-2, 0])
|
||||
|> close()
|
||||
|> revolve(axis = 'y', angle = 180)
|
||||
|> revolve(axis = Y, angle = 180)
|
||||
|
||||
part002 = startSketchOn(part001, 'end')
|
||||
|> startProfileAt([4.5, -5], %)
|
||||
|
@ -23,8 +23,9 @@ use crate::{
|
||||
const TYPES_DIR: &str = "../../docs/kcl/types";
|
||||
const LANG_TOPICS: [&str; 5] = ["Types", "Modules", "Settings", "Known Issues", "Constants"];
|
||||
// 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",
|
||||
"Axis2d", "Axis3d",
|
||||
];
|
||||
|
||||
fn init_handlebars() -> Result<handlebars::Handlebars<'static>> {
|
||||
|
@ -508,6 +508,7 @@ pub struct ArgData {
|
||||
pub ty: Option<String>,
|
||||
/// If the argument is required.
|
||||
pub kind: ArgKind,
|
||||
pub override_in_snippet: Option<bool>,
|
||||
/// 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
|
||||
/// how this argument is meant to be used.
|
||||
@ -528,6 +529,7 @@ impl ArgData {
|
||||
name: arg.identifier.name.clone(),
|
||||
ty: arg.type_.as_ref().map(|t| t.to_string()),
|
||||
docs: None,
|
||||
override_in_snippet: None,
|
||||
kind: if arg.labeled {
|
||||
ArgKind::Labelled(arg.optional())
|
||||
} 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
|
||||
}
|
||||
|
||||
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 {
|
||||
String::new()
|
||||
} else {
|
||||
format!("{} = ", self.name)
|
||||
};
|
||||
match self.ty.as_deref() {
|
||||
Some(s) if ["Sketch", "Solid", "Plane | Face", "Sketch | Plane | Face"].contains(&s) => {
|
||||
Some((index, format!("{label}${{{}:{}}}", index, "%")))
|
||||
}
|
||||
Some("number") if self.kind.required() => Some((index, format!(r#"{label}${{{}:3.14}}"#, index))),
|
||||
Some("Point2d") if self.kind.required() => Some((
|
||||
Some(s) if s.starts_with("number") => Some((index, format!(r#"{label}${{{}:3.14}}"#, index))),
|
||||
Some("Point2d") => Some((
|
||||
index + 1,
|
||||
format!(r#"{label}[${{{}:3.14}}, ${{{}:3.14}}]"#, index, index + 1),
|
||||
)),
|
||||
Some("Point3d") if self.kind.required() => Some((
|
||||
Some("Point3d") => Some((
|
||||
index + 2,
|
||||
format!(
|
||||
r#"{label}[${{{}:3.14}}, ${{{}:3.14}}, ${{{}:3.14}}]"#,
|
||||
@ -563,8 +593,10 @@ impl ArgData {
|
||||
index + 2
|
||||
),
|
||||
)),
|
||||
Some("string") if self.kind.required() => Some((index, format!(r#"{label}${{{}:"string"}}"#, index))),
|
||||
Some("bool") if self.kind.required() => Some((index, format!(r#"{label}${{{}:false}}"#, index))),
|
||||
Some("Axis2d | Edge") | Some("Axis3d | Edge") => Some((index, format!(r#"{label}${{{}:X}}"#, index))),
|
||||
|
||||
Some("string") => Some((index, format!(r#"{label}${{{}:"string"}}"#, index))),
|
||||
Some("bool") => Some((index, format!(r#"{label}${{{}:false}}"#, index))),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
@ -1000,9 +1000,12 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn get_autocomplete_snippet_revolve() {
|
||||
let revolve_fn: Box<dyn StdLibFn> = Box::new(crate::std::revolve::Revolve);
|
||||
let snippet = revolve_fn.to_autocomplete_snippet().unwrap();
|
||||
assert_eq!(snippet, r#"revolve(${0:%}, axis = ${1:"X"})${}"#);
|
||||
let data = kcl_doc::walk_prelude();
|
||||
let DocData::Fn(revolve_fn) = data.into_iter().find(|d| d.name() == "revolve").unwrap() else {
|
||||
panic!();
|
||||
};
|
||||
let snippet = revolve_fn.to_autocomplete_snippet();
|
||||
assert_eq!(snippet, r#"revolve(axis = ${0:X})${}"#);
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -1015,7 +1018,7 @@ mod tests {
|
||||
let snippet = circle_fn.to_autocomplete_snippet();
|
||||
assert_eq!(
|
||||
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]
|
||||
#[allow(clippy::literal_string_with_formatting_args)]
|
||||
fn get_autocomplete_snippet_helix() {
|
||||
let helix_fn: Box<dyn StdLibFn> = Box::new(crate::std::helix::Helix);
|
||||
let snippet = helix_fn.to_autocomplete_snippet().unwrap();
|
||||
let data = kcl_doc::walk_prelude();
|
||||
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!(
|
||||
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,
|
||||
},
|
||||
#[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 {
|
||||
/// The name of the user-defined function being called. Anonymous
|
||||
/// functions have no name.
|
||||
@ -49,6 +62,7 @@ impl Operation {
|
||||
pub(crate) fn set_std_lib_call_is_error(&mut self, is_err: bool) {
|
||||
match self {
|
||||
Self::StdLibCall { ref mut is_error, .. } => *is_error = is_err,
|
||||
Self::KclStdLibCall { ref mut is_error, .. } => *is_error = is_err,
|
||||
Self::UserDefinedFunctionCall { .. } | Self::UserDefinedFunctionReturn => {}
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,7 @@ use std::collections::HashMap;
|
||||
use async_recursion::async_recursion;
|
||||
use indexmap::IndexMap;
|
||||
|
||||
use super::kcl_value::TypeDef;
|
||||
use super::{kcl_value::TypeDef, types::PrimitiveType};
|
||||
use crate::{
|
||||
engine::ExecutionKind,
|
||||
errors::{KclError, KclErrorDetails},
|
||||
@ -1031,6 +1031,15 @@ impl Node<UnaryExpression> {
|
||||
}
|
||||
|
||||
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 {
|
||||
KclValue::Number { value, ty, .. } => {
|
||||
let meta = vec![Metadata {
|
||||
@ -1052,13 +1061,63 @@ impl Node<UnaryExpression> {
|
||||
plane.id = exec_state.next_uuid();
|
||||
Ok(KclValue::Plane { value: plane })
|
||||
}
|
||||
_ => Err(KclError::Semantic(KclErrorDetails {
|
||||
message: format!(
|
||||
"You can only negate numbers or planes, but this is a {}",
|
||||
value.human_friendly_type()
|
||||
),
|
||||
source_ranges: vec![self.into()],
|
||||
})),
|
||||
KclValue::Object { value: values, meta } => {
|
||||
// Special-case for negating line-like objects.
|
||||
let Some(direction) = values.get("direction") else {
|
||||
return Err(err());
|
||||
};
|
||||
|
||||
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.
|
||||
exec_state.mut_stack().push_new_env_for_rust_call();
|
||||
let mut result = {
|
||||
@ -2152,7 +2232,15 @@ impl FunctionSource {
|
||||
let result = func(exec_state, args).await;
|
||||
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
|
||||
}?;
|
||||
|
||||
|
@ -56,6 +56,20 @@ impl RuntimeType {
|
||||
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(
|
||||
value: Type,
|
||||
exec_state: &mut ExecState,
|
||||
@ -93,21 +107,27 @@ impl RuntimeType {
|
||||
AstPrimitiveType::Number(suffix) => RuntimeType::Primitive(PrimitiveType::Number(
|
||||
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
|
||||
.stack()
|
||||
.get(&format!("{}{}", memory::TYPE_PREFIX, name.name), source_range)
|
||||
.map_err(|_| CompilationError::err(source_range, format!("Unknown type: {}", name.name)))?;
|
||||
.get(&format!("{}{}", memory::TYPE_PREFIX, alias), source_range)
|
||||
.map_err(|_| CompilationError::err(source_range, format!("Unknown type: {}", alias)))?;
|
||||
|
||||
match ty_val {
|
||||
Ok(match ty_val {
|
||||
KclValue::Type { value, .. } => match value {
|
||||
TypeDef::RustRepr(ty, _) => RuntimeType::Primitive(ty.clone()),
|
||||
TypeDef::Alias(ty) => ty.clone(),
|
||||
},
|
||||
_ => unreachable!(),
|
||||
}
|
||||
}
|
||||
AstPrimitiveType::Tag => RuntimeType::Primitive(PrimitiveType::Tag),
|
||||
})
|
||||
}
|
||||
|
||||
@ -143,6 +163,35 @@ impl RuntimeType {
|
||||
(Object(t1), Object(t2)) => t2
|
||||
.iter()
|
||||
.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,
|
||||
}
|
||||
}
|
||||
@ -213,11 +262,11 @@ impl ArrayLen {
|
||||
}
|
||||
|
||||
/// 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 {
|
||||
ArrayLen::None => true,
|
||||
ArrayLen::NonEmpty => len > 0,
|
||||
ArrayLen::Known(s) => len == s,
|
||||
ArrayLen::None => Some(len),
|
||||
ArrayLen::NonEmpty => (len > 0).then_some(len),
|
||||
ArrayLen::Known(s) => (if allow_shrink { len >= s } else { len == s }).then_some(s),
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -234,6 +283,8 @@ pub enum PrimitiveType {
|
||||
Helix,
|
||||
Face,
|
||||
Edge,
|
||||
Axis2d,
|
||||
Axis3d,
|
||||
ImportedGeometry,
|
||||
}
|
||||
|
||||
@ -250,6 +301,8 @@ impl PrimitiveType {
|
||||
PrimitiveType::Helix => "Helices".to_owned(),
|
||||
PrimitiveType::Face => "Faces".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::Tag => "tags".to_owned(),
|
||||
}
|
||||
@ -276,6 +329,8 @@ impl fmt::Display for PrimitiveType {
|
||||
PrimitiveType::Plane => write!(f, "Plane"),
|
||||
PrimitiveType::Face => write!(f, "Face"),
|
||||
PrimitiveType::Edge => write!(f, "Edge"),
|
||||
PrimitiveType::Axis2d => write!(f, "Axis2d"),
|
||||
PrimitiveType::Axis3d => write!(f, "Axis3d"),
|
||||
PrimitiveType::Helix => write!(f, "Helix"),
|
||||
PrimitiveType::ImportedGeometry => write!(f, "imported geometry"),
|
||||
}
|
||||
@ -301,6 +356,10 @@ impl NumericType {
|
||||
NumericType::Known(UnitType::Count)
|
||||
}
|
||||
|
||||
pub fn mm() -> Self {
|
||||
NumericType::Known(UnitType::Length(UnitLen::Mm))
|
||||
}
|
||||
|
||||
/// Combine two types when we expect them to be equal.
|
||||
pub fn combine_eq(self, other: &NumericType) -> NumericType {
|
||||
if &self == other {
|
||||
@ -544,7 +603,7 @@ impl KclValue {
|
||||
pub fn coerce(&self, ty: &RuntimeType, exec_state: &mut ExecState) -> Option<KclValue> {
|
||||
match ty {
|
||||
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::Union(tys) => self.coerce_to_union_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()),
|
||||
_ => 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 {
|
||||
KclValue::ImportedGeometry { .. } => Some(value.clone()),
|
||||
_ => 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 {
|
||||
KclValue::HomArray { value, ty: aty } if aty == ty => {
|
||||
let value = match len {
|
||||
ArrayLen::None => value.clone(),
|
||||
ArrayLen::NonEmpty => {
|
||||
if value.is_empty() {
|
||||
return None;
|
||||
KclValue::HomArray { value, ty: aty } if aty.subtype(ty) => {
|
||||
len.satisfied(value.len(), allow_shrink).map(|len| KclValue::HomArray {
|
||||
value: value[..len].to_vec(),
|
||||
ty: aty.clone(),
|
||||
})
|
||||
}
|
||||
|
||||
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 if len.satisfied(1, false).is_some() && value.has_type(ty) => Some(KclValue::HomArray {
|
||||
value: vec![value.clone()],
|
||||
ty: ty.clone(),
|
||||
}),
|
||||
KclValue::MixedArray { value, .. } => {
|
||||
let value = match len {
|
||||
ArrayLen::None => value.clone(),
|
||||
ArrayLen::NonEmpty => {
|
||||
if value.is_empty() {
|
||||
return None;
|
||||
}
|
||||
let len = len.satisfied(value.len(), allow_shrink)?;
|
||||
|
||||
value.clone()
|
||||
}
|
||||
ArrayLen::Known(n) => {
|
||||
if n != value.len() {
|
||||
return None;
|
||||
}
|
||||
|
||||
value[..n].to_vec()
|
||||
}
|
||||
};
|
||||
|
||||
let value = value
|
||||
let value = value[..len]
|
||||
.iter()
|
||||
.map(|v| v.coerce(ty, exec_state))
|
||||
.collect::<Option<Vec<_>>>()?;
|
||||
|
||||
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(),
|
||||
ty: ty.clone(),
|
||||
}),
|
||||
@ -1259,4 +1337,119 @@ mod test {
|
||||
assert!(count.coerce(&tyb, &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], %)
|
||||
|> angledLineToX({ angle: 60, to: pipeLargeDia }, %)
|
||||
|> close()
|
||||
|> revolve({ axis: 'y' }, %)
|
||||
|> revolve({ axis = Y }, %)
|
||||
"
|
||||
);
|
||||
|
||||
@ -156,7 +156,7 @@ const part001 = startSketchOn('XY')
|
||||
|> line([0, pipeLength], %)
|
||||
|> angledLineToX({ angle: 60, to: pipeLargeDia }, %)
|
||||
|> close()
|
||||
|> revolve({ axis: 'y' }, %)
|
||||
|> revolve({ axis = Y }, %)
|
||||
"
|
||||
);
|
||||
|
||||
|
@ -1632,7 +1632,7 @@ insideRevolve = startSketchOn(XZ)
|
||||
|> line(end = [0, -thickness])
|
||||
|> line(end = [-overHangLength, 0])
|
||||
|> 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)
|
||||
sphere = startSketchOn(XZ)
|
||||
@ -1647,7 +1647,7 @@ sphere = startSketchOn(XZ)
|
||||
radius: sphereDia / 2 - 0.05
|
||||
}, %)
|
||||
|> close()
|
||||
|> revolve({ axis: 'x' }, %)
|
||||
|> revolve({ axis = X }, %)
|
||||
|> patternCircular3d(
|
||||
axis = [0, 0, 1],
|
||||
center = [0, 0, 0],
|
||||
@ -1671,7 +1671,7 @@ outsideRevolve = startSketchOn(XZ)
|
||||
|> line(end = [0, thickness])
|
||||
|> line(end = [overHangLength - thickness, 0])
|
||||
|> close()
|
||||
|> revolve({ axis: 'y' }, %)"#
|
||||
|> revolve({ axis = Y }, %)"#
|
||||
.to_string(),
|
||||
},
|
||||
})
|
||||
@ -1705,7 +1705,7 @@ outsideRevolve = startSketchOn(XZ)
|
||||
start: tower_lsp::lsp_types::Position { line: 0, character: 0 },
|
||||
end: tower_lsp::lsp_types::Position {
|
||||
line: 60,
|
||||
character: 30
|
||||
character: 29
|
||||
}
|
||||
}
|
||||
);
|
||||
@ -1732,7 +1732,7 @@ insideRevolve = startSketchOn(XZ)
|
||||
|> line(end = [0, -thickness])
|
||||
|> line(end = [-overHangLength, 0])
|
||||
|> 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)
|
||||
sphere = startSketchOn(XZ)
|
||||
@ -1747,7 +1747,7 @@ sphere = startSketchOn(XZ)
|
||||
radius = sphereDia / 2 - 0.05
|
||||
}, %)
|
||||
|> close()
|
||||
|> revolve({ axis = 'x' }, %)
|
||||
|> revolve({ axis = X }, %)
|
||||
|> patternCircular3d(
|
||||
axis = [0, 0, 1],
|
||||
center = [0, 0, 0],
|
||||
@ -1771,7 +1771,7 @@ outsideRevolve = startSketchOn(XZ)
|
||||
|> line(end = [0, thickness])
|
||||
|> line(end = [overHangLength - thickness, 0])
|
||||
|> 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)
|
||||
}
|
||||
|
||||
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>> {
|
||||
let at = at_sign.parse_next(i)?;
|
||||
let name = opt(binding_name).parse_next(i)?;
|
||||
@ -2902,13 +2907,17 @@ struct ParamDescription {
|
||||
arg_name: Token,
|
||||
type_: std::option::Option<Node<Type>>,
|
||||
default_value: Option<DefaultParamVal>,
|
||||
attr: Option<Node<Annotation>>,
|
||||
comments: Option<Node<Vec<String>>>,
|
||||
}
|
||||
|
||||
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(comments),
|
||||
opt(whitespace),
|
||||
opt(outer_annotation),
|
||||
opt(whitespace),
|
||||
opt(at_sign),
|
||||
any.verify(|token: &Token| !matches!(token.token_type, TokenType::Brace) || token.value != ")"),
|
||||
opt(question_mark),
|
||||
@ -2933,6 +2942,7 @@ fn parameter(i: &mut TokenSlice) -> PResult<ParamDescription> {
|
||||
return Err(ErrMode::Backtrack(ContextError::from(e)));
|
||||
}
|
||||
},
|
||||
attr,
|
||||
comments,
|
||||
})
|
||||
}
|
||||
@ -2954,6 +2964,7 @@ fn parameters(i: &mut TokenSlice) -> PResult<Vec<Parameter>> {
|
||||
arg_name,
|
||||
type_,
|
||||
default_value,
|
||||
attr,
|
||||
comments,
|
||||
}| {
|
||||
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.pre_comments = comments.inner;
|
||||
}
|
||||
if let Some(attr) = attr {
|
||||
identifier.outer_attrs.push(attr);
|
||||
}
|
||||
|
||||
Ok(Parameter {
|
||||
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.
|
||||
/// ```no_run
|
||||
/// // Add color to an extruded solid.
|
||||
/// exampleSketch = startSketchOn("XZ")
|
||||
/// exampleSketch = startSketchOn(XZ)
|
||||
/// |> startProfileAt([0, 0], %)
|
||||
/// |> line(endAbsolute = [10, 0])
|
||||
/// |> line(endAbsolute = [0, 10])
|
||||
@ -89,9 +89,9 @@ pub async fn appearance(exec_state: &mut ExecState, args: Args) -> Result<KclVal
|
||||
///
|
||||
/// ```no_run
|
||||
/// // Add color to a revolved solid.
|
||||
/// sketch001 = startSketchOn('XY')
|
||||
/// sketch001 = startSketchOn(XY)
|
||||
/// |> circle( center = [15, 0], radius = 5 )
|
||||
/// |> revolve( angle = 360, axis = 'y')
|
||||
/// |> revolve( angle = 360, axis = Y)
|
||||
/// |> appearance(
|
||||
/// color = '#ff0000',
|
||||
/// metalness = 90,
|
||||
@ -102,7 +102,7 @@ pub async fn appearance(exec_state: &mut ExecState, args: Args) -> Result<KclVal
|
||||
/// ```no_run
|
||||
/// // Add color to different solids.
|
||||
/// fn cube(center) {
|
||||
/// return startSketchOn('XY')
|
||||
/// return startSketchOn(XY)
|
||||
/// |> startProfileAt([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
|
||||
/// // 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.
|
||||
/// firstSketch = startSketchOn('XY')
|
||||
/// firstSketch = startSketchOn(XY)
|
||||
/// |> startProfileAt([-12, 12], %)
|
||||
/// |> line(end = [24, 0])
|
||||
/// |> line(end = [0, -24])
|
||||
@ -145,7 +145,7 @@ pub async fn appearance(exec_state: &mut ExecState, args: Args) -> Result<KclVal
|
||||
/// ```no_run
|
||||
/// // 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.
|
||||
/// firstSketch = startSketchOn('XY')
|
||||
/// firstSketch = startSketchOn(XY)
|
||||
/// |> startProfileAt([-12, 12], %)
|
||||
/// |> line(end = [24, 0])
|
||||
/// |> line(end = [0, -24])
|
||||
@ -168,7 +168,7 @@ pub async fn appearance(exec_state: &mut ExecState, args: Args) -> Result<KclVal
|
||||
/// ```no_run
|
||||
/// // Setting the appearance of a 3D pattern can be done _before_ or _after_ the pattern.
|
||||
/// // This example shows _before_ the pattern.
|
||||
/// exampleSketch = startSketchOn('XZ')
|
||||
/// exampleSketch = startSketchOn(XZ)
|
||||
/// |> startProfileAt([0, 0], %)
|
||||
/// |> line(end = [0, 2])
|
||||
/// |> line(end = [3, 1])
|
||||
@ -191,7 +191,7 @@ pub async fn appearance(exec_state: &mut ExecState, args: Args) -> Result<KclVal
|
||||
/// ```no_run
|
||||
/// // Setting the appearance of a 3D pattern can be done _before_ or _after_ the pattern.
|
||||
/// // This example shows _after_ the pattern.
|
||||
/// exampleSketch = startSketchOn('XZ')
|
||||
/// exampleSketch = startSketchOn(XZ)
|
||||
/// |> startProfileAt([0, 0], %)
|
||||
/// |> line(end = [0, 2])
|
||||
/// |> line(end = [3, 1])
|
||||
@ -213,7 +213,7 @@ pub async fn appearance(exec_state: &mut ExecState, args: Args) -> Result<KclVal
|
||||
///
|
||||
/// ```no_run
|
||||
/// // Color the result of a 2D pattern that was extruded.
|
||||
/// exampleSketch = startSketchOn('XZ')
|
||||
/// exampleSketch = startSketchOn(XZ)
|
||||
/// |> startProfileAt([.5, 25], %)
|
||||
/// |> line(end = [0, 5])
|
||||
/// |> 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.
|
||||
///
|
||||
/// // Create a path for the sweep.
|
||||
/// sweepPath = startSketchOn('XZ')
|
||||
/// sweepPath = startSketchOn(XZ)
|
||||
/// |> startProfileAt([0.05, 0.05], %)
|
||||
/// |> line(end = [0, 7])
|
||||
/// |> tangentialArc({
|
||||
@ -252,13 +252,13 @@ pub async fn appearance(exec_state: &mut ExecState, args: Args) -> Result<KclVal
|
||||
/// }, %)
|
||||
/// |> line(end = [0, 7])
|
||||
///
|
||||
/// pipeHole = startSketchOn('XY')
|
||||
/// pipeHole = startSketchOn(XY)
|
||||
/// |> circle(
|
||||
/// center = [0, 0],
|
||||
/// radius = 1.5,
|
||||
/// )
|
||||
///
|
||||
/// sweepSketch = startSketchOn('XY')
|
||||
/// sweepSketch = startSketchOn(XY)
|
||||
/// |> circle(
|
||||
/// center = [0, 0],
|
||||
/// 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.
|
||||
pub(crate) fn get_kw_arg<'a, T>(&'a self, label: &str) -> Result<T, KclError>
|
||||
where
|
||||
@ -675,37 +691,6 @@ impl Args {
|
||||
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>(
|
||||
&'a self,
|
||||
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 {
|
||||
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
|
||||
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 {
|
||||
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;
|
||||
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 {
|
||||
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
|
||||
let case1 = super::axis_or_reference::AxisAndOrigin3d::from_kcl_val;
|
||||
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 case1 = |arg: &KclValue| {
|
||||
let obj = arg.as_object()?;
|
||||
let_field_of!(obj, axis);
|
||||
Some(Self { axis })
|
||||
let_field_of!(obj, direction);
|
||||
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.
|
||||
|
||||
use anyhow::Result;
|
||||
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};
|
||||
use crate::std::fillet::EdgeReference;
|
||||
|
||||
/// A 2D axis or tagged edge.
|
||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)]
|
||||
#[ts(export)]
|
||||
#[serde(untagged)]
|
||||
#[derive(Debug, Clone, PartialEq)]
|
||||
pub enum Axis2dOrEdgeReference {
|
||||
/// 2D axis and origin.
|
||||
Axis(AxisAndOrigin2d),
|
||||
Axis { direction: [f64; 2], origin: [f64; 2] },
|
||||
/// Tagged edge.
|
||||
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.
|
||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)]
|
||||
#[ts(export)]
|
||||
#[serde(untagged)]
|
||||
#[derive(Debug, Clone, PartialEq)]
|
||||
pub enum Axis3dOrEdgeReference {
|
||||
/// 3D axis and origin.
|
||||
Axis(AxisAndOrigin3d),
|
||||
Axis { direction: [f64; 3], origin: [f64; 3] },
|
||||
/// Tagged edge.
|
||||
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.
|
||||
|
||||
use anyhow::Result;
|
||||
use kcl_derive_docs::stdlib;
|
||||
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::{
|
||||
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},
|
||||
};
|
||||
|
||||
@ -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 ccw = args.get_kw_arg_opt("ccw")?;
|
||||
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 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 })
|
||||
}
|
||||
|
||||
/// 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)]
|
||||
async fn inner_helix(
|
||||
revolutions: f64,
|
||||
@ -221,9 +136,7 @@ async fn inner_helix(
|
||||
.await?;
|
||||
} else if let (Some(axis), Some(radius)) = (axis, radius) {
|
||||
match axis {
|
||||
Axis3dOrEdgeReference::Axis(axis) => {
|
||||
let (axis, origin) = axis.axis_and_origin()?;
|
||||
|
||||
Axis3dOrEdgeReference::Axis { direction, origin } => {
|
||||
// Make sure they gave us a length.
|
||||
let Some(length) = length else {
|
||||
return Err(KclError::Semantic(crate::errors::KclErrorDetails {
|
||||
@ -240,8 +153,16 @@ async fn inner_helix(
|
||||
length: LengthUnit(length),
|
||||
revolutions,
|
||||
start_angle: Angle::from_degrees(angle_start),
|
||||
axis,
|
||||
center: origin,
|
||||
axis: Point3d {
|
||||
x: direction[0],
|
||||
y: direction[1],
|
||||
z: direction[2],
|
||||
},
|
||||
center: Point3d {
|
||||
x: LengthUnit(origin[0]),
|
||||
y: LengthUnit(origin[1]),
|
||||
z: LengthUnit(origin[2]),
|
||||
},
|
||||
}),
|
||||
)
|
||||
.await?;
|
||||
|
@ -1,109 +1,39 @@
|
||||
//! Standard library mirror.
|
||||
|
||||
use anyhow::Result;
|
||||
use kcl_derive_docs::stdlib;
|
||||
use kcmc::{each_cmd as mcmd, ModelingCmd};
|
||||
use kittycad_modeling_cmds::{self as kcmc};
|
||||
use schemars::JsonSchema;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use kittycad_modeling_cmds::{self as kcmc, length_unit::LengthUnit, shared::Point3d};
|
||||
|
||||
use crate::{
|
||||
errors::KclError,
|
||||
execution::{ExecState, KclValue, Sketch},
|
||||
execution::{
|
||||
types::{PrimitiveType, RuntimeType},
|
||||
ExecState, KclValue, Sketch,
|
||||
},
|
||||
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.
|
||||
///
|
||||
/// Only works on unclosed sketches for now.
|
||||
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())
|
||||
}
|
||||
|
||||
/// 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(
|
||||
data: Mirror2dData,
|
||||
sketches: Vec<Sketch>,
|
||||
axis: Axis2dOrEdgeReference,
|
||||
exec_state: &mut ExecState,
|
||||
args: Args,
|
||||
) -> Result<Vec<Sketch>, KclError> {
|
||||
@ -113,16 +43,22 @@ async fn inner_mirror_2d(
|
||||
return Ok(starting_sketches);
|
||||
}
|
||||
|
||||
match data.axis {
|
||||
Axis2dOrEdgeReference::Axis(axis) => {
|
||||
let (axis, origin) = axis.axis_and_origin()?;
|
||||
|
||||
match axis {
|
||||
Axis2dOrEdgeReference::Axis { direction, origin } => {
|
||||
args.batch_modeling_cmd(
|
||||
exec_state.next_uuid(),
|
||||
ModelingCmd::from(mcmd::EntityMirror {
|
||||
ids: starting_sketches.iter().map(|sketch| sketch.id).collect(),
|
||||
axis,
|
||||
point: origin,
|
||||
axis: Point3d {
|
||||
x: direction[0],
|
||||
y: direction[1],
|
||||
z: 0.0,
|
||||
},
|
||||
point: Point3d {
|
||||
x: LengthUnit(origin[0]),
|
||||
y: LengthUnit(origin[1]),
|
||||
z: LengthUnit(0.0),
|
||||
},
|
||||
}),
|
||||
)
|
||||
.await?;
|
||||
|
@ -26,7 +26,6 @@ pub mod shell;
|
||||
pub mod sketch;
|
||||
pub mod sweep;
|
||||
pub mod transform;
|
||||
pub mod types;
|
||||
pub mod units;
|
||||
pub mod utils;
|
||||
|
||||
@ -96,7 +95,6 @@ lazy_static! {
|
||||
Box::new(crate::std::sketch::TangentialArcToRelative),
|
||||
Box::new(crate::std::sketch::BezierCurve),
|
||||
Box::new(crate::std::sketch::Hole),
|
||||
Box::new(crate::std::mirror::Mirror2D),
|
||||
Box::new(crate::std::patterns::PatternLinear2D),
|
||||
Box::new(crate::std::patterns::PatternLinear3D),
|
||||
Box::new(crate::std::patterns::PatternCircular2D),
|
||||
@ -113,10 +111,8 @@ lazy_static! {
|
||||
Box::new(crate::std::edge::GetNextAdjacentEdge),
|
||||
Box::new(crate::std::edge::GetPreviousAdjacentEdge),
|
||||
Box::new(crate::std::edge::GetCommonEdge),
|
||||
Box::new(crate::std::helix::Helix),
|
||||
Box::new(crate::std::shell::Shell),
|
||||
Box::new(crate::std::shell::Hollow),
|
||||
Box::new(crate::std::revolve::Revolve),
|
||||
Box::new(crate::std::sweep::Sweep),
|
||||
Box::new(crate::std::loft::Loft),
|
||||
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 name: String,
|
||||
pub deprecated: bool,
|
||||
pub include_in_feature_tree: bool,
|
||||
}
|
||||
|
||||
impl StdFnProps {
|
||||
@ -184,8 +181,14 @@ impl StdFnProps {
|
||||
Self {
|
||||
name: name.to_owned(),
|
||||
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) {
|
||||
@ -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)),
|
||||
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!(),
|
||||
}
|
||||
}
|
||||
@ -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", "Face") => (PrimitiveType::Face, StdFnProps::default("std::Face")),
|
||||
("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!(),
|
||||
}
|
||||
}
|
||||
|
@ -1,13 +1,15 @@
|
||||
//! Standard library revolution surfaces.
|
||||
|
||||
use anyhow::Result;
|
||||
use kcl_derive_docs::stdlib;
|
||||
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::{
|
||||
errors::{KclError, KclErrorDetails},
|
||||
execution::{types::RuntimeType, ExecState, KclValue, Sketch, Solid},
|
||||
execution::{
|
||||
types::{PrimitiveType, RuntimeType},
|
||||
ExecState, KclValue, Sketch, Solid,
|
||||
},
|
||||
parsing::ast::types::TagNode,
|
||||
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.
|
||||
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 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 tolerance = args.get_kw_arg_opt("tolerance")?;
|
||||
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())
|
||||
}
|
||||
|
||||
/// 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)]
|
||||
async fn inner_revolve(
|
||||
sketches: Vec<Sketch>,
|
||||
@ -264,15 +64,22 @@ async fn inner_revolve(
|
||||
let id = exec_state.next_uuid();
|
||||
|
||||
match &axis {
|
||||
Axis2dOrEdgeReference::Axis(axis) => {
|
||||
let (axis, origin) = axis.axis_and_origin()?;
|
||||
Axis2dOrEdgeReference::Axis { direction, origin } => {
|
||||
args.batch_modeling_cmd(
|
||||
id,
|
||||
ModelingCmd::from(mcmd::Revolve {
|
||||
angle,
|
||||
target: sketch.id.into(),
|
||||
axis,
|
||||
origin,
|
||||
axis: Point3d {
|
||||
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))),
|
||||
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])
|
||||
/// |> close()
|
||||
///
|
||||
/// example = revolve(exampleSketch, axis = 'y', angle = 180)
|
||||
/// example = revolve(exampleSketch, axis = Y, angle = 180)
|
||||
///
|
||||
/// exampleSketch002 = startSketchOn(example, 'end')
|
||||
/// |> 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])
|
||||
/// |> close()
|
||||
///
|
||||
/// example = revolve(exampleSketch, axis = 'y', angle = 180, tagEnd = $end01)
|
||||
/// example = revolve(exampleSketch, axis = Y, angle = 180, tagEnd = $end01)
|
||||
///
|
||||
/// exampleSketch002 = startSketchOn(example, end01)
|
||||
/// |> 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 path for the sweep.
|
||||
/// sweepPath = startSketchOn('XZ')
|
||||
/// sweepPath = startSketchOn(XZ)
|
||||
/// |> startProfileAt([0.05, 0.05], %)
|
||||
/// |> line(end = [0, 7])
|
||||
/// |> tangentialArc({
|
||||
@ -69,13 +69,13 @@ pub async fn sweep(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
|
||||
/// |> line(end = [0, 7])
|
||||
///
|
||||
/// // Create a hole for the pipe.
|
||||
/// pipeHole = startSketchOn('XY')
|
||||
/// pipeHole = startSketchOn(XY)
|
||||
/// |> circle(
|
||||
/// center = [0, 0],
|
||||
/// radius = 1.5,
|
||||
/// )
|
||||
///
|
||||
/// sweepSketch = startSketchOn('XY')
|
||||
/// sweepSketch = startSketchOn(XY)
|
||||
/// |> circle(
|
||||
/// center = [0, 0],
|
||||
/// radius = 2,
|
||||
@ -94,12 +94,12 @@ pub async fn sweep(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
|
||||
/// revolutions = 4,
|
||||
/// length = 10,
|
||||
/// radius = 5,
|
||||
/// axis = 'Z',
|
||||
/// axis = Z,
|
||||
/// )
|
||||
///
|
||||
///
|
||||
/// // Create a spring by sweeping around the helix path.
|
||||
/// springSketch = startSketchOn('YZ')
|
||||
/// springSketch = startSketchOn(YZ)
|
||||
/// |> circle( center = [0, 0], radius = 1)
|
||||
/// |> 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.
|
||||
///
|
||||
/// sketch001 = startSketchOn('XY')
|
||||
/// sketch001 = startSketchOn(XY)
|
||||
/// rectangleSketch = startProfileAt([-200, 23.86], sketch001)
|
||||
/// |> angledLine([0, 73.47], %, $rectangleSegmentA001)
|
||||
/// |> 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)
|
||||
///
|
||||
/// sketch002 = startSketchOn('YZ')
|
||||
/// sketch002 = startSketchOn(YZ)
|
||||
/// sweepPath = startProfileAt([0, 0], sketch002)
|
||||
/// |> yLine(length = 231.81)
|
||||
/// |> 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
|
||||
///
|
||||
/// sketch001 = startSketchOn('XY')
|
||||
/// sketch001 = startSketchOn(XY)
|
||||
/// circleSketch = circle(sketch001, center = [200, -30.29], radius = 32.63)
|
||||
///
|
||||
/// sketch002 = startSketchOn('YZ')
|
||||
|
@ -1 +0,0 @@
|
||||
|
@ -1235,7 +1235,7 @@ insideRevolve = startSketchOn(XZ)
|
||||
|> line([0, -thickness], %)
|
||||
|> line([-overHangLength, 0], %)
|
||||
|> 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)
|
||||
sphere = startSketchOn(XZ)
|
||||
@ -1250,7 +1250,7 @@ sphere = startSketchOn(XZ)
|
||||
radius = sphereDia / 2 - 0.05
|
||||
}, %)
|
||||
|> close()
|
||||
|> revolve({ axis: 'x' }, %)
|
||||
|> revolve({ axis = X }, %)
|
||||
|> patternCircular3d(
|
||||
axis = [0, 0, 1],
|
||||
center = [0, 0, 0],
|
||||
@ -1274,7 +1274,7 @@ outsideRevolve = startSketchOn(XZ)
|
||||
|> line([0, thickness], %)
|
||||
|> line([overHangLength - thickness, 0], %)
|
||||
|> close()
|
||||
|> revolve({ axis: 'y' }, %)"#;
|
||||
|> revolve({ axis = Y }, %)"#;
|
||||
let program = crate::parsing::top_level_parse(some_program_string).unwrap();
|
||||
|
||||
let recasted = program.recast(&Default::default(), 0);
|
||||
@ -1301,7 +1301,7 @@ insideRevolve = startSketchOn(XZ)
|
||||
|> line([0, -thickness], %)
|
||||
|> line([-overHangLength, 0], %)
|
||||
|> 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)
|
||||
sphere = startSketchOn(XZ)
|
||||
@ -1316,7 +1316,7 @@ sphere = startSketchOn(XZ)
|
||||
radius = sphereDia / 2 - 0.05
|
||||
}, %)
|
||||
|> close()
|
||||
|> revolve({ axis = 'x' }, %)
|
||||
|> revolve({ axis = X }, %)
|
||||
|> patternCircular3d(
|
||||
axis = [0, 0, 1],
|
||||
center = [0, 0, 0],
|
||||
@ -1340,7 +1340,7 @@ outsideRevolve = startSketchOn(XZ)
|
||||
|> line([0, thickness], %)
|
||||
|> line([overHangLength - thickness, 0], %)
|
||||
|> close()
|
||||
|> revolve({ axis = 'y' }, %)
|
||||
|> revolve({ axis = Y }, %)
|
||||
"#
|
||||
);
|
||||
}
|
||||
@ -1613,9 +1613,9 @@ fn bracketSketch = (w, d, t) => {
|
||||
s = startSketchOn({
|
||||
plane: {
|
||||
origin: { x = 0, y = length / 2 + thk, z = 0 },
|
||||
x_axis: { x = 1, y = 0, z = 0 },
|
||||
y_axis: { x = 0, y = 0, z = 1 },
|
||||
z_axis: { x = 0, y = 1, z = 0 }
|
||||
x_axis = { x = 1, y = 0, z = 0 },
|
||||
y_axis = { x = 0, y = 0, z = 1 },
|
||||
z_axis = { x = 0, y = 1, z = 0 }
|
||||
}
|
||||
})
|
||||
|> startProfileAt([-w / 2 - t, d + t], %)
|
||||
@ -1645,9 +1645,9 @@ bracket_body = bracketSketch(width, depth, thk)
|
||||
tabs_r = startSketchOn({
|
||||
plane: {
|
||||
origin: { x = 0, y = 0, z = depth + thk },
|
||||
x_axis: { x = 1, y = 0, z = 0 },
|
||||
y_axis: { x = 0, y = 1, z = 0 },
|
||||
z_axis: { x = 0, y = 0, z = 1 }
|
||||
x_axis = { x = 1, y = 0, z = 0 },
|
||||
y_axis = { x = 0, y = 1, z = 0 },
|
||||
z_axis = { x = 0, y = 0, z = 1 }
|
||||
}
|
||||
})
|
||||
|> startProfileAt([width / 2 + thk, length / 2 + thk], %)
|
||||
@ -2528,9 +2528,9 @@ fn f() {
|
||||
sketch002 = startSketchOn({
|
||||
plane: {
|
||||
origin: { x = 1, y = 2, z = 3 },
|
||||
x_axis: { x = 4, y = 5, z = 6 },
|
||||
y_axis: { x = 7, y = 8, z = 9 },
|
||||
z_axis: { x = 10, y = 11, z = 12 }
|
||||
x_axis = { x = 4, y = 5, z = 6 },
|
||||
y_axis = { x = 7, y = 8, z = 9 },
|
||||
z_axis = { x = 10, y = 11, z = 12 }
|
||||
}
|
||||
})
|
||||
"#;
|
||||
|
@ -270,3 +270,330 @@ export YZ = {
|
||||
yAxis = { x = 0, y = 0, z = 1 },
|
||||
zAxis = { x = 1, y = 0, z = 0 },
|
||||
}: 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.
|
||||
tag?: tag,
|
||||
): 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": "UserDefinedFunctionCall",
|
||||
"name": "revolve",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"labeledArgs": {
|
||||
"angle": {
|
||||
"value": {
|
||||
@ -173,19 +189,55 @@ description: Operations executed crazy_multi_profile.kcl
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "KclStdLibCall",
|
||||
"name": "",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"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": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"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": {
|
||||
"angle": {
|
||||
"value": {
|
||||
@ -364,17 +432,54 @@ description: Operations executed crazy_multi_profile.kcl
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "KclStdLibCall",
|
||||
"name": "",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"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": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
}
|
||||
]
|
||||
|
@ -117,6 +117,14 @@ description: Operations executed helix_ccw.kcl
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "helix",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"angleStart": {
|
||||
"value": {
|
||||
@ -167,9 +175,11 @@ description: Operations executed helix_ccw.kcl
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"name": "helix",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "KclStdLibCall",
|
||||
"name": "",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Solid",
|
||||
@ -178,6 +188,60 @@ description: Operations executed helix_ccw.kcl
|
||||
}
|
||||
},
|
||||
"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
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "helix",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"angleStart": {
|
||||
"value": {
|
||||
@ -100,9 +108,96 @@ description: Operations executed helix_simple.kcl
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"name": "helix",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"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)
|
||||
|
||||
export part001 = startSketchOn('XY')
|
||||
export part001 = startSketchOn(XY)
|
||||
|> startProfileAt([4, 12], %)
|
||||
|> line(end = [2, 0])
|
||||
|> line(end = [0, -6])
|
||||
@ -10,7 +10,7 @@ export part001 = startSketchOn('XY')
|
||||
|> line(end = [0, -5.5])
|
||||
|> line(end = [-2, 0])
|
||||
|> close()
|
||||
|> revolve(axis = 'y') // default angle is 360
|
||||
|> revolve(axis = Y) // default angle is 360
|
||||
|
||||
export fn two() {
|
||||
return 5
|
||||
|
@ -7,8 +7,8 @@ description: Operations executed import_function_not_sketch.kcl
|
||||
"labeledArgs": {
|
||||
"data": {
|
||||
"value": {
|
||||
"type": "String",
|
||||
"value": "XY"
|
||||
"type": "Plane",
|
||||
"artifact_id": "[uuid]"
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
@ -19,18 +19,117 @@ description: Operations executed import_function_not_sketch.kcl
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "revolve",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"axis": {
|
||||
"value": {
|
||||
"type": "String",
|
||||
"value": "y"
|
||||
"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": []
|
||||
}
|
||||
},
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "KclStdLibCall",
|
||||
"name": "",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
@ -39,6 +138,82 @@ description: Operations executed import_function_not_sketch.kcl
|
||||
}
|
||||
},
|
||||
"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 = [-2, 0])
|
||||
|> close()
|
||||
|> revolve(axis = 'y') // default angle is 360
|
||||
|> revolve(axis = Y) // default angle is 360
|
||||
|
||||
export fn two() {
|
||||
return 5
|
||||
|
@ -17,26 +17,26 @@ flowchart LR
|
||||
18[Solid2d]
|
||||
end
|
||||
subgraph path24 [Path]
|
||||
24["Path<br>[1576, 1709, 0]"]
|
||||
25["Segment<br>[1715, 1808, 0]"]
|
||||
26["Segment<br>[1814, 1845, 0]"]
|
||||
27["Segment<br>[1851, 1879, 0]"]
|
||||
28["Segment<br>[1885, 1892, 0]"]
|
||||
24["Path<br>[1574, 1707, 0]"]
|
||||
25["Segment<br>[1713, 1806, 0]"]
|
||||
26["Segment<br>[1812, 1843, 0]"]
|
||||
27["Segment<br>[1849, 1877, 0]"]
|
||||
28["Segment<br>[1883, 1890, 0]"]
|
||||
29[Solid2d]
|
||||
end
|
||||
subgraph path40 [Path]
|
||||
40["Path<br>[2228, 2370, 0]"]
|
||||
41["Segment<br>[2228, 2370, 0]"]
|
||||
40["Path<br>[2224, 2366, 0]"]
|
||||
41["Segment<br>[2224, 2366, 0]"]
|
||||
42[Solid2d]
|
||||
end
|
||||
subgraph path50 [Path]
|
||||
50["Path<br>[2766, 2819, 0]"]
|
||||
51["Segment<br>[2766, 2819, 0]"]
|
||||
50["Path<br>[2760, 2813, 0]"]
|
||||
51["Segment<br>[2760, 2813, 0]"]
|
||||
52[Solid2d]
|
||||
end
|
||||
subgraph path53 [Path]
|
||||
53["Path<br>[2830, 2904, 0]"]
|
||||
54["Segment<br>[2830, 2904, 0]"]
|
||||
53["Path<br>[2824, 2898, 0]"]
|
||||
54["Segment<br>[2824, 2898, 0]"]
|
||||
55[Solid2d]
|
||||
end
|
||||
1["Plane<br>[677, 724, 0]"]
|
||||
@ -47,12 +47,12 @@ flowchart LR
|
||||
12["SweepEdge Opposite"]
|
||||
13["SweepEdge Adjacent"]
|
||||
14["Plane<br>[1014, 1031, 0]"]
|
||||
19["Sweep Revolve<br>[1286, 1318, 0]"]
|
||||
19["Sweep Revolve<br>[1286, 1316, 0]"]
|
||||
20[Wall]
|
||||
21[Wall]
|
||||
22["SweepEdge Adjacent"]
|
||||
23["Plane<br>[1553, 1570, 0]"]
|
||||
30["Sweep Revolve<br>[1934, 1966, 0]"]
|
||||
23["Plane<br>[1551, 1568, 0]"]
|
||||
30["Sweep Revolve<br>[1932, 1962, 0]"]
|
||||
31[Wall]
|
||||
32[Wall]
|
||||
33[Wall]
|
||||
@ -61,22 +61,22 @@ flowchart LR
|
||||
36["SweepEdge Adjacent"]
|
||||
37["SweepEdge Adjacent"]
|
||||
38["SweepEdge Adjacent"]
|
||||
39["Plane<br>[2205, 2222, 0]"]
|
||||
43["Sweep Revolve<br>[2413, 2466, 0]"]
|
||||
39["Plane<br>[2201, 2218, 0]"]
|
||||
43["Sweep Revolve<br>[2409, 2460, 0]"]
|
||||
44[Wall]
|
||||
45["Cap Start"]
|
||||
46["Cap End"]
|
||||
47["SweepEdge Opposite"]
|
||||
48["SweepEdge Adjacent"]
|
||||
49["Plane<br>[2712, 2759, 0]"]
|
||||
56["Sweep Extrusion<br>[2924, 2977, 0]"]
|
||||
49["Plane<br>[2706, 2753, 0]"]
|
||||
56["Sweep Extrusion<br>[2918, 2971, 0]"]
|
||||
57[Wall]
|
||||
58["Cap Start"]
|
||||
59["Cap End"]
|
||||
60["SweepEdge Opposite"]
|
||||
61["SweepEdge Adjacent"]
|
||||
62["StartSketchOnPlane<br>[663, 725, 0]"]
|
||||
63["StartSketchOnPlane<br>[2698, 2760, 0]"]
|
||||
63["StartSketchOnPlane<br>[2692, 2754, 0]"]
|
||||
1 --- 2
|
||||
1 --- 5
|
||||
2 --- 3
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -236,18 +236,13 @@ description: Operations executed ball-bearing.kcl
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"axis": {
|
||||
"value": {
|
||||
"type": "String",
|
||||
"value": "X"
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
@ -256,7 +251,200 @@ description: Operations executed ball-bearing.kcl
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
@ -438,18 +626,13 @@ description: Operations executed ball-bearing.kcl
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"axis": {
|
||||
"value": {
|
||||
"type": "String",
|
||||
"value": "X"
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
@ -458,7 +641,200 @@ description: Operations executed ball-bearing.kcl
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
@ -679,6 +1055,22 @@ description: Operations executed ball-bearing.kcl
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "revolve",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"labeledArgs": {
|
||||
"angle": {
|
||||
"value": {
|
||||
@ -692,25 +1084,207 @@ description: Operations executed ball-bearing.kcl
|
||||
},
|
||||
"axis": {
|
||||
"value": {
|
||||
"type": "String",
|
||||
"value": "Y"
|
||||
"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": []
|
||||
}
|
||||
},
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "KclStdLibCall",
|
||||
"name": "",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"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": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"arcDegrees": {
|
||||
|
@ -93,58 +93,58 @@ flowchart LR
|
||||
185[Solid2d]
|
||||
end
|
||||
subgraph path195 [Path]
|
||||
195["Path<br>[2107, 2153, 5]"]
|
||||
196["Segment<br>[2159, 2211, 5]"]
|
||||
197["Segment<br>[2217, 2324, 5]"]
|
||||
198["Segment<br>[2330, 2367, 5]"]
|
||||
199["Segment<br>[2373, 2429, 5]"]
|
||||
200["Segment<br>[2435, 2442, 5]"]
|
||||
195["Path<br>[2105, 2151, 5]"]
|
||||
196["Segment<br>[2157, 2209, 5]"]
|
||||
197["Segment<br>[2215, 2322, 5]"]
|
||||
198["Segment<br>[2328, 2365, 5]"]
|
||||
199["Segment<br>[2371, 2427, 5]"]
|
||||
200["Segment<br>[2433, 2440, 5]"]
|
||||
201[Solid2d]
|
||||
end
|
||||
subgraph path212 [Path]
|
||||
212["Path<br>[2953, 3000, 5]"]
|
||||
213["Segment<br>[3008, 3348, 5]"]
|
||||
214["Segment<br>[3356, 3388, 5]"]
|
||||
215["Segment<br>[3396, 3740, 5]"]
|
||||
216["Segment<br>[3748, 3804, 5]"]
|
||||
217["Segment<br>[3812, 3819, 5]"]
|
||||
212["Path<br>[2949, 2996, 5]"]
|
||||
213["Segment<br>[3004, 3344, 5]"]
|
||||
214["Segment<br>[3352, 3384, 5]"]
|
||||
215["Segment<br>[3392, 3736, 5]"]
|
||||
216["Segment<br>[3744, 3800, 5]"]
|
||||
217["Segment<br>[3808, 3815, 5]"]
|
||||
218[Solid2d]
|
||||
end
|
||||
subgraph path235 [Path]
|
||||
235["Path<br>[2953, 3000, 5]"]
|
||||
236["Segment<br>[3008, 3348, 5]"]
|
||||
237["Segment<br>[3356, 3388, 5]"]
|
||||
238["Segment<br>[3396, 3740, 5]"]
|
||||
239["Segment<br>[3748, 3804, 5]"]
|
||||
240["Segment<br>[3812, 3819, 5]"]
|
||||
235["Path<br>[2949, 2996, 5]"]
|
||||
236["Segment<br>[3004, 3344, 5]"]
|
||||
237["Segment<br>[3352, 3384, 5]"]
|
||||
238["Segment<br>[3392, 3736, 5]"]
|
||||
239["Segment<br>[3744, 3800, 5]"]
|
||||
240["Segment<br>[3808, 3815, 5]"]
|
||||
241[Solid2d]
|
||||
end
|
||||
subgraph path258 [Path]
|
||||
258["Path<br>[4347, 4442, 5]"]
|
||||
259["Segment<br>[4448, 4481, 5]"]
|
||||
260["Segment<br>[4487, 4538, 5]"]
|
||||
261["Segment<br>[4544, 4577, 5]"]
|
||||
262["Segment<br>[4583, 4633, 5]"]
|
||||
263["Segment<br>[4639, 4680, 5]"]
|
||||
264["Segment<br>[4686, 4735, 5]"]
|
||||
265["Segment<br>[4741, 4774, 5]"]
|
||||
266["Segment<br>[4780, 4814, 5]"]
|
||||
267["Segment<br>[4820, 4854, 5]"]
|
||||
268["Segment<br>[4860, 4912, 5]"]
|
||||
269["Segment<br>[4918, 4952, 5]"]
|
||||
270["Segment<br>[4958, 5034, 5]"]
|
||||
271["Segment<br>[5040, 5073, 5]"]
|
||||
272["Segment<br>[5079, 5155, 5]"]
|
||||
273["Segment<br>[5161, 5195, 5]"]
|
||||
274["Segment<br>[5201, 5275, 5]"]
|
||||
275["Segment<br>[5281, 5315, 5]"]
|
||||
276["Segment<br>[5321, 5372, 5]"]
|
||||
277["Segment<br>[5378, 5440, 5]"]
|
||||
278["Segment<br>[5446, 5497, 5]"]
|
||||
279["Segment<br>[5503, 5537, 5]"]
|
||||
280["Segment<br>[5543, 5576, 5]"]
|
||||
281["Segment<br>[5582, 5615, 5]"]
|
||||
282["Segment<br>[5621, 5628, 5]"]
|
||||
258["Path<br>[4343, 4438, 5]"]
|
||||
259["Segment<br>[4444, 4477, 5]"]
|
||||
260["Segment<br>[4483, 4534, 5]"]
|
||||
261["Segment<br>[4540, 4573, 5]"]
|
||||
262["Segment<br>[4579, 4629, 5]"]
|
||||
263["Segment<br>[4635, 4676, 5]"]
|
||||
264["Segment<br>[4682, 4731, 5]"]
|
||||
265["Segment<br>[4737, 4770, 5]"]
|
||||
266["Segment<br>[4776, 4810, 5]"]
|
||||
267["Segment<br>[4816, 4850, 5]"]
|
||||
268["Segment<br>[4856, 4908, 5]"]
|
||||
269["Segment<br>[4914, 4948, 5]"]
|
||||
270["Segment<br>[4954, 5030, 5]"]
|
||||
271["Segment<br>[5036, 5069, 5]"]
|
||||
272["Segment<br>[5075, 5151, 5]"]
|
||||
273["Segment<br>[5157, 5191, 5]"]
|
||||
274["Segment<br>[5197, 5271, 5]"]
|
||||
275["Segment<br>[5277, 5311, 5]"]
|
||||
276["Segment<br>[5317, 5368, 5]"]
|
||||
277["Segment<br>[5374, 5436, 5]"]
|
||||
278["Segment<br>[5442, 5493, 5]"]
|
||||
279["Segment<br>[5499, 5533, 5]"]
|
||||
280["Segment<br>[5539, 5572, 5]"]
|
||||
281["Segment<br>[5578, 5611, 5]"]
|
||||
282["Segment<br>[5617, 5624, 5]"]
|
||||
283[Solid2d]
|
||||
end
|
||||
subgraph path334 [Path]
|
||||
@ -324,7 +324,7 @@ flowchart LR
|
||||
176["Sweep Extrusion<br>[1444, 1478, 5]"]
|
||||
177["Sweep Extrusion<br>[1444, 1478, 5]"]
|
||||
178["Plane<br>[1632, 1649, 5]"]
|
||||
186["Sweep Revolve<br>[1979, 1998, 5]"]
|
||||
186["Sweep Revolve<br>[1979, 1996, 5]"]
|
||||
187[Wall]
|
||||
188[Wall]
|
||||
189[Wall]
|
||||
@ -332,8 +332,8 @@ flowchart LR
|
||||
191["SweepEdge Adjacent"]
|
||||
192["SweepEdge Adjacent"]
|
||||
193["SweepEdge Adjacent"]
|
||||
194["Plane<br>[2084, 2101, 5]"]
|
||||
202["Sweep Revolve<br>[2448, 2467, 5]"]
|
||||
194["Plane<br>[2082, 2099, 5]"]
|
||||
202["Sweep Revolve<br>[2446, 2463, 5]"]
|
||||
203[Wall]
|
||||
204[Wall]
|
||||
205[Wall]
|
||||
@ -342,8 +342,8 @@ flowchart LR
|
||||
208["SweepEdge Adjacent"]
|
||||
209["SweepEdge Adjacent"]
|
||||
210["SweepEdge Adjacent"]
|
||||
211["Plane<br>[2922, 2945, 5]"]
|
||||
219["Sweep Extrusion<br>[3867, 3913, 5]"]
|
||||
211["Plane<br>[2918, 2941, 5]"]
|
||||
219["Sweep Extrusion<br>[3863, 3909, 5]"]
|
||||
220[Wall]
|
||||
221[Wall]
|
||||
222[Wall]
|
||||
@ -358,8 +358,8 @@ flowchart LR
|
||||
231["SweepEdge Adjacent"]
|
||||
232["SweepEdge Opposite"]
|
||||
233["SweepEdge Adjacent"]
|
||||
234["Plane<br>[2922, 2945, 5]"]
|
||||
242["Sweep Extrusion<br>[3867, 3913, 5]"]
|
||||
234["Plane<br>[2918, 2941, 5]"]
|
||||
242["Sweep Extrusion<br>[3863, 3909, 5]"]
|
||||
243[Wall]
|
||||
244[Wall]
|
||||
245[Wall]
|
||||
@ -374,8 +374,8 @@ flowchart LR
|
||||
254["SweepEdge Adjacent"]
|
||||
255["SweepEdge Opposite"]
|
||||
256["SweepEdge Adjacent"]
|
||||
257["Plane<br>[4324, 4341, 5]"]
|
||||
284["Sweep Revolve<br>[5634, 5653, 5]"]
|
||||
257["Plane<br>[4320, 4337, 5]"]
|
||||
284["Sweep Revolve<br>[5630, 5647, 5]"]
|
||||
285[Wall]
|
||||
286[Wall]
|
||||
287[Wall]
|
||||
@ -425,7 +425,7 @@ flowchart LR
|
||||
331["SweepEdge Adjacent"]
|
||||
332["SweepEdge Adjacent"]
|
||||
333["Plane<br>[706, 732, 8]"]
|
||||
345["Sweep Revolve<br>[1182, 1201, 8]"]
|
||||
345["Sweep Revolve<br>[1182, 1199, 8]"]
|
||||
346[Wall]
|
||||
347[Wall]
|
||||
348[Wall]
|
||||
@ -445,7 +445,7 @@ flowchart LR
|
||||
362["SweepEdge Adjacent"]
|
||||
363["SweepEdge Adjacent"]
|
||||
364["Plane<br>[484, 501, 7]"]
|
||||
384["Sweep Revolve<br>[2243, 2295, 7]"]
|
||||
384["Sweep Revolve<br>[2243, 2293, 7]"]
|
||||
385[Wall]
|
||||
386[Wall]
|
||||
387[Wall]
|
||||
@ -500,7 +500,7 @@ flowchart LR
|
||||
436["SweepEdge Opposite"]
|
||||
437["SweepEdge Adjacent"]
|
||||
438["Plane<br>[460, 477, 9]"]
|
||||
455["Sweep Revolve<br>[1486, 1517, 9]"]
|
||||
455["Sweep Revolve<br>[1486, 1515, 9]"]
|
||||
456[Wall]
|
||||
457[Wall]
|
||||
458[Wall]
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -10,118 +10,118 @@ flowchart LR
|
||||
8[Solid2d]
|
||||
end
|
||||
subgraph path18 [Path]
|
||||
18["Path<br>[984, 1028, 0]"]
|
||||
19["Segment<br>[1034, 1053, 0]"]
|
||||
20["Segment<br>[1059, 1093, 0]"]
|
||||
21["Segment<br>[1099, 1183, 0]"]
|
||||
22["Segment<br>[1189, 1241, 0]"]
|
||||
23["Segment<br>[1247, 1331, 0]"]
|
||||
24["Segment<br>[1337, 1389, 0]"]
|
||||
25["Segment<br>[1395, 1477, 0]"]
|
||||
26["Segment<br>[1483, 1523, 0]"]
|
||||
27["Segment<br>[1529, 1548, 0]"]
|
||||
28["Segment<br>[1554, 1607, 0]"]
|
||||
29["Segment<br>[1613, 1695, 0]"]
|
||||
30["Segment<br>[1701, 1791, 0]"]
|
||||
31["Segment<br>[1797, 1881, 0]"]
|
||||
32["Segment<br>[1887, 1977, 0]"]
|
||||
33["Segment<br>[1983, 2067, 0]"]
|
||||
34["Segment<br>[2073, 2129, 0]"]
|
||||
35["Segment<br>[2135, 2142, 0]"]
|
||||
18["Path<br>[982, 1026, 0]"]
|
||||
19["Segment<br>[1032, 1051, 0]"]
|
||||
20["Segment<br>[1057, 1091, 0]"]
|
||||
21["Segment<br>[1097, 1181, 0]"]
|
||||
22["Segment<br>[1187, 1239, 0]"]
|
||||
23["Segment<br>[1245, 1329, 0]"]
|
||||
24["Segment<br>[1335, 1387, 0]"]
|
||||
25["Segment<br>[1393, 1475, 0]"]
|
||||
26["Segment<br>[1481, 1521, 0]"]
|
||||
27["Segment<br>[1527, 1546, 0]"]
|
||||
28["Segment<br>[1552, 1605, 0]"]
|
||||
29["Segment<br>[1611, 1693, 0]"]
|
||||
30["Segment<br>[1699, 1789, 0]"]
|
||||
31["Segment<br>[1795, 1879, 0]"]
|
||||
32["Segment<br>[1885, 1975, 0]"]
|
||||
33["Segment<br>[1981, 2065, 0]"]
|
||||
34["Segment<br>[2071, 2127, 0]"]
|
||||
35["Segment<br>[2133, 2140, 0]"]
|
||||
36[Solid2d]
|
||||
end
|
||||
subgraph path89 [Path]
|
||||
89["Path<br>[2409, 2468, 0]"]
|
||||
90["Segment<br>[2409, 2468, 0]"]
|
||||
89["Path<br>[2407, 2466, 0]"]
|
||||
90["Segment<br>[2407, 2466, 0]"]
|
||||
91[Solid2d]
|
||||
end
|
||||
subgraph path98 [Path]
|
||||
98["Path<br>[2569, 2599, 0]"]
|
||||
99["Segment<br>[2605, 2624, 0]"]
|
||||
100["Segment<br>[2630, 2713, 0]"]
|
||||
101["Segment<br>[2719, 2775, 0]"]
|
||||
102["Segment<br>[2781, 2788, 0]"]
|
||||
98["Path<br>[2567, 2597, 0]"]
|
||||
99["Segment<br>[2603, 2622, 0]"]
|
||||
100["Segment<br>[2628, 2711, 0]"]
|
||||
101["Segment<br>[2717, 2773, 0]"]
|
||||
102["Segment<br>[2779, 2786, 0]"]
|
||||
103[Solid2d]
|
||||
end
|
||||
subgraph path117 [Path]
|
||||
117["Path<br>[3026, 3057, 0]"]
|
||||
118["Segment<br>[3063, 3108, 0]"]
|
||||
119["Segment<br>[3114, 3204, 0]"]
|
||||
120["Segment<br>[3210, 3256, 0]"]
|
||||
121["Segment<br>[3262, 3315, 0]"]
|
||||
122["Segment<br>[3321, 3346, 0]"]
|
||||
123["Segment<br>[3352, 3408, 0]"]
|
||||
124["Segment<br>[3414, 3421, 0]"]
|
||||
117["Path<br>[3024, 3055, 0]"]
|
||||
118["Segment<br>[3061, 3106, 0]"]
|
||||
119["Segment<br>[3112, 3202, 0]"]
|
||||
120["Segment<br>[3208, 3254, 0]"]
|
||||
121["Segment<br>[3260, 3313, 0]"]
|
||||
122["Segment<br>[3319, 3344, 0]"]
|
||||
123["Segment<br>[3350, 3406, 0]"]
|
||||
124["Segment<br>[3412, 3419, 0]"]
|
||||
125[Solid2d]
|
||||
end
|
||||
subgraph path140 [Path]
|
||||
140["Path<br>[3503, 3530, 0]"]
|
||||
141["Segment<br>[3536, 3556, 0]"]
|
||||
142["Segment<br>[3562, 3605, 0]"]
|
||||
143["Segment<br>[3611, 3629, 0]"]
|
||||
144["Segment<br>[3635, 3655, 0]"]
|
||||
145["Segment<br>[3661, 3681, 0]"]
|
||||
146["Segment<br>[3687, 3735, 0]"]
|
||||
147["Segment<br>[3741, 3797, 0]"]
|
||||
148["Segment<br>[3803, 3810, 0]"]
|
||||
140["Path<br>[3499, 3526, 0]"]
|
||||
141["Segment<br>[3532, 3552, 0]"]
|
||||
142["Segment<br>[3558, 3601, 0]"]
|
||||
143["Segment<br>[3607, 3625, 0]"]
|
||||
144["Segment<br>[3631, 3651, 0]"]
|
||||
145["Segment<br>[3657, 3677, 0]"]
|
||||
146["Segment<br>[3683, 3731, 0]"]
|
||||
147["Segment<br>[3737, 3793, 0]"]
|
||||
148["Segment<br>[3799, 3806, 0]"]
|
||||
149[Solid2d]
|
||||
end
|
||||
subgraph path166 [Path]
|
||||
166["Path<br>[3916, 3975, 0]"]
|
||||
167["Segment<br>[3916, 3975, 0]"]
|
||||
166["Path<br>[3910, 3969, 0]"]
|
||||
167["Segment<br>[3910, 3969, 0]"]
|
||||
168[Solid2d]
|
||||
end
|
||||
subgraph path169 [Path]
|
||||
169["Path<br>[3986, 4023, 0]"]
|
||||
170["Segment<br>[3986, 4023, 0]"]
|
||||
169["Path<br>[3980, 4017, 0]"]
|
||||
170["Segment<br>[3980, 4017, 0]"]
|
||||
171[Solid2d]
|
||||
end
|
||||
subgraph path178 [Path]
|
||||
178["Path<br>[4165, 4203, 0]"]
|
||||
179["Segment<br>[4165, 4203, 0]"]
|
||||
178["Path<br>[4159, 4197, 0]"]
|
||||
179["Segment<br>[4159, 4197, 0]"]
|
||||
180[Solid2d]
|
||||
end
|
||||
subgraph path192 [Path]
|
||||
192["Path<br>[4476, 4514, 0]"]
|
||||
193["Segment<br>[4476, 4514, 0]"]
|
||||
192["Path<br>[4470, 4508, 0]"]
|
||||
193["Segment<br>[4470, 4508, 0]"]
|
||||
194[Solid2d]
|
||||
end
|
||||
subgraph path203 [Path]
|
||||
203["Path<br>[4766, 4818, 0]"]
|
||||
204["Segment<br>[4766, 4818, 0]"]
|
||||
203["Path<br>[4760, 4812, 0]"]
|
||||
204["Segment<br>[4760, 4812, 0]"]
|
||||
205[Solid2d]
|
||||
end
|
||||
subgraph path213 [Path]
|
||||
213["Path<br>[5065, 5109, 0]"]
|
||||
214["Segment<br>[5115, 5155, 0]"]
|
||||
215["Segment<br>[5161, 5180, 0]"]
|
||||
216["Segment<br>[5186, 5205, 0]"]
|
||||
217["Segment<br>[5211, 5230, 0]"]
|
||||
218["Segment<br>[5236, 5261, 0]"]
|
||||
219["Segment<br>[5267, 5407, 0]"]
|
||||
220["Segment<br>[5413, 5469, 0]"]
|
||||
221["Segment<br>[5475, 5482, 0]"]
|
||||
213["Path<br>[5059, 5103, 0]"]
|
||||
214["Segment<br>[5109, 5149, 0]"]
|
||||
215["Segment<br>[5155, 5174, 0]"]
|
||||
216["Segment<br>[5180, 5199, 0]"]
|
||||
217["Segment<br>[5205, 5224, 0]"]
|
||||
218["Segment<br>[5230, 5255, 0]"]
|
||||
219["Segment<br>[5261, 5401, 0]"]
|
||||
220["Segment<br>[5407, 5463, 0]"]
|
||||
221["Segment<br>[5469, 5476, 0]"]
|
||||
222[Solid2d]
|
||||
end
|
||||
subgraph path239 [Path]
|
||||
239["Path<br>[5614, 5643, 0]"]
|
||||
240["Segment<br>[5649, 5670, 0]"]
|
||||
241["Segment<br>[5676, 5707, 0]"]
|
||||
242["Segment<br>[5713, 5744, 0]"]
|
||||
243["Segment<br>[5750, 5782, 0]"]
|
||||
244["Segment<br>[5788, 5810, 0]"]
|
||||
245["Segment<br>[5816, 5837, 0]"]
|
||||
246["Segment<br>[5843, 5868, 0]"]
|
||||
247["Segment<br>[5874, 5905, 0]"]
|
||||
248["Segment<br>[5911, 5943, 0]"]
|
||||
249["Segment<br>[5949, 5981, 0]"]
|
||||
250["Segment<br>[5987, 6008, 0]"]
|
||||
251["Segment<br>[6014, 6070, 0]"]
|
||||
252["Segment<br>[6076, 6083, 0]"]
|
||||
239["Path<br>[5606, 5635, 0]"]
|
||||
240["Segment<br>[5641, 5662, 0]"]
|
||||
241["Segment<br>[5668, 5699, 0]"]
|
||||
242["Segment<br>[5705, 5736, 0]"]
|
||||
243["Segment<br>[5742, 5774, 0]"]
|
||||
244["Segment<br>[5780, 5802, 0]"]
|
||||
245["Segment<br>[5808, 5829, 0]"]
|
||||
246["Segment<br>[5835, 5860, 0]"]
|
||||
247["Segment<br>[5866, 5897, 0]"]
|
||||
248["Segment<br>[5903, 5935, 0]"]
|
||||
249["Segment<br>[5941, 5973, 0]"]
|
||||
250["Segment<br>[5979, 6000, 0]"]
|
||||
251["Segment<br>[6006, 6062, 0]"]
|
||||
252["Segment<br>[6068, 6075, 0]"]
|
||||
253[Solid2d]
|
||||
end
|
||||
1["Plane<br>[241, 258, 0]"]
|
||||
9["Sweep Revolve<br>[674, 706, 0]"]
|
||||
9["Sweep Revolve<br>[674, 704, 0]"]
|
||||
10[Wall]
|
||||
11[Wall]
|
||||
12[Wall]
|
||||
@ -129,8 +129,8 @@ flowchart LR
|
||||
14["SweepEdge Adjacent"]
|
||||
15["SweepEdge Adjacent"]
|
||||
16["SweepEdge Adjacent"]
|
||||
17["Plane<br>[955, 978, 0]"]
|
||||
37["Sweep Extrusion<br>[2148, 2170, 0]"]
|
||||
17["Plane<br>[953, 976, 0]"]
|
||||
37["Sweep Extrusion<br>[2146, 2168, 0]"]
|
||||
38[Wall]
|
||||
39[Wall]
|
||||
40[Wall]
|
||||
@ -181,14 +181,14 @@ flowchart LR
|
||||
85["SweepEdge Adjacent"]
|
||||
86["SweepEdge Opposite"]
|
||||
87["SweepEdge Adjacent"]
|
||||
88["Plane<br>[2375, 2402, 0]"]
|
||||
92["Sweep Extrusion<br>[2483, 2517, 0]"]
|
||||
88["Plane<br>[2373, 2400, 0]"]
|
||||
92["Sweep Extrusion<br>[2481, 2515, 0]"]
|
||||
93[Wall]
|
||||
94["Cap Start"]
|
||||
95["Cap End"]
|
||||
96["SweepEdge Opposite"]
|
||||
97["SweepEdge Adjacent"]
|
||||
104["Sweep Extrusion<br>[2937, 2972, 0]"]
|
||||
104["Sweep Extrusion<br>[2935, 2970, 0]"]
|
||||
105[Wall]
|
||||
106[Wall]
|
||||
107[Wall]
|
||||
@ -198,10 +198,10 @@ flowchart LR
|
||||
111["SweepEdge Adjacent"]
|
||||
112["SweepEdge Opposite"]
|
||||
113["SweepEdge Adjacent"]
|
||||
114["Sweep Extrusion<br>[2937, 2972, 0]"]
|
||||
115["Sweep Extrusion<br>[2937, 2972, 0]"]
|
||||
116["Plane<br>[3003, 3020, 0]"]
|
||||
126["Sweep Revolve<br>[3427, 3446, 0]"]
|
||||
114["Sweep Extrusion<br>[2935, 2970, 0]"]
|
||||
115["Sweep Extrusion<br>[2935, 2970, 0]"]
|
||||
116["Plane<br>[3001, 3018, 0]"]
|
||||
126["Sweep Revolve<br>[3425, 3442, 0]"]
|
||||
127[Wall]
|
||||
128[Wall]
|
||||
129[Wall]
|
||||
@ -214,8 +214,8 @@ flowchart LR
|
||||
136["SweepEdge Adjacent"]
|
||||
137["SweepEdge Adjacent"]
|
||||
138["SweepEdge Adjacent"]
|
||||
139["Plane<br>[3480, 3497, 0]"]
|
||||
150["Sweep Revolve<br>[3816, 3835, 0]"]
|
||||
139["Plane<br>[3476, 3493, 0]"]
|
||||
150["Sweep Revolve<br>[3812, 3829, 0]"]
|
||||
151[Wall]
|
||||
152[Wall]
|
||||
153[Wall]
|
||||
@ -230,40 +230,40 @@ flowchart LR
|
||||
162["SweepEdge Adjacent"]
|
||||
163["SweepEdge Adjacent"]
|
||||
164["SweepEdge Adjacent"]
|
||||
165["Plane<br>[3879, 3909, 0]"]
|
||||
172["Sweep Extrusion<br>[4042, 4076, 0]"]
|
||||
165["Plane<br>[3873, 3903, 0]"]
|
||||
172["Sweep Extrusion<br>[4036, 4070, 0]"]
|
||||
173[Wall]
|
||||
174["Cap Start"]
|
||||
175["Cap End"]
|
||||
176["SweepEdge Opposite"]
|
||||
177["SweepEdge Adjacent"]
|
||||
181["Sweep Extrusion<br>[4352, 4387, 0]"]
|
||||
181["Sweep Extrusion<br>[4346, 4381, 0]"]
|
||||
182[Wall]
|
||||
183["SweepEdge Opposite"]
|
||||
184["SweepEdge Adjacent"]
|
||||
185["Sweep Extrusion<br>[4352, 4387, 0]"]
|
||||
186["Sweep Extrusion<br>[4352, 4387, 0]"]
|
||||
187["Sweep Extrusion<br>[4352, 4387, 0]"]
|
||||
188["Sweep Extrusion<br>[4352, 4387, 0]"]
|
||||
189["Sweep Extrusion<br>[4352, 4387, 0]"]
|
||||
190["Sweep Extrusion<br>[4352, 4387, 0]"]
|
||||
191["Sweep Extrusion<br>[4352, 4387, 0]"]
|
||||
195["Sweep Extrusion<br>[4663, 4698, 0]"]
|
||||
185["Sweep Extrusion<br>[4346, 4381, 0]"]
|
||||
186["Sweep Extrusion<br>[4346, 4381, 0]"]
|
||||
187["Sweep Extrusion<br>[4346, 4381, 0]"]
|
||||
188["Sweep Extrusion<br>[4346, 4381, 0]"]
|
||||
189["Sweep Extrusion<br>[4346, 4381, 0]"]
|
||||
190["Sweep Extrusion<br>[4346, 4381, 0]"]
|
||||
191["Sweep Extrusion<br>[4346, 4381, 0]"]
|
||||
195["Sweep Extrusion<br>[4657, 4692, 0]"]
|
||||
196[Wall]
|
||||
197["SweepEdge Opposite"]
|
||||
198["SweepEdge Adjacent"]
|
||||
199["Sweep Extrusion<br>[4663, 4698, 0]"]
|
||||
200["Sweep Extrusion<br>[4663, 4698, 0]"]
|
||||
201["Sweep Extrusion<br>[4663, 4698, 0]"]
|
||||
202["Plane<br>[4743, 4760, 0]"]
|
||||
206["Sweep Extrusion<br>[4914, 4955, 0]"]
|
||||
199["Sweep Extrusion<br>[4657, 4692, 0]"]
|
||||
200["Sweep Extrusion<br>[4657, 4692, 0]"]
|
||||
201["Sweep Extrusion<br>[4657, 4692, 0]"]
|
||||
202["Plane<br>[4737, 4754, 0]"]
|
||||
206["Sweep Extrusion<br>[4908, 4949, 0]"]
|
||||
207[Wall]
|
||||
208["Cap Start"]
|
||||
209["Cap End"]
|
||||
210["SweepEdge Opposite"]
|
||||
211["SweepEdge Adjacent"]
|
||||
212["Plane<br>[5042, 5059, 0]"]
|
||||
223["Sweep Revolve<br>[5488, 5507, 0]"]
|
||||
212["Plane<br>[5036, 5053, 0]"]
|
||||
223["Sweep Revolve<br>[5482, 5499, 0]"]
|
||||
224[Wall]
|
||||
225[Wall]
|
||||
226[Wall]
|
||||
@ -278,8 +278,8 @@ flowchart LR
|
||||
235["SweepEdge Adjacent"]
|
||||
236["SweepEdge Adjacent"]
|
||||
237["SweepEdge Adjacent"]
|
||||
238["Plane<br>[5562, 5607, 0]"]
|
||||
254["Sweep Extrusion<br>[6097, 6142, 0]"]
|
||||
238["Plane<br>[5554, 5599, 0]"]
|
||||
254["Sweep Extrusion<br>[6089, 6134, 0]"]
|
||||
255[Wall]
|
||||
256[Wall]
|
||||
257[Wall]
|
||||
@ -318,12 +318,12 @@ flowchart LR
|
||||
290["SweepEdge Adjacent"]
|
||||
291["SweepEdge Opposite"]
|
||||
292["SweepEdge Adjacent"]
|
||||
293["StartSketchOnPlane<br>[2361, 2403, 0]"]
|
||||
294["StartSketchOnFace<br>[2531, 2563, 0]"]
|
||||
295["StartSketchOnPlane<br>[3865, 3910, 0]"]
|
||||
296["StartSketchOnFace<br>[4127, 4159, 0]"]
|
||||
297["StartSketchOnFace<br>[4438, 4470, 0]"]
|
||||
298["StartSketchOnPlane<br>[5548, 5608, 0]"]
|
||||
293["StartSketchOnPlane<br>[2359, 2401, 0]"]
|
||||
294["StartSketchOnFace<br>[2529, 2561, 0]"]
|
||||
295["StartSketchOnPlane<br>[3859, 3904, 0]"]
|
||||
296["StartSketchOnFace<br>[4121, 4153, 0]"]
|
||||
297["StartSketchOnFace<br>[4432, 4464, 0]"]
|
||||
298["StartSketchOnPlane<br>[5540, 5600, 0]"]
|
||||
1 --- 2
|
||||
2 --- 3
|
||||
2 --- 4
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -19,6 +19,14 @@ description: Operations executed french-press.kcl
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "revolve",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"angle": {
|
||||
"value": {
|
||||
@ -38,15 +46,106 @@ description: Operations executed french-press.kcl
|
||||
},
|
||||
"axis": {
|
||||
"value": {
|
||||
"type": "String",
|
||||
"value": "Y"
|
||||
"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": []
|
||||
}
|
||||
},
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "KclStdLibCall",
|
||||
"name": "",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
@ -55,7 +154,99 @@ description: Operations executed french-press.kcl
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
@ -661,18 +852,117 @@ description: Operations executed french-press.kcl
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "revolve",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"axis": {
|
||||
"value": {
|
||||
"type": "String",
|
||||
"value": "y"
|
||||
"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": []
|
||||
}
|
||||
},
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "KclStdLibCall",
|
||||
"name": "",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
@ -681,7 +971,83 @@ description: Operations executed french-press.kcl
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
@ -699,18 +1065,117 @@ description: Operations executed french-press.kcl
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "revolve",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"axis": {
|
||||
"value": {
|
||||
"type": "String",
|
||||
"value": "y"
|
||||
"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": []
|
||||
}
|
||||
},
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "KclStdLibCall",
|
||||
"name": "",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
@ -719,7 +1184,83 @@ description: Operations executed french-press.kcl
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
@ -1431,18 +1972,117 @@ description: Operations executed french-press.kcl
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "revolve",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"axis": {
|
||||
"value": {
|
||||
"type": "String",
|
||||
"value": "y"
|
||||
"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": []
|
||||
}
|
||||
},
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "KclStdLibCall",
|
||||
"name": "",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
@ -1451,7 +2091,83 @@ description: Operations executed french-press.kcl
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
|
@ -4593,9 +4593,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1086,
|
||||
"end": 1092,
|
||||
"start": 1086,
|
||||
"commentStart": 1084,
|
||||
"end": 1090,
|
||||
"start": 1084,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge1"
|
||||
},
|
||||
@ -4613,9 +4613,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1234,
|
||||
"end": 1240,
|
||||
"start": 1234,
|
||||
"commentStart": 1232,
|
||||
"end": 1238,
|
||||
"start": 1232,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge2"
|
||||
},
|
||||
@ -4633,9 +4633,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1382,
|
||||
"end": 1388,
|
||||
"start": 1382,
|
||||
"commentStart": 1380,
|
||||
"end": 1386,
|
||||
"start": 1380,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge3"
|
||||
},
|
||||
@ -4653,9 +4653,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1514,
|
||||
"end": 1522,
|
||||
"start": 1514,
|
||||
"commentStart": 1512,
|
||||
"end": 1520,
|
||||
"start": 1512,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edgeLen"
|
||||
},
|
||||
@ -4673,9 +4673,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1600,
|
||||
"end": 1606,
|
||||
"start": 1600,
|
||||
"commentStart": 1598,
|
||||
"end": 1604,
|
||||
"start": 1598,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge4"
|
||||
},
|
||||
@ -4693,9 +4693,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1784,
|
||||
"end": 1790,
|
||||
"start": 1784,
|
||||
"commentStart": 1782,
|
||||
"end": 1788,
|
||||
"start": 1782,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge5"
|
||||
},
|
||||
@ -4713,9 +4713,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1970,
|
||||
"end": 1976,
|
||||
"start": 1970,
|
||||
"commentStart": 1968,
|
||||
"end": 1974,
|
||||
"start": 1968,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge6"
|
||||
},
|
||||
@ -4769,9 +4769,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
5.7
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1086,
|
||||
"end": 1092,
|
||||
"start": 1086,
|
||||
"commentStart": 1084,
|
||||
"end": 1090,
|
||||
"start": 1084,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge1"
|
||||
},
|
||||
@ -4819,9 +4819,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
0.3732
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1234,
|
||||
"end": 1240,
|
||||
"start": 1234,
|
||||
"commentStart": 1232,
|
||||
"end": 1238,
|
||||
"start": 1232,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge2"
|
||||
},
|
||||
@ -4869,9 +4869,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
-0.966
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1382,
|
||||
"end": 1388,
|
||||
"start": 1382,
|
||||
"commentStart": 1380,
|
||||
"end": 1386,
|
||||
"start": 1380,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge3"
|
||||
},
|
||||
@ -4919,9 +4919,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
-0.133
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1514,
|
||||
"end": 1522,
|
||||
"start": 1514,
|
||||
"commentStart": 1512,
|
||||
"end": 1520,
|
||||
"start": 1512,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edgeLen"
|
||||
},
|
||||
@ -4963,9 +4963,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
-0.033
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1600,
|
||||
"end": 1606,
|
||||
"start": 1600,
|
||||
"commentStart": 1598,
|
||||
"end": 1604,
|
||||
"start": 1598,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge4"
|
||||
},
|
||||
@ -5013,9 +5013,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
-0.1134
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1784,
|
||||
"end": 1790,
|
||||
"start": 1784,
|
||||
"commentStart": 1782,
|
||||
"end": 1788,
|
||||
"start": 1782,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge5"
|
||||
},
|
||||
@ -5063,9 +5063,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
-0.1789
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1970,
|
||||
"end": 1976,
|
||||
"start": 1970,
|
||||
"commentStart": 1968,
|
||||
"end": 1974,
|
||||
"start": 1968,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge6"
|
||||
},
|
||||
@ -5252,9 +5252,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1086,
|
||||
"end": 1092,
|
||||
"start": 1086,
|
||||
"commentStart": 1084,
|
||||
"end": 1090,
|
||||
"start": 1084,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge1"
|
||||
},
|
||||
@ -5272,9 +5272,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1234,
|
||||
"end": 1240,
|
||||
"start": 1234,
|
||||
"commentStart": 1232,
|
||||
"end": 1238,
|
||||
"start": 1232,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge2"
|
||||
},
|
||||
@ -5292,9 +5292,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1382,
|
||||
"end": 1388,
|
||||
"start": 1382,
|
||||
"commentStart": 1380,
|
||||
"end": 1386,
|
||||
"start": 1380,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge3"
|
||||
},
|
||||
@ -5312,9 +5312,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1514,
|
||||
"end": 1522,
|
||||
"start": 1514,
|
||||
"commentStart": 1512,
|
||||
"end": 1520,
|
||||
"start": 1512,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edgeLen"
|
||||
},
|
||||
@ -5332,9 +5332,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1600,
|
||||
"end": 1606,
|
||||
"start": 1600,
|
||||
"commentStart": 1598,
|
||||
"end": 1604,
|
||||
"start": 1598,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge4"
|
||||
},
|
||||
@ -5352,9 +5352,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1784,
|
||||
"end": 1790,
|
||||
"start": 1784,
|
||||
"commentStart": 1782,
|
||||
"end": 1788,
|
||||
"start": 1782,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge5"
|
||||
},
|
||||
@ -5372,9 +5372,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1970,
|
||||
"end": 1976,
|
||||
"start": 1970,
|
||||
"commentStart": 1968,
|
||||
"end": 1974,
|
||||
"start": 1968,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge6"
|
||||
},
|
||||
@ -5428,9 +5428,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
5.7
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1086,
|
||||
"end": 1092,
|
||||
"start": 1086,
|
||||
"commentStart": 1084,
|
||||
"end": 1090,
|
||||
"start": 1084,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge1"
|
||||
},
|
||||
@ -5478,9 +5478,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
0.3732
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1234,
|
||||
"end": 1240,
|
||||
"start": 1234,
|
||||
"commentStart": 1232,
|
||||
"end": 1238,
|
||||
"start": 1232,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge2"
|
||||
},
|
||||
@ -5528,9 +5528,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
-0.966
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1382,
|
||||
"end": 1388,
|
||||
"start": 1382,
|
||||
"commentStart": 1380,
|
||||
"end": 1386,
|
||||
"start": 1380,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge3"
|
||||
},
|
||||
@ -5578,9 +5578,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
-0.133
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1514,
|
||||
"end": 1522,
|
||||
"start": 1514,
|
||||
"commentStart": 1512,
|
||||
"end": 1520,
|
||||
"start": 1512,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edgeLen"
|
||||
},
|
||||
@ -5622,9 +5622,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
-0.033
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1600,
|
||||
"end": 1606,
|
||||
"start": 1600,
|
||||
"commentStart": 1598,
|
||||
"end": 1604,
|
||||
"start": 1598,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge4"
|
||||
},
|
||||
@ -5672,9 +5672,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
-0.1134
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1784,
|
||||
"end": 1790,
|
||||
"start": 1784,
|
||||
"commentStart": 1782,
|
||||
"end": 1788,
|
||||
"start": 1782,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge5"
|
||||
},
|
||||
@ -5722,9 +5722,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
-0.1789
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1970,
|
||||
"end": 1976,
|
||||
"start": 1970,
|
||||
"commentStart": 1968,
|
||||
"end": 1974,
|
||||
"start": 1968,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge6"
|
||||
},
|
||||
@ -5911,9 +5911,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1086,
|
||||
"end": 1092,
|
||||
"start": 1086,
|
||||
"commentStart": 1084,
|
||||
"end": 1090,
|
||||
"start": 1084,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge1"
|
||||
},
|
||||
@ -5931,9 +5931,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1234,
|
||||
"end": 1240,
|
||||
"start": 1234,
|
||||
"commentStart": 1232,
|
||||
"end": 1238,
|
||||
"start": 1232,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge2"
|
||||
},
|
||||
@ -5951,9 +5951,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1382,
|
||||
"end": 1388,
|
||||
"start": 1382,
|
||||
"commentStart": 1380,
|
||||
"end": 1386,
|
||||
"start": 1380,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge3"
|
||||
},
|
||||
@ -5971,9 +5971,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1514,
|
||||
"end": 1522,
|
||||
"start": 1514,
|
||||
"commentStart": 1512,
|
||||
"end": 1520,
|
||||
"start": 1512,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edgeLen"
|
||||
},
|
||||
@ -5991,9 +5991,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1600,
|
||||
"end": 1606,
|
||||
"start": 1600,
|
||||
"commentStart": 1598,
|
||||
"end": 1604,
|
||||
"start": 1598,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge4"
|
||||
},
|
||||
@ -6011,9 +6011,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1784,
|
||||
"end": 1790,
|
||||
"start": 1784,
|
||||
"commentStart": 1782,
|
||||
"end": 1788,
|
||||
"start": 1782,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge5"
|
||||
},
|
||||
@ -6031,9 +6031,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1970,
|
||||
"end": 1976,
|
||||
"start": 1970,
|
||||
"commentStart": 1968,
|
||||
"end": 1974,
|
||||
"start": 1968,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge6"
|
||||
},
|
||||
@ -6087,9 +6087,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
5.7
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1086,
|
||||
"end": 1092,
|
||||
"start": 1086,
|
||||
"commentStart": 1084,
|
||||
"end": 1090,
|
||||
"start": 1084,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge1"
|
||||
},
|
||||
@ -6137,9 +6137,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
0.3732
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1234,
|
||||
"end": 1240,
|
||||
"start": 1234,
|
||||
"commentStart": 1232,
|
||||
"end": 1238,
|
||||
"start": 1232,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge2"
|
||||
},
|
||||
@ -6187,9 +6187,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
-0.966
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1382,
|
||||
"end": 1388,
|
||||
"start": 1382,
|
||||
"commentStart": 1380,
|
||||
"end": 1386,
|
||||
"start": 1380,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge3"
|
||||
},
|
||||
@ -6237,9 +6237,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
-0.133
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1514,
|
||||
"end": 1522,
|
||||
"start": 1514,
|
||||
"commentStart": 1512,
|
||||
"end": 1520,
|
||||
"start": 1512,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edgeLen"
|
||||
},
|
||||
@ -6281,9 +6281,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
-0.033
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1600,
|
||||
"end": 1606,
|
||||
"start": 1600,
|
||||
"commentStart": 1598,
|
||||
"end": 1604,
|
||||
"start": 1598,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge4"
|
||||
},
|
||||
@ -6331,9 +6331,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
-0.1134
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1784,
|
||||
"end": 1790,
|
||||
"start": 1784,
|
||||
"commentStart": 1782,
|
||||
"end": 1788,
|
||||
"start": 1782,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge5"
|
||||
},
|
||||
@ -6381,9 +6381,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
-0.1789
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1970,
|
||||
"end": 1976,
|
||||
"start": 1970,
|
||||
"commentStart": 1968,
|
||||
"end": 1974,
|
||||
"start": 1968,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge6"
|
||||
},
|
||||
@ -6570,9 +6570,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1086,
|
||||
"end": 1092,
|
||||
"start": 1086,
|
||||
"commentStart": 1084,
|
||||
"end": 1090,
|
||||
"start": 1084,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge1"
|
||||
},
|
||||
@ -6590,9 +6590,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1234,
|
||||
"end": 1240,
|
||||
"start": 1234,
|
||||
"commentStart": 1232,
|
||||
"end": 1238,
|
||||
"start": 1232,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge2"
|
||||
},
|
||||
@ -6610,9 +6610,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1382,
|
||||
"end": 1388,
|
||||
"start": 1382,
|
||||
"commentStart": 1380,
|
||||
"end": 1386,
|
||||
"start": 1380,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge3"
|
||||
},
|
||||
@ -6630,9 +6630,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1514,
|
||||
"end": 1522,
|
||||
"start": 1514,
|
||||
"commentStart": 1512,
|
||||
"end": 1520,
|
||||
"start": 1512,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edgeLen"
|
||||
},
|
||||
@ -6650,9 +6650,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1600,
|
||||
"end": 1606,
|
||||
"start": 1600,
|
||||
"commentStart": 1598,
|
||||
"end": 1604,
|
||||
"start": 1598,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge4"
|
||||
},
|
||||
@ -6670,9 +6670,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1784,
|
||||
"end": 1790,
|
||||
"start": 1784,
|
||||
"commentStart": 1782,
|
||||
"end": 1788,
|
||||
"start": 1782,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge5"
|
||||
},
|
||||
@ -6690,9 +6690,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 1970,
|
||||
"end": 1976,
|
||||
"start": 1970,
|
||||
"commentStart": 1968,
|
||||
"end": 1974,
|
||||
"start": 1968,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge6"
|
||||
},
|
||||
@ -6746,9 +6746,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
5.7
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1086,
|
||||
"end": 1092,
|
||||
"start": 1086,
|
||||
"commentStart": 1084,
|
||||
"end": 1090,
|
||||
"start": 1084,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge1"
|
||||
},
|
||||
@ -6796,9 +6796,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
0.3732
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1234,
|
||||
"end": 1240,
|
||||
"start": 1234,
|
||||
"commentStart": 1232,
|
||||
"end": 1238,
|
||||
"start": 1232,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge2"
|
||||
},
|
||||
@ -6846,9 +6846,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
-0.966
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1382,
|
||||
"end": 1388,
|
||||
"start": 1382,
|
||||
"commentStart": 1380,
|
||||
"end": 1386,
|
||||
"start": 1380,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge3"
|
||||
},
|
||||
@ -6896,9 +6896,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
-0.133
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1514,
|
||||
"end": 1522,
|
||||
"start": 1514,
|
||||
"commentStart": 1512,
|
||||
"end": 1520,
|
||||
"start": 1512,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edgeLen"
|
||||
},
|
||||
@ -6940,9 +6940,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
-0.033
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1600,
|
||||
"end": 1606,
|
||||
"start": 1600,
|
||||
"commentStart": 1598,
|
||||
"end": 1604,
|
||||
"start": 1598,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge4"
|
||||
},
|
||||
@ -6990,9 +6990,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
-0.1134
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1784,
|
||||
"end": 1790,
|
||||
"start": 1784,
|
||||
"commentStart": 1782,
|
||||
"end": 1788,
|
||||
"start": 1782,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge5"
|
||||
},
|
||||
@ -7040,9 +7040,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
-0.1789
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 1970,
|
||||
"end": 1976,
|
||||
"start": 1970,
|
||||
"commentStart": 1968,
|
||||
"end": 1974,
|
||||
"start": 1968,
|
||||
"type": "TagDeclarator",
|
||||
"value": "edge6"
|
||||
},
|
||||
@ -8045,9 +8045,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 3198,
|
||||
"end": 3203,
|
||||
"start": 3198,
|
||||
"commentStart": 3196,
|
||||
"end": 3201,
|
||||
"start": 3196,
|
||||
"type": "TagDeclarator",
|
||||
"value": "seg1"
|
||||
},
|
||||
@ -8115,9 +8115,9 @@ description: Variables in memory after executing french-press.kcl
|
||||
1.11
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 3198,
|
||||
"end": 3203,
|
||||
"start": 3198,
|
||||
"commentStart": 3196,
|
||||
"end": 3201,
|
||||
"start": 3196,
|
||||
"type": "TagDeclarator",
|
||||
"value": "seg1"
|
||||
},
|
||||
|
@ -19,66 +19,66 @@ flowchart LR
|
||||
34[Solid2d]
|
||||
end
|
||||
subgraph path54 [Path]
|
||||
54["Path<br>[4792, 4872, 0]"]
|
||||
55["Segment<br>[4792, 4872, 0]"]
|
||||
54["Path<br>[4776, 4856, 0]"]
|
||||
55["Segment<br>[4776, 4856, 0]"]
|
||||
56[Solid2d]
|
||||
end
|
||||
subgraph path58 [Path]
|
||||
58["Path<br>[4423, 4448, 0]"]
|
||||
59["Segment<br>[4456, 4497, 0]"]
|
||||
60["Segment<br>[4505, 4546, 0]"]
|
||||
61["Segment<br>[4554, 4607, 0]"]
|
||||
62["Segment<br>[4615, 4636, 0]"]
|
||||
58["Path<br>[4407, 4432, 0]"]
|
||||
59["Segment<br>[4440, 4481, 0]"]
|
||||
60["Segment<br>[4489, 4530, 0]"]
|
||||
61["Segment<br>[4538, 4591, 0]"]
|
||||
62["Segment<br>[4599, 4620, 0]"]
|
||||
63[Solid2d]
|
||||
end
|
||||
subgraph path65 [Path]
|
||||
65["Path<br>[2768, 2855, 0]"]
|
||||
66["Segment<br>[2863, 2942, 0]"]
|
||||
67["Segment<br>[2950, 3056, 0]"]
|
||||
68["Segment<br>[3064, 3146, 0]"]
|
||||
69["Segment<br>[3154, 3200, 0]"]
|
||||
70["Segment<br>[3208, 3287, 0]"]
|
||||
71["Segment<br>[3295, 3403, 0]"]
|
||||
72["Segment<br>[3411, 3490, 0]"]
|
||||
73["Segment<br>[3498, 3544, 0]"]
|
||||
74["Segment<br>[3552, 3634, 0]"]
|
||||
75["Segment<br>[3642, 3751, 0]"]
|
||||
76["Segment<br>[3759, 3838, 0]"]
|
||||
77["Segment<br>[3846, 3911, 0]"]
|
||||
78["Segment<br>[3919, 4001, 0]"]
|
||||
79["Segment<br>[4009, 4118, 0]"]
|
||||
80["Segment<br>[4126, 4208, 0]"]
|
||||
81["Segment<br>[4216, 4265, 0]"]
|
||||
82["Segment<br>[4273, 4280, 0]"]
|
||||
65["Path<br>[2752, 2839, 0]"]
|
||||
66["Segment<br>[2847, 2926, 0]"]
|
||||
67["Segment<br>[2934, 3040, 0]"]
|
||||
68["Segment<br>[3048, 3130, 0]"]
|
||||
69["Segment<br>[3138, 3184, 0]"]
|
||||
70["Segment<br>[3192, 3271, 0]"]
|
||||
71["Segment<br>[3279, 3387, 0]"]
|
||||
72["Segment<br>[3395, 3474, 0]"]
|
||||
73["Segment<br>[3482, 3528, 0]"]
|
||||
74["Segment<br>[3536, 3618, 0]"]
|
||||
75["Segment<br>[3626, 3735, 0]"]
|
||||
76["Segment<br>[3743, 3822, 0]"]
|
||||
77["Segment<br>[3830, 3895, 0]"]
|
||||
78["Segment<br>[3903, 3985, 0]"]
|
||||
79["Segment<br>[3993, 4102, 0]"]
|
||||
80["Segment<br>[4110, 4192, 0]"]
|
||||
81["Segment<br>[4200, 4249, 0]"]
|
||||
82["Segment<br>[4257, 4264, 0]"]
|
||||
83[Solid2d]
|
||||
end
|
||||
subgraph path100 [Path]
|
||||
100["Path<br>[4423, 4448, 0]"]
|
||||
101["Segment<br>[4456, 4497, 0]"]
|
||||
102["Segment<br>[4505, 4546, 0]"]
|
||||
103["Segment<br>[4554, 4607, 0]"]
|
||||
104["Segment<br>[4615, 4636, 0]"]
|
||||
100["Path<br>[4407, 4432, 0]"]
|
||||
101["Segment<br>[4440, 4481, 0]"]
|
||||
102["Segment<br>[4489, 4530, 0]"]
|
||||
103["Segment<br>[4538, 4591, 0]"]
|
||||
104["Segment<br>[4599, 4620, 0]"]
|
||||
105[Solid2d]
|
||||
end
|
||||
subgraph path106 [Path]
|
||||
106["Path<br>[2768, 2855, 0]"]
|
||||
107["Segment<br>[2863, 2942, 0]"]
|
||||
108["Segment<br>[2950, 3056, 0]"]
|
||||
109["Segment<br>[3064, 3146, 0]"]
|
||||
110["Segment<br>[3154, 3200, 0]"]
|
||||
111["Segment<br>[3208, 3287, 0]"]
|
||||
112["Segment<br>[3295, 3403, 0]"]
|
||||
113["Segment<br>[3411, 3490, 0]"]
|
||||
114["Segment<br>[3498, 3544, 0]"]
|
||||
115["Segment<br>[3552, 3634, 0]"]
|
||||
116["Segment<br>[3642, 3751, 0]"]
|
||||
117["Segment<br>[3759, 3838, 0]"]
|
||||
118["Segment<br>[3846, 3911, 0]"]
|
||||
119["Segment<br>[3919, 4001, 0]"]
|
||||
120["Segment<br>[4009, 4118, 0]"]
|
||||
121["Segment<br>[4126, 4208, 0]"]
|
||||
122["Segment<br>[4216, 4265, 0]"]
|
||||
123["Segment<br>[4273, 4280, 0]"]
|
||||
106["Path<br>[2752, 2839, 0]"]
|
||||
107["Segment<br>[2847, 2926, 0]"]
|
||||
108["Segment<br>[2934, 3040, 0]"]
|
||||
109["Segment<br>[3048, 3130, 0]"]
|
||||
110["Segment<br>[3138, 3184, 0]"]
|
||||
111["Segment<br>[3192, 3271, 0]"]
|
||||
112["Segment<br>[3279, 3387, 0]"]
|
||||
113["Segment<br>[3395, 3474, 0]"]
|
||||
114["Segment<br>[3482, 3528, 0]"]
|
||||
115["Segment<br>[3536, 3618, 0]"]
|
||||
116["Segment<br>[3626, 3735, 0]"]
|
||||
117["Segment<br>[3743, 3822, 0]"]
|
||||
118["Segment<br>[3830, 3895, 0]"]
|
||||
119["Segment<br>[3903, 3985, 0]"]
|
||||
120["Segment<br>[3993, 4102, 0]"]
|
||||
121["Segment<br>[4110, 4192, 0]"]
|
||||
122["Segment<br>[4200, 4249, 0]"]
|
||||
123["Segment<br>[4257, 4264, 0]"]
|
||||
124[Solid2d]
|
||||
end
|
||||
1["Plane<br>[1246, 1284, 0]"]
|
||||
@ -100,8 +100,8 @@ flowchart LR
|
||||
24["SweepEdge Adjacent"]
|
||||
25["SweepEdge Opposite"]
|
||||
26["SweepEdge Adjacent"]
|
||||
27["Plane<br>[1756, 1794, 0]"]
|
||||
35["Sweep Revolve<br>[1743, 1825, 0]"]
|
||||
27["Plane<br>[1740, 1778, 0]"]
|
||||
35["Sweep Revolve<br>[1727, 1809, 0]"]
|
||||
36[Wall]
|
||||
37[Wall]
|
||||
38[Wall]
|
||||
@ -119,10 +119,10 @@ flowchart LR
|
||||
50["SweepEdge Adjacent"]
|
||||
51["SweepEdge Opposite"]
|
||||
52["SweepEdge Adjacent"]
|
||||
53["Plane<br>[4769, 4786, 0]"]
|
||||
57["Plane<br>[4395, 4415, 0]"]
|
||||
64["Plane<br>[2740, 2760, 0]"]
|
||||
84["Sweep Extrusion<br>[5215, 5257, 0]"]
|
||||
53["Plane<br>[4753, 4770, 0]"]
|
||||
57["Plane<br>[4379, 4399, 0]"]
|
||||
64["Plane<br>[2724, 2744, 0]"]
|
||||
84["Sweep Extrusion<br>[5199, 5241, 0]"]
|
||||
85[Wall]
|
||||
86[Wall]
|
||||
87[Wall]
|
||||
@ -137,8 +137,8 @@ flowchart LR
|
||||
96["SweepEdge Adjacent"]
|
||||
97["SweepEdge Opposite"]
|
||||
98["SweepEdge Adjacent"]
|
||||
99["Plane<br>[5751, 5786, 0]"]
|
||||
125["Sweep Extrusion<br>[5869, 5920, 0]"]
|
||||
99["Plane<br>[5735, 5770, 0]"]
|
||||
125["Sweep Extrusion<br>[5853, 5904, 0]"]
|
||||
126[Wall]
|
||||
127[Wall]
|
||||
128[Wall]
|
||||
@ -153,18 +153,18 @@ flowchart LR
|
||||
137["SweepEdge Adjacent"]
|
||||
138["SweepEdge Opposite"]
|
||||
139["SweepEdge Adjacent"]
|
||||
140["EdgeCut Fillet<br>[5320, 5659, 0]"]
|
||||
141["EdgeCut Fillet<br>[5320, 5659, 0]"]
|
||||
142["EdgeCut Fillet<br>[5320, 5659, 0]"]
|
||||
143["EdgeCut Fillet<br>[5320, 5659, 0]"]
|
||||
144["EdgeCut Fillet<br>[5984, 6328, 0]"]
|
||||
145["EdgeCut Fillet<br>[5984, 6328, 0]"]
|
||||
146["EdgeCut Fillet<br>[5984, 6328, 0]"]
|
||||
147["EdgeCut Fillet<br>[5984, 6328, 0]"]
|
||||
140["EdgeCut Fillet<br>[5304, 5643, 0]"]
|
||||
141["EdgeCut Fillet<br>[5304, 5643, 0]"]
|
||||
142["EdgeCut Fillet<br>[5304, 5643, 0]"]
|
||||
143["EdgeCut Fillet<br>[5304, 5643, 0]"]
|
||||
144["EdgeCut Fillet<br>[5968, 6312, 0]"]
|
||||
145["EdgeCut Fillet<br>[5968, 6312, 0]"]
|
||||
146["EdgeCut Fillet<br>[5968, 6312, 0]"]
|
||||
147["EdgeCut Fillet<br>[5968, 6312, 0]"]
|
||||
148["StartSketchOnPlane<br>[893, 913, 0]"]
|
||||
149["StartSketchOnPlane<br>[893, 913, 0]"]
|
||||
150["StartSketchOnPlane<br>[4395, 4415, 0]"]
|
||||
151["StartSketchOnPlane<br>[2740, 2760, 0]"]
|
||||
150["StartSketchOnPlane<br>[4379, 4399, 0]"]
|
||||
151["StartSketchOnPlane<br>[2724, 2744, 0]"]
|
||||
1 --- 2
|
||||
2 --- 3
|
||||
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": "UserDefinedFunctionCall",
|
||||
"name": "revolve",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"labeledArgs": {
|
||||
"angle": {
|
||||
"value": {
|
||||
@ -308,10 +324,7 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
|
||||
"value": {
|
||||
"type": "Object",
|
||||
"value": {
|
||||
"custom": {
|
||||
"type": "Object",
|
||||
"value": {
|
||||
"axis": {
|
||||
"direction": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
@ -374,25 +387,122 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "KclStdLibCall",
|
||||
"name": "",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"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": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"arcDegrees": {
|
||||
@ -1117,8 +1227,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "magnetBase",
|
||||
"functionSourceRange": [
|
||||
4364,
|
||||
4706,
|
||||
4348,
|
||||
4690,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
@ -1144,8 +1254,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "magnetCenterCutout",
|
||||
"functionSourceRange": [
|
||||
2713,
|
||||
4304,
|
||||
2697,
|
||||
4288,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
@ -1370,8 +1480,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "magnetBase",
|
||||
"functionSourceRange": [
|
||||
4364,
|
||||
4706,
|
||||
4348,
|
||||
4690,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
@ -1397,8 +1507,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "magnetCenterCutout",
|
||||
"functionSourceRange": [
|
||||
2713,
|
||||
4304,
|
||||
2697,
|
||||
4288,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
|
@ -6,10 +6,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
"axis000": {
|
||||
"type": "Object",
|
||||
"value": {
|
||||
"custom": {
|
||||
"type": "Object",
|
||||
"value": {
|
||||
"axis": {
|
||||
"direction": {
|
||||
"type": "MixedArray",
|
||||
"value": [
|
||||
{
|
||||
@ -72,8 +69,6 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"basePlateCorners": {
|
||||
"type": "HomArray",
|
||||
@ -10856,9 +10851,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 4488,
|
||||
"end": 4496,
|
||||
"start": 4488,
|
||||
"commentStart": 4472,
|
||||
"end": 4480,
|
||||
"start": 4472,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line001"
|
||||
},
|
||||
@ -10869,9 +10864,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 4537,
|
||||
"end": 4545,
|
||||
"start": 4537,
|
||||
"commentStart": 4521,
|
||||
"end": 4529,
|
||||
"start": 4521,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line002"
|
||||
},
|
||||
@ -10882,9 +10877,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 4598,
|
||||
"end": 4606,
|
||||
"start": 4598,
|
||||
"commentStart": 4582,
|
||||
"end": 4590,
|
||||
"start": 4582,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line003"
|
||||
},
|
||||
@ -10895,9 +10890,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 4627,
|
||||
"end": 4635,
|
||||
"start": 4627,
|
||||
"commentStart": 4611,
|
||||
"end": 4619,
|
||||
"start": 4611,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line004"
|
||||
},
|
||||
@ -10918,9 +10913,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
0.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4488,
|
||||
"end": 4496,
|
||||
"start": 4488,
|
||||
"commentStart": 4472,
|
||||
"end": 4480,
|
||||
"start": 4472,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line001"
|
||||
},
|
||||
@ -10943,9 +10938,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
0.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4537,
|
||||
"end": 4545,
|
||||
"start": 4537,
|
||||
"commentStart": 4521,
|
||||
"end": 4529,
|
||||
"start": 4521,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line002"
|
||||
},
|
||||
@ -10968,9 +10963,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
42.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4598,
|
||||
"end": 4606,
|
||||
"start": 4598,
|
||||
"commentStart": 4582,
|
||||
"end": 4590,
|
||||
"start": 4582,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line003"
|
||||
},
|
||||
@ -10993,9 +10988,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
42.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4627,
|
||||
"end": 4635,
|
||||
"start": 4627,
|
||||
"commentStart": 4611,
|
||||
"end": 4619,
|
||||
"start": 4611,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line004"
|
||||
},
|
||||
@ -11100,9 +11095,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 4488,
|
||||
"end": 4496,
|
||||
"start": 4488,
|
||||
"commentStart": 4472,
|
||||
"end": 4480,
|
||||
"start": 4472,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line001"
|
||||
},
|
||||
@ -11113,9 +11108,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 4537,
|
||||
"end": 4545,
|
||||
"start": 4537,
|
||||
"commentStart": 4521,
|
||||
"end": 4529,
|
||||
"start": 4521,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line002"
|
||||
},
|
||||
@ -11126,9 +11121,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 4598,
|
||||
"end": 4606,
|
||||
"start": 4598,
|
||||
"commentStart": 4582,
|
||||
"end": 4590,
|
||||
"start": 4582,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line003"
|
||||
},
|
||||
@ -11139,9 +11134,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 4627,
|
||||
"end": 4635,
|
||||
"start": 4627,
|
||||
"commentStart": 4611,
|
||||
"end": 4619,
|
||||
"start": 4611,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line004"
|
||||
},
|
||||
@ -11162,9 +11157,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
0.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4488,
|
||||
"end": 4496,
|
||||
"start": 4488,
|
||||
"commentStart": 4472,
|
||||
"end": 4480,
|
||||
"start": 4472,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line001"
|
||||
},
|
||||
@ -11187,9 +11182,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
0.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4537,
|
||||
"end": 4545,
|
||||
"start": 4537,
|
||||
"commentStart": 4521,
|
||||
"end": 4529,
|
||||
"start": 4521,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line002"
|
||||
},
|
||||
@ -11212,9 +11207,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
42.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4598,
|
||||
"end": 4606,
|
||||
"start": 4598,
|
||||
"commentStart": 4582,
|
||||
"end": 4590,
|
||||
"start": 4582,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line003"
|
||||
},
|
||||
@ -11237,9 +11232,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
42.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4627,
|
||||
"end": 4635,
|
||||
"start": 4627,
|
||||
"commentStart": 4611,
|
||||
"end": 4619,
|
||||
"start": 4611,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line004"
|
||||
},
|
||||
@ -11374,9 +11369,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 4488,
|
||||
"end": 4496,
|
||||
"start": 4488,
|
||||
"commentStart": 4472,
|
||||
"end": 4480,
|
||||
"start": 4472,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line001"
|
||||
},
|
||||
@ -11387,9 +11382,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 4537,
|
||||
"end": 4545,
|
||||
"start": 4537,
|
||||
"commentStart": 4521,
|
||||
"end": 4529,
|
||||
"start": 4521,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line002"
|
||||
},
|
||||
@ -11400,9 +11395,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 4598,
|
||||
"end": 4606,
|
||||
"start": 4598,
|
||||
"commentStart": 4582,
|
||||
"end": 4590,
|
||||
"start": 4582,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line003"
|
||||
},
|
||||
@ -11413,9 +11408,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 4627,
|
||||
"end": 4635,
|
||||
"start": 4627,
|
||||
"commentStart": 4611,
|
||||
"end": 4619,
|
||||
"start": 4611,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line004"
|
||||
},
|
||||
@ -11436,9 +11431,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
0.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4488,
|
||||
"end": 4496,
|
||||
"start": 4488,
|
||||
"commentStart": 4472,
|
||||
"end": 4480,
|
||||
"start": 4472,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line001"
|
||||
},
|
||||
@ -11461,9 +11456,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
0.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4537,
|
||||
"end": 4545,
|
||||
"start": 4537,
|
||||
"commentStart": 4521,
|
||||
"end": 4529,
|
||||
"start": 4521,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line002"
|
||||
},
|
||||
@ -11486,9 +11481,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
42.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4598,
|
||||
"end": 4606,
|
||||
"start": 4598,
|
||||
"commentStart": 4582,
|
||||
"end": 4590,
|
||||
"start": 4582,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line003"
|
||||
},
|
||||
@ -11511,9 +11506,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
42.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4627,
|
||||
"end": 4635,
|
||||
"start": 4627,
|
||||
"commentStart": 4611,
|
||||
"end": 4619,
|
||||
"start": 4611,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line004"
|
||||
},
|
||||
@ -11618,9 +11613,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 4488,
|
||||
"end": 4496,
|
||||
"start": 4488,
|
||||
"commentStart": 4472,
|
||||
"end": 4480,
|
||||
"start": 4472,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line001"
|
||||
},
|
||||
@ -11631,9 +11626,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 4537,
|
||||
"end": 4545,
|
||||
"start": 4537,
|
||||
"commentStart": 4521,
|
||||
"end": 4529,
|
||||
"start": 4521,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line002"
|
||||
},
|
||||
@ -11644,9 +11639,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 4598,
|
||||
"end": 4606,
|
||||
"start": 4598,
|
||||
"commentStart": 4582,
|
||||
"end": 4590,
|
||||
"start": 4582,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line003"
|
||||
},
|
||||
@ -11657,9 +11652,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
"id": "[uuid]",
|
||||
"sourceRange": [],
|
||||
"tag": {
|
||||
"commentStart": 4627,
|
||||
"end": 4635,
|
||||
"start": 4627,
|
||||
"commentStart": 4611,
|
||||
"end": 4619,
|
||||
"start": 4611,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line004"
|
||||
},
|
||||
@ -11680,9 +11675,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
0.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4488,
|
||||
"end": 4496,
|
||||
"start": 4488,
|
||||
"commentStart": 4472,
|
||||
"end": 4480,
|
||||
"start": 4472,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line001"
|
||||
},
|
||||
@ -11705,9 +11700,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
0.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4537,
|
||||
"end": 4545,
|
||||
"start": 4537,
|
||||
"commentStart": 4521,
|
||||
"end": 4529,
|
||||
"start": 4521,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line002"
|
||||
},
|
||||
@ -11730,9 +11725,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
42.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4598,
|
||||
"end": 4606,
|
||||
"start": 4598,
|
||||
"commentStart": 4582,
|
||||
"end": 4590,
|
||||
"start": 4582,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line003"
|
||||
},
|
||||
@ -11755,9 +11750,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
42.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4627,
|
||||
"end": 4635,
|
||||
"start": 4627,
|
||||
"commentStart": 4611,
|
||||
"end": 4619,
|
||||
"start": 4611,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line004"
|
||||
},
|
||||
@ -11896,9 +11891,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
0.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4488,
|
||||
"end": 4496,
|
||||
"start": 4488,
|
||||
"commentStart": 4472,
|
||||
"end": 4480,
|
||||
"start": 4472,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line001"
|
||||
},
|
||||
@ -11921,9 +11916,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
0.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4537,
|
||||
"end": 4545,
|
||||
"start": 4537,
|
||||
"commentStart": 4521,
|
||||
"end": 4529,
|
||||
"start": 4521,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line002"
|
||||
},
|
||||
@ -11946,9 +11941,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
42.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4598,
|
||||
"end": 4606,
|
||||
"start": 4598,
|
||||
"commentStart": 4582,
|
||||
"end": 4590,
|
||||
"start": 4582,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line003"
|
||||
},
|
||||
@ -11971,9 +11966,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
42.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4627,
|
||||
"end": 4635,
|
||||
"start": 4627,
|
||||
"commentStart": 4611,
|
||||
"end": 4619,
|
||||
"start": 4611,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line004"
|
||||
},
|
||||
@ -12075,9 +12070,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
0.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4488,
|
||||
"end": 4496,
|
||||
"start": 4488,
|
||||
"commentStart": 4472,
|
||||
"end": 4480,
|
||||
"start": 4472,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line001"
|
||||
},
|
||||
@ -12100,9 +12095,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
0.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4537,
|
||||
"end": 4545,
|
||||
"start": 4537,
|
||||
"commentStart": 4521,
|
||||
"end": 4529,
|
||||
"start": 4521,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line002"
|
||||
},
|
||||
@ -12125,9 +12120,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
42.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4598,
|
||||
"end": 4606,
|
||||
"start": 4598,
|
||||
"commentStart": 4582,
|
||||
"end": 4590,
|
||||
"start": 4582,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line003"
|
||||
},
|
||||
@ -12150,9 +12145,9 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc
|
||||
42.0
|
||||
],
|
||||
"tag": {
|
||||
"commentStart": 4627,
|
||||
"end": 4635,
|
||||
"start": 4627,
|
||||
"commentStart": 4611,
|
||||
"end": 4619,
|
||||
"start": 4611,
|
||||
"type": "TagDeclarator",
|
||||
"value": "line004"
|
||||
},
|
||||
|
@ -37,8 +37,8 @@ flowchart LR
|
||||
24["SweepEdge Adjacent"]
|
||||
25["SweepEdge Opposite"]
|
||||
26["SweepEdge Adjacent"]
|
||||
27["Plane<br>[1633, 1671, 0]"]
|
||||
35["Sweep Revolve<br>[1620, 1702, 0]"]
|
||||
27["Plane<br>[1617, 1655, 0]"]
|
||||
35["Sweep Revolve<br>[1604, 1686, 0]"]
|
||||
36[Wall]
|
||||
37[Wall]
|
||||
38[Wall]
|
||||
|
@ -1399,33 +1399,17 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
"key": {
|
||||
"commentStart": 1485,
|
||||
"end": 0,
|
||||
"name": "custom",
|
||||
"name": "direction",
|
||||
"start": 0,
|
||||
"type": "Identifier"
|
||||
},
|
||||
"start": 0,
|
||||
"type": "ObjectProperty",
|
||||
"value": {
|
||||
"commentStart": 1494,
|
||||
"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,
|
||||
"commentStart": 1497,
|
||||
"elements": [
|
||||
{
|
||||
"commentStart": 1508,
|
||||
"commentStart": 1498,
|
||||
"end": 0,
|
||||
"raw": "0.0",
|
||||
"start": 0,
|
||||
@ -1437,7 +1421,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
}
|
||||
},
|
||||
{
|
||||
"commentStart": 1513,
|
||||
"commentStart": 1503,
|
||||
"end": 0,
|
||||
"raw": "1.0",
|
||||
"start": 0,
|
||||
@ -1456,10 +1440,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
}
|
||||
},
|
||||
{
|
||||
"commentStart": 1523,
|
||||
"commentStart": 1511,
|
||||
"end": 0,
|
||||
"key": {
|
||||
"commentStart": 1523,
|
||||
"commentStart": 1511,
|
||||
"end": 0,
|
||||
"name": "origin",
|
||||
"start": 0,
|
||||
@ -1468,14 +1452,14 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
"start": 0,
|
||||
"type": "ObjectProperty",
|
||||
"value": {
|
||||
"commentStart": 1532,
|
||||
"commentStart": 1520,
|
||||
"elements": [
|
||||
{
|
||||
"abs_path": false,
|
||||
"commentStart": 1533,
|
||||
"commentStart": 1521,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 1533,
|
||||
"commentStart": 1521,
|
||||
"end": 0,
|
||||
"name": "cornerRadius",
|
||||
"start": 0,
|
||||
@ -1488,10 +1472,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
},
|
||||
{
|
||||
"abs_path": false,
|
||||
"commentStart": 1547,
|
||||
"commentStart": 1535,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 1547,
|
||||
"commentStart": 1535,
|
||||
"end": 0,
|
||||
"name": "cornerRadius",
|
||||
"start": 0,
|
||||
@ -1513,12 +1497,6 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
"start": 0,
|
||||
"type": "ObjectExpression",
|
||||
"type": "ObjectExpression"
|
||||
}
|
||||
}
|
||||
],
|
||||
"start": 0,
|
||||
"type": "ObjectExpression",
|
||||
"type": "ObjectExpression"
|
||||
},
|
||||
"start": 0,
|
||||
"type": "VariableDeclarator"
|
||||
@ -1535,12 +1513,12 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
"type": "VariableDeclaration"
|
||||
},
|
||||
{
|
||||
"commentStart": 1566,
|
||||
"commentStart": 1550,
|
||||
"declaration": {
|
||||
"commentStart": 1605,
|
||||
"commentStart": 1589,
|
||||
"end": 0,
|
||||
"id": {
|
||||
"commentStart": 1605,
|
||||
"commentStart": 1589,
|
||||
"end": 0,
|
||||
"name": "singleCorner",
|
||||
"start": 0,
|
||||
@ -1551,7 +1529,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 1674,
|
||||
"commentStart": 1658,
|
||||
"end": 0,
|
||||
"name": "angle",
|
||||
"start": 0,
|
||||
@ -1559,7 +1537,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
},
|
||||
"arg": {
|
||||
"argument": {
|
||||
"commentStart": 1683,
|
||||
"commentStart": 1667,
|
||||
"end": 0,
|
||||
"raw": "90",
|
||||
"start": 0,
|
||||
@ -1570,7 +1548,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
"suffix": "None"
|
||||
}
|
||||
},
|
||||
"commentStart": 1682,
|
||||
"commentStart": 1666,
|
||||
"end": 0,
|
||||
"operator": "-",
|
||||
"start": 0,
|
||||
@ -1581,7 +1559,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 1687,
|
||||
"commentStart": 1671,
|
||||
"end": 0,
|
||||
"name": "axis",
|
||||
"start": 0,
|
||||
@ -1589,10 +1567,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
},
|
||||
"arg": {
|
||||
"abs_path": false,
|
||||
"commentStart": 1694,
|
||||
"commentStart": 1678,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 1694,
|
||||
"commentStart": 1678,
|
||||
"end": 0,
|
||||
"name": "axis000",
|
||||
"start": 0,
|
||||
@ -1607,10 +1585,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
],
|
||||
"callee": {
|
||||
"abs_path": false,
|
||||
"commentStart": 1620,
|
||||
"commentStart": 1604,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 1620,
|
||||
"commentStart": 1604,
|
||||
"end": 0,
|
||||
"name": "revolve",
|
||||
"start": 0,
|
||||
@ -1620,7 +1598,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
"start": 0,
|
||||
"type": "Name"
|
||||
},
|
||||
"commentStart": 1620,
|
||||
"commentStart": 1604,
|
||||
"end": 0,
|
||||
"start": 0,
|
||||
"type": "CallExpressionKw",
|
||||
@ -1632,7 +1610,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 1649,
|
||||
"commentStart": 1633,
|
||||
"end": 0,
|
||||
"name": "offset",
|
||||
"start": 0,
|
||||
@ -1640,10 +1618,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
},
|
||||
"arg": {
|
||||
"abs_path": false,
|
||||
"commentStart": 1658,
|
||||
"commentStart": 1642,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 1658,
|
||||
"commentStart": 1642,
|
||||
"end": 0,
|
||||
"name": "cornerRadius",
|
||||
"start": 0,
|
||||
@ -1658,10 +1636,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
],
|
||||
"callee": {
|
||||
"abs_path": false,
|
||||
"commentStart": 1633,
|
||||
"commentStart": 1617,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 1633,
|
||||
"commentStart": 1617,
|
||||
"end": 0,
|
||||
"name": "offsetPlane",
|
||||
"start": 0,
|
||||
@ -1671,17 +1649,17 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
"start": 0,
|
||||
"type": "Name"
|
||||
},
|
||||
"commentStart": 1633,
|
||||
"commentStart": 1617,
|
||||
"end": 0,
|
||||
"start": 0,
|
||||
"type": "CallExpressionKw",
|
||||
"type": "CallExpressionKw",
|
||||
"unlabeled": {
|
||||
"abs_path": false,
|
||||
"commentStart": 1645,
|
||||
"commentStart": 1629,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 1645,
|
||||
"commentStart": 1629,
|
||||
"end": 0,
|
||||
"name": "YZ",
|
||||
"start": 0,
|
||||
@ -1696,10 +1674,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
],
|
||||
"callee": {
|
||||
"abs_path": false,
|
||||
"commentStart": 1628,
|
||||
"commentStart": 1612,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 1628,
|
||||
"commentStart": 1612,
|
||||
"end": 0,
|
||||
"name": "face",
|
||||
"start": 0,
|
||||
@ -1709,7 +1687,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
"start": 0,
|
||||
"type": "Name"
|
||||
},
|
||||
"commentStart": 1628,
|
||||
"commentStart": 1612,
|
||||
"end": 0,
|
||||
"start": 0,
|
||||
"type": "CallExpression",
|
||||
@ -1731,12 +1709,12 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
"type": "VariableDeclaration"
|
||||
},
|
||||
{
|
||||
"commentStart": 1702,
|
||||
"commentStart": 1686,
|
||||
"declaration": {
|
||||
"commentStart": 1737,
|
||||
"commentStart": 1721,
|
||||
"end": 0,
|
||||
"id": {
|
||||
"commentStart": 1737,
|
||||
"commentStart": 1721,
|
||||
"end": 0,
|
||||
"name": "corners",
|
||||
"start": 0,
|
||||
@ -1747,14 +1725,14 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 1784,
|
||||
"commentStart": 1768,
|
||||
"end": 0,
|
||||
"name": "arcDegrees",
|
||||
"start": 0,
|
||||
"type": "Identifier"
|
||||
},
|
||||
"arg": {
|
||||
"commentStart": 1797,
|
||||
"commentStart": 1781,
|
||||
"end": 0,
|
||||
"raw": "360",
|
||||
"start": 0,
|
||||
@ -1769,17 +1747,17 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 1804,
|
||||
"commentStart": 1788,
|
||||
"end": 0,
|
||||
"name": "axis",
|
||||
"start": 0,
|
||||
"type": "Identifier"
|
||||
},
|
||||
"arg": {
|
||||
"commentStart": 1811,
|
||||
"commentStart": 1795,
|
||||
"elements": [
|
||||
{
|
||||
"commentStart": 1812,
|
||||
"commentStart": 1796,
|
||||
"end": 0,
|
||||
"raw": "0",
|
||||
"start": 0,
|
||||
@ -1791,7 +1769,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
}
|
||||
},
|
||||
{
|
||||
"commentStart": 1815,
|
||||
"commentStart": 1799,
|
||||
"end": 0,
|
||||
"raw": "0",
|
||||
"start": 0,
|
||||
@ -1803,7 +1781,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
}
|
||||
},
|
||||
{
|
||||
"commentStart": 1818,
|
||||
"commentStart": 1802,
|
||||
"end": 0,
|
||||
"raw": "1",
|
||||
"start": 0,
|
||||
@ -1824,24 +1802,24 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 1824,
|
||||
"commentStart": 1808,
|
||||
"end": 0,
|
||||
"name": "center",
|
||||
"start": 0,
|
||||
"type": "Identifier"
|
||||
},
|
||||
"arg": {
|
||||
"commentStart": 1833,
|
||||
"commentStart": 1817,
|
||||
"elements": [
|
||||
{
|
||||
"commentStart": 1834,
|
||||
"commentStart": 1818,
|
||||
"end": 0,
|
||||
"left": {
|
||||
"abs_path": false,
|
||||
"commentStart": 1834,
|
||||
"commentStart": 1818,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 1834,
|
||||
"commentStart": 1818,
|
||||
"end": 0,
|
||||
"name": "binLength",
|
||||
"start": 0,
|
||||
@ -1854,7 +1832,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
},
|
||||
"operator": "/",
|
||||
"right": {
|
||||
"commentStart": 1846,
|
||||
"commentStart": 1830,
|
||||
"end": 0,
|
||||
"raw": "2",
|
||||
"start": 0,
|
||||
@ -1870,14 +1848,14 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
"type": "BinaryExpression"
|
||||
},
|
||||
{
|
||||
"commentStart": 1849,
|
||||
"commentStart": 1833,
|
||||
"end": 0,
|
||||
"left": {
|
||||
"abs_path": false,
|
||||
"commentStart": 1849,
|
||||
"commentStart": 1833,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 1849,
|
||||
"commentStart": 1833,
|
||||
"end": 0,
|
||||
"name": "binLength",
|
||||
"start": 0,
|
||||
@ -1890,7 +1868,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
},
|
||||
"operator": "/",
|
||||
"right": {
|
||||
"commentStart": 1861,
|
||||
"commentStart": 1845,
|
||||
"end": 0,
|
||||
"raw": "2",
|
||||
"start": 0,
|
||||
@ -1906,7 +1884,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
"type": "BinaryExpression"
|
||||
},
|
||||
{
|
||||
"commentStart": 1864,
|
||||
"commentStart": 1848,
|
||||
"end": 0,
|
||||
"raw": "0",
|
||||
"start": 0,
|
||||
@ -1927,14 +1905,14 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 1870,
|
||||
"commentStart": 1854,
|
||||
"end": 0,
|
||||
"name": "instances",
|
||||
"start": 0,
|
||||
"type": "Identifier"
|
||||
},
|
||||
"arg": {
|
||||
"commentStart": 1882,
|
||||
"commentStart": 1866,
|
||||
"end": 0,
|
||||
"raw": "4",
|
||||
"start": 0,
|
||||
@ -1949,14 +1927,14 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 1887,
|
||||
"commentStart": 1871,
|
||||
"end": 0,
|
||||
"name": "rotateDuplicates",
|
||||
"start": 0,
|
||||
"type": "Identifier"
|
||||
},
|
||||
"arg": {
|
||||
"commentStart": 1906,
|
||||
"commentStart": 1890,
|
||||
"end": 0,
|
||||
"raw": "true",
|
||||
"start": 0,
|
||||
@ -1968,10 +1946,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
],
|
||||
"callee": {
|
||||
"abs_path": false,
|
||||
"commentStart": 1747,
|
||||
"commentStart": 1731,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 1747,
|
||||
"commentStart": 1731,
|
||||
"end": 0,
|
||||
"name": "patternCircular3d",
|
||||
"start": 0,
|
||||
@ -1981,17 +1959,17 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
"start": 0,
|
||||
"type": "Name"
|
||||
},
|
||||
"commentStart": 1747,
|
||||
"commentStart": 1731,
|
||||
"end": 0,
|
||||
"start": 0,
|
||||
"type": "CallExpressionKw",
|
||||
"type": "CallExpressionKw",
|
||||
"unlabeled": {
|
||||
"abs_path": false,
|
||||
"commentStart": 1768,
|
||||
"commentStart": 1752,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 1768,
|
||||
"commentStart": 1752,
|
||||
"end": 0,
|
||||
"name": "singleCorner",
|
||||
"start": 0,
|
||||
@ -2018,12 +1996,12 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
"type": "VariableDeclaration"
|
||||
},
|
||||
{
|
||||
"commentStart": 1913,
|
||||
"commentStart": 1897,
|
||||
"declaration": {
|
||||
"commentStart": 1959,
|
||||
"commentStart": 1943,
|
||||
"end": 0,
|
||||
"id": {
|
||||
"commentStart": 1959,
|
||||
"commentStart": 1943,
|
||||
"end": 0,
|
||||
"name": "basePlateSides",
|
||||
"start": 0,
|
||||
@ -2036,17 +2014,17 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 2014,
|
||||
"commentStart": 1998,
|
||||
"end": 0,
|
||||
"name": "axis",
|
||||
"start": 0,
|
||||
"type": "Identifier"
|
||||
},
|
||||
"arg": {
|
||||
"commentStart": 2021,
|
||||
"commentStart": 2005,
|
||||
"elements": [
|
||||
{
|
||||
"commentStart": 2022,
|
||||
"commentStart": 2006,
|
||||
"end": 0,
|
||||
"raw": "1.0",
|
||||
"start": 0,
|
||||
@ -2058,7 +2036,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
}
|
||||
},
|
||||
{
|
||||
"commentStart": 2027,
|
||||
"commentStart": 2011,
|
||||
"end": 0,
|
||||
"raw": "0.0",
|
||||
"start": 0,
|
||||
@ -2070,7 +2048,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
}
|
||||
},
|
||||
{
|
||||
"commentStart": 2032,
|
||||
"commentStart": 2016,
|
||||
"end": 0,
|
||||
"raw": "0.0",
|
||||
"start": 0,
|
||||
@ -2091,7 +2069,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 2045,
|
||||
"commentStart": 2029,
|
||||
"end": 0,
|
||||
"name": "instances",
|
||||
"start": 0,
|
||||
@ -2099,10 +2077,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
},
|
||||
"arg": {
|
||||
"abs_path": false,
|
||||
"commentStart": 2057,
|
||||
"commentStart": 2041,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 2057,
|
||||
"commentStart": 2041,
|
||||
"end": 0,
|
||||
"name": "countBinWidth",
|
||||
"start": 0,
|
||||
@ -2117,7 +2095,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 2079,
|
||||
"commentStart": 2063,
|
||||
"end": 0,
|
||||
"name": "distance",
|
||||
"start": 0,
|
||||
@ -2125,10 +2103,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
},
|
||||
"arg": {
|
||||
"abs_path": false,
|
||||
"commentStart": 2090,
|
||||
"commentStart": 2074,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 2090,
|
||||
"commentStart": 2074,
|
||||
"end": 0,
|
||||
"name": "binLength",
|
||||
"start": 0,
|
||||
@ -2143,10 +2121,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
],
|
||||
"callee": {
|
||||
"abs_path": false,
|
||||
"commentStart": 1976,
|
||||
"commentStart": 1960,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 1976,
|
||||
"commentStart": 1960,
|
||||
"end": 0,
|
||||
"name": "patternLinear3d",
|
||||
"start": 0,
|
||||
@ -2156,17 +2134,17 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
"start": 0,
|
||||
"type": "Name"
|
||||
},
|
||||
"commentStart": 1976,
|
||||
"commentStart": 1960,
|
||||
"end": 0,
|
||||
"start": 0,
|
||||
"type": "CallExpressionKw",
|
||||
"type": "CallExpressionKw",
|
||||
"unlabeled": {
|
||||
"abs_path": false,
|
||||
"commentStart": 2000,
|
||||
"commentStart": 1984,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 2000,
|
||||
"commentStart": 1984,
|
||||
"end": 0,
|
||||
"name": "sides",
|
||||
"start": 0,
|
||||
@ -2183,17 +2161,17 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 2129,
|
||||
"commentStart": 2113,
|
||||
"end": 0,
|
||||
"name": "axis",
|
||||
"start": 0,
|
||||
"type": "Identifier"
|
||||
},
|
||||
"arg": {
|
||||
"commentStart": 2136,
|
||||
"commentStart": 2120,
|
||||
"elements": [
|
||||
{
|
||||
"commentStart": 2137,
|
||||
"commentStart": 2121,
|
||||
"end": 0,
|
||||
"raw": "0.0",
|
||||
"start": 0,
|
||||
@ -2205,7 +2183,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
}
|
||||
},
|
||||
{
|
||||
"commentStart": 2142,
|
||||
"commentStart": 2126,
|
||||
"end": 0,
|
||||
"raw": "1.0",
|
||||
"start": 0,
|
||||
@ -2217,7 +2195,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
}
|
||||
},
|
||||
{
|
||||
"commentStart": 2147,
|
||||
"commentStart": 2131,
|
||||
"end": 0,
|
||||
"raw": "0.0",
|
||||
"start": 0,
|
||||
@ -2238,7 +2216,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 2153,
|
||||
"commentStart": 2137,
|
||||
"end": 0,
|
||||
"name": "instances",
|
||||
"start": 0,
|
||||
@ -2246,10 +2224,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
},
|
||||
"arg": {
|
||||
"abs_path": false,
|
||||
"commentStart": 2165,
|
||||
"commentStart": 2149,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 2165,
|
||||
"commentStart": 2149,
|
||||
"end": 0,
|
||||
"name": "countBinLength",
|
||||
"start": 0,
|
||||
@ -2264,7 +2242,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 2181,
|
||||
"commentStart": 2165,
|
||||
"end": 0,
|
||||
"name": "distance",
|
||||
"start": 0,
|
||||
@ -2272,10 +2250,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
},
|
||||
"arg": {
|
||||
"abs_path": false,
|
||||
"commentStart": 2192,
|
||||
"commentStart": 2176,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 2192,
|
||||
"commentStart": 2176,
|
||||
"end": 0,
|
||||
"name": "binLength",
|
||||
"start": 0,
|
||||
@ -2290,10 +2268,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
],
|
||||
"callee": {
|
||||
"abs_path": false,
|
||||
"commentStart": 2113,
|
||||
"commentStart": 2097,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 2113,
|
||||
"commentStart": 2097,
|
||||
"end": 0,
|
||||
"name": "patternLinear3d",
|
||||
"start": 0,
|
||||
@ -2303,7 +2281,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
"start": 0,
|
||||
"type": "Name"
|
||||
},
|
||||
"commentStart": 2113,
|
||||
"commentStart": 2097,
|
||||
"end": 0,
|
||||
"start": 0,
|
||||
"type": "CallExpressionKw",
|
||||
@ -2311,13 +2289,13 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
"unlabeled": null
|
||||
}
|
||||
],
|
||||
"commentStart": 1976,
|
||||
"commentStart": 1960,
|
||||
"end": 0,
|
||||
"nonCodeMeta": {
|
||||
"nonCodeNodes": {
|
||||
"1": [
|
||||
{
|
||||
"commentStart": 2202,
|
||||
"commentStart": 2186,
|
||||
"end": 0,
|
||||
"start": 0,
|
||||
"type": "NonCodeNode",
|
||||
@ -2350,12 +2328,12 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
"type": "VariableDeclaration"
|
||||
},
|
||||
{
|
||||
"commentStart": 2269,
|
||||
"commentStart": 2253,
|
||||
"declaration": {
|
||||
"commentStart": 2269,
|
||||
"commentStart": 2253,
|
||||
"end": 0,
|
||||
"id": {
|
||||
"commentStart": 2269,
|
||||
"commentStart": 2253,
|
||||
"end": 0,
|
||||
"name": "basePlateCorners",
|
||||
"start": 0,
|
||||
@ -2368,17 +2346,17 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 2328,
|
||||
"commentStart": 2312,
|
||||
"end": 0,
|
||||
"name": "axis",
|
||||
"start": 0,
|
||||
"type": "Identifier"
|
||||
},
|
||||
"arg": {
|
||||
"commentStart": 2335,
|
||||
"commentStart": 2319,
|
||||
"elements": [
|
||||
{
|
||||
"commentStart": 2336,
|
||||
"commentStart": 2320,
|
||||
"end": 0,
|
||||
"raw": "1.0",
|
||||
"start": 0,
|
||||
@ -2390,7 +2368,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
}
|
||||
},
|
||||
{
|
||||
"commentStart": 2341,
|
||||
"commentStart": 2325,
|
||||
"end": 0,
|
||||
"raw": "0.0",
|
||||
"start": 0,
|
||||
@ -2402,7 +2380,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
}
|
||||
},
|
||||
{
|
||||
"commentStart": 2346,
|
||||
"commentStart": 2330,
|
||||
"end": 0,
|
||||
"raw": "0.0",
|
||||
"start": 0,
|
||||
@ -2423,7 +2401,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 2359,
|
||||
"commentStart": 2343,
|
||||
"end": 0,
|
||||
"name": "instances",
|
||||
"start": 0,
|
||||
@ -2431,10 +2409,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
},
|
||||
"arg": {
|
||||
"abs_path": false,
|
||||
"commentStart": 2371,
|
||||
"commentStart": 2355,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 2371,
|
||||
"commentStart": 2355,
|
||||
"end": 0,
|
||||
"name": "countBinWidth",
|
||||
"start": 0,
|
||||
@ -2449,7 +2427,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 2393,
|
||||
"commentStart": 2377,
|
||||
"end": 0,
|
||||
"name": "distance",
|
||||
"start": 0,
|
||||
@ -2457,10 +2435,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
},
|
||||
"arg": {
|
||||
"abs_path": false,
|
||||
"commentStart": 2404,
|
||||
"commentStart": 2388,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 2404,
|
||||
"commentStart": 2388,
|
||||
"end": 0,
|
||||
"name": "binLength",
|
||||
"start": 0,
|
||||
@ -2475,10 +2453,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
],
|
||||
"callee": {
|
||||
"abs_path": false,
|
||||
"commentStart": 2288,
|
||||
"commentStart": 2272,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 2288,
|
||||
"commentStart": 2272,
|
||||
"end": 0,
|
||||
"name": "patternLinear3d",
|
||||
"start": 0,
|
||||
@ -2488,17 +2466,17 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
"start": 0,
|
||||
"type": "Name"
|
||||
},
|
||||
"commentStart": 2288,
|
||||
"commentStart": 2272,
|
||||
"end": 0,
|
||||
"start": 0,
|
||||
"type": "CallExpressionKw",
|
||||
"type": "CallExpressionKw",
|
||||
"unlabeled": {
|
||||
"abs_path": false,
|
||||
"commentStart": 2312,
|
||||
"commentStart": 2296,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 2312,
|
||||
"commentStart": 2296,
|
||||
"end": 0,
|
||||
"name": "corners",
|
||||
"start": 0,
|
||||
@ -2515,17 +2493,17 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 2443,
|
||||
"commentStart": 2427,
|
||||
"end": 0,
|
||||
"name": "axis",
|
||||
"start": 0,
|
||||
"type": "Identifier"
|
||||
},
|
||||
"arg": {
|
||||
"commentStart": 2450,
|
||||
"commentStart": 2434,
|
||||
"elements": [
|
||||
{
|
||||
"commentStart": 2451,
|
||||
"commentStart": 2435,
|
||||
"end": 0,
|
||||
"raw": "0.0",
|
||||
"start": 0,
|
||||
@ -2537,7 +2515,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
}
|
||||
},
|
||||
{
|
||||
"commentStart": 2456,
|
||||
"commentStart": 2440,
|
||||
"end": 0,
|
||||
"raw": "1.0",
|
||||
"start": 0,
|
||||
@ -2549,7 +2527,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
}
|
||||
},
|
||||
{
|
||||
"commentStart": 2461,
|
||||
"commentStart": 2445,
|
||||
"end": 0,
|
||||
"raw": "0.0",
|
||||
"start": 0,
|
||||
@ -2570,7 +2548,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 2467,
|
||||
"commentStart": 2451,
|
||||
"end": 0,
|
||||
"name": "instances",
|
||||
"start": 0,
|
||||
@ -2578,10 +2556,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
},
|
||||
"arg": {
|
||||
"abs_path": false,
|
||||
"commentStart": 2479,
|
||||
"commentStart": 2463,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 2479,
|
||||
"commentStart": 2463,
|
||||
"end": 0,
|
||||
"name": "countBinLength",
|
||||
"start": 0,
|
||||
@ -2596,7 +2574,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 2495,
|
||||
"commentStart": 2479,
|
||||
"end": 0,
|
||||
"name": "distance",
|
||||
"start": 0,
|
||||
@ -2604,10 +2582,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
},
|
||||
"arg": {
|
||||
"abs_path": false,
|
||||
"commentStart": 2506,
|
||||
"commentStart": 2490,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 2506,
|
||||
"commentStart": 2490,
|
||||
"end": 0,
|
||||
"name": "binLength",
|
||||
"start": 0,
|
||||
@ -2622,10 +2600,10 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
],
|
||||
"callee": {
|
||||
"abs_path": false,
|
||||
"commentStart": 2427,
|
||||
"commentStart": 2411,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 2427,
|
||||
"commentStart": 2411,
|
||||
"end": 0,
|
||||
"name": "patternLinear3d",
|
||||
"start": 0,
|
||||
@ -2635,7 +2613,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
"start": 0,
|
||||
"type": "Name"
|
||||
},
|
||||
"commentStart": 2427,
|
||||
"commentStart": 2411,
|
||||
"end": 0,
|
||||
"start": 0,
|
||||
"type": "CallExpressionKw",
|
||||
@ -2643,7 +2621,7 @@ description: Result of parsing gridfinity-baseplate.kcl
|
||||
"unlabeled": null
|
||||
}
|
||||
],
|
||||
"commentStart": 2288,
|
||||
"commentStart": 2272,
|
||||
"end": 0,
|
||||
"start": 0,
|
||||
"type": "PipeExpression",
|
||||
|
@ -287,6 +287,22 @@ description: Operations executed gridfinity-baseplate.kcl
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "revolve",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"labeledArgs": {
|
||||
"angle": {
|
||||
"value": {
|
||||
@ -308,10 +324,7 @@ description: Operations executed gridfinity-baseplate.kcl
|
||||
"value": {
|
||||
"type": "Object",
|
||||
"value": {
|
||||
"custom": {
|
||||
"type": "Object",
|
||||
"value": {
|
||||
"axis": {
|
||||
"direction": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
@ -374,25 +387,122 @@ description: Operations executed gridfinity-baseplate.kcl
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "KclStdLibCall",
|
||||
"name": "",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"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": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"arcDegrees": {
|
||||
|
@ -6,10 +6,7 @@ description: Variables in memory after executing gridfinity-baseplate.kcl
|
||||
"axis000": {
|
||||
"type": "Object",
|
||||
"value": {
|
||||
"custom": {
|
||||
"type": "Object",
|
||||
"value": {
|
||||
"axis": {
|
||||
"direction": {
|
||||
"type": "MixedArray",
|
||||
"value": [
|
||||
{
|
||||
@ -72,8 +69,6 @@ description: Variables in memory after executing gridfinity-baseplate.kcl
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"basePlateCorners": {
|
||||
"type": "HomArray",
|
||||
|
@ -21,72 +21,72 @@ flowchart LR
|
||||
36[Solid2d]
|
||||
end
|
||||
subgraph path56 [Path]
|
||||
56["Path<br>[2547, 2635, 0]"]
|
||||
57["Segment<br>[2641, 2705, 0]"]
|
||||
58["Segment<br>[2711, 2775, 0]"]
|
||||
59["Segment<br>[2781, 2834, 0]"]
|
||||
60["Segment<br>[2840, 2861, 0]"]
|
||||
56["Path<br>[2525, 2613, 0]"]
|
||||
57["Segment<br>[2619, 2683, 0]"]
|
||||
58["Segment<br>[2689, 2753, 0]"]
|
||||
59["Segment<br>[2759, 2812, 0]"]
|
||||
60["Segment<br>[2818, 2839, 0]"]
|
||||
61[Solid2d]
|
||||
end
|
||||
subgraph path81 [Path]
|
||||
81["Path<br>[3187, 3353, 0]"]
|
||||
82["Segment<br>[3187, 3353, 0]"]
|
||||
81["Path<br>[3165, 3331, 0]"]
|
||||
82["Segment<br>[3165, 3331, 0]"]
|
||||
83[Solid2d]
|
||||
end
|
||||
subgraph path93 [Path]
|
||||
93["Path<br>[4640, 4665, 0]"]
|
||||
94["Segment<br>[4671, 4743, 0]"]
|
||||
95["Segment<br>[4749, 4822, 0]"]
|
||||
96["Segment<br>[4828, 4881, 0]"]
|
||||
97["Segment<br>[4887, 4908, 0]"]
|
||||
93["Path<br>[4618, 4643, 0]"]
|
||||
94["Segment<br>[4649, 4721, 0]"]
|
||||
95["Segment<br>[4727, 4800, 0]"]
|
||||
96["Segment<br>[4806, 4859, 0]"]
|
||||
97["Segment<br>[4865, 4886, 0]"]
|
||||
98[Solid2d]
|
||||
end
|
||||
subgraph path119 [Path]
|
||||
119["Path<br>[5377, 5402, 0]"]
|
||||
120["Segment<br>[5462, 5505, 0]"]
|
||||
121["Segment<br>[5513, 5622, 0]"]
|
||||
122["Segment<br>[5697, 5746, 0]"]
|
||||
123["Segment<br>[5754, 5779, 0]"]
|
||||
124["Segment<br>[5787, 5845, 0]"]
|
||||
125["Segment<br>[5853, 5878, 0]"]
|
||||
126["Segment<br>[5886, 5945, 0]"]
|
||||
127["Segment<br>[5953, 5960, 0]"]
|
||||
119["Path<br>[5355, 5380, 0]"]
|
||||
120["Segment<br>[5440, 5483, 0]"]
|
||||
121["Segment<br>[5491, 5600, 0]"]
|
||||
122["Segment<br>[5675, 5724, 0]"]
|
||||
123["Segment<br>[5732, 5757, 0]"]
|
||||
124["Segment<br>[5765, 5823, 0]"]
|
||||
125["Segment<br>[5831, 5856, 0]"]
|
||||
126["Segment<br>[5864, 5923, 0]"]
|
||||
127["Segment<br>[5931, 5938, 0]"]
|
||||
128[Solid2d]
|
||||
end
|
||||
subgraph path157 [Path]
|
||||
157["Path<br>[5377, 5402, 0]"]
|
||||
158["Segment<br>[5462, 5505, 0]"]
|
||||
159["Segment<br>[5513, 5622, 0]"]
|
||||
160["Segment<br>[5697, 5746, 0]"]
|
||||
161["Segment<br>[5754, 5779, 0]"]
|
||||
162["Segment<br>[5787, 5845, 0]"]
|
||||
163["Segment<br>[5853, 5878, 0]"]
|
||||
164["Segment<br>[5886, 5945, 0]"]
|
||||
165["Segment<br>[5953, 5960, 0]"]
|
||||
157["Path<br>[5355, 5380, 0]"]
|
||||
158["Segment<br>[5440, 5483, 0]"]
|
||||
159["Segment<br>[5491, 5600, 0]"]
|
||||
160["Segment<br>[5675, 5724, 0]"]
|
||||
161["Segment<br>[5732, 5757, 0]"]
|
||||
162["Segment<br>[5765, 5823, 0]"]
|
||||
163["Segment<br>[5831, 5856, 0]"]
|
||||
164["Segment<br>[5864, 5923, 0]"]
|
||||
165["Segment<br>[5931, 5938, 0]"]
|
||||
166[Solid2d]
|
||||
end
|
||||
subgraph path195 [Path]
|
||||
195["Path<br>[5377, 5402, 0]"]
|
||||
196["Segment<br>[5462, 5505, 0]"]
|
||||
197["Segment<br>[5513, 5622, 0]"]
|
||||
198["Segment<br>[5697, 5746, 0]"]
|
||||
199["Segment<br>[5754, 5779, 0]"]
|
||||
200["Segment<br>[5787, 5845, 0]"]
|
||||
201["Segment<br>[5853, 5878, 0]"]
|
||||
202["Segment<br>[5886, 5945, 0]"]
|
||||
203["Segment<br>[5953, 5960, 0]"]
|
||||
195["Path<br>[5355, 5380, 0]"]
|
||||
196["Segment<br>[5440, 5483, 0]"]
|
||||
197["Segment<br>[5491, 5600, 0]"]
|
||||
198["Segment<br>[5675, 5724, 0]"]
|
||||
199["Segment<br>[5732, 5757, 0]"]
|
||||
200["Segment<br>[5765, 5823, 0]"]
|
||||
201["Segment<br>[5831, 5856, 0]"]
|
||||
202["Segment<br>[5864, 5923, 0]"]
|
||||
203["Segment<br>[5931, 5938, 0]"]
|
||||
204[Solid2d]
|
||||
end
|
||||
subgraph path233 [Path]
|
||||
233["Path<br>[5377, 5402, 0]"]
|
||||
234["Segment<br>[5462, 5505, 0]"]
|
||||
235["Segment<br>[5513, 5622, 0]"]
|
||||
236["Segment<br>[5697, 5746, 0]"]
|
||||
237["Segment<br>[5754, 5779, 0]"]
|
||||
238["Segment<br>[5787, 5845, 0]"]
|
||||
239["Segment<br>[5853, 5878, 0]"]
|
||||
240["Segment<br>[5886, 5945, 0]"]
|
||||
241["Segment<br>[5953, 5960, 0]"]
|
||||
233["Path<br>[5355, 5380, 0]"]
|
||||
234["Segment<br>[5440, 5483, 0]"]
|
||||
235["Segment<br>[5491, 5600, 0]"]
|
||||
236["Segment<br>[5675, 5724, 0]"]
|
||||
237["Segment<br>[5732, 5757, 0]"]
|
||||
238["Segment<br>[5765, 5823, 0]"]
|
||||
239["Segment<br>[5831, 5856, 0]"]
|
||||
240["Segment<br>[5864, 5923, 0]"]
|
||||
241["Segment<br>[5931, 5938, 0]"]
|
||||
242[Solid2d]
|
||||
end
|
||||
1["Plane<br>[1570, 1617, 0]"]
|
||||
@ -108,8 +108,8 @@ flowchart LR
|
||||
25["SweepEdge Adjacent"]
|
||||
26["SweepEdge Opposite"]
|
||||
27["SweepEdge Adjacent"]
|
||||
28["Plane<br>[2171, 2218, 0]"]
|
||||
37["Sweep Revolve<br>[2158, 2249, 0]"]
|
||||
28["Plane<br>[2149, 2196, 0]"]
|
||||
37["Sweep Revolve<br>[2136, 2227, 0]"]
|
||||
38[Wall]
|
||||
39[Wall]
|
||||
40[Wall]
|
||||
@ -127,8 +127,8 @@ flowchart LR
|
||||
52["SweepEdge Adjacent"]
|
||||
53["SweepEdge Opposite"]
|
||||
54["SweepEdge Adjacent"]
|
||||
55["Plane<br>[2524, 2541, 0]"]
|
||||
62["Sweep Extrusion<br>[2867, 2891, 0]"]
|
||||
55["Plane<br>[2502, 2519, 0]"]
|
||||
62["Sweep Extrusion<br>[2845, 2869, 0]"]
|
||||
63[Wall]
|
||||
64[Wall]
|
||||
65[Wall]
|
||||
@ -143,20 +143,20 @@ flowchart LR
|
||||
74["SweepEdge Adjacent"]
|
||||
75["SweepEdge Opposite"]
|
||||
76["SweepEdge Adjacent"]
|
||||
77["EdgeCut Fillet<br>[2897, 3127, 0]"]
|
||||
78["EdgeCut Fillet<br>[2897, 3127, 0]"]
|
||||
79["EdgeCut Fillet<br>[2897, 3127, 0]"]
|
||||
80["EdgeCut Fillet<br>[2897, 3127, 0]"]
|
||||
84["Sweep Extrusion<br>[3575, 3602, 0]"]
|
||||
77["EdgeCut Fillet<br>[2875, 3105, 0]"]
|
||||
78["EdgeCut Fillet<br>[2875, 3105, 0]"]
|
||||
79["EdgeCut Fillet<br>[2875, 3105, 0]"]
|
||||
80["EdgeCut Fillet<br>[2875, 3105, 0]"]
|
||||
84["Sweep Extrusion<br>[3553, 3580, 0]"]
|
||||
85[Wall]
|
||||
86["Cap Start"]
|
||||
87["SweepEdge Opposite"]
|
||||
88["SweepEdge Adjacent"]
|
||||
89["Sweep Extrusion<br>[3575, 3602, 0]"]
|
||||
90["Sweep Extrusion<br>[3575, 3602, 0]"]
|
||||
91["Sweep Extrusion<br>[3575, 3602, 0]"]
|
||||
92["Plane<br>[4601, 4633, 0]"]
|
||||
99["Sweep Extrusion<br>[4914, 4958, 0]"]
|
||||
89["Sweep Extrusion<br>[3553, 3580, 0]"]
|
||||
90["Sweep Extrusion<br>[3553, 3580, 0]"]
|
||||
91["Sweep Extrusion<br>[3553, 3580, 0]"]
|
||||
92["Plane<br>[4579, 4611, 0]"]
|
||||
99["Sweep Extrusion<br>[4892, 4936, 0]"]
|
||||
100[Wall]
|
||||
101[Wall]
|
||||
102[Wall]
|
||||
@ -171,12 +171,12 @@ flowchart LR
|
||||
111["SweepEdge Adjacent"]
|
||||
112["SweepEdge Opposite"]
|
||||
113["SweepEdge Adjacent"]
|
||||
114["EdgeCut Fillet<br>[4964, 5197, 0]"]
|
||||
115["EdgeCut Fillet<br>[4964, 5197, 0]"]
|
||||
116["EdgeCut Fillet<br>[4964, 5197, 0]"]
|
||||
117["EdgeCut Fillet<br>[4964, 5197, 0]"]
|
||||
118["Plane<br>[5349, 5369, 0]"]
|
||||
129["Sweep Extrusion<br>[6731, 6843, 0]"]
|
||||
114["EdgeCut Fillet<br>[4942, 5175, 0]"]
|
||||
115["EdgeCut Fillet<br>[4942, 5175, 0]"]
|
||||
116["EdgeCut Fillet<br>[4942, 5175, 0]"]
|
||||
117["EdgeCut Fillet<br>[4942, 5175, 0]"]
|
||||
118["Plane<br>[5327, 5347, 0]"]
|
||||
129["Sweep Extrusion<br>[6709, 6821, 0]"]
|
||||
130[Wall]
|
||||
131[Wall]
|
||||
132[Wall]
|
||||
@ -203,8 +203,8 @@ flowchart LR
|
||||
153["SweepEdge Adjacent"]
|
||||
154["SweepEdge Opposite"]
|
||||
155["SweepEdge Adjacent"]
|
||||
156["Plane<br>[5349, 5369, 0]"]
|
||||
167["Sweep Extrusion<br>[6909, 7023, 0]"]
|
||||
156["Plane<br>[5327, 5347, 0]"]
|
||||
167["Sweep Extrusion<br>[6887, 7001, 0]"]
|
||||
168[Wall]
|
||||
169[Wall]
|
||||
170[Wall]
|
||||
@ -231,8 +231,8 @@ flowchart LR
|
||||
191["SweepEdge Adjacent"]
|
||||
192["SweepEdge Opposite"]
|
||||
193["SweepEdge Adjacent"]
|
||||
194["Plane<br>[5349, 5369, 0]"]
|
||||
205["Sweep Revolve<br>[7865, 7920, 0]"]
|
||||
194["Plane<br>[5327, 5347, 0]"]
|
||||
205["Sweep Revolve<br>[7827, 7882, 0]"]
|
||||
206[Wall]
|
||||
207[Wall]
|
||||
208[Wall]
|
||||
@ -259,8 +259,8 @@ flowchart LR
|
||||
229["SweepEdge Adjacent"]
|
||||
230["SweepEdge Opposite"]
|
||||
231["SweepEdge Adjacent"]
|
||||
232["Plane<br>[5349, 5369, 0]"]
|
||||
243["Sweep Revolve<br>[7982, 8036, 0]"]
|
||||
232["Plane<br>[5327, 5347, 0]"]
|
||||
243["Sweep Revolve<br>[7944, 7998, 0]"]
|
||||
244[Wall]
|
||||
245[Wall]
|
||||
246[Wall]
|
||||
@ -289,8 +289,8 @@ flowchart LR
|
||||
269["SweepEdge Adjacent"]
|
||||
270["StartSketchOnPlane<br>[1158, 1178, 0]"]
|
||||
271["StartSketchOnPlane<br>[1158, 1178, 0]"]
|
||||
272["StartSketchOnFace<br>[3144, 3181, 0]"]
|
||||
273["StartSketchOnPlane<br>[4587, 4634, 0]"]
|
||||
272["StartSketchOnFace<br>[3122, 3159, 0]"]
|
||||
273["StartSketchOnPlane<br>[4565, 4612, 0]"]
|
||||
1 --- 2
|
||||
2 --- 3
|
||||
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": "UserDefinedFunctionCall",
|
||||
"name": "revolve",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"labeledArgs": {
|
||||
"angle": {
|
||||
"value": {
|
||||
@ -308,10 +324,7 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
||||
"value": {
|
||||
"type": "Object",
|
||||
"value": {
|
||||
"custom": {
|
||||
"type": "Object",
|
||||
"value": {
|
||||
"axis": {
|
||||
"direction": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
@ -374,25 +387,122 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "KclStdLibCall",
|
||||
"name": "",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"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": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"arcDegrees": {
|
||||
@ -1632,8 +1742,8 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "lipFace",
|
||||
"functionSourceRange": [
|
||||
5324,
|
||||
5982,
|
||||
5302,
|
||||
5960,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
@ -1864,8 +1974,8 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "lipFace",
|
||||
"functionSourceRange": [
|
||||
5324,
|
||||
5982,
|
||||
5302,
|
||||
5960,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
@ -2370,8 +2480,8 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "lipFace",
|
||||
"functionSourceRange": [
|
||||
5324,
|
||||
5982,
|
||||
5302,
|
||||
5960,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
@ -2573,6 +2683,22 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "revolve",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"labeledArgs": {
|
||||
"angle": {
|
||||
"value": {
|
||||
@ -2594,10 +2720,7 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
||||
"value": {
|
||||
"type": "Object",
|
||||
"value": {
|
||||
"custom": {
|
||||
"type": "Object",
|
||||
"value": {
|
||||
"axis": {
|
||||
"direction": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
@ -2660,31 +2783,128 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "KclStdLibCall",
|
||||
"name": "",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"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": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "lipFace",
|
||||
"functionSourceRange": [
|
||||
5324,
|
||||
5982,
|
||||
5302,
|
||||
5960,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
@ -2880,6 +3100,22 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "revolve",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"labeledArgs": {
|
||||
"angle": {
|
||||
"value": {
|
||||
@ -2901,10 +3137,7 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
||||
"value": {
|
||||
"type": "Object",
|
||||
"value": {
|
||||
"custom": {
|
||||
"type": "Object",
|
||||
"value": {
|
||||
"axis": {
|
||||
"direction": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
@ -2967,25 +3200,122 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "KclStdLibCall",
|
||||
"name": "",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"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": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"arcDegrees": {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -21,24 +21,24 @@ flowchart LR
|
||||
36[Solid2d]
|
||||
end
|
||||
subgraph path56 [Path]
|
||||
56["Path<br>[2288, 2376, 0]"]
|
||||
57["Segment<br>[2382, 2446, 0]"]
|
||||
58["Segment<br>[2452, 2516, 0]"]
|
||||
59["Segment<br>[2522, 2575, 0]"]
|
||||
60["Segment<br>[2581, 2602, 0]"]
|
||||
56["Path<br>[2266, 2354, 0]"]
|
||||
57["Segment<br>[2360, 2424, 0]"]
|
||||
58["Segment<br>[2430, 2494, 0]"]
|
||||
59["Segment<br>[2500, 2553, 0]"]
|
||||
60["Segment<br>[2559, 2580, 0]"]
|
||||
61[Solid2d]
|
||||
end
|
||||
subgraph path81 [Path]
|
||||
81["Path<br>[2928, 3094, 0]"]
|
||||
82["Segment<br>[2928, 3094, 0]"]
|
||||
81["Path<br>[2906, 3072, 0]"]
|
||||
82["Segment<br>[2906, 3072, 0]"]
|
||||
83[Solid2d]
|
||||
end
|
||||
subgraph path93 [Path]
|
||||
93["Path<br>[4407, 4432, 0]"]
|
||||
94["Segment<br>[4438, 4510, 0]"]
|
||||
95["Segment<br>[4516, 4589, 0]"]
|
||||
96["Segment<br>[4595, 4648, 0]"]
|
||||
97["Segment<br>[4654, 4675, 0]"]
|
||||
93["Path<br>[4385, 4410, 0]"]
|
||||
94["Segment<br>[4416, 4488, 0]"]
|
||||
95["Segment<br>[4494, 4567, 0]"]
|
||||
96["Segment<br>[4573, 4626, 0]"]
|
||||
97["Segment<br>[4632, 4653, 0]"]
|
||||
98[Solid2d]
|
||||
end
|
||||
1["Plane<br>[1311, 1358, 0]"]
|
||||
@ -60,8 +60,8 @@ flowchart LR
|
||||
25["SweepEdge Adjacent"]
|
||||
26["SweepEdge Opposite"]
|
||||
27["SweepEdge Adjacent"]
|
||||
28["Plane<br>[1912, 1959, 0]"]
|
||||
37["Sweep Revolve<br>[1899, 1990, 0]"]
|
||||
28["Plane<br>[1890, 1937, 0]"]
|
||||
37["Sweep Revolve<br>[1877, 1968, 0]"]
|
||||
38[Wall]
|
||||
39[Wall]
|
||||
40[Wall]
|
||||
@ -79,8 +79,8 @@ flowchart LR
|
||||
52["SweepEdge Adjacent"]
|
||||
53["SweepEdge Opposite"]
|
||||
54["SweepEdge Adjacent"]
|
||||
55["Plane<br>[2265, 2282, 0]"]
|
||||
62["Sweep Extrusion<br>[2608, 2632, 0]"]
|
||||
55["Plane<br>[2243, 2260, 0]"]
|
||||
62["Sweep Extrusion<br>[2586, 2610, 0]"]
|
||||
63[Wall]
|
||||
64[Wall]
|
||||
65[Wall]
|
||||
@ -95,20 +95,20 @@ flowchart LR
|
||||
74["SweepEdge Adjacent"]
|
||||
75["SweepEdge Opposite"]
|
||||
76["SweepEdge Adjacent"]
|
||||
77["EdgeCut Fillet<br>[2638, 2868, 0]"]
|
||||
78["EdgeCut Fillet<br>[2638, 2868, 0]"]
|
||||
79["EdgeCut Fillet<br>[2638, 2868, 0]"]
|
||||
80["EdgeCut Fillet<br>[2638, 2868, 0]"]
|
||||
84["Sweep Extrusion<br>[3316, 3343, 0]"]
|
||||
77["EdgeCut Fillet<br>[2616, 2846, 0]"]
|
||||
78["EdgeCut Fillet<br>[2616, 2846, 0]"]
|
||||
79["EdgeCut Fillet<br>[2616, 2846, 0]"]
|
||||
80["EdgeCut Fillet<br>[2616, 2846, 0]"]
|
||||
84["Sweep Extrusion<br>[3294, 3321, 0]"]
|
||||
85[Wall]
|
||||
86["Cap Start"]
|
||||
87["SweepEdge Opposite"]
|
||||
88["SweepEdge Adjacent"]
|
||||
89["Sweep Extrusion<br>[3316, 3343, 0]"]
|
||||
90["Sweep Extrusion<br>[3316, 3343, 0]"]
|
||||
91["Sweep Extrusion<br>[3316, 3343, 0]"]
|
||||
92["Plane<br>[4368, 4400, 0]"]
|
||||
99["Sweep Extrusion<br>[4681, 4725, 0]"]
|
||||
89["Sweep Extrusion<br>[3294, 3321, 0]"]
|
||||
90["Sweep Extrusion<br>[3294, 3321, 0]"]
|
||||
91["Sweep Extrusion<br>[3294, 3321, 0]"]
|
||||
92["Plane<br>[4346, 4378, 0]"]
|
||||
99["Sweep Extrusion<br>[4659, 4703, 0]"]
|
||||
100[Wall]
|
||||
101[Wall]
|
||||
102[Wall]
|
||||
@ -123,14 +123,14 @@ flowchart LR
|
||||
111["SweepEdge Adjacent"]
|
||||
112["SweepEdge Opposite"]
|
||||
113["SweepEdge Adjacent"]
|
||||
114["EdgeCut Fillet<br>[4731, 4964, 0]"]
|
||||
115["EdgeCut Fillet<br>[4731, 4964, 0]"]
|
||||
116["EdgeCut Fillet<br>[4731, 4964, 0]"]
|
||||
117["EdgeCut Fillet<br>[4731, 4964, 0]"]
|
||||
114["EdgeCut Fillet<br>[4709, 4942, 0]"]
|
||||
115["EdgeCut Fillet<br>[4709, 4942, 0]"]
|
||||
116["EdgeCut Fillet<br>[4709, 4942, 0]"]
|
||||
117["EdgeCut Fillet<br>[4709, 4942, 0]"]
|
||||
118["StartSketchOnPlane<br>[899, 919, 0]"]
|
||||
119["StartSketchOnPlane<br>[899, 919, 0]"]
|
||||
120["StartSketchOnFace<br>[2885, 2922, 0]"]
|
||||
121["StartSketchOnPlane<br>[4354, 4401, 0]"]
|
||||
120["StartSketchOnFace<br>[2863, 2900, 0]"]
|
||||
121["StartSketchOnPlane<br>[4332, 4379, 0]"]
|
||||
1 --- 2
|
||||
2 --- 3
|
||||
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": "UserDefinedFunctionCall",
|
||||
"name": "revolve",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"labeledArgs": {
|
||||
"angle": {
|
||||
"value": {
|
||||
@ -308,10 +324,7 @@ description: Operations executed gridfinity-bins.kcl
|
||||
"value": {
|
||||
"type": "Object",
|
||||
"value": {
|
||||
"custom": {
|
||||
"type": "Object",
|
||||
"value": {
|
||||
"axis": {
|
||||
"direction": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
@ -374,25 +387,122 @@ description: Operations executed gridfinity-bins.kcl
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "KclStdLibCall",
|
||||
"name": "",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"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": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"arcDegrees": {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -9,7 +9,7 @@ flowchart LR
|
||||
7["Segment<br>[704, 726, 0]"]
|
||||
end
|
||||
1["Plane<br>[445, 463, 0]"]
|
||||
8["Sweep Extrusion<br>[798, 826, 0]"]
|
||||
8["Sweep Extrusion<br>[780, 808, 0]"]
|
||||
1 --- 2
|
||||
2 --- 3
|
||||
2 --- 4
|
||||
|
@ -756,42 +756,30 @@ description: Result of parsing i-beam.kcl
|
||||
{
|
||||
"arguments": [
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 741,
|
||||
"end": 0,
|
||||
"properties": [
|
||||
{
|
||||
"commentStart": 743,
|
||||
"end": 0,
|
||||
"key": {
|
||||
"commentStart": 743,
|
||||
"end": 0,
|
||||
"name": "axis",
|
||||
"start": 0,
|
||||
"type": "Identifier"
|
||||
},
|
||||
"start": 0,
|
||||
"type": "ObjectProperty",
|
||||
"value": {
|
||||
"commentStart": 750,
|
||||
"arg": {
|
||||
"abs_path": false,
|
||||
"commentStart": 748,
|
||||
"end": 0,
|
||||
"raw": "'X'",
|
||||
"name": {
|
||||
"commentStart": 748,
|
||||
"end": 0,
|
||||
"name": "X",
|
||||
"start": 0,
|
||||
"type": "Literal",
|
||||
"type": "Literal",
|
||||
"value": "X"
|
||||
}
|
||||
}
|
||||
],
|
||||
"start": 0,
|
||||
"type": "ObjectExpression",
|
||||
"type": "ObjectExpression"
|
||||
"type": "Identifier"
|
||||
},
|
||||
{
|
||||
"commentStart": 757,
|
||||
"end": 0,
|
||||
"path": [],
|
||||
"start": 0,
|
||||
"type": "PipeSubstitution",
|
||||
"type": "PipeSubstitution"
|
||||
"type": "Name",
|
||||
"type": "Name"
|
||||
}
|
||||
}
|
||||
],
|
||||
"callee": {
|
||||
@ -812,77 +800,67 @@ description: Result of parsing i-beam.kcl
|
||||
"commentStart": 732,
|
||||
"end": 0,
|
||||
"start": 0,
|
||||
"type": "CallExpression",
|
||||
"type": "CallExpression"
|
||||
},
|
||||
{
|
||||
"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"
|
||||
"type": "CallExpressionKw",
|
||||
"type": "CallExpressionKw",
|
||||
"unlabeled": null
|
||||
},
|
||||
{
|
||||
"arguments": [
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"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,
|
||||
"name": "length",
|
||||
"start": 0,
|
||||
@ -890,10 +868,10 @@ description: Result of parsing i-beam.kcl
|
||||
},
|
||||
"arg": {
|
||||
"abs_path": false,
|
||||
"commentStart": 815,
|
||||
"commentStart": 797,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 815,
|
||||
"commentStart": 797,
|
||||
"end": 0,
|
||||
"name": "beamLength",
|
||||
"start": 0,
|
||||
@ -908,10 +886,10 @@ description: Result of parsing i-beam.kcl
|
||||
],
|
||||
"callee": {
|
||||
"abs_path": false,
|
||||
"commentStart": 798,
|
||||
"commentStart": 780,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 798,
|
||||
"commentStart": 780,
|
||||
"end": 0,
|
||||
"name": "extrude",
|
||||
"start": 0,
|
||||
@ -921,7 +899,7 @@ description: Result of parsing i-beam.kcl
|
||||
"start": 0,
|
||||
"type": "Name"
|
||||
},
|
||||
"commentStart": 798,
|
||||
"commentStart": 780,
|
||||
"end": 0,
|
||||
"start": 0,
|
||||
"type": "CallExpressionKw",
|
||||
|
@ -18,6 +18,230 @@ description: Operations executed i-beam.kcl
|
||||
"type": "StdLibCall",
|
||||
"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": {
|
||||
"length": {
|
||||
|
@ -11,7 +11,7 @@ flowchart LR
|
||||
7[Solid2d]
|
||||
end
|
||||
1["Plane<br>[350, 367, 0]"]
|
||||
8["Sweep Revolve<br>[776, 827, 0]"]
|
||||
8["Sweep Revolve<br>[776, 825, 0]"]
|
||||
9[Wall]
|
||||
10["Cap Start"]
|
||||
11["Cap End"]
|
||||
|
@ -664,19 +664,26 @@ description: Result of parsing pipe-with-bend.kcl
|
||||
"type": "Identifier"
|
||||
},
|
||||
"arg": {
|
||||
"abs_path": false,
|
||||
"commentStart": 804,
|
||||
"end": 0,
|
||||
"raw": "'Y'",
|
||||
"name": {
|
||||
"commentStart": 804,
|
||||
"end": 0,
|
||||
"name": "Y",
|
||||
"start": 0,
|
||||
"type": "Literal",
|
||||
"type": "Literal",
|
||||
"value": "Y"
|
||||
"type": "Identifier"
|
||||
},
|
||||
"path": [],
|
||||
"start": 0,
|
||||
"type": "Name",
|
||||
"type": "Name"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "LabeledArg",
|
||||
"label": {
|
||||
"commentStart": 809,
|
||||
"commentStart": 807,
|
||||
"end": 0,
|
||||
"name": "angle",
|
||||
"start": 0,
|
||||
@ -684,10 +691,10 @@ description: Result of parsing pipe-with-bend.kcl
|
||||
},
|
||||
"arg": {
|
||||
"abs_path": false,
|
||||
"commentStart": 817,
|
||||
"commentStart": 815,
|
||||
"end": 0,
|
||||
"name": {
|
||||
"commentStart": 817,
|
||||
"commentStart": 815,
|
||||
"end": 0,
|
||||
"name": "bendAngle",
|
||||
"start": 0,
|
||||
|
@ -177,6 +177,22 @@ description: Operations executed pipe-with-bend.kcl
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "revolve",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"labeledArgs": {
|
||||
"angle": {
|
||||
"value": {
|
||||
@ -196,23 +212,211 @@ description: Operations executed pipe-with-bend.kcl
|
||||
},
|
||||
"axis": {
|
||||
"value": {
|
||||
"type": "String",
|
||||
"value": "Y"
|
||||
"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": []
|
||||
}
|
||||
},
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "KclStdLibCall",
|
||||
"name": "",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"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": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
}
|
||||
]
|
||||
|
@ -13,7 +13,7 @@ flowchart LR
|
||||
11[Solid2d]
|
||||
end
|
||||
1["Plane<br>[605, 622, 0]"]
|
||||
12["Sweep Revolve<br>[1148, 1179, 0]"]
|
||||
12["Sweep Revolve<br>[1148, 1177, 0]"]
|
||||
13[Wall]
|
||||
14[Wall]
|
||||
15[Wall]
|
||||
|
@ -1211,13 +1211,20 @@ description: Result of parsing pipe.kcl
|
||||
"type": "Identifier"
|
||||
},
|
||||
"arg": {
|
||||
"abs_path": false,
|
||||
"commentStart": 1175,
|
||||
"end": 0,
|
||||
"raw": "'y'",
|
||||
"name": {
|
||||
"commentStart": 1175,
|
||||
"end": 0,
|
||||
"name": "Y",
|
||||
"start": 0,
|
||||
"type": "Literal",
|
||||
"type": "Literal",
|
||||
"value": "y"
|
||||
"type": "Identifier"
|
||||
},
|
||||
"path": [],
|
||||
"start": 0,
|
||||
"type": "Name",
|
||||
"type": "Name"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
@ -19,18 +19,13 @@ description: Operations executed pipe.kcl
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"axis": {
|
||||
"value": {
|
||||
"type": "String",
|
||||
"value": "y"
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
@ -39,6 +34,199 @@ description: Operations executed pipe.kcl
|
||||
}
|
||||
},
|
||||
"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]
|
||||
end
|
||||
subgraph path60 [Path]
|
||||
60["Path<br>[1082, 1120, 0]"]
|
||||
61["Segment<br>[1126, 1159, 0]"]
|
||||
62["Segment<br>[1165, 1222, 0]"]
|
||||
63["Segment<br>[1228, 1255, 0]"]
|
||||
64["Segment<br>[1261, 1291, 0]"]
|
||||
65["Segment<br>[1297, 1332, 0]"]
|
||||
66["Segment<br>[1338, 1430, 0]"]
|
||||
67["Segment<br>[1436, 1466, 0]"]
|
||||
68["Segment<br>[1472, 1530, 0]"]
|
||||
69["Segment<br>[1536, 1563, 0]"]
|
||||
70["Segment<br>[1569, 1591, 0]"]
|
||||
71["Segment<br>[1597, 1632, 0]"]
|
||||
72["Segment<br>[1638, 1684, 0]"]
|
||||
73["Segment<br>[1690, 1697, 0]"]
|
||||
60["Path<br>[1062, 1100, 0]"]
|
||||
61["Segment<br>[1106, 1139, 0]"]
|
||||
62["Segment<br>[1145, 1202, 0]"]
|
||||
63["Segment<br>[1208, 1235, 0]"]
|
||||
64["Segment<br>[1241, 1271, 0]"]
|
||||
65["Segment<br>[1277, 1312, 0]"]
|
||||
66["Segment<br>[1318, 1410, 0]"]
|
||||
67["Segment<br>[1416, 1446, 0]"]
|
||||
68["Segment<br>[1452, 1510, 0]"]
|
||||
69["Segment<br>[1516, 1543, 0]"]
|
||||
70["Segment<br>[1549, 1571, 0]"]
|
||||
71["Segment<br>[1577, 1612, 0]"]
|
||||
72["Segment<br>[1618, 1664, 0]"]
|
||||
73["Segment<br>[1670, 1677, 0]"]
|
||||
74[Solid2d]
|
||||
end
|
||||
subgraph path118 [Path]
|
||||
118["Path<br>[2029, 2054, 0]"]
|
||||
119["Segment<br>[2060, 2110, 0]"]
|
||||
120["Segment<br>[2116, 2156, 0]"]
|
||||
121["Segment<br>[2162, 2169, 0]"]
|
||||
118["Path<br>[2009, 2034, 0]"]
|
||||
119["Segment<br>[2040, 2090, 0]"]
|
||||
120["Segment<br>[2096, 2136, 0]"]
|
||||
121["Segment<br>[2142, 2149, 0]"]
|
||||
122[Solid2d]
|
||||
end
|
||||
subgraph path135 [Path]
|
||||
135["Path<br>[2257, 2282, 0]"]
|
||||
136["Segment<br>[2288, 2315, 0]"]
|
||||
137["Segment<br>[2321, 2355, 0]"]
|
||||
138["Segment<br>[2361, 2396, 0]"]
|
||||
139["Segment<br>[2402, 2502, 0]"]
|
||||
140["Segment<br>[2508, 2537, 0]"]
|
||||
141["Segment<br>[2543, 2596, 0]"]
|
||||
142["Segment<br>[2602, 2629, 0]"]
|
||||
143["Segment<br>[2635, 2664, 0]"]
|
||||
144["Segment<br>[2670, 2794, 0]"]
|
||||
145["Segment<br>[2800, 2845, 0]"]
|
||||
146["Segment<br>[2851, 2873, 0]"]
|
||||
147["Segment<br>[2879, 2898, 0]"]
|
||||
135["Path<br>[2237, 2262, 0]"]
|
||||
136["Segment<br>[2268, 2295, 0]"]
|
||||
137["Segment<br>[2301, 2335, 0]"]
|
||||
138["Segment<br>[2341, 2376, 0]"]
|
||||
139["Segment<br>[2382, 2482, 0]"]
|
||||
140["Segment<br>[2488, 2517, 0]"]
|
||||
141["Segment<br>[2523, 2576, 0]"]
|
||||
142["Segment<br>[2582, 2609, 0]"]
|
||||
143["Segment<br>[2615, 2644, 0]"]
|
||||
144["Segment<br>[2650, 2774, 0]"]
|
||||
145["Segment<br>[2780, 2825, 0]"]
|
||||
146["Segment<br>[2831, 2853, 0]"]
|
||||
147["Segment<br>[2859, 2878, 0]"]
|
||||
148[Solid2d]
|
||||
end
|
||||
subgraph path189 [Path]
|
||||
189["Path<br>[3226, 3251, 0]"]
|
||||
190["Segment<br>[3257, 3284, 0]"]
|
||||
191["Segment<br>[3290, 3321, 0]"]
|
||||
192["Segment<br>[3327, 3451, 0]"]
|
||||
193["Segment<br>[3457, 3502, 0]"]
|
||||
194["Segment<br>[3508, 3544, 0]"]
|
||||
195["Segment<br>[3550, 3557, 0]"]
|
||||
189["Path<br>[3206, 3231, 0]"]
|
||||
190["Segment<br>[3237, 3264, 0]"]
|
||||
191["Segment<br>[3270, 3301, 0]"]
|
||||
192["Segment<br>[3307, 3431, 0]"]
|
||||
193["Segment<br>[3437, 3482, 0]"]
|
||||
194["Segment<br>[3488, 3524, 0]"]
|
||||
195["Segment<br>[3530, 3537, 0]"]
|
||||
196[Solid2d]
|
||||
end
|
||||
subgraph path218 [Path]
|
||||
218["Path<br>[3645, 3695, 0]"]
|
||||
219["Segment<br>[3701, 3733, 0]"]
|
||||
220["Segment<br>[3739, 3766, 0]"]
|
||||
221["Segment<br>[3772, 3794, 0]"]
|
||||
222["Segment<br>[3800, 3807, 0]"]
|
||||
218["Path<br>[3625, 3675, 0]"]
|
||||
219["Segment<br>[3681, 3713, 0]"]
|
||||
220["Segment<br>[3719, 3746, 0]"]
|
||||
221["Segment<br>[3752, 3774, 0]"]
|
||||
222["Segment<br>[3780, 3787, 0]"]
|
||||
223[Solid2d]
|
||||
end
|
||||
subgraph path239 [Path]
|
||||
239["Path<br>[3895, 3920, 0]"]
|
||||
240["Segment<br>[3926, 3960, 0]"]
|
||||
241["Segment<br>[3966, 3993, 0]"]
|
||||
242["Segment<br>[3999, 4021, 0]"]
|
||||
243["Segment<br>[4027, 4034, 0]"]
|
||||
239["Path<br>[3875, 3900, 0]"]
|
||||
240["Segment<br>[3906, 3940, 0]"]
|
||||
241["Segment<br>[3946, 3973, 0]"]
|
||||
242["Segment<br>[3979, 4001, 0]"]
|
||||
243["Segment<br>[4007, 4014, 0]"]
|
||||
244[Solid2d]
|
||||
end
|
||||
subgraph path261 [Path]
|
||||
261["Path<br>[4394, 4443, 0]"]
|
||||
262["Segment<br>[4449, 4481, 0]"]
|
||||
263["Segment<br>[4487, 4535, 0]"]
|
||||
264["Segment<br>[4541, 4575, 0]"]
|
||||
265["Segment<br>[4581, 4588, 0]"]
|
||||
261["Path<br>[4374, 4423, 0]"]
|
||||
262["Segment<br>[4429, 4461, 0]"]
|
||||
263["Segment<br>[4467, 4515, 0]"]
|
||||
264["Segment<br>[4521, 4555, 0]"]
|
||||
265["Segment<br>[4561, 4568, 0]"]
|
||||
266[Solid2d]
|
||||
end
|
||||
1["Plane<br>[258, 276, 0]"]
|
||||
17["Sweep Revolve<br>[908, 1044, 0]"]
|
||||
17["Sweep Revolve<br>[908, 1024, 0]"]
|
||||
18[Wall]
|
||||
19[Wall]
|
||||
20[Wall]
|
||||
@ -134,8 +134,8 @@ flowchart LR
|
||||
56["SweepEdge Adjacent"]
|
||||
57["SweepEdge Opposite"]
|
||||
58["SweepEdge Adjacent"]
|
||||
59["Plane<br>[1058, 1076, 0]"]
|
||||
75["Sweep Extrusion<br>[1703, 1740, 0]"]
|
||||
59["Plane<br>[1038, 1056, 0]"]
|
||||
75["Sweep Extrusion<br>[1683, 1720, 0]"]
|
||||
76[Wall]
|
||||
77[Wall]
|
||||
78[Wall]
|
||||
@ -177,8 +177,8 @@ flowchart LR
|
||||
114["SweepEdge Adjacent"]
|
||||
115["SweepEdge Opposite"]
|
||||
116["SweepEdge Adjacent"]
|
||||
117["Plane<br>[1997, 2023, 0]"]
|
||||
123["Sweep Extrusion<br>[2175, 2206, 0]"]
|
||||
117["Plane<br>[1977, 2003, 0]"]
|
||||
123["Sweep Extrusion<br>[2155, 2186, 0]"]
|
||||
124[Wall]
|
||||
125[Wall]
|
||||
126[Wall]
|
||||
@ -190,7 +190,7 @@ flowchart LR
|
||||
132["SweepEdge Adjacent"]
|
||||
133["SweepEdge Opposite"]
|
||||
134["SweepEdge Adjacent"]
|
||||
149["Sweep Extrusion<br>[2904, 2935, 0]"]
|
||||
149["Sweep Extrusion<br>[2884, 2915, 0]"]
|
||||
150[Wall]
|
||||
151[Wall]
|
||||
152[Wall]
|
||||
@ -229,8 +229,8 @@ flowchart LR
|
||||
185["SweepEdge Adjacent"]
|
||||
186["SweepEdge Opposite"]
|
||||
187["SweepEdge Adjacent"]
|
||||
188["Plane<br>[3193, 3220, 0]"]
|
||||
197["Sweep Extrusion<br>[3563, 3594, 0]"]
|
||||
188["Plane<br>[3173, 3200, 0]"]
|
||||
197["Sweep Extrusion<br>[3543, 3574, 0]"]
|
||||
198[Wall]
|
||||
199[Wall]
|
||||
200[Wall]
|
||||
@ -251,7 +251,7 @@ flowchart LR
|
||||
215["SweepEdge Adjacent"]
|
||||
216["SweepEdge Opposite"]
|
||||
217["SweepEdge Adjacent"]
|
||||
224["Sweep Extrusion<br>[3813, 3844, 0]"]
|
||||
224["Sweep Extrusion<br>[3793, 3824, 0]"]
|
||||
225[Wall]
|
||||
226[Wall]
|
||||
227[Wall]
|
||||
@ -266,7 +266,7 @@ flowchart LR
|
||||
236["SweepEdge Adjacent"]
|
||||
237["SweepEdge Opposite"]
|
||||
238["SweepEdge Adjacent"]
|
||||
245["Sweep Extrusion<br>[4040, 4090, 0]"]
|
||||
245["Sweep Extrusion<br>[4020, 4070, 0]"]
|
||||
246[Wall]
|
||||
247[Wall]
|
||||
248[Wall]
|
||||
@ -281,8 +281,8 @@ flowchart LR
|
||||
257["SweepEdge Adjacent"]
|
||||
258["SweepEdge Opposite"]
|
||||
259["SweepEdge Adjacent"]
|
||||
260["Plane<br>[4361, 4388, 0]"]
|
||||
267["Sweep Extrusion<br>[4594, 4626, 0]"]
|
||||
260["Plane<br>[4341, 4368, 0]"]
|
||||
267["Sweep Extrusion<br>[4574, 4606, 0]"]
|
||||
268[Wall]
|
||||
269[Wall]
|
||||
270[Wall]
|
||||
@ -297,9 +297,9 @@ flowchart LR
|
||||
279["SweepEdge Adjacent"]
|
||||
280["SweepEdge Opposite"]
|
||||
281["SweepEdge Adjacent"]
|
||||
282["StartSketchOnFace<br>[2220, 2251, 0]"]
|
||||
283["StartSketchOnFace<br>[3608, 3639, 0]"]
|
||||
284["StartSketchOnFace<br>[3858, 3889, 0]"]
|
||||
282["StartSketchOnFace<br>[2200, 2231, 0]"]
|
||||
283["StartSketchOnFace<br>[3588, 3619, 0]"]
|
||||
284["StartSketchOnFace<br>[3838, 3869, 0]"]
|
||||
1 --- 2
|
||||
2 --- 3
|
||||
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