Move axes to std constants; move helix, revolve, and mirror2d to be declared in KCL (#6105)
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,9 @@ 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)
|
||||
* [`Plane`](kcl/types/Plane)
|
||||
@ -29,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)
|
||||
@ -68,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)
|
||||
@ -87,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)
|
||||
@ -106,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)
|
||||
@ -142,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 infinite line in 2d space."
|
||||
layout: manual
|
||||
---
|
||||
|
||||
An infinite 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 infinite line in 3d space."
|
||||
layout: manual
|
||||
---
|
||||
|
||||
An infinite line in 3d space.
|
||||
|
||||
|
||||
|
||||
|
||||
|
12
docs/kcl/types/Edge.md
Normal file
12
docs/kcl/types/Edge.md
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
title: "std::Edge"
|
||||
excerpt: "The edge of a solid."
|
||||
layout: manual
|
||||
---
|
||||
|
||||
The edge of a solid.
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -22,7 +22,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)
|
||||
@ -127,7 +127,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',
|
||||
|
@ -1084,8 +1084,8 @@ openSketch = startSketchOn(XY)
|
||||
}) => {
|
||||
// One dumb hardcoded screen pixel value
|
||||
const testPoint = { x: 620, y: 257 }
|
||||
const expectedOutput = `helix001 = helix( axis = 'X', radius = 5, length = 5, revolutions = 1, angleStart = 360, ccw = false,)`
|
||||
const expectedLine = `axis='X',`
|
||||
const expectedOutput = `helix001 = helix( axis = X, radius = 5, length = 5, revolutions = 1, angleStart = 360, ccw = false,)`
|
||||
const expectedLine = `axis=X,`
|
||||
|
||||
await homePage.goToModelingScene()
|
||||
|
||||
@ -1217,7 +1217,7 @@ openSketch = startSketchOn(XY)
|
||||
cmdBar,
|
||||
}) => {
|
||||
page.on('console', console.log)
|
||||
const initialCode = `sketch001 = startSketchOn('XZ')
|
||||
const initialCode = `sketch001 = startSketchOn(XZ)
|
||||
profile001 = startProfileAt([0, 0], sketch001)
|
||||
|> yLine(length = 100)
|
||||
|> line(endAbsolute = [100, 0])
|
||||
@ -3474,7 +3474,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()
|
||||
|
||||
// Edit flow
|
||||
|
@ -684,7 +684,7 @@ sketch001 = startSketchOn(XZ)
|
||||
|> line(end = [12.73, -0.09])
|
||||
|> tangentialArcTo([24.95, -5.38], %)
|
||||
|> close()
|
||||
|> revolve(axis = "X")`
|
||||
|> revolve(axis = X)`
|
||||
)
|
||||
})
|
||||
|
||||
@ -771,7 +771,7 @@ sketch001 = startSketchOn(XZ)
|
||||
|> tangentialArcTo([24.95, -5.38], %)
|
||||
|> line(end = [1.97, 2.06])
|
||||
|> close()
|
||||
|> revolve(axis = "X")`,
|
||||
|> revolve(axis = X)`,
|
||||
{ shouldNormalise: true }
|
||||
)
|
||||
})
|
||||
@ -1223,7 +1223,7 @@ profile001 = startProfileAt([${roundOff(scale * 69.6)}, ${roundOff(
|
||||
|> xLine(endAbsolute = 0 + .001)
|
||||
|> yLine(endAbsolute = 0)
|
||||
|> close()
|
||||
|> revolve(axis = "Y")
|
||||
|> revolve(axis = Y)
|
||||
|
||||
return lugSketch
|
||||
}
|
||||
|
@ -324,7 +324,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,
|
||||
@ -381,7 +381,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,11 +48,9 @@ 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
|
||||
singleCorner = revolve(face(offsetPlane(YZ, offset = cornerRadius)), angle = -90, axis = axis000)
|
||||
|
@ -45,11 +45,9 @@ 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
|
||||
singleCorner = revolve(face(offsetPlane(YZ, offset = cornerRadius)), angle = -90, axis = axis000)
|
||||
|
@ -65,14 +65,12 @@ 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
|
||||
singleCorner = revolve(face(offsetPlane(YZ, offset = cornerRadius + binTol)), angle = -90, axis = axis000)
|
||||
@ -272,11 +270,9 @@ 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
|
||||
lipSingleLengthCorner = revolve(lipFace(plane000), angle = -90, axis = axis001)
|
||||
|
@ -58,14 +58,12 @@ 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
|
||||
singleCorner = revolve(face(offsetPlane(YZ, offset = cornerRadius + binTol)), angle = -90, axis = axis000)
|
||||
|
@ -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
|
||||
|
@ -881,7 +881,7 @@ async fn kcl_test_simple_revolve() {
|
||||
|> line(end = [0, -5.5])
|
||||
|> line(end = [-2, 0])
|
||||
|> close()
|
||||
|> revolve(axis = 'y')
|
||||
|> revolve(axis = Y)
|
||||
|
||||
"#;
|
||||
|
||||
@ -901,7 +901,7 @@ async fn kcl_test_simple_revolve_uppercase() {
|
||||
|> line(end = [0, -5.5])
|
||||
|> line(end = [-2, 0])
|
||||
|> close()
|
||||
|> revolve(axis = 'Y')
|
||||
|> revolve(axis = Y)
|
||||
|
||||
"#;
|
||||
|
||||
@ -921,7 +921,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)
|
||||
|
||||
"#;
|
||||
|
||||
@ -941,7 +941,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)
|
||||
|
||||
"#;
|
||||
|
||||
@ -967,7 +967,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)
|
||||
|
||||
"#;
|
||||
|
||||
@ -993,7 +993,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)
|
||||
|
||||
"#;
|
||||
|
||||
@ -1013,7 +1013,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)
|
||||
|
||||
"#;
|
||||
|
||||
@ -1111,7 +1111,7 @@ sketch001 = startSketchOn(box, "END")
|
||||
|> circle(center = [10,10], radius= 4 )
|
||||
|> revolve(
|
||||
angle = -90,
|
||||
axis = 'y'
|
||||
axis = Y
|
||||
)
|
||||
"#;
|
||||
|
||||
@ -1136,7 +1136,7 @@ sketch001 = startSketchOn(box, "end")
|
||||
|> line(end = [0, 10])
|
||||
|> close()
|
||||
|> revolve(
|
||||
axis = 'y',
|
||||
axis = Y,
|
||||
angle = -90,
|
||||
)
|
||||
"#;
|
||||
@ -1151,7 +1151,7 @@ async fn kcl_test_basic_revolve_circle() {
|
||||
|> circle(center = [15, 0], radius= 5)
|
||||
|> revolve(
|
||||
angle = 360,
|
||||
axis = 'y'
|
||||
axis = Y
|
||||
)
|
||||
"#;
|
||||
|
||||
@ -1171,7 +1171,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], %)
|
||||
|
@ -24,8 +24,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; 11] = [
|
||||
"number", "string", "tag", "bool", "Sketch", "Solid", "Plane", "Helix", "Face", "Point2d", "Point3d",
|
||||
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,51 @@ impl ArgData {
|
||||
},
|
||||
};
|
||||
|
||||
for attr in &arg.identifier.outer_attrs {
|
||||
if let Annotation {
|
||||
name: None,
|
||||
properties: Some(props),
|
||||
..
|
||||
} = &attr.inner
|
||||
{
|
||||
for p in props {
|
||||
if 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 +590,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,
|
||||
}
|
||||
}
|
||||
|
@ -937,9 +937,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]
|
||||
@ -952,7 +955,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})${}"#
|
||||
);
|
||||
}
|
||||
|
||||
@ -1026,11 +1029,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},
|
||||
@ -1059,6 +1059,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 {
|
||||
@ -1080,13 +1089,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()),
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1272,27 +1331,6 @@ impl Node<CallExpressionKw> {
|
||||
// exec_state.
|
||||
let func = fn_name.get_result(exec_state, ctx).await?.clone();
|
||||
|
||||
if !ctx.is_isolated_execution().await {
|
||||
// Track call operation.
|
||||
let op_labeled_args = args
|
||||
.kw_args
|
||||
.labeled
|
||||
.iter()
|
||||
.map(|(k, arg)| (k.clone(), OpArg::new(OpKclValue::from(&arg.value), arg.source_range)))
|
||||
.collect();
|
||||
exec_state.global.operations.push(Operation::UserDefinedFunctionCall {
|
||||
name: Some(fn_name.to_string()),
|
||||
function_source_range: func.function_def_source_range().unwrap_or_default(),
|
||||
unlabeled_arg: args
|
||||
.kw_args
|
||||
.unlabeled
|
||||
.as_ref()
|
||||
.map(|arg| OpArg::new(OpKclValue::from(&arg.value), arg.source_range)),
|
||||
labeled_args: op_labeled_args,
|
||||
source_range: callsite,
|
||||
});
|
||||
}
|
||||
|
||||
let Some(fn_src) = func.as_fn() else {
|
||||
return Err(KclError::Semantic(KclErrorDetails {
|
||||
message: "cannot call this because it isn't a function".to_string(),
|
||||
@ -1300,12 +1338,20 @@ impl Node<CallExpressionKw> {
|
||||
}));
|
||||
};
|
||||
|
||||
let return_value = fn_src.call_kw(exec_state, ctx, args, callsite).await.map_err(|e| {
|
||||
let return_value = fn_src
|
||||
.call_kw(Some(fn_name.to_string()), exec_state, ctx, args, callsite)
|
||||
.await
|
||||
.map_err(|e| {
|
||||
// Add the call expression to the source ranges.
|
||||
// TODO currently ignored by the frontend
|
||||
e.add_source_ranges(vec![callsite])
|
||||
})?;
|
||||
|
||||
if matches!(fn_src, FunctionSource::User { .. }) && !ctx.is_isolated_execution().await {
|
||||
// Track return operation.
|
||||
exec_state.global.operations.push(Operation::UserDefinedFunctionReturn);
|
||||
}
|
||||
|
||||
let result = return_value.ok_or_else(move || {
|
||||
let mut source_ranges: Vec<SourceRange> = vec![callsite];
|
||||
// We want to send the source range of the original function.
|
||||
@ -1318,11 +1364,6 @@ impl Node<CallExpressionKw> {
|
||||
})
|
||||
})?;
|
||||
|
||||
if !ctx.is_isolated_execution().await {
|
||||
// Track return operation.
|
||||
exec_state.global.operations.push(Operation::UserDefinedFunctionReturn);
|
||||
}
|
||||
|
||||
Ok(result)
|
||||
}
|
||||
}
|
||||
@ -1434,7 +1475,10 @@ impl Node<CallExpression> {
|
||||
source_ranges: vec![source_range],
|
||||
}));
|
||||
};
|
||||
let return_value = fn_src.call(exec_state, ctx, fn_args, source_range).await.map_err(|e| {
|
||||
let return_value = fn_src
|
||||
.call(Some(fn_name.to_string()), exec_state, ctx, fn_args, source_range)
|
||||
.await
|
||||
.map_err(|e| {
|
||||
// Add the call expression to the source ranges.
|
||||
// TODO currently ignored by the frontend
|
||||
e.add_source_ranges(vec![source_range])
|
||||
@ -2064,6 +2108,7 @@ async fn call_user_defined_function_kw(
|
||||
impl FunctionSource {
|
||||
pub async fn call(
|
||||
&self,
|
||||
fn_name: Option<String>,
|
||||
exec_state: &mut ExecState,
|
||||
ctx: &ExecutorContext,
|
||||
mut args: Vec<Arg>,
|
||||
@ -2081,7 +2126,7 @@ impl FunctionSource {
|
||||
ctx.clone(),
|
||||
exec_state.mod_local.pipe_value.clone().map(|v| Arg::new(v, callsite)),
|
||||
);
|
||||
self.call_kw(exec_state, ctx, args, callsite).await
|
||||
self.call_kw(fn_name, exec_state, ctx, args, callsite).await
|
||||
} else {
|
||||
Err(KclError::Semantic(KclErrorDetails {
|
||||
message: format!("{} requires its arguments to be labelled", props.name),
|
||||
@ -2098,6 +2143,7 @@ impl FunctionSource {
|
||||
|
||||
pub async fn call_kw(
|
||||
&self,
|
||||
fn_name: Option<String>,
|
||||
exec_state: &mut ExecState,
|
||||
ctx: &ExecutorContext,
|
||||
mut args: crate::std::Args,
|
||||
@ -2181,6 +2227,26 @@ impl FunctionSource {
|
||||
}
|
||||
}
|
||||
|
||||
let op = if props.include_in_feature_tree && !ctx.is_isolated_execution().await {
|
||||
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 {
|
||||
name: fn_name.unwrap_or_default(),
|
||||
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 = {
|
||||
@ -2188,7 +2254,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
|
||||
}?;
|
||||
|
||||
@ -2197,6 +2271,27 @@ impl FunctionSource {
|
||||
Ok(Some(result))
|
||||
}
|
||||
FunctionSource::User { ast, memory, .. } => {
|
||||
if !ctx.is_isolated_execution().await {
|
||||
// Track call operation.
|
||||
let op_labeled_args = args
|
||||
.kw_args
|
||||
.labeled
|
||||
.iter()
|
||||
.map(|(k, arg)| (k.clone(), OpArg::new(OpKclValue::from(&arg.value), arg.source_range)))
|
||||
.collect();
|
||||
exec_state.global.operations.push(Operation::UserDefinedFunctionCall {
|
||||
name: fn_name,
|
||||
function_source_range: ast.as_source_range(),
|
||||
unlabeled_arg: args
|
||||
.kw_args
|
||||
.unlabeled
|
||||
.as_ref()
|
||||
.map(|arg| OpArg::new(OpKclValue::from(&arg.value), arg.source_range)),
|
||||
labeled_args: op_labeled_args,
|
||||
source_range: callsite,
|
||||
});
|
||||
}
|
||||
|
||||
call_user_defined_function_kw(args.kw_args, *memory, ast, exec_state, ctx).await
|
||||
}
|
||||
FunctionSource::None => unreachable!(),
|
||||
|
@ -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 their 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),
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -233,6 +282,9 @@ pub enum PrimitiveType {
|
||||
Plane,
|
||||
Helix,
|
||||
Face,
|
||||
Edge,
|
||||
Axis2d,
|
||||
Axis3d,
|
||||
ImportedGeometry,
|
||||
}
|
||||
|
||||
@ -248,6 +300,9 @@ impl PrimitiveType {
|
||||
PrimitiveType::Plane => "Planes".to_owned(),
|
||||
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(),
|
||||
}
|
||||
@ -273,6 +328,9 @@ impl fmt::Display for PrimitiveType {
|
||||
PrimitiveType::Solid => write!(f, "Solid"),
|
||||
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"),
|
||||
}
|
||||
@ -298,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 {
|
||||
@ -541,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),
|
||||
@ -609,6 +671,55 @@ impl KclValue {
|
||||
KclValue::Helix { .. } => Some(value.clone()),
|
||||
_ => None,
|
||||
},
|
||||
PrimitiveType::Edge => match value {
|
||||
KclValue::Uuid { .. } => Some(value.clone()),
|
||||
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,
|
||||
@ -621,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(),
|
||||
}),
|
||||
@ -1251,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 }, %)
|
||||
"
|
||||
);
|
||||
|
||||
|
@ -1634,7 +1634,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)
|
||||
@ -1649,7 +1649,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],
|
||||
@ -1673,7 +1673,7 @@ outsideRevolve = startSketchOn(XZ)
|
||||
|> line(end = [0, thickness])
|
||||
|> line(end = [overHangLength - thickness, 0])
|
||||
|> close()
|
||||
|> revolve({ axis: 'y' }, %)"#
|
||||
|> revolve({ axis = Y }, %)"#
|
||||
.to_string(),
|
||||
},
|
||||
})
|
||||
@ -1707,7 +1707,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
|
||||
}
|
||||
}
|
||||
);
|
||||
@ -1734,7 +1734,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)
|
||||
@ -1749,7 +1749,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],
|
||||
@ -1773,7 +1773,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)?;
|
||||
@ -2903,13 +2908,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),
|
||||
@ -2934,6 +2943,7 @@ fn parameter(i: &mut TokenSlice) -> PResult<ParamDescription> {
|
||||
return Err(ErrMode::Backtrack(ContextError::from(e)));
|
||||
}
|
||||
},
|
||||
attr,
|
||||
comments,
|
||||
})
|
||||
}
|
||||
@ -2955,6 +2965,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)?;
|
||||
@ -2962,6 +2973,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,
|
||||
|
@ -164,6 +164,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
|
||||
@ -685,37 +701,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,
|
||||
@ -1593,50 +1578,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);
|
||||
@ -1647,25 +1588,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))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -77,7 +77,7 @@ async fn call_map_closure(
|
||||
ctxt: &ExecutorContext,
|
||||
) -> Result<KclValue, KclError> {
|
||||
let output = map_fn
|
||||
.call(exec_state, ctxt, vec![Arg::synthetic(input)], source_range)
|
||||
.call(None, exec_state, ctxt, vec![Arg::synthetic(input)], source_range)
|
||||
.await?;
|
||||
let source_ranges = vec![source_range];
|
||||
let output = output.ok_or_else(|| {
|
||||
@ -202,7 +202,9 @@ async fn call_reduce_closure(
|
||||
) -> Result<KclValue, KclError> {
|
||||
// Call the reduce fn for this repetition.
|
||||
let reduce_fn_args = vec![Arg::synthetic(elem), Arg::synthetic(start)];
|
||||
let transform_fn_return = reduce_fn.call(exec_state, ctxt, reduce_fn_args, source_range).await?;
|
||||
let transform_fn_return = reduce_fn
|
||||
.call(None, exec_state, ctxt, reduce_fn_args, source_range)
|
||||
.await?;
|
||||
|
||||
// Unpack the returned transform object.
|
||||
let source_ranges = vec![source_range];
|
||||
|
@ -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!(),
|
||||
}
|
||||
}
|
||||
|
@ -437,7 +437,7 @@ async fn make_transform<T: GeometryTrait>(
|
||||
};
|
||||
let transform_fn_args = vec![Arg::synthetic(repetition_num)];
|
||||
let transform_fn_return = transform
|
||||
.call(exec_state, ctxt, transform_fn_args, source_range)
|
||||
.call(None, exec_state, ctxt, transform_fn_args, source_range)
|
||||
.await?;
|
||||
|
||||
// Unpack the returned transform object.
|
||||
|
@ -1,14 +1,16 @@
|
||||
//! 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 super::DEFAULT_TOLERANCE;
|
||||
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, Args},
|
||||
};
|
||||
@ -16,7 +18,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")?;
|
||||
@ -26,215 +35,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>,
|
||||
@ -265,15 +65,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)),
|
||||
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], %)
|
||||
|
@ -55,7 +55,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({
|
||||
@ -70,13 +70,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,
|
||||
@ -95,12 +95,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)
|
||||
/// ```
|
||||
@ -108,7 +108,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([
|
||||
@ -124,7 +124,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({
|
||||
@ -138,7 +138,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 @@
|
||||
|
@ -1266,7 +1266,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)
|
||||
@ -1281,7 +1281,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],
|
||||
@ -1305,7 +1305,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);
|
||||
@ -1332,7 +1332,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)
|
||||
@ -1347,7 +1347,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],
|
||||
@ -1371,7 +1371,7 @@ outsideRevolve = startSketchOn(XZ)
|
||||
|> line([0, thickness], %)
|
||||
|> line([overHangLength - thickness, 0], %)
|
||||
|> close()
|
||||
|> revolve({ axis = 'y' }, %)
|
||||
|> revolve({ axis = Y }, %)
|
||||
"#
|
||||
);
|
||||
}
|
||||
@ -1644,9 +1644,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], %)
|
||||
@ -1676,9 +1676,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], %)
|
||||
@ -2559,9 +2559,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 }
|
||||
}
|
||||
})
|
||||
"#;
|
||||
|
@ -234,6 +234,10 @@ export type Face
|
||||
@(impl = std_rust)
|
||||
export type Helix
|
||||
|
||||
/// The edge of a solid.
|
||||
@(impl = std_rust)
|
||||
export type Edge
|
||||
|
||||
/// A point in two dimensional space.
|
||||
///
|
||||
/// `Point2d` is an alias for a two-element array of [number](/docs/kcl/types/number)s. To write a value
|
||||
@ -266,3 +270,330 @@ export YZ = {
|
||||
yAxis = { x = 0, y = 0, z = 1 },
|
||||
zAxis = { x = 1, y = 0, z = 0 },
|
||||
}: Plane
|
||||
|
||||
/// An infinite line in 2d space.
|
||||
@(impl = std_rust)
|
||||
export type Axis2d
|
||||
|
||||
/// An infinite 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 reflect around.
|
||||
axis: Axis2d | Edge,
|
||||
): Sketch {}
|
||||
|
@ -18,72 +18,6 @@ description: Operations executed assembly_non_default_units.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 1.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"data": {
|
||||
@ -98,71 +32,5 @@ description: Operations executed assembly_non_default_units.kcl
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 2.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 1.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
}
|
||||
]
|
||||
|
@ -76,78 +76,22 @@ description: Operations executed crazy_multi_profile.kcl
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"type": "KclStdLibCall",
|
||||
"name": "revolve",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Face",
|
||||
"artifact_id": "[uuid]"
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 5.15,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 4.34,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 1.66,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"angle": {
|
||||
"value": {
|
||||
@ -173,18 +117,7 @@ description: Operations executed crazy_multi_profile.kcl
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
@ -233,78 +166,6 @@ description: Operations executed crazy_multi_profile.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Plane",
|
||||
"artifact_id": "[uuid]"
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 7.18,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": -2.11,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 2.67,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"length": {
|
||||
@ -338,6 +199,22 @@ description: Operations executed crazy_multi_profile.kcl
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "KclStdLibCall",
|
||||
"name": "revolve",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"labeledArgs": {
|
||||
"angle": {
|
||||
"value": {
|
||||
@ -364,17 +241,6 @@ description: Operations executed crazy_multi_profile.kcl
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -149,41 +149,37 @@ description: Operations executed fillet-and-shell.kcl
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"holeSketch": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 7.5,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 7.5,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"sketch": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"name": "hole",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"length": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 2.5,
|
||||
"value": 4.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
@ -197,64 +193,48 @@ description: Operations executed fillet-and-shell.kcl
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"name": "extrude",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"name": "m25Screw",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
1310,
|
||||
1538,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"data": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 7.5,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 7.5,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 1.25,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
"type": "String",
|
||||
"value": "XY"
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
"name": "startSketchOn",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
@ -344,114 +324,6 @@ description: Operations executed fillet-and-shell.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 7.5,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 65.5,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 2.5,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 7.5,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 65.5,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 1.25,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"holeSketch": {
|
||||
@ -540,310 +412,6 @@ description: Operations executed fillet-and-shell.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 30.5,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 65.5,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 2.5,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 30.5,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 65.5,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 1.25,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"holeSketch": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"sketch": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"name": "hole",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"length": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 4.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"name": "extrude",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "m25Screw",
|
||||
"functionSourceRange": [
|
||||
1310,
|
||||
1538,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"data": {
|
||||
"value": {
|
||||
"type": "String",
|
||||
"value": "XY"
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"name": "startSketchOn",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 30.5,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 7.5,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 2.5,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 30.5,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 7.5,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 1.25,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"holeSketch": {
|
||||
|
@ -18,152 +18,6 @@ description: Operations executed flush_batch_on_end.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Plane",
|
||||
"artifact_id": "[uuid]"
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 0.2734375,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"tag": {
|
||||
"value": {
|
||||
"type": "TagDeclarator",
|
||||
"name": "arc000"
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Plane",
|
||||
"artifact_id": "[uuid]"
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 0.182,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"tag": {
|
||||
"value": {
|
||||
"type": "TagDeclarator",
|
||||
"name": "arc001"
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"holeSketch": {
|
||||
|
@ -18,72 +18,6 @@ description: Operations executed helix_ccw.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 5.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 5.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 10.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"length": {
|
||||
@ -117,6 +51,17 @@ description: Operations executed helix_ccw.kcl
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "KclStdLibCall",
|
||||
"name": "helix",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Solid",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"labeledArgs": {
|
||||
"angleStart": {
|
||||
"value": {
|
||||
@ -167,17 +112,6 @@ description: Operations executed helix_ccw.kcl
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"name": "helix",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Solid",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -19,6 +19,9 @@ description: Operations executed helix_simple.kcl
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "KclStdLibCall",
|
||||
"name": "helix",
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"angleStart": {
|
||||
"value": {
|
||||
@ -100,9 +103,6 @@ description: Operations executed helix_simple.kcl
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"name": "helix",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
"sourceRange": []
|
||||
}
|
||||
]
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -18,72 +18,6 @@ description: Operations executed import_whole.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 5.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 5.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 10.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"length": {
|
||||
|
@ -30,54 +30,6 @@ description: Operations executed 80-20-rail.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.75,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.75,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 0.15375,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"holeSketch": {
|
||||
|
@ -74,54 +74,6 @@ description: Operations executed a-parametric-bearing-pillow-block.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": -1.25,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": -2.25,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 0.35,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"length": {
|
||||
@ -201,54 +153,6 @@ description: Operations executed a-parametric-bearing-pillow-block.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": -1.25,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": -2.25,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 0.1875,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"length": {
|
||||
@ -328,66 +232,6 @@ description: Operations executed a-parametric-bearing-pillow-block.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 1.5,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"length": {
|
||||
|
@ -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
@ -42,126 +42,6 @@ description: Operations executed ball-bearing.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 0.475,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 0.375,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"holeSketch": {
|
||||
@ -236,28 +116,96 @@ description: Operations executed ball-bearing.kcl
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"axis": {
|
||||
"value": {
|
||||
"type": "String",
|
||||
"value": "X"
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"type": "KclStdLibCall",
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"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": []
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"arcDegrees": {
|
||||
@ -438,28 +386,96 @@ description: Operations executed ball-bearing.kcl
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"axis": {
|
||||
"value": {
|
||||
"type": "String",
|
||||
"value": "X"
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"type": "KclStdLibCall",
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"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": []
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"arcDegrees": {
|
||||
@ -625,60 +641,22 @@ description: Operations executed ball-bearing.kcl
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"type": "KclStdLibCall",
|
||||
"name": "revolve",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.6,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 0.03125,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"angle": {
|
||||
"value": {
|
||||
@ -692,24 +670,76 @@ 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"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": []
|
||||
}
|
||||
},
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
@ -899,126 +929,6 @@ description: Operations executed ball-bearing.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 0.8125,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 0.725,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"holeSketch": {
|
||||
|
@ -255,66 +255,6 @@ description: Operations executed bracket.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": -1.25,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 1.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 0.25,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"length": {
|
||||
@ -389,66 +329,6 @@ description: Operations executed bracket.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 1.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": -1.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 0.25,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"length": {
|
||||
|
@ -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
@ -132,66 +132,6 @@ description: Operations executed cycloidal-gear.kcl
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 0.1485,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"holeSketch": {
|
||||
@ -332,66 +272,6 @@ description: Operations executed cycloidal-gear.kcl
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 0.1485,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"holeSketch": {
|
||||
@ -538,66 +418,6 @@ description: Operations executed cycloidal-gear.kcl
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 0.1485,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"holeSketch": {
|
||||
|
@ -921,72 +921,6 @@ description: Operations executed dual-basin-utility-sink.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Plane",
|
||||
"artifact_id": "[uuid]"
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 228.75,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 780.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 2.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Mm"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"path": {
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -18,60 +18,6 @@ description: Operations executed flange.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 1.75,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 0.3125,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"data": {
|
||||
@ -87,66 +33,6 @@ description: Operations executed flange.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 2.3125,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"holeSketch": {
|
||||
@ -252,66 +138,6 @@ description: Operations executed flange.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 1.1565,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"length": {
|
||||
@ -368,66 +194,6 @@ description: Operations executed flange.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 1.25,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"length": {
|
||||
@ -484,66 +250,6 @@ description: Operations executed flange.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 0.625,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"length": {
|
||||
|
@ -488,54 +488,6 @@ description: Operations executed focusrite-scarlett-mounting-bracket.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 82.0,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 27.333333333333332,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 2.5,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"holeSketch": {
|
||||
@ -922,54 +874,6 @@ description: Operations executed focusrite-scarlett-mounting-bracket.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": -82.0,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 27.333333333333332,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 2.5,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"holeSketch": {
|
||||
|
@ -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,17 @@ description: Operations executed french-press.kcl
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "KclStdLibCall",
|
||||
"name": "revolve",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"labeledArgs": {
|
||||
"angle": {
|
||||
"value": {
|
||||
@ -38,24 +49,76 @@ 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"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": []
|
||||
}
|
||||
},
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
@ -480,66 +543,6 @@ description: Operations executed french-press.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 2.055,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"length": {
|
||||
@ -661,18 +664,8 @@ description: Operations executed french-press.kcl
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"axis": {
|
||||
"value": {
|
||||
"type": "String",
|
||||
"value": "y"
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"type": "KclStdLibCall",
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
@ -681,7 +674,80 @@ 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": []
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
@ -699,18 +765,8 @@ description: Operations executed french-press.kcl
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"axis": {
|
||||
"value": {
|
||||
"type": "String",
|
||||
"value": "y"
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"type": "KclStdLibCall",
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
@ -719,7 +775,80 @@ 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": []
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
@ -766,132 +895,6 @@ description: Operations executed french-press.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 1.965,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 0.15,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"holeSketch": {
|
||||
@ -974,72 +977,6 @@ description: Operations executed french-press.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 1.4,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 0.3,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"length": {
|
||||
@ -1143,72 +1080,6 @@ description: Operations executed french-press.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.6,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 0.2,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"length": {
|
||||
@ -1279,66 +1150,6 @@ description: Operations executed french-press.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 2.205,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"length": {
|
||||
@ -1431,18 +1242,8 @@ description: Operations executed french-press.kcl
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"axis": {
|
||||
"value": {
|
||||
"type": "String",
|
||||
"value": "y"
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"type": "KclStdLibCall",
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
@ -1451,7 +1252,80 @@ 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": []
|
||||
},
|
||||
{
|
||||
"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"
|
||||
},
|
||||
|
@ -4623,66 +4623,6 @@ description: Operations executed gear.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 0.0,
|
||||
"ty": {
|
||||
"type": "Default",
|
||||
"len": {
|
||||
"type": "Inches"
|
||||
},
|
||||
"angle": {
|
||||
"type": "Degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 4.933386259126019,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
"length": {
|
||||
|
@ -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": "KclStdLibCall",
|
||||
"name": "revolve",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"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,24 +387,11 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
@ -1065,60 +1065,12 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": null
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "circle",
|
||||
"functionSourceRange": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
"labeledArgs": {
|
||||
"center": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"value": [
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 8.0,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Number",
|
||||
"value": 8.0,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
"radius": {
|
||||
"value": {
|
||||
"type": "Number",
|
||||
"value": 3.25,
|
||||
"ty": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionReturn"
|
||||
},
|
||||
{
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "magnetBase",
|
||||
"functionSourceRange": [
|
||||
4364,
|
||||
4706,
|
||||
4348,
|
||||
4690,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
@ -1144,8 +1096,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "magnetCenterCutout",
|
||||
"functionSourceRange": [
|
||||
2713,
|
||||
4304,
|
||||
2697,
|
||||
4288,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
@ -1370,8 +1322,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
|
||||
"type": "UserDefinedFunctionCall",
|
||||
"name": "magnetBase",
|
||||
"functionSourceRange": [
|
||||
4364,
|
||||
4706,
|
||||
4348,
|
||||
4690,
|
||||
0
|
||||
],
|
||||
"unlabeledArg": null,
|
||||
@ -1397,8 +1349,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": "KclStdLibCall",
|
||||
"name": "revolve",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Array",
|
||||
"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,24 +387,11 @@ description: Operations executed gridfinity-baseplate.kcl
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
"name": "revolve",
|
||||
"sourceRange": [],
|
||||
"type": "StdLibCall",
|
||||
"unlabeledArg": {
|
||||
"value": {
|
||||
"type": "Sketch",
|
||||
"value": {
|
||||
"artifactId": "[uuid]"
|
||||
}
|
||||
},
|
||||
"sourceRange": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"labeledArgs": {
|
||||
|
@ -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
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user