fix dumb ass logic bug with edge cuts, actually extends edge cuts array versus overwriting it lolz (#3928)
* dumb ass logic bug with edge cuts Signed-off-by: Jess Frazelle <github@jessfraz.com> * change order Signed-off-by: Jess Frazelle <github@jessfraz.com> * A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest) * Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)" This reverts commit1ad9eb315e
. * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest) * Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)" This reverts commit4004c9c1db
. * A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest) * Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)" This reverts commit57d0d05d06
. --------- Signed-off-by: Jess Frazelle <github@jessfraz.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This commit is contained in:
@ -128,7 +128,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,
|
||||
@ -152,7 +151,7 @@ async fn inner_chamfer(
|
||||
)
|
||||
.await?;
|
||||
|
||||
edge_cuts.push(EdgeCut::Chamfer {
|
||||
extrude_group.edge_cuts.push(EdgeCut::Chamfer {
|
||||
id,
|
||||
edge_id,
|
||||
length: data.length,
|
||||
@ -171,7 +170,5 @@ async fn inner_chamfer(
|
||||
}
|
||||
}
|
||||
|
||||
extrude_group.edge_cuts = edge_cuts;
|
||||
|
||||
Ok(extrude_group)
|
||||
}
|
||||
|
@ -133,7 +133,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,
|
||||
@ -157,7 +156,7 @@ async fn inner_fillet(
|
||||
)
|
||||
.await?;
|
||||
|
||||
edge_cuts.push(EdgeCut::Fillet {
|
||||
extrude_group.edge_cuts.push(EdgeCut::Fillet {
|
||||
id,
|
||||
edge_id,
|
||||
radius: data.radius,
|
||||
@ -176,8 +175,6 @@ async fn inner_fillet(
|
||||
}
|
||||
}
|
||||
|
||||
extrude_group.edge_cuts = edge_cuts;
|
||||
|
||||
Ok(extrude_group)
|
||||
}
|
||||
|
||||
|
@ -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: [getOppositeEdge(seg01)]
|
||||
}, %, $seg03)
|
||||
|> chamfer({ length: 50, tags: [seg02] }, %, $seg04)
|
||||
|
||||
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)
|
@ -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)
|
Binary file not shown.
After Width: | Height: | Size: 74 KiB |
Binary file not shown.
After Width: | Height: | Size: 74 KiB |
@ -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
|
||||
);
|
||||
|
Reference in New Issue
Block a user