Skip to content

Commit

Permalink
dumb ass logic bug with edge cuts
Browse files Browse the repository at this point in the history
Signed-off-by: Jess Frazelle <[email protected]>
  • Loading branch information
jessfraz committed Sep 19, 2024
1 parent 4285e81 commit 95f62e4
Show file tree
Hide file tree
Showing 7 changed files with 103 additions and 8 deletions.
5 changes: 1 addition & 4 deletions src/wasm-lib/kcl/src/std/chamfer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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,
Expand All @@ -170,7 +169,5 @@ async fn inner_chamfer(
}
}

extrude_group.edge_cuts = edge_cuts;

Ok(extrude_group)
}
5 changes: 1 addition & 4 deletions src/wasm-lib/kcl/src/std/fillet.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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,
Expand All @@ -174,8 +173,6 @@ async fn inner_fillet(
}
}

extrude_group.edge_cuts = edge_cuts;

Ok(extrude_group)
}

Expand Down
Original file line number Diff line number Diff line change
@@ -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)
48 changes: 48 additions & 0 deletions src/wasm-lib/tests/executor/inputs/sketch-on-chamfer-two-times.kcl
Original file line number Diff line number Diff line change
@@ -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)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions src/wasm-lib/tests/executor/visuals.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
);

0 comments on commit 95f62e4

Please sign in to comment.