From 95f62e4fff14cb6b6ca7c121230574a906a67afc Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Thu, 19 Sep 2024 13:40:37 -0700 Subject: [PATCH] dumb ass logic bug with edge cuts Signed-off-by: Jess Frazelle --- src/wasm-lib/kcl/src/std/chamfer.rs | 5 +- src/wasm-lib/kcl/src/std/fillet.rs | 5 +- ...h-on-chamfer-two-times-different-order.kcl | 48 ++++++++++++++++++ .../inputs/sketch-on-chamfer-two-times.kcl | 48 ++++++++++++++++++ ...h-on-chamfer-two-times-different-order.png | Bin 0 -> 75490 bytes .../outputs/sketch-on-chamfer-two-times.png | Bin 0 -> 75490 bytes src/wasm-lib/tests/executor/visuals.rs | 5 ++ 7 files changed, 103 insertions(+), 8 deletions(-) create mode 100644 src/wasm-lib/tests/executor/inputs/sketch-on-chamfer-two-times-different-order.kcl create mode 100644 src/wasm-lib/tests/executor/inputs/sketch-on-chamfer-two-times.kcl create mode 100644 src/wasm-lib/tests/executor/outputs/sketch-on-chamfer-two-times-different-order.png create mode 100644 src/wasm-lib/tests/executor/outputs/sketch-on-chamfer-two-times.png diff --git a/src/wasm-lib/kcl/src/std/chamfer.rs b/src/wasm-lib/kcl/src/std/chamfer.rs index df6399c045..7afbb1fcde 100644 --- a/src/wasm-lib/kcl/src/std/chamfer.rs +++ b/src/wasm-lib/kcl/src/std/chamfer.rs @@ -130,7 +130,6 @@ async fn inner_chamfer( } let mut extrude_group = extrude_group.clone(); - let mut edge_cuts = Vec::new(); for edge_tag in data.tags { let edge_id = match edge_tag { EdgeReference::Uuid(uuid) => uuid, @@ -151,7 +150,7 @@ async fn inner_chamfer( ) .await?; - edge_cuts.push(EdgeCut::Chamfer { + extrude_group.edge_cuts.push(EdgeCut::Chamfer { id, edge_id, length: data.length, @@ -170,7 +169,5 @@ async fn inner_chamfer( } } - extrude_group.edge_cuts = edge_cuts; - Ok(extrude_group) } diff --git a/src/wasm-lib/kcl/src/std/fillet.rs b/src/wasm-lib/kcl/src/std/fillet.rs index 1abcfa69b7..76352f8869 100644 --- a/src/wasm-lib/kcl/src/std/fillet.rs +++ b/src/wasm-lib/kcl/src/std/fillet.rs @@ -134,7 +134,6 @@ async fn inner_fillet( } let mut extrude_group = extrude_group.clone(); - let mut edge_cuts = Vec::new(); for edge_tag in data.tags { let edge_id = match edge_tag { EdgeReference::Uuid(uuid) => uuid, @@ -155,7 +154,7 @@ async fn inner_fillet( ) .await?; - edge_cuts.push(EdgeCut::Fillet { + extrude_group.edge_cuts.push(EdgeCut::Fillet { id, edge_id, radius: data.radius, @@ -174,8 +173,6 @@ async fn inner_fillet( } } - extrude_group.edge_cuts = edge_cuts; - Ok(extrude_group) } diff --git a/src/wasm-lib/tests/executor/inputs/sketch-on-chamfer-two-times-different-order.kcl b/src/wasm-lib/tests/executor/inputs/sketch-on-chamfer-two-times-different-order.kcl new file mode 100644 index 0000000000..2ab94d0113 --- /dev/null +++ b/src/wasm-lib/tests/executor/inputs/sketch-on-chamfer-two-times-different-order.kcl @@ -0,0 +1,48 @@ +const sketch001 = startSketchOn('XZ') + |> startProfileAt([75.8, 317.2], %) // [$startCapTag, $EndCapTag] + |> angledLine([0, 268.43], %, $rectangleSegmentA001) + |> angledLine([ + segAng(rectangleSegmentA001) - 90, + 217.26 + ], %, $seg01) + |> angledLine([ + segAng(rectangleSegmentA001), + -segLen(rectangleSegmentA001) + ], %) + |> lineTo([profileStartX(%), profileStartY(%)], %, $seg02) + |> close(%) +const extrude001 = extrude(100, sketch001) + |> fillet({ radius: 20, tags: [seg01] }, %) + |> chamfer({ length: 50, tags: [seg02] }, %, $seg04) + |> chamfer({ + length: 50, + tags: [getOppositeEdge(seg01)] + }, %, $seg03) + +const sketch003 = startSketchOn(extrude001, seg04) + |> startProfileAt([-69.1, 277.34], %) + |> angledLine([0, 41.48], %, $rectangleSegmentA003) + |> angledLine([ + segAng(rectangleSegmentA003) - 90, + 104.8 + ], %, $rectangleSegmentB002) + |> angledLine([ + segAng(rectangleSegmentA003), + -segLen(rectangleSegmentA003) + ], %, $rectangleSegmentC002) + |> lineTo([profileStartX(%), profileStartY(%)], %) + |> close(%) +const sketch002 = startSketchOn(extrude001, seg03) + |> startProfileAt([159.25, 278.35], %) + |> angledLine([0, 40.82], %, $rectangleSegmentA002) + |> angledLine([ + segAng(rectangleSegmentA002) - 90, + 132.27 + ], %, $rectangleSegmentB001) + |> angledLine([ + segAng(rectangleSegmentA002), + -segLen(rectangleSegmentA002) + ], %, $rectangleSegmentC001) + |> lineTo([profileStartX(%), profileStartY(%)], %) + |> close(%) +const extrude002 = extrude(50, sketch002) diff --git a/src/wasm-lib/tests/executor/inputs/sketch-on-chamfer-two-times.kcl b/src/wasm-lib/tests/executor/inputs/sketch-on-chamfer-two-times.kcl new file mode 100644 index 0000000000..2ab94d0113 --- /dev/null +++ b/src/wasm-lib/tests/executor/inputs/sketch-on-chamfer-two-times.kcl @@ -0,0 +1,48 @@ +const sketch001 = startSketchOn('XZ') + |> startProfileAt([75.8, 317.2], %) // [$startCapTag, $EndCapTag] + |> angledLine([0, 268.43], %, $rectangleSegmentA001) + |> angledLine([ + segAng(rectangleSegmentA001) - 90, + 217.26 + ], %, $seg01) + |> angledLine([ + segAng(rectangleSegmentA001), + -segLen(rectangleSegmentA001) + ], %) + |> lineTo([profileStartX(%), profileStartY(%)], %, $seg02) + |> close(%) +const extrude001 = extrude(100, sketch001) + |> fillet({ radius: 20, tags: [seg01] }, %) + |> chamfer({ length: 50, tags: [seg02] }, %, $seg04) + |> chamfer({ + length: 50, + tags: [getOppositeEdge(seg01)] + }, %, $seg03) + +const sketch003 = startSketchOn(extrude001, seg04) + |> startProfileAt([-69.1, 277.34], %) + |> angledLine([0, 41.48], %, $rectangleSegmentA003) + |> angledLine([ + segAng(rectangleSegmentA003) - 90, + 104.8 + ], %, $rectangleSegmentB002) + |> angledLine([ + segAng(rectangleSegmentA003), + -segLen(rectangleSegmentA003) + ], %, $rectangleSegmentC002) + |> lineTo([profileStartX(%), profileStartY(%)], %) + |> close(%) +const sketch002 = startSketchOn(extrude001, seg03) + |> startProfileAt([159.25, 278.35], %) + |> angledLine([0, 40.82], %, $rectangleSegmentA002) + |> angledLine([ + segAng(rectangleSegmentA002) - 90, + 132.27 + ], %, $rectangleSegmentB001) + |> angledLine([ + segAng(rectangleSegmentA002), + -segLen(rectangleSegmentA002) + ], %, $rectangleSegmentC001) + |> lineTo([profileStartX(%), profileStartY(%)], %) + |> close(%) +const extrude002 = extrude(50, sketch002) diff --git a/src/wasm-lib/tests/executor/outputs/sketch-on-chamfer-two-times-different-order.png b/src/wasm-lib/tests/executor/outputs/sketch-on-chamfer-two-times-different-order.png new file mode 100644 index 0000000000000000000000000000000000000000..d0c26c126bd7f274ff437e94a5950b7a68591697 GIT binary patch literal 75490 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 literal 0 HcmV?d00001 diff --git a/src/wasm-lib/tests/executor/outputs/sketch-on-chamfer-two-times.png b/src/wasm-lib/tests/executor/outputs/sketch-on-chamfer-two-times.png new file mode 100644 index 0000000000000000000000000000000000000000..d0c26c126bd7f274ff437e94a5950b7a68591697 GIT binary patch literal 75490 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 literal 0 HcmV?d00001 diff --git a/src/wasm-lib/tests/executor/visuals.rs b/src/wasm-lib/tests/executor/visuals.rs index 13cf9638b8..14b0d9238f 100644 --- a/src/wasm-lib/tests/executor/visuals.rs +++ b/src/wasm-lib/tests/executor/visuals.rs @@ -57,3 +57,8 @@ kcl_test!("lego", kcl_test_lego); kcl_test!("riddle_small", kcl_test_riddle_small); kcl_test!("tan_arc_x_line", kcl_test_tan_arc_x_line); kcl_test!("fillet-and-shell", kcl_test_fillet_and_shell); +kcl_test!("sketch-on-chamfer-two-times", kcl_test_sketch_on_chamfer_two_times); +kcl_test!( + "sketch-on-chamfer-two-times-different-order", + kcl_test_sketch_on_chamfer_two_times_different_order +);