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