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 extrude_group = extrude_group.clone();
|
||||||
let mut edge_cuts = Vec::new();
|
|
||||||
for edge_tag in data.tags {
|
for edge_tag in data.tags {
|
||||||
let edge_id = match edge_tag {
|
let edge_id = match edge_tag {
|
||||||
EdgeReference::Uuid(uuid) => uuid,
|
EdgeReference::Uuid(uuid) => uuid,
|
||||||
@ -152,7 +151,7 @@ async fn inner_chamfer(
|
|||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
edge_cuts.push(EdgeCut::Chamfer {
|
extrude_group.edge_cuts.push(EdgeCut::Chamfer {
|
||||||
id,
|
id,
|
||||||
edge_id,
|
edge_id,
|
||||||
length: data.length,
|
length: data.length,
|
||||||
@ -171,7 +170,5 @@ async fn inner_chamfer(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extrude_group.edge_cuts = edge_cuts;
|
|
||||||
|
|
||||||
Ok(extrude_group)
|
Ok(extrude_group)
|
||||||
}
|
}
|
||||||
|
@ -133,7 +133,6 @@ async fn inner_fillet(
|
|||||||
}
|
}
|
||||||
|
|
||||||
let mut extrude_group = extrude_group.clone();
|
let mut extrude_group = extrude_group.clone();
|
||||||
let mut edge_cuts = Vec::new();
|
|
||||||
for edge_tag in data.tags {
|
for edge_tag in data.tags {
|
||||||
let edge_id = match edge_tag {
|
let edge_id = match edge_tag {
|
||||||
EdgeReference::Uuid(uuid) => uuid,
|
EdgeReference::Uuid(uuid) => uuid,
|
||||||
@ -157,7 +156,7 @@ async fn inner_fillet(
|
|||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
edge_cuts.push(EdgeCut::Fillet {
|
extrude_group.edge_cuts.push(EdgeCut::Fillet {
|
||||||
id,
|
id,
|
||||||
edge_id,
|
edge_id,
|
||||||
radius: data.radius,
|
radius: data.radius,
|
||||||
@ -176,8 +175,6 @@ async fn inner_fillet(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extrude_group.edge_cuts = edge_cuts;
|
|
||||||
|
|
||||||
Ok(extrude_group)
|
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!("riddle_small", kcl_test_riddle_small);
|
||||||
kcl_test!("tan_arc_x_line", kcl_test_tan_arc_x_line);
|
kcl_test!("tan_arc_x_line", kcl_test_tan_arc_x_line);
|
||||||
kcl_test!("fillet-and-shell", kcl_test_fillet_and_shell);
|
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