From b480d0477b2a43c603cf50767cbee0532457fd04 Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Fri, 4 Apr 2025 12:24:29 -0700 Subject: [PATCH 1/2] updates Signed-off-by: Jess Frazelle --- rust/kcl-lib/e2e/executor/cache.rs | 33 ++++++++ ...error_opening_closing_specific_files_0.png | Bin 0 -> 56988 bytes ...error_opening_closing_specific_files_1.png | Bin 0 -> 100663 bytes rust/kcl-lib/src/execution/mod.rs | 4 + .../tests/fillet_error_switch_files/main.kcl | 71 ++++++++++++++++++ .../switch_protector.kcl | 24 ++++++ 6 files changed, 132 insertions(+) create mode 100644 rust/kcl-lib/e2e/executor/outputs/cache_fillet_error_opening_closing_specific_files_0.png create mode 100644 rust/kcl-lib/e2e/executor/outputs/cache_fillet_error_opening_closing_specific_files_1.png create mode 100644 rust/kcl-lib/tests/fillet_error_switch_files/main.kcl create mode 100644 rust/kcl-lib/tests/fillet_error_switch_files/switch_protector.kcl diff --git a/rust/kcl-lib/e2e/executor/cache.rs b/rust/kcl-lib/e2e/executor/cache.rs index 1e757aeea9..c1b99142c0 100644 --- a/rust/kcl-lib/e2e/executor/cache.rs +++ b/rust/kcl-lib/e2e/executor/cache.rs @@ -615,3 +615,36 @@ extrude(profile001, length = 100)"# assert!(first.1 != last.1, "The images should be different for the grid"); assert_eq!(first.2, last.2, "The outcomes should be the same"); } + +#[tokio::test(flavor = "multi_thread")] +async fn kcl_test_cache_fillet_error_opening_closing_specific_files() { + let main_code = include_str!("../../tests/fillet_error_switch_files/main.kcl"); + let switch_code = include_str!("../../tests/fillet_error_switch_files/switch_protector.kcl"); + + let result = cache_test( + "fillet_error_opening_closing_specific_files", + vec![ + Variation { + code: main_code, + other_files: Vec::new(), + settings: &Default::default(), + }, + Variation { + code: switch_code, + other_files: Vec::new(), + settings: &Default::default(), + }, + Variation { + code: main_code, + other_files: Vec::new(), + settings: &Default::default(), + }, + ], + ) + .await; + + // Make sure nothing failed. + result.first().unwrap(); + result.get(1).unwrap(); + result.last().unwrap(); +} diff --git a/rust/kcl-lib/e2e/executor/outputs/cache_fillet_error_opening_closing_specific_files_0.png b/rust/kcl-lib/e2e/executor/outputs/cache_fillet_error_opening_closing_specific_files_0.png new file mode 100644 index 0000000000000000000000000000000000000000..3711089d07645210d3e605c4064c0061f56071db GIT binary patch literal 56988 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 literal 0 HcmV?d00001 diff --git a/rust/kcl-lib/e2e/executor/outputs/cache_fillet_error_opening_closing_specific_files_1.png b/rust/kcl-lib/e2e/executor/outputs/cache_fillet_error_opening_closing_specific_files_1.png new file mode 100644 index 0000000000000000000000000000000000000000..966abe7d5972c007d4a9d55e206eb70f9642c5c1 GIT binary patch literal 100663 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 startProfileAt([0, 0], %) + |> yLine(length = blockSz, tag = $edgeA) + |> xLine(length = blockSz, tag = $edgeB) + |> yLine(length = -blockSz, tag = $edgeC) + |> xLine(length = upperBlock.l - blockSz, tag = $edge1) + |> yLine(length = -(elevate.h + blockSz), tag = $edge2) + |> xLine(length = lowerBlock.l - blockSz, tag = $edge3) + |> yLine(length = -blockSz, tag = $edge4) + |> xLine(length = -lowerBlock.l, tag = $edge5) + |> yLine(length = blockSz + elevate.h, tag = $edge6) + |> xLine(length = -(upperBlock.l - blockSz), tag = $edge7) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg01) + |> close(%) + |> hole(circle(center = [blockSz / 2, blockSz / 2], radius = upperBlockTransHole.r), %) + |> hole(circle( + center = [ + upperBlock.l + lowerBlock.l - blockSz - lowerBlockTransHole.r - tubeClr, + -(blockSz + elevate.h + blockSz / 2) + ], + radius = lowerBlockTransHole.r, + ), %) +rad = 3 + +extrude001 = extrude(sketch001, length = blockSz) + |> fillet( + radius = rad, + tags = [ + getNextAdjacentEdge(edgeA), + getNextAdjacentEdge(edgeB), + getNextAdjacentEdge(edgeC), + getNextAdjacentEdge(edge1), + getNextAdjacentEdge(edge2), + getNextAdjacentEdge(edge3), + getNextAdjacentEdge(edge4), + getNextAdjacentEdge(edge5), + getNextAdjacentEdge(edge6), + getNextAdjacentEdge(edge7) + ], + ) + +sketch002 = startSketchOn(extrude001, seg01) + |> startProfileAt([0, 0], %) + |> circle(center = [blockSz / 2, -blockSz / 2], radius = upperBlockLongHole.r) + |> extrude(length = -upperBlock.l) + diff --git a/rust/kcl-lib/tests/fillet_error_switch_files/switch_protector.kcl b/rust/kcl-lib/tests/fillet_error_switch_files/switch_protector.kcl new file mode 100644 index 0000000000..7eca4e6184 --- /dev/null +++ b/rust/kcl-lib/tests/fillet_error_switch_files/switch_protector.kcl @@ -0,0 +1,24 @@ +holeFudgeD = 0.4 +holeFudgeR = holeFudgeD / 2 + +totalH = 12.5 +switchNutD = 9.5 +switchNutR = switchNutD / 2 +bottomInnerR = switchNutR + holeFudgeR +bottomOuterR = 13.5 +topInnerR = switchNutR + 1.5 + holeFudgeR +topFlatL = 1 +topOuterR = topInnerR + topFlatL +baseH = 1 +coneH = totalH - baseH + +sketch001 = startSketchOn(XZ) + |> startProfileAt([bottomInnerR, 0], %) + |> xLine(endAbsolute = bottomOuterR) + |> yLine(length = baseH) + |> line(end = [-(bottomOuterR - topOuterR), coneH]) + |> line(end = [-(topOuterR - topInnerR), 0]) + |> close(%) + |> revolve(axis = Y) + + From ac4085937b770bf0316abd5a8087fb3a687822f3 Mon Sep 17 00:00:00 2001 From: Jonathan Tran Date: Tue, 6 May 2025 14:29:18 -0400 Subject: [PATCH 2/2] Fix KCL for keyword migration --- .../tests/fillet_error_switch_files/main.kcl | 17 ++++++++--------- .../switch_protector.kcl | 6 ++---- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/rust/kcl-lib/tests/fillet_error_switch_files/main.kcl b/rust/kcl-lib/tests/fillet_error_switch_files/main.kcl index d08889a45d..7585e0d840 100644 --- a/rust/kcl-lib/tests/fillet_error_switch_files/main.kcl +++ b/rust/kcl-lib/tests/fillet_error_switch_files/main.kcl @@ -19,12 +19,12 @@ upperBlock = { } elevate = { h = 5 } -blockSz = max(upperBlock.h, lowerBlock.h) +blockSz = max([upperBlock.h, lowerBlock.h]) slot = { l = 10, h = 1 } sketch001 = startSketchOn(XZ) - |> startProfileAt([0, 0], %) + |> startProfile(at = [0, 0]) |> yLine(length = blockSz, tag = $edgeA) |> xLine(length = blockSz, tag = $edgeB) |> yLine(length = -blockSz, tag = $edgeC) @@ -36,15 +36,15 @@ sketch001 = startSketchOn(XZ) |> yLine(length = blockSz + elevate.h, tag = $edge6) |> xLine(length = -(upperBlock.l - blockSz), tag = $edge7) |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg01) - |> close(%) - |> hole(circle(center = [blockSz / 2, blockSz / 2], radius = upperBlockTransHole.r), %) - |> hole(circle( + |> close() + |> subtract2d(tool = circle(center = [blockSz / 2, blockSz / 2], radius = upperBlockTransHole.r)) + |> subtract2d(tool = circle( center = [ upperBlock.l + lowerBlock.l - blockSz - lowerBlockTransHole.r - tubeClr, -(blockSz + elevate.h + blockSz / 2) ], radius = lowerBlockTransHole.r, - ), %) + )) rad = 3 extrude001 = extrude(sketch001, length = blockSz) @@ -64,8 +64,7 @@ extrude001 = extrude(sketch001, length = blockSz) ], ) -sketch002 = startSketchOn(extrude001, seg01) - |> startProfileAt([0, 0], %) +sketch002 = startSketchOn(extrude001, face = seg01) + |> startProfile(at = [0, 0]) |> circle(center = [blockSz / 2, -blockSz / 2], radius = upperBlockLongHole.r) |> extrude(length = -upperBlock.l) - diff --git a/rust/kcl-lib/tests/fillet_error_switch_files/switch_protector.kcl b/rust/kcl-lib/tests/fillet_error_switch_files/switch_protector.kcl index 7eca4e6184..dbb6379348 100644 --- a/rust/kcl-lib/tests/fillet_error_switch_files/switch_protector.kcl +++ b/rust/kcl-lib/tests/fillet_error_switch_files/switch_protector.kcl @@ -13,12 +13,10 @@ baseH = 1 coneH = totalH - baseH sketch001 = startSketchOn(XZ) - |> startProfileAt([bottomInnerR, 0], %) + |> startProfile(at = [bottomInnerR, 0]) |> xLine(endAbsolute = bottomOuterR) |> yLine(length = baseH) |> line(end = [-(bottomOuterR - topOuterR), coneH]) |> line(end = [-(topOuterR - topInnerR), 0]) - |> close(%) + |> close() |> revolve(axis = Y) - -