Merge remote-tracking branch 'origin/main' into paultag/import
This commit is contained in:
18
.eslintrc
18
.eslintrc
@ -26,11 +26,17 @@
|
|||||||
"@typescript-eslint/no-duplicate-enum-values": "error",
|
"@typescript-eslint/no-duplicate-enum-values": "error",
|
||||||
"@typescript-eslint/no-duplicate-type-constituents": "error",
|
"@typescript-eslint/no-duplicate-type-constituents": "error",
|
||||||
"@typescript-eslint/no-empty-object-type": "error",
|
"@typescript-eslint/no-empty-object-type": "error",
|
||||||
|
"@typescript-eslint/no-extra-non-null-assertion": "error",
|
||||||
"@typescript-eslint/no-floating-promises": "error",
|
"@typescript-eslint/no-floating-promises": "error",
|
||||||
|
"@typescript-eslint/no-for-in-array": "error",
|
||||||
"no-implied-eval": "off", // This is wrong; use the @typescript-eslint one instead.
|
"no-implied-eval": "off", // This is wrong; use the @typescript-eslint one instead.
|
||||||
"@typescript-eslint/no-implied-eval": "error",
|
"@typescript-eslint/no-implied-eval": "error",
|
||||||
|
"@typescript-eslint/no-misused-new": "error",
|
||||||
"@typescript-eslint/no-misused-promises": "error",
|
"@typescript-eslint/no-misused-promises": "error",
|
||||||
"@typescript-eslint/no-namespace": "error",
|
"@typescript-eslint/no-namespace": "error",
|
||||||
|
"@typescript-eslint/no-non-null-asserted-optional-chain": "error",
|
||||||
|
"@typescript-eslint/no-redundant-type-constituents": "error",
|
||||||
|
"@typescript-eslint/no-this-alias": "warn",
|
||||||
"@typescript-eslint/no-unnecessary-type-assertion": "error",
|
"@typescript-eslint/no-unnecessary-type-assertion": "error",
|
||||||
"@typescript-eslint/no-unnecessary-type-constraint": "error",
|
"@typescript-eslint/no-unnecessary-type-constraint": "error",
|
||||||
"no-unused-vars": "off", // This is wrong; use the @typescript-eslint one instead.
|
"no-unused-vars": "off", // This is wrong; use the @typescript-eslint one instead.
|
||||||
@ -41,7 +47,13 @@
|
|||||||
"vars": "all",
|
"vars": "all",
|
||||||
"args": "none"
|
"args": "none"
|
||||||
}],
|
}],
|
||||||
|
"@typescript-eslint/no-unsafe-unary-minus": "error",
|
||||||
|
"@typescript-eslint/no-wrapper-object-types": "error",
|
||||||
|
"no-throw-literal": "off", // Use @typescript-eslint/only-throw-error instead.
|
||||||
|
"@typescript-eslint/only-throw-error": "error",
|
||||||
"@typescript-eslint/prefer-as-const": "warn",
|
"@typescript-eslint/prefer-as-const": "warn",
|
||||||
|
"@typescript-eslint/prefer-namespace-keyword": "error",
|
||||||
|
"@typescript-eslint/restrict-plus-operands": "error",
|
||||||
"jsx-a11y/click-events-have-key-events": "off",
|
"jsx-a11y/click-events-have-key-events": "off",
|
||||||
"jsx-a11y/no-autofocus": "off",
|
"jsx-a11y/no-autofocus": "off",
|
||||||
"jsx-a11y/no-noninteractive-element-interactions": "off",
|
"jsx-a11y/no-noninteractive-element-interactions": "off",
|
||||||
@ -50,7 +62,7 @@
|
|||||||
{
|
{
|
||||||
"name": "isNaN",
|
"name": "isNaN",
|
||||||
"message": "Use Number.isNaN() instead."
|
"message": "Use Number.isNaN() instead."
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
"no-restricted-syntax": [
|
"no-restricted-syntax": [
|
||||||
"error",
|
"error",
|
||||||
@ -64,7 +76,7 @@
|
|||||||
"never"
|
"never"
|
||||||
],
|
],
|
||||||
"react-hooks/exhaustive-deps": "off",
|
"react-hooks/exhaustive-deps": "off",
|
||||||
"suggest-no-throw/suggest-no-throw": "warn",
|
"suggest-no-throw/suggest-no-throw": "error"
|
||||||
},
|
},
|
||||||
"overrides": [
|
"overrides": [
|
||||||
{
|
{
|
||||||
@ -84,7 +96,7 @@
|
|||||||
"plugin:testing-library/react"
|
"plugin:testing-library/react"
|
||||||
],
|
],
|
||||||
"rules": {
|
"rules": {
|
||||||
"suggest-no-throw/suggest-no-throw": "off",
|
"suggest-no-throw/suggest-no-throw": "off"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -124,6 +124,7 @@ export class ElectronZoo {
|
|||||||
|
|
||||||
// We need to expose this in order for some tests that require folder
|
// We need to expose this in order for some tests that require folder
|
||||||
// creation and some code below.
|
// creation and some code below.
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
||||||
const that = this
|
const that = this
|
||||||
|
|
||||||
const options = {
|
const options = {
|
||||||
|
@ -37,11 +37,11 @@ export class IntoServer
|
|||||||
implements AsyncGenerator<Uint8Array, never, void>
|
implements AsyncGenerator<Uint8Array, never, void>
|
||||||
{
|
{
|
||||||
private worker: Worker | null = null
|
private worker: Worker | null = null
|
||||||
private type_: String | null = null
|
private type_: string | null = null
|
||||||
|
|
||||||
private trace: boolean = false
|
private trace: boolean = false
|
||||||
|
|
||||||
constructor(type_?: String, worker?: Worker, trace?: boolean) {
|
constructor(type_?: string, worker?: Worker, trace?: boolean) {
|
||||||
super()
|
super()
|
||||||
if (worker && type_) {
|
if (worker && type_) {
|
||||||
this.worker = worker
|
this.worker = worker
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 57 KiB |
@ -4,72 +4,142 @@
|
|||||||
// Set Units
|
// Set Units
|
||||||
@settings(defaultLengthUnit = in)
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
// Define constants such as sheet metal thickness, bend radius, flange length, bolt diameter size, etc.
|
// Input bolt pattern dimensions to mount the bracket
|
||||||
thickness = 0.090
|
mountingBoltDiameter = 1 / 4
|
||||||
bendRad = 0.08
|
mountingBoltPatternX = 7
|
||||||
outsideBendRad = bendRad + thickness
|
mountingBoltPatternY = 4
|
||||||
flangeLength = 0.5
|
|
||||||
hatHeight = 3
|
|
||||||
hatWidth = 5
|
|
||||||
boltSize = 0.25
|
|
||||||
flangeWidth = 1.5
|
|
||||||
|
|
||||||
// Sketch and extrude the base shape and fillet the inside and outside edges.
|
// Input bolt pattern dimensions to mount a component to the bracket
|
||||||
baseExtrusion = startSketchOn(-XZ)
|
componentBoltDiameter = 3 / 16
|
||||||
|> startProfileAt([0, 0], %)
|
componentBoltPatternX = 2
|
||||||
|> line(end = [0, thickness], tag = $e1)
|
componentBoltPatternY = 3
|
||||||
|> line(end = [flangeLength, 0], tag = $e2)
|
|
||||||
|> line(end = [0, hatHeight], tag = $e3)
|
|
||||||
|> line(end = [hatWidth, 0], tag = $e4)
|
|
||||||
|> line(end = [0, -hatHeight], tag = $e5)
|
|
||||||
|> line(end = [flangeLength, 0], tag = $e6)
|
|
||||||
|> line(end = [0, -thickness], tag = $e7)
|
|
||||||
|> line(end = [-flangeLength - thickness, 0], tag = $e8)
|
|
||||||
|> line(end = [0, hatHeight], tag = $e9)
|
|
||||||
|> line(end = [-hatWidth + 2 * thickness, 0], tag = $e10)
|
|
||||||
|> line(end = [0, -hatHeight], tag = $e11)
|
|
||||||
|> close(tag = $e12)
|
|
||||||
|> extrude(length = hatWidth)
|
|
||||||
|> fillet(radius = bendRad, tags = [getNextAdjacentEdge(e2)])
|
|
||||||
|> fillet(radius = outsideBendRad, tags = [getNextAdjacentEdge(e3)])
|
|
||||||
|> fillet(radius = outsideBendRad, tags = [getNextAdjacentEdge(e4)])
|
|
||||||
|> fillet(radius = bendRad, tags = [getNextAdjacentEdge(e5)])
|
|
||||||
|> fillet(radius = outsideBendRad, tags = [getNextAdjacentEdge(e8)])
|
|
||||||
|> fillet(radius = bendRad, tags = [getNextAdjacentEdge(e9)])
|
|
||||||
|> fillet(radius = bendRad, tags = [getNextAdjacentEdge(e10)])
|
|
||||||
|> fillet(radius = outsideBendRad, tags = [getNextAdjacentEdge(e11)])
|
|
||||||
|
|
||||||
// Define the flanges and place the bolt holes
|
// Define bracket constants such as sheet metal thickness, bend radius, flange length, etc.
|
||||||
flange1 = startSketchOn(XY)
|
hatHeight = 2.5
|
||||||
|> startProfileAt([0, 0], %)
|
bendAngle = 75
|
||||||
|> line(end = [0, hatWidth])
|
thickness = 0.125
|
||||||
|> line(end = [flangeWidth, 0], tag = $e13)
|
interiorBendRadius = 0.125
|
||||||
|> line(end = [0, -hatWidth], tag = $e14)
|
|
||||||
|
// Calculate Remaining Parameters
|
||||||
|
exteriorBendRadius = interiorBendRadius + thickness
|
||||||
|
overhang = 3 * mountingBoltDiameter
|
||||||
|
flangeLength = 6 * mountingBoltDiameter
|
||||||
|
flangeExtrusion = if mountingBoltPatternY > componentBoltPatternY {
|
||||||
|
mountingBoltPatternY + overhang * 2
|
||||||
|
} else {
|
||||||
|
componentBoltPatternY + overhang * 2
|
||||||
|
}
|
||||||
|
|
||||||
|
// Draw the extrusion profile of the sheet metal bracket
|
||||||
|
bracketProfile = startSketchOn(XZ)
|
||||||
|
|> startProfileAt([
|
||||||
|
-mountingBoltPatternX / 2 - overhang,
|
||||||
|
0
|
||||||
|
], %)
|
||||||
|
|> xLine(length = flangeLength)
|
||||||
|
|> tangentialArc({
|
||||||
|
radius = exteriorBendRadius,
|
||||||
|
offset = bendAngle
|
||||||
|
}, %)
|
||||||
|
|> angledLineToY([bendAngle, hatHeight - thickness], %, $seg01)
|
||||||
|
|> tangentialArc({
|
||||||
|
radius = interiorBendRadius,
|
||||||
|
offset = -bendAngle
|
||||||
|
}, %)
|
||||||
|
|> xLine(endAbsolute = 0, tag = $seg02)
|
||||||
|
|> xLine(length = segLen(seg02))
|
||||||
|
|> tangentialArc({
|
||||||
|
radius = interiorBendRadius,
|
||||||
|
offset = -bendAngle
|
||||||
|
}, %)
|
||||||
|
|> angledLine([-bendAngle, segLen(seg01)], %)
|
||||||
|
|> tangentialArc({
|
||||||
|
radius = exteriorBendRadius,
|
||||||
|
offset = bendAngle
|
||||||
|
}, %)
|
||||||
|
|> xLine(length = flangeLength)
|
||||||
|
|> yLine(length = thickness, tag = $seg03)
|
||||||
|
|> xLine(length = -flangeLength, tag = $seg04)
|
||||||
|
|> tangentialArc({
|
||||||
|
radius = interiorBendRadius,
|
||||||
|
offset = -bendAngle
|
||||||
|
}, %)
|
||||||
|
|> angledLine([180 - bendAngle, segLen(seg01)], %)
|
||||||
|
|> tangentialArc({
|
||||||
|
radius = exteriorBendRadius,
|
||||||
|
offset = bendAngle
|
||||||
|
}, %)
|
||||||
|
|> xLine(endAbsolute = 0, tag = $seg05)
|
||||||
|
|> xLine(length = -segLen(seg05))
|
||||||
|
|> tangentialArc({
|
||||||
|
radius = exteriorBendRadius,
|
||||||
|
offset = bendAngle
|
||||||
|
}, %)
|
||||||
|
|> angledLine([bendAngle - 180, segLen(seg01)], %)
|
||||||
|
|> tangentialArc({
|
||||||
|
radius = interiorBendRadius,
|
||||||
|
offset = -bendAngle
|
||||||
|
}, %)
|
||||||
|
|> xLine(length = -flangeLength, tag = $seg06)
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg07)
|
||||||
|> close()
|
|> close()
|
||||||
|> hole(circle(center = [0.75, 1], radius = boltSize), %)
|
|> extrude(length = flangeExtrusion)
|
||||||
|> hole(circle(center = [0.75, 4], radius = boltSize), %)
|
|
||||||
|> extrude(length = thickness)
|
|
||||||
|> fillet(
|
|> fillet(
|
||||||
radius = 0.5,
|
radius = flangeLength / 3,
|
||||||
tags = [
|
tags = [
|
||||||
getNextAdjacentEdge(e13),
|
seg03,
|
||||||
getNextAdjacentEdge(e14)
|
getOppositeEdge(seg03),
|
||||||
|
seg07,
|
||||||
|
getOppositeEdge(seg07)
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
flange2 = startSketchOn(XY)
|
// Cut the bolt pattern in the left base flange
|
||||||
|> startProfileAt([-6, 0], %)
|
leftFlangeBoltPattern = startSketchOn(bracketProfile, seg04)
|
||||||
|> line(end = [0, hatWidth])
|
|> circle(center = [-mountingBoltPatternX / 2, overhang], radius = mountingBoltDiameter / 2)
|
||||||
|> line(end = [-flangeWidth, 0], tag = $e15)
|
|> patternLinear2d(
|
||||||
|> line(end = [0, -hatWidth], tag = $e16)
|
%,
|
||||||
|> close()
|
instances = 2,
|
||||||
|> hole(circle(center = [-6.75, 1], radius = boltSize), %)
|
distance = mountingBoltPatternY,
|
||||||
|> hole(circle(center = [-6.75, 4], radius = boltSize), %)
|
axis = [0, 1],
|
||||||
|> extrude(length = thickness)
|
|
||||||
|> fillet(
|
|
||||||
radius = 0.25,
|
|
||||||
tags = [
|
|
||||||
getNextAdjacentEdge(e15),
|
|
||||||
getNextAdjacentEdge(e16)
|
|
||||||
],
|
|
||||||
)
|
)
|
||||||
|
|> extrude(length = -thickness)
|
||||||
|
|
||||||
|
// Cut the bolt pattern in the right base flange
|
||||||
|
rightFlangeBoltPattern = startSketchOn(bracketProfile, seg06)
|
||||||
|
|> circle(center = [mountingBoltPatternX / 2, overhang], radius = mountingBoltDiameter / 2)
|
||||||
|
|> patternLinear2d(
|
||||||
|
%,
|
||||||
|
instances = 2,
|
||||||
|
distance = mountingBoltPatternY,
|
||||||
|
axis = [0, 1],
|
||||||
|
)
|
||||||
|
|> extrude(length = -thickness)
|
||||||
|
|
||||||
|
// Provision the top flange with holes to mount an object
|
||||||
|
topFlangeBoltPattern = startSketchOn(bracketProfile, seg05)
|
||||||
|
|> circle(
|
||||||
|
center = [
|
||||||
|
-componentBoltPatternX / 2,
|
||||||
|
-componentBoltPatternY / 2 + flangeExtrusion / 2
|
||||||
|
],
|
||||||
|
radius = componentBoltDiameter / 2,
|
||||||
|
)
|
||||||
|
|> patternLinear2d(
|
||||||
|
%,
|
||||||
|
instances = 2,
|
||||||
|
distance = componentBoltPatternX,
|
||||||
|
axis = [1, 0],
|
||||||
|
)
|
||||||
|
|> patternLinear2d(
|
||||||
|
%,
|
||||||
|
instances = 2,
|
||||||
|
distance = componentBoltPatternY,
|
||||||
|
axis = [0, 1],
|
||||||
|
)
|
||||||
|
|> extrude(length = -thickness)
|
||||||
|
|
||||||
|
// Place a hole at the center of the component bolt pattern to reduce mass
|
||||||
|
centeredHole = startSketchOn(bracketProfile, seg05)
|
||||||
|
|> circle(center = [0, flangeExtrusion / 2], radius = 0.75)
|
||||||
|
|> extrude(length = -thickness)
|
||||||
|
24
rust/Cargo.lock
generated
24
rust/Cargo.lock
generated
@ -1780,7 +1780,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-bumper"
|
name = "kcl-bumper"
|
||||||
version = "0.1.56"
|
version = "0.1.57"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"clap",
|
"clap",
|
||||||
@ -1791,7 +1791,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-derive-docs"
|
name = "kcl-derive-docs"
|
||||||
version = "0.1.56"
|
version = "0.1.57"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"Inflector",
|
"Inflector",
|
||||||
"anyhow",
|
"anyhow",
|
||||||
@ -1810,7 +1810,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-directory-test-macro"
|
name = "kcl-directory-test-macro"
|
||||||
version = "0.1.56"
|
version = "0.1.57"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@ -1819,7 +1819,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-language-server"
|
name = "kcl-language-server"
|
||||||
version = "0.2.56"
|
version = "0.2.57"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"clap",
|
"clap",
|
||||||
@ -1840,7 +1840,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-language-server-release"
|
name = "kcl-language-server-release"
|
||||||
version = "0.1.56"
|
version = "0.1.57"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"clap",
|
"clap",
|
||||||
@ -1860,7 +1860,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-lib"
|
name = "kcl-lib"
|
||||||
version = "0.2.56"
|
version = "0.2.57"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"approx 0.5.1",
|
"approx 0.5.1",
|
||||||
@ -1929,7 +1929,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-python-bindings"
|
name = "kcl-python-bindings"
|
||||||
version = "0.3.56"
|
version = "0.3.57"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"kcl-lib",
|
"kcl-lib",
|
||||||
@ -1944,7 +1944,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-test-server"
|
name = "kcl-test-server"
|
||||||
version = "0.1.56"
|
version = "0.1.57"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"hyper 0.14.32",
|
"hyper 0.14.32",
|
||||||
@ -1957,7 +1957,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-to-core"
|
name = "kcl-to-core"
|
||||||
version = "0.1.56"
|
version = "0.1.57"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
@ -1971,7 +1971,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-wasm-lib"
|
name = "kcl-wasm-lib"
|
||||||
version = "0.1.56"
|
version = "0.1.57"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bson",
|
"bson",
|
||||||
"console_error_panic_hook",
|
"console_error_panic_hook",
|
||||||
@ -2034,9 +2034,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kittycad-modeling-cmds"
|
name = "kittycad-modeling-cmds"
|
||||||
version = "0.2.107"
|
version = "0.2.108"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "cb129c1f4906a76e3518e58f61968f16cb56f1279366415d2bae6059aa68fce8"
|
checksum = "58f5fbcfb0fe3384592829cd1a5109aa45fb6a3ffc5ff2d164d2fd528ffd4641"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"chrono",
|
"chrono",
|
||||||
|
@ -35,7 +35,7 @@ dashmap = { version = "6.1.0" }
|
|||||||
http = "1"
|
http = "1"
|
||||||
indexmap = "2.7.0"
|
indexmap = "2.7.0"
|
||||||
kittycad = { version = "0.3.36", default-features = false, features = ["js", "requests"] }
|
kittycad = { version = "0.3.36", default-features = false, features = ["js", "requests"] }
|
||||||
kittycad-modeling-cmds = { version = "0.2.107", features = ["ts-rs", "websocket"] }
|
kittycad-modeling-cmds = { version = "0.2.108", features = ["ts-rs", "websocket"] }
|
||||||
lazy_static = "1.5.0"
|
lazy_static = "1.5.0"
|
||||||
miette = "7.5.0"
|
miette = "7.5.0"
|
||||||
pyo3 = { version = "0.24.0" }
|
pyo3 = { version = "0.24.0" }
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "kcl-bumper"
|
name = "kcl-bumper"
|
||||||
version = "0.1.56"
|
version = "0.1.57"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
repository = "https://github.com/KittyCAD/modeling-api"
|
repository = "https://github.com/KittyCAD/modeling-api"
|
||||||
rust-version = "1.76"
|
rust-version = "1.76"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "kcl-derive-docs"
|
name = "kcl-derive-docs"
|
||||||
description = "A tool for generating documentation from Rust derive macros"
|
description = "A tool for generating documentation from Rust derive macros"
|
||||||
version = "0.1.56"
|
version = "0.1.57"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://github.com/KittyCAD/modeling-app"
|
repository = "https://github.com/KittyCAD/modeling-app"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "kcl-directory-test-macro"
|
name = "kcl-directory-test-macro"
|
||||||
description = "A tool for generating tests from a directory of kcl files"
|
description = "A tool for generating tests from a directory of kcl files"
|
||||||
version = "0.1.56"
|
version = "0.1.57"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://github.com/KittyCAD/modeling-app"
|
repository = "https://github.com/KittyCAD/modeling-app"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "kcl-language-server-release"
|
name = "kcl-language-server-release"
|
||||||
version = "0.1.56"
|
version = "0.1.57"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
authors = ["KittyCAD Inc <kcl@kittycad.io>"]
|
authors = ["KittyCAD Inc <kcl@kittycad.io>"]
|
||||||
publish = false
|
publish = false
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
name = "kcl-language-server"
|
name = "kcl-language-server"
|
||||||
description = "A language server for KCL."
|
description = "A language server for KCL."
|
||||||
authors = ["KittyCAD Inc <kcl@kittycad.io>"]
|
authors = ["KittyCAD Inc <kcl@kittycad.io>"]
|
||||||
version = "0.2.56"
|
version = "0.2.57"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "kcl-lib"
|
name = "kcl-lib"
|
||||||
description = "KittyCAD Language implementation and tools"
|
description = "KittyCAD Language implementation and tools"
|
||||||
version = "0.2.56"
|
version = "0.2.57"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://github.com/KittyCAD/modeling-app"
|
repository = "https://github.com/KittyCAD/modeling-app"
|
||||||
|
@ -138,8 +138,6 @@ async fn inner_chamfer(
|
|||||||
radius: LengthUnit(length),
|
radius: LengthUnit(length),
|
||||||
tolerance: LengthUnit(DEFAULT_TOLERANCE), // We can let the user set this in the future.
|
tolerance: LengthUnit(DEFAULT_TOLERANCE), // We can let the user set this in the future.
|
||||||
cut_type: CutType::Chamfer,
|
cut_type: CutType::Chamfer,
|
||||||
// We make this a none so that we can remove it in the future.
|
|
||||||
face_id: None,
|
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
@ -167,8 +167,6 @@ async fn inner_fillet(
|
|||||||
radius: LengthUnit(radius),
|
radius: LengthUnit(radius),
|
||||||
tolerance: LengthUnit(tolerance.unwrap_or(DEFAULT_TOLERANCE)),
|
tolerance: LengthUnit(tolerance.unwrap_or(DEFAULT_TOLERANCE)),
|
||||||
cut_type: CutType::Fillet,
|
cut_type: CutType::Fillet,
|
||||||
// We make this a none so that we can remove it in the future.
|
|
||||||
face_id: None,
|
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,141 +1,145 @@
|
|||||||
```mermaid
|
```mermaid
|
||||||
flowchart LR
|
flowchart LR
|
||||||
subgraph path2 [Path]
|
subgraph path2 [Path]
|
||||||
2["Path<br>[728, 753, 0]"]
|
2["Path<br>[1227, 1308, 0]"]
|
||||||
3["Segment<br>[759, 796, 0]"]
|
3["Segment<br>[1314, 1342, 0]"]
|
||||||
4["Segment<br>[802, 842, 0]"]
|
4["Segment<br>[1348, 1436, 0]"]
|
||||||
5["Segment<br>[848, 885, 0]"]
|
5["Segment<br>[1442, 1502, 0]"]
|
||||||
6["Segment<br>[891, 927, 0]"]
|
6["Segment<br>[1508, 1597, 0]"]
|
||||||
7["Segment<br>[933, 971, 0]"]
|
7["Segment<br>[1603, 1639, 0]"]
|
||||||
8["Segment<br>[977, 1017, 0]"]
|
8["Segment<br>[1645, 1674, 0]"]
|
||||||
9["Segment<br>[1023, 1061, 0]"]
|
9["Segment<br>[1680, 1769, 0]"]
|
||||||
10["Segment<br>[1067, 1120, 0]"]
|
10["Segment<br>[1775, 1817, 0]"]
|
||||||
11["Segment<br>[1126, 1163, 0]"]
|
11["Segment<br>[1823, 1911, 0]"]
|
||||||
12["Segment<br>[1169, 1223, 0]"]
|
12["Segment<br>[1917, 1945, 0]"]
|
||||||
13["Segment<br>[1229, 1268, 0]"]
|
13["Segment<br>[1951, 1990, 0]"]
|
||||||
14["Segment<br>[1274, 1291, 0]"]
|
14["Segment<br>[1996, 2039, 0]"]
|
||||||
15[Solid2d]
|
15["Segment<br>[2045, 2134, 0]"]
|
||||||
|
16["Segment<br>[2140, 2187, 0]"]
|
||||||
|
17["Segment<br>[2193, 2281, 0]"]
|
||||||
|
18["Segment<br>[2287, 2323, 0]"]
|
||||||
|
19["Segment<br>[2329, 2359, 0]"]
|
||||||
|
20["Segment<br>[2365, 2453, 0]"]
|
||||||
|
21["Segment<br>[2459, 2506, 0]"]
|
||||||
|
22["Segment<br>[2512, 2601, 0]"]
|
||||||
|
23["Segment<br>[2607, 2650, 0]"]
|
||||||
|
24["Segment<br>[2656, 2726, 0]"]
|
||||||
|
25["Segment<br>[2732, 2739, 0]"]
|
||||||
|
26[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path56 [Path]
|
subgraph path94 [Path]
|
||||||
56["Path<br>[1947, 1972, 0]"]
|
94["Path<br>[3071, 3160, 0]"]
|
||||||
57["Segment<br>[1978, 2003, 0]"]
|
95["Segment<br>[3071, 3160, 0]"]
|
||||||
58["Segment<br>[2009, 2049, 0]"]
|
96[Solid2d]
|
||||||
59["Segment<br>[2055, 2093, 0]"]
|
|
||||||
60["Segment<br>[2099, 2106, 0]"]
|
|
||||||
61[Solid2d]
|
|
||||||
end
|
end
|
||||||
subgraph path62 [Path]
|
subgraph path102 [Path]
|
||||||
62["Path<br>[2117, 2162, 0]"]
|
102["Path<br>[3435, 3523, 0]"]
|
||||||
63["Segment<br>[2117, 2162, 0]"]
|
103["Segment<br>[3435, 3523, 0]"]
|
||||||
64[Solid2d]
|
104[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path65 [Path]
|
subgraph path110 [Path]
|
||||||
65["Path<br>[2177, 2222, 0]"]
|
110["Path<br>[3805, 3985, 0]"]
|
||||||
66["Segment<br>[2177, 2222, 0]"]
|
111["Segment<br>[3805, 3985, 0]"]
|
||||||
67[Solid2d]
|
112[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path84 [Path]
|
subgraph path120 [Path]
|
||||||
84["Path<br>[2430, 2456, 0]"]
|
120["Path<br>[4401, 4457, 0]"]
|
||||||
85["Segment<br>[2462, 2487, 0]"]
|
121["Segment<br>[4401, 4457, 0]"]
|
||||||
86["Segment<br>[2493, 2534, 0]"]
|
122[Solid2d]
|
||||||
87["Segment<br>[2540, 2578, 0]"]
|
|
||||||
88["Segment<br>[2584, 2591, 0]"]
|
|
||||||
89[Solid2d]
|
|
||||||
end
|
end
|
||||||
subgraph path90 [Path]
|
1["Plane<br>[1204, 1221, 0]"]
|
||||||
90["Path<br>[2602, 2648, 0]"]
|
27["Sweep Extrusion<br>[2745, 2778, 0]"]
|
||||||
91["Segment<br>[2602, 2648, 0]"]
|
|
||||||
92[Solid2d]
|
|
||||||
end
|
|
||||||
subgraph path93 [Path]
|
|
||||||
93["Path<br>[2663, 2709, 0]"]
|
|
||||||
94["Segment<br>[2663, 2709, 0]"]
|
|
||||||
95[Solid2d]
|
|
||||||
end
|
|
||||||
1["Plane<br>[704, 722, 0]"]
|
|
||||||
16["Sweep Extrusion<br>[1297, 1323, 0]"]
|
|
||||||
17[Wall]
|
|
||||||
18[Wall]
|
|
||||||
19[Wall]
|
|
||||||
20[Wall]
|
|
||||||
21[Wall]
|
|
||||||
22[Wall]
|
|
||||||
23[Wall]
|
|
||||||
24[Wall]
|
|
||||||
25[Wall]
|
|
||||||
26[Wall]
|
|
||||||
27[Wall]
|
|
||||||
28[Wall]
|
28[Wall]
|
||||||
29["Cap Start"]
|
29[Wall]
|
||||||
30["Cap End"]
|
30[Wall]
|
||||||
31["SweepEdge Opposite"]
|
31[Wall]
|
||||||
32["SweepEdge Adjacent"]
|
32[Wall]
|
||||||
33["SweepEdge Opposite"]
|
33[Wall]
|
||||||
34["SweepEdge Adjacent"]
|
34[Wall]
|
||||||
35["SweepEdge Opposite"]
|
35[Wall]
|
||||||
36["SweepEdge Adjacent"]
|
36[Wall]
|
||||||
37["SweepEdge Opposite"]
|
37[Wall]
|
||||||
38["SweepEdge Adjacent"]
|
38[Wall]
|
||||||
39["SweepEdge Opposite"]
|
39[Wall]
|
||||||
40["SweepEdge Adjacent"]
|
40[Wall]
|
||||||
41["SweepEdge Opposite"]
|
41[Wall]
|
||||||
42["SweepEdge Adjacent"]
|
42[Wall]
|
||||||
43["SweepEdge Opposite"]
|
43[Wall]
|
||||||
44["SweepEdge Adjacent"]
|
44[Wall]
|
||||||
45["SweepEdge Opposite"]
|
45[Wall]
|
||||||
46["SweepEdge Adjacent"]
|
46[Wall]
|
||||||
47["SweepEdge Opposite"]
|
47[Wall]
|
||||||
48["SweepEdge Adjacent"]
|
48["Cap Start"]
|
||||||
49["SweepEdge Opposite"]
|
49["Cap End"]
|
||||||
50["SweepEdge Adjacent"]
|
50["SweepEdge Opposite"]
|
||||||
51["SweepEdge Opposite"]
|
51["SweepEdge Adjacent"]
|
||||||
52["SweepEdge Adjacent"]
|
52["SweepEdge Opposite"]
|
||||||
53["SweepEdge Opposite"]
|
53["SweepEdge Adjacent"]
|
||||||
54["SweepEdge Adjacent"]
|
54["SweepEdge Opposite"]
|
||||||
55["Plane<br>[1924, 1941, 0]"]
|
55["SweepEdge Adjacent"]
|
||||||
68["Sweep Extrusion<br>[2232, 2259, 0]"]
|
56["SweepEdge Opposite"]
|
||||||
69[Wall]
|
57["SweepEdge Adjacent"]
|
||||||
70[Wall]
|
58["SweepEdge Opposite"]
|
||||||
71[Wall]
|
59["SweepEdge Adjacent"]
|
||||||
72[Wall]
|
60["SweepEdge Opposite"]
|
||||||
73["Cap Start"]
|
61["SweepEdge Adjacent"]
|
||||||
74["Cap End"]
|
62["SweepEdge Opposite"]
|
||||||
75["SweepEdge Opposite"]
|
63["SweepEdge Adjacent"]
|
||||||
76["SweepEdge Adjacent"]
|
64["SweepEdge Opposite"]
|
||||||
77["SweepEdge Opposite"]
|
65["SweepEdge Adjacent"]
|
||||||
78["SweepEdge Adjacent"]
|
66["SweepEdge Opposite"]
|
||||||
79["SweepEdge Opposite"]
|
67["SweepEdge Adjacent"]
|
||||||
80["SweepEdge Adjacent"]
|
68["SweepEdge Opposite"]
|
||||||
81["SweepEdge Opposite"]
|
69["SweepEdge Adjacent"]
|
||||||
82["SweepEdge Adjacent"]
|
70["SweepEdge Opposite"]
|
||||||
83["Plane<br>[2407, 2424, 0]"]
|
71["SweepEdge Adjacent"]
|
||||||
96["Sweep Extrusion<br>[2719, 2746, 0]"]
|
72["SweepEdge Opposite"]
|
||||||
97[Wall]
|
73["SweepEdge Adjacent"]
|
||||||
|
74["SweepEdge Opposite"]
|
||||||
|
75["SweepEdge Adjacent"]
|
||||||
|
76["SweepEdge Opposite"]
|
||||||
|
77["SweepEdge Adjacent"]
|
||||||
|
78["SweepEdge Opposite"]
|
||||||
|
79["SweepEdge Adjacent"]
|
||||||
|
80["SweepEdge Opposite"]
|
||||||
|
81["SweepEdge Adjacent"]
|
||||||
|
82["SweepEdge Opposite"]
|
||||||
|
83["SweepEdge Adjacent"]
|
||||||
|
84["SweepEdge Opposite"]
|
||||||
|
85["SweepEdge Adjacent"]
|
||||||
|
86["SweepEdge Opposite"]
|
||||||
|
87["SweepEdge Adjacent"]
|
||||||
|
88["SweepEdge Opposite"]
|
||||||
|
89["SweepEdge Adjacent"]
|
||||||
|
90["EdgeCut Fillet<br>[2784, 2955, 0]"]
|
||||||
|
91["EdgeCut Fillet<br>[2784, 2955, 0]"]
|
||||||
|
92["EdgeCut Fillet<br>[2784, 2955, 0]"]
|
||||||
|
93["EdgeCut Fillet<br>[2784, 2955, 0]"]
|
||||||
|
97["Sweep Extrusion<br>[3289, 3317, 0]"]
|
||||||
98[Wall]
|
98[Wall]
|
||||||
99[Wall]
|
99["SweepEdge Opposite"]
|
||||||
100[Wall]
|
100["SweepEdge Adjacent"]
|
||||||
101["Cap Start"]
|
101["Sweep Extrusion<br>[3289, 3317, 0]"]
|
||||||
102["Cap End"]
|
105["Sweep Extrusion<br>[3652, 3680, 0]"]
|
||||||
103["SweepEdge Opposite"]
|
106[Wall]
|
||||||
104["SweepEdge Adjacent"]
|
|
||||||
105["SweepEdge Opposite"]
|
|
||||||
106["SweepEdge Adjacent"]
|
|
||||||
107["SweepEdge Opposite"]
|
107["SweepEdge Opposite"]
|
||||||
108["SweepEdge Adjacent"]
|
108["SweepEdge Adjacent"]
|
||||||
109["SweepEdge Opposite"]
|
109["Sweep Extrusion<br>[3652, 3680, 0]"]
|
||||||
110["SweepEdge Adjacent"]
|
113["Sweep Extrusion<br>[4239, 4267, 0]"]
|
||||||
111["EdgeCut Fillet<br>[1329, 1387, 0]"]
|
114[Wall]
|
||||||
112["EdgeCut Fillet<br>[1393, 1458, 0]"]
|
115["SweepEdge Opposite"]
|
||||||
113["EdgeCut Fillet<br>[1464, 1529, 0]"]
|
116["SweepEdge Adjacent"]
|
||||||
114["EdgeCut Fillet<br>[1535, 1593, 0]"]
|
117["Sweep Extrusion<br>[4239, 4267, 0]"]
|
||||||
115["EdgeCut Fillet<br>[1599, 1664, 0]"]
|
118["Sweep Extrusion<br>[4239, 4267, 0]"]
|
||||||
116["EdgeCut Fillet<br>[1670, 1728, 0]"]
|
119["Sweep Extrusion<br>[4239, 4267, 0]"]
|
||||||
117["EdgeCut Fillet<br>[1734, 1793, 0]"]
|
123["Sweep Extrusion<br>[4463, 4491, 0]"]
|
||||||
118["EdgeCut Fillet<br>[1799, 1865, 0]"]
|
124[Wall]
|
||||||
119["EdgeCut Fillet<br>[2265, 2395, 0]"]
|
125["SweepEdge Opposite"]
|
||||||
120["EdgeCut Fillet<br>[2265, 2395, 0]"]
|
126["SweepEdge Adjacent"]
|
||||||
121["EdgeCut Fillet<br>[2752, 2883, 0]"]
|
127["StartSketchOnFace<br>[3029, 3065, 0]"]
|
||||||
122["EdgeCut Fillet<br>[2752, 2883, 0]"]
|
128["StartSketchOnFace<br>[3393, 3429, 0]"]
|
||||||
|
129["StartSketchOnFace<br>[3763, 3799, 0]"]
|
||||||
|
130["StartSketchOnFace<br>[4359, 4395, 0]"]
|
||||||
1 --- 2
|
1 --- 2
|
||||||
2 --- 3
|
2 --- 3
|
||||||
2 --- 4
|
2 --- 4
|
||||||
@ -149,170 +153,187 @@ flowchart LR
|
|||||||
2 --- 12
|
2 --- 12
|
||||||
2 --- 13
|
2 --- 13
|
||||||
2 --- 14
|
2 --- 14
|
||||||
2 ---- 16
|
|
||||||
2 --- 15
|
2 --- 15
|
||||||
|
2 --- 16
|
||||||
|
2 --- 17
|
||||||
|
2 --- 18
|
||||||
|
2 --- 19
|
||||||
|
2 --- 20
|
||||||
|
2 --- 21
|
||||||
|
2 --- 22
|
||||||
|
2 --- 23
|
||||||
|
2 --- 24
|
||||||
|
2 --- 25
|
||||||
|
2 ---- 27
|
||||||
|
2 --- 26
|
||||||
3 --- 28
|
3 --- 28
|
||||||
3 --- 53
|
3 --- 50
|
||||||
3 --- 54
|
3 --- 51
|
||||||
4 --- 27
|
4 --- 29
|
||||||
4 --- 51
|
|
||||||
4 --- 52
|
4 --- 52
|
||||||
5 --- 26
|
4 --- 53
|
||||||
5 --- 49
|
5 --- 30
|
||||||
5 --- 50
|
5 --- 54
|
||||||
6 --- 25
|
5 --- 55
|
||||||
6 --- 47
|
6 --- 31
|
||||||
6 --- 48
|
6 --- 56
|
||||||
7 --- 24
|
6 --- 57
|
||||||
7 --- 45
|
7 --- 32
|
||||||
7 --- 46
|
7 --- 58
|
||||||
8 --- 23
|
7 --- 59
|
||||||
8 --- 43
|
9 --- 33
|
||||||
8 --- 44
|
9 --- 60
|
||||||
9 --- 22
|
9 --- 61
|
||||||
9 --- 41
|
10 --- 34
|
||||||
9 --- 42
|
10 --- 62
|
||||||
10 --- 21
|
10 --- 63
|
||||||
10 --- 39
|
11 --- 35
|
||||||
10 --- 40
|
11 --- 64
|
||||||
11 --- 20
|
11 --- 65
|
||||||
11 --- 37
|
|
||||||
11 --- 38
|
|
||||||
12 --- 19
|
|
||||||
12 --- 35
|
|
||||||
12 --- 36
|
12 --- 36
|
||||||
13 --- 18
|
12 --- 66
|
||||||
13 --- 33
|
12 --- 67
|
||||||
13 --- 34
|
13 --- 37
|
||||||
14 --- 17
|
13 --- 68
|
||||||
14 --- 31
|
13 --- 69
|
||||||
14 --- 32
|
13 --- 90
|
||||||
16 --- 17
|
14 --- 38
|
||||||
16 --- 18
|
14 --- 70
|
||||||
16 --- 19
|
14 --- 71
|
||||||
16 --- 20
|
15 --- 39
|
||||||
16 --- 21
|
15 --- 72
|
||||||
16 --- 22
|
15 --- 73
|
||||||
16 --- 23
|
|
||||||
16 --- 24
|
|
||||||
16 --- 25
|
|
||||||
16 --- 26
|
|
||||||
16 --- 27
|
|
||||||
16 --- 28
|
|
||||||
16 --- 29
|
|
||||||
16 --- 30
|
|
||||||
16 --- 31
|
|
||||||
16 --- 32
|
|
||||||
16 --- 33
|
|
||||||
16 --- 34
|
|
||||||
16 --- 35
|
|
||||||
16 --- 36
|
|
||||||
16 --- 37
|
|
||||||
16 --- 38
|
|
||||||
16 --- 39
|
|
||||||
16 --- 40
|
16 --- 40
|
||||||
16 --- 41
|
16 --- 74
|
||||||
16 --- 42
|
16 --- 75
|
||||||
16 --- 43
|
17 --- 41
|
||||||
16 --- 44
|
17 --- 76
|
||||||
16 --- 45
|
17 --- 77
|
||||||
16 --- 46
|
18 --- 42
|
||||||
16 --- 47
|
18 --- 78
|
||||||
16 --- 48
|
18 --- 79
|
||||||
16 --- 49
|
20 --- 43
|
||||||
16 --- 50
|
20 --- 80
|
||||||
16 --- 51
|
20 --- 81
|
||||||
16 --- 52
|
21 --- 44
|
||||||
16 --- 53
|
21 --- 82
|
||||||
16 --- 54
|
21 --- 83
|
||||||
55 --- 56
|
22 --- 45
|
||||||
55 --- 62
|
22 --- 84
|
||||||
55 --- 65
|
22 --- 85
|
||||||
56 --- 57
|
23 --- 46
|
||||||
56 --- 58
|
23 --- 86
|
||||||
56 --- 59
|
23 --- 87
|
||||||
56 --- 60
|
24 --- 47
|
||||||
56 ---- 68
|
24 --- 88
|
||||||
56 --- 61
|
24 --- 89
|
||||||
57 --- 72
|
24 --- 92
|
||||||
57 --- 81
|
27 --- 28
|
||||||
57 --- 82
|
27 --- 29
|
||||||
58 --- 71
|
27 --- 30
|
||||||
58 --- 79
|
27 --- 31
|
||||||
58 --- 80
|
27 --- 32
|
||||||
59 --- 70
|
27 --- 33
|
||||||
59 --- 77
|
27 --- 34
|
||||||
59 --- 78
|
27 --- 35
|
||||||
60 --- 69
|
27 --- 36
|
||||||
60 --- 75
|
27 --- 37
|
||||||
60 --- 76
|
27 --- 38
|
||||||
62 --- 63
|
27 --- 39
|
||||||
62 --- 64
|
27 --- 40
|
||||||
65 --- 66
|
27 --- 41
|
||||||
65 --- 67
|
27 --- 42
|
||||||
68 --- 69
|
27 --- 43
|
||||||
68 --- 70
|
27 --- 44
|
||||||
68 --- 71
|
27 --- 45
|
||||||
68 --- 72
|
27 --- 46
|
||||||
68 --- 73
|
27 --- 47
|
||||||
68 --- 74
|
27 --- 48
|
||||||
68 --- 75
|
27 --- 49
|
||||||
68 --- 76
|
27 --- 50
|
||||||
68 --- 77
|
27 --- 51
|
||||||
68 --- 78
|
27 --- 52
|
||||||
68 --- 79
|
27 --- 53
|
||||||
68 --- 80
|
27 --- 54
|
||||||
68 --- 81
|
27 --- 55
|
||||||
68 --- 82
|
27 --- 56
|
||||||
83 --- 84
|
27 --- 57
|
||||||
83 --- 90
|
27 --- 58
|
||||||
83 --- 93
|
27 --- 59
|
||||||
84 --- 85
|
27 --- 60
|
||||||
84 --- 86
|
27 --- 61
|
||||||
84 --- 87
|
27 --- 62
|
||||||
84 --- 88
|
27 --- 63
|
||||||
84 ---- 96
|
27 --- 64
|
||||||
84 --- 89
|
27 --- 65
|
||||||
85 --- 97
|
27 --- 66
|
||||||
85 --- 103
|
27 --- 67
|
||||||
85 --- 104
|
27 --- 68
|
||||||
86 --- 98
|
27 --- 69
|
||||||
86 --- 105
|
27 --- 70
|
||||||
86 --- 106
|
27 --- 71
|
||||||
87 --- 99
|
27 --- 72
|
||||||
87 --- 107
|
27 --- 73
|
||||||
87 --- 108
|
27 --- 74
|
||||||
88 --- 100
|
27 --- 75
|
||||||
88 --- 109
|
27 --- 76
|
||||||
88 --- 110
|
27 --- 77
|
||||||
90 --- 91
|
27 --- 78
|
||||||
90 --- 92
|
27 --- 79
|
||||||
93 --- 94
|
27 --- 80
|
||||||
93 --- 95
|
27 --- 81
|
||||||
96 --- 97
|
27 --- 82
|
||||||
96 --- 98
|
27 --- 83
|
||||||
96 --- 99
|
27 --- 84
|
||||||
96 --- 100
|
27 --- 85
|
||||||
96 --- 101
|
27 --- 86
|
||||||
96 --- 102
|
27 --- 87
|
||||||
96 --- 103
|
27 --- 88
|
||||||
96 --- 104
|
27 --- 89
|
||||||
96 --- 105
|
38 --- 94
|
||||||
96 --- 106
|
42 --- 110
|
||||||
96 --- 107
|
42 --- 120
|
||||||
96 --- 108
|
46 --- 102
|
||||||
96 --- 109
|
68 <--x 91
|
||||||
96 --- 110
|
88 <--x 93
|
||||||
52 <--x 111
|
94 --- 95
|
||||||
50 <--x 112
|
94 ---- 97
|
||||||
48 <--x 113
|
94 --- 96
|
||||||
46 <--x 114
|
95 --- 98
|
||||||
40 <--x 115
|
95 --- 99
|
||||||
38 <--x 116
|
95 --- 100
|
||||||
36 <--x 117
|
97 --- 98
|
||||||
34 <--x 118
|
97 --- 99
|
||||||
80 <--x 119
|
97 --- 100
|
||||||
78 <--x 120
|
102 --- 103
|
||||||
106 <--x 121
|
102 ---- 105
|
||||||
108 <--x 122
|
102 --- 104
|
||||||
|
103 --- 106
|
||||||
|
103 --- 107
|
||||||
|
103 --- 108
|
||||||
|
105 --- 106
|
||||||
|
105 --- 107
|
||||||
|
105 --- 108
|
||||||
|
110 --- 111
|
||||||
|
110 ---- 113
|
||||||
|
110 --- 112
|
||||||
|
111 --- 114
|
||||||
|
111 --- 115
|
||||||
|
111 --- 116
|
||||||
|
113 --- 114
|
||||||
|
113 --- 115
|
||||||
|
113 --- 116
|
||||||
|
120 --- 121
|
||||||
|
120 ---- 123
|
||||||
|
120 --- 122
|
||||||
|
121 --- 124
|
||||||
|
121 --- 125
|
||||||
|
121 --- 126
|
||||||
|
123 --- 124
|
||||||
|
123 --- 125
|
||||||
|
123 --- 126
|
||||||
|
38 <--x 127
|
||||||
|
46 <--x 128
|
||||||
|
42 <--x 129
|
||||||
|
42 <--x 130
|
||||||
```
|
```
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 57 KiB |
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "kcl-python-bindings"
|
name = "kcl-python-bindings"
|
||||||
version = "0.3.56"
|
version = "0.3.57"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
repository = "https://github.com/kittycad/modeling-app"
|
repository = "https://github.com/kittycad/modeling-app"
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "kcl-test-server"
|
name = "kcl-test-server"
|
||||||
description = "A test server for KCL"
|
description = "A test server for KCL"
|
||||||
version = "0.1.56"
|
version = "0.1.57"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "kcl-to-core"
|
name = "kcl-to-core"
|
||||||
description = "Utility methods to convert kcl to engine core executable tests"
|
description = "Utility methods to convert kcl to engine core executable tests"
|
||||||
version = "0.1.56"
|
version = "0.1.57"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://github.com/KittyCAD/modeling-app"
|
repository = "https://github.com/KittyCAD/modeling-app"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "kcl-wasm-lib"
|
name = "kcl-wasm-lib"
|
||||||
version = "0.1.56"
|
version = "0.1.57"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
repository = "https://github.com/KittyCAD/modeling-app"
|
repository = "https://github.com/KittyCAD/modeling-app"
|
||||||
rust-version = "1.83"
|
rust-version = "1.83"
|
||||||
|
@ -261,7 +261,7 @@ export class SceneInfra {
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
hoveredObject: null | any = null
|
hoveredObject: null | Object3D<Object3DEventMap> = null
|
||||||
raycaster = new Raycaster()
|
raycaster = new Raycaster()
|
||||||
planeRaycaster = new Raycaster()
|
planeRaycaster = new Raycaster()
|
||||||
currentMouseVector = new Vector2()
|
currentMouseVector = new Vector2()
|
||||||
@ -487,11 +487,13 @@ export class SceneInfra {
|
|||||||
if (this.hoveredObject !== firstIntersectObject) {
|
if (this.hoveredObject !== firstIntersectObject) {
|
||||||
const hoveredObj = this.hoveredObject
|
const hoveredObj = this.hoveredObject
|
||||||
this.hoveredObject = null
|
this.hoveredObject = null
|
||||||
|
if (hoveredObj) {
|
||||||
await this.onMouseLeave({
|
await this.onMouseLeave({
|
||||||
selected: hoveredObj,
|
selected: hoveredObj,
|
||||||
mouseEvent: mouseEvent,
|
mouseEvent: mouseEvent,
|
||||||
intersectionPoint,
|
intersectionPoint,
|
||||||
})
|
})
|
||||||
|
}
|
||||||
this.hoveredObject = firstIntersectObject
|
this.hoveredObject = firstIntersectObject
|
||||||
await this.onMouseEnter({
|
await this.onMouseEnter({
|
||||||
selected: this.hoveredObject,
|
selected: this.hoveredObject,
|
||||||
|
@ -175,8 +175,11 @@ export const FileMachineProvider = ({
|
|||||||
commandBarActor.send({ type: 'Close' })
|
commandBarActor.send({ type: 'Close' })
|
||||||
navigate(
|
navigate(
|
||||||
`..${PATHS.FILE}/${encodeURIComponent(
|
`..${PATHS.FILE}/${encodeURIComponent(
|
||||||
|
// TODO: Should this be context.selectedDirectory.path?
|
||||||
|
// eslint-disable-next-line @typescript-eslint/restrict-plus-operands
|
||||||
context.selectedDirectory +
|
context.selectedDirectory +
|
||||||
window.electron.path.sep +
|
window.electron.path.sep +
|
||||||
|
// eslint-disable-next-line @typescript-eslint/restrict-plus-operands
|
||||||
event.output.name
|
event.output.name
|
||||||
)}`
|
)}`
|
||||||
)
|
)
|
||||||
|
@ -591,6 +591,7 @@ class EngineConnection extends EventTarget {
|
|||||||
* did not establish.
|
* did not establish.
|
||||||
*/
|
*/
|
||||||
connect(reconnecting?: boolean): Promise<void> {
|
connect(reconnecting?: boolean): Promise<void> {
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
||||||
const that = this
|
const that = this
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
if (this.isConnecting() || this.isReady()) {
|
if (this.isConnecting() || this.isReady()) {
|
||||||
|
@ -274,11 +274,17 @@ export const parse = (code: string | Error): ParseResult | Error => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse and throw an exception if there are any errors (probably not suitable for use outside of testing).
|
/**
|
||||||
export const assertParse = (code: string): Node<Program> => {
|
* Parse and throw an exception if there are any errors (probably not suitable for use outside of testing).
|
||||||
|
*/
|
||||||
|
export function assertParse(code: string): Node<Program> {
|
||||||
const result = parse(code)
|
const result = parse(code)
|
||||||
// eslint-disable-next-line suggest-no-throw/suggest-no-throw
|
// eslint-disable-next-line suggest-no-throw/suggest-no-throw
|
||||||
if (err(result) || !resultIsOk(result)) throw result
|
if (err(result)) throw result
|
||||||
|
if (!resultIsOk(result)) {
|
||||||
|
// eslint-disable-next-line suggest-no-throw/suggest-no-throw
|
||||||
|
throw new Error('parse result contains errors', { cause: result })
|
||||||
|
}
|
||||||
return result.program
|
return result.program
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -565,8 +571,8 @@ export function base64Decode(base64: string): ArrayBuffer | Error {
|
|||||||
const decoded = base64_decode(base64)
|
const decoded = base64_decode(base64)
|
||||||
return new Uint8Array(decoded).buffer
|
return new Uint8Array(decoded).buffer
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('Caught error decoding base64 string: ' + e)
|
console.error('Caught error decoding base64 string', e)
|
||||||
return new Error('Caught error decoding base64 string: ' + e)
|
return new Error('Caught error decoding base64 string', { cause: e })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ import type { WebContentSendPayload } from './menu/channels'
|
|||||||
|
|
||||||
const typeSafeIpcRendererOn = (
|
const typeSafeIpcRendererOn = (
|
||||||
channel: Channel,
|
channel: Channel,
|
||||||
listener: (event: IpcRendererEvent, ...args: any[]) => Promise<void> | any
|
listener: (event: IpcRendererEvent, ...args: any[]) => void
|
||||||
) => ipcRenderer.on(channel, listener)
|
) => ipcRenderer.on(channel, listener)
|
||||||
|
|
||||||
const resizeWindow = (width: number, height: number) =>
|
const resizeWindow = (width: number, height: number) =>
|
||||||
@ -163,7 +163,7 @@ const listMachines = async (
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const getMachineApiIp = async (): Promise<String | null> =>
|
const getMachineApiIp = async (): Promise<string | null> =>
|
||||||
ipcRenderer.invoke('find_machine_api')
|
ipcRenderer.invoke('find_machine_api')
|
||||||
|
|
||||||
const getArgvParsed = () => {
|
const getArgvParsed = () => {
|
||||||
|
Reference in New Issue
Block a user