add sketch on edge of revolve test and sample (#1942)
* add sketch on edge of revolve test and sample Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com>
@ -51191,6 +51191,7 @@
 | 
			
		||||
      "const part001 = startSketchOn('XY')\n  |> startProfileAt([4, 12], %)\n  |> line([2, 0], %)\n  |> line([0, -6], %)\n  |> line([4, -6], %)\n  |> line([0, -6], %)\n  |> line([-3.75, -4.5], %)\n  |> line([0, -5.5], %)\n  |> line([-2, 0], %)\n  |> close(%)\n  |> revolve({ axis: 'y' }, %) // default angle is 360",
 | 
			
		||||
      "// A donut shape.\nconst sketch001 = startSketchOn('XY')\n  |> circle([15, 0], 5, %)\n  |> revolve({ angle: 360, axis: 'y' }, %)",
 | 
			
		||||
      "const part001 = startSketchOn('XY')\n  |> startProfileAt([4, 12], %)\n  |> line([2, 0], %)\n  |> line([0, -6], %)\n  |> line([4, -6], %)\n  |> line([0, -6], %)\n  |> line([-3.75, -4.5], %)\n  |> line([0, -5.5], %)\n  |> line([-2, 0], %)\n  |> close(%)\n  |> revolve({ axis: 'y', angle: 180 }, %)",
 | 
			
		||||
      "const part001 = startSketchOn('XY')\n  |> startProfileAt([4, 12], %)\n  |> line([2, 0], %)\n  |> line([0, -6], %)\n  |> line([4, -6], %)\n  |> line([0, -6], %)\n  |> line([-3.75, -4.5], %)\n  |> line([0, -5.5], %)\n  |> line([-2, 0], %)\n  |> close(%)\n  |> revolve({ axis: 'y', angle: 180 }, %)\nconst part002 = startSketchOn(part001, 'end')\n  |> startProfileAt([4.5, -5], %)\n  |> line([0, 5], %)\n  |> line([5, 0], %)\n  |> line([0, -5], %)\n  |> close(%)\n  |> extrude(5, %)",
 | 
			
		||||
      "const box = startSketchOn('XY')\n  |> startProfileAt([0, 0], %)\n  |> line([0, 20], %)\n  |> line([20, 0], %)\n  |> line([0, -20], %)\n  |> close(%)\n  |> extrude(20, %)\n\nconst sketch001 = startSketchOn(box, \"END\")\n  |> circle([10, 10], 4, %)\n  |> revolve({ angle: -90, axis: 'y' }, %)",
 | 
			
		||||
      "const box = startSketchOn('XY')\n  |> startProfileAt([0, 0], %)\n  |> line([0, 20], %)\n  |> line([20, 0], %)\n  |> line([0, -20], %, 'revolveAxis')\n  |> close(%)\n  |> extrude(20, %)\n\nconst sketch001 = startSketchOn(box, \"END\")\n  |> circle([10, 10], 4, %)\n  |> revolve({\n       angle: 90,\n       axis: getOppositeEdge('revolveAxis', box)\n     }, %)"
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
@ -147,6 +147,27 @@ pub async fn revolve(args: Args) -> Result<MemoryItem, KclError> {
 | 
			
		||||
/// ```
 | 
			
		||||
///
 | 
			
		||||
/// ```no_run
 | 
			
		||||
/// const part001 = startSketchOn('XY')
 | 
			
		||||
///     |> startProfileAt([4, 12], %)
 | 
			
		||||
///     |> line([2, 0], %)
 | 
			
		||||
///     |> line([0, -6], %)
 | 
			
		||||
///     |> line([4, -6], %)
 | 
			
		||||
///     |> line([0, -6], %)
 | 
			
		||||
///     |> line([-3.75, -4.5], %)
 | 
			
		||||
///     |> line([0, -5.5], %)
 | 
			
		||||
///     |> line([-2, 0], %)
 | 
			
		||||
///     |> close(%)
 | 
			
		||||
///     |> revolve({axis: 'y', angle: 180}, %)
 | 
			
		||||
/// const part002 = startSketchOn(part001, 'end')
 | 
			
		||||
///     |> startProfileAt([4.5, -5], %)
 | 
			
		||||
///     |> line([0, 5], %)
 | 
			
		||||
///     |> line([5, 0], %)
 | 
			
		||||
///     |> line([0, -5], %)
 | 
			
		||||
///     |> close(%)
 | 
			
		||||
///     |> extrude(5, %)
 | 
			
		||||
/// ```
 | 
			
		||||
///
 | 
			
		||||
/// ```no_run
 | 
			
		||||
/// const box = startSketchOn('XY')
 | 
			
		||||
///     |> startProfileAt([0, 0], %)
 | 
			
		||||
///     |> line([0, 20], %)
 | 
			
		||||
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 119 KiB After Width: | Height: | Size: 106 KiB  | 
| 
		 Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 119 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/wasm-lib/kcl/tests/outputs/serial_test_example_revolve5.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 117 KiB  | 
@ -1,20 +1,20 @@
 | 
			
		||||
const svg = startSketchOn('XY')
 | 
			
		||||
|> lineTo([0])
 | 
			
		||||
|> lineTo([0 + 1])
 | 
			
		||||
|> lineTo([0 + 1 + 2])
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3])
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4])
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5])
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6])
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7])
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8])
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9])
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10])
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11])
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12])
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13])
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14])
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15])
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16])
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17])
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18])
 | 
			
		||||
|> lineTo([0],%)
 | 
			
		||||
|> lineTo([0 + 1],%)
 | 
			
		||||
|> lineTo([0 + 1 + 2],%)
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3],%)
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4],%)
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5],%)
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6],%)
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7],%)
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8],%)
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9],%)
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10],%)
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11],%)
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12],%)
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13],%)
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14],%)
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15],%)
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16],%)
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17],%)
 | 
			
		||||
|> lineTo([0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18],%)
 | 
			
		||||
 | 
			
		||||
@ -1804,7 +1804,6 @@ async fn serial_test_basic_revolve_circle() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[tokio::test(flavor = "multi_thread")]
 | 
			
		||||
#[ignore] // Ignore this test until https://github.com/KittyCAD/engine/pull/1930 is fixed
 | 
			
		||||
async fn serial_test_simple_revolve_sketch_on_edge() {
 | 
			
		||||
    let code = r#"const part001 = startSketchOn('XY')
 | 
			
		||||
     |> startProfileAt([4, 12], %)
 | 
			
		||||
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 106 KiB  |