diff --git a/e2e/playwright/point-click.spec.ts b/e2e/playwright/point-click.spec.ts index dd542764c..27f2a5582 100644 --- a/e2e/playwright/point-click.spec.ts +++ b/e2e/playwright/point-click.spec.ts @@ -221,8 +221,8 @@ test.describe('Point-and-click tests', { tag: ['@skipWin'] }, () => { afterRectangle2ndClickSnippet: `angledLine([0,11.39],%,$rectangleSegmentA002) |>angledLine([segAng(rectangleSegmentA002)-90,105.26],%) |>angledLine([segAng(rectangleSegmentA002),-segLen(rectangleSegmentA002)],%) - |>line(endAbsolute=[profileStartX(%),profileStartY(%)],%) - |>close(%)`, + |>line(endAbsolute=[profileStartX(%),profileStartY(%)]) + |>close()`, }) await sketchOnAChamfer({ @@ -248,8 +248,8 @@ test.describe('Point-and-click tests', { tag: ['@skipWin'] }, () => { afterRectangle2ndClickSnippet: `angledLine([0,11.56],%,$rectangleSegmentA003) |>angledLine([segAng(rectangleSegmentA003)-90,106.84],%) |>angledLine([segAng(rectangleSegmentA003),-segLen(rectangleSegmentA003)],%) - |>line(endAbsolute=[profileStartX(%),profileStartY(%)],%) - |>close(%)`, + |>line(endAbsolute=[profileStartX(%),profileStartY(%)]) + |>close()`, }) await sketchOnAChamfer({ @@ -270,8 +270,8 @@ test.describe('Point-and-click tests', { tag: ['@skipWin'] }, () => { afterRectangle2ndClickSnippet: `angledLine([0,11.16],%,$rectangleSegmentA004) |>angledLine([segAng(rectangleSegmentA004)-90,103.07],%) |>angledLine([segAng(rectangleSegmentA004),-segLen(rectangleSegmentA004)],%) - |>line(endAbsolute=[profileStartX(%),profileStartY(%)],%)| - >close(%)`, + |>line(endAbsolute=[profileStartX(%),profileStartY(%)]) + |>close()`, }) /// last one await sketchOnAChamfer({ @@ -289,8 +289,8 @@ test.describe('Point-and-click tests', { tag: ['@skipWin'] }, () => { afterRectangle2ndClickSnippet: `angledLine([0,9.1],%,$rectangleSegmentA005) |>angledLine([segAng(rectangleSegmentA005)-90,84.07],%) |>angledLine([segAng(rectangleSegmentA005),-segLen(rectangleSegmentA005)],%) - |>line(endAbsolute=[profileStartX(%),profileStartY(%)],%) - |>close(%)`, + |>line(endAbsolute=[profileStartX(%),profileStartY(%)]) + |>close()`, }) await test.step('verify at the end of the test that final code is what is expected', async () => { @@ -306,9 +306,9 @@ test.describe('Point-and-click tests', { tag: ['@skipWin'] }, () => { segAng(rectangleSegmentA001), -segLen(rectangleSegmentA001) ], %, $yo) - |> line(endAbsolute=[profileStartX(%), profileStartY(%)], %, $seg02) - |> close(%) -extrude001 = extrude(100, sketch001) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg02) + |> close() +extrude001 = extrude(sketch001, length = 100) |> chamfer({ length = 30, tags = [getOppositeEdge(seg01)] @@ -333,8 +333,8 @@ profile004 = startProfileAt([-23.43, 19.69], sketch005) segAng(rectangleSegmentA005), -segLen(rectangleSegmentA005) ], %) - |> line(endAbsolute=[profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() sketch004 = startSketchOn(extrude001, seg05) profile003 = startProfileAt([82.57, 322.96], sketch004) |> angledLine([0, 11.16], %, $rectangleSegmentA004) @@ -346,8 +346,8 @@ profile003 = startProfileAt([82.57, 322.96], sketch004) segAng(rectangleSegmentA004), -segLen(rectangleSegmentA004) ], %) - |> line(endAbsolute=[profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() sketch003 = startSketchOn(extrude001, seg04) profile002 = startProfileAt([-209.64, 255.28], sketch003) |> angledLine([0, 11.56], %, $rectangleSegmentA003) @@ -359,8 +359,8 @@ profile002 = startProfileAt([-209.64, 255.28], sketch003) segAng(rectangleSegmentA003), -segLen(rectangleSegmentA003) ], %) - |> line(endAbsolute=[profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() sketch002 = startSketchOn(extrude001, seg03) profile001 = startProfileAt([205.96, 254.59], sketch002) |> angledLine([0, 11.39], %, $rectangleSegmentA002) @@ -372,8 +372,9 @@ profile001 = startProfileAt([205.96, 254.59], sketch002) segAng(rectangleSegmentA002), -segLen(rectangleSegmentA002) ], %) - |> line(endAbsolute=[profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() + `, { shouldNormalise: true } ) @@ -423,8 +424,8 @@ profile001 = startProfileAt([205.96, 254.59], sketch002) afterRectangle2ndClickSnippet: `angledLine([0,11.39],%,$rectangleSegmentA002) |>angledLine([segAng(rectangleSegmentA002)-90,105.26],%) |>angledLine([segAng(rectangleSegmentA002),-segLen(rectangleSegmentA002)],%) - |>line(endAbsolute=[profileStartX(%),profileStartY(%)],%) - |>close(%)`, + |>line(endAbsolute=[profileStartX(%),profileStartY(%)]) + |>close()`, }) await editor.expectEditor.toContain( `sketch001 = startSketchOn('XZ') @@ -464,8 +465,8 @@ profile001 = startProfileAt([205.96, 254.59], sketch002) segAng(rectangleSegmentA002), -segLen(rectangleSegmentA002) ], %) - |> line(endAbsolute=[profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute=[profileStartX(%), profileStartY(%)]) + |> close() `, { shouldNormalise: true } ) @@ -531,10 +532,10 @@ profile001 = startProfileAt([205.96, 254.59], sketch002) const expectedCodeSnippets = { sketchOnXzPlane: `sketch001 = startSketchOn('XZ')`, - pointAtOrigin: `startProfileAt([${originSloppy.kcl[0]}, ${originSloppy.kcl[1]}], %)`, + pointAtOrigin: `startProfileAt([${originSloppy.kcl[0]}, ${originSloppy.kcl[1]}], sketch001)`, segmentOnXAxis: `xLine(${xAxisSloppy.kcl[0]}, %)`, - afterSegmentDraggedOffYAxis: `startProfileAt([${offYAxis.kcl[0]}, ${offYAxis.kcl[1]}], %)`, - afterSegmentDraggedOnYAxis: `startProfileAt([${yAxisSloppy.kcl[0]}, ${yAxisSloppy.kcl[1]}], %)`, + afterSegmentDraggedOffYAxis: `startProfileAt([${offYAxis.kcl[0]}, ${offYAxis.kcl[1]}], sketch001)`, + afterSegmentDraggedOnYAxis: `startProfileAt([${yAxisSloppy.kcl[0]}, ${yAxisSloppy.kcl[1]}], sketch001)`, } await test.step(`Start a sketch on the XZ plane`, async () => { @@ -575,6 +576,7 @@ profile001 = startProfileAt([205.96, 254.59], sketch002) expectedCodeSnippets.afterSegmentDraggedOnYAxis ) }) + await editor.page.waitForTimeout(1000) }) test(`Verify user can double-click to edit a sketch`, async ({ diff --git a/e2e/playwright/sketch-tests.spec.ts b/e2e/playwright/sketch-tests.spec.ts index 385e33d24..978ab88e9 100644 --- a/e2e/playwright/sketch-tests.spec.ts +++ b/e2e/playwright/sketch-tests.spec.ts @@ -1401,7 +1401,7 @@ test.describe('multi-profile sketching', () => { ) await endLineStartTanArc() - await editor.expectEditor.toContain(`|> line([9.02, -0.55], %)`) + await editor.expectEditor.toContain(`|> line(end = [9.02, -0.55])`) await toolbar.tangentialArcBtn.click() await page.waitForTimeout(300) await page.mouse.click(745, 359) @@ -1417,11 +1417,11 @@ test.describe('multi-profile sketching', () => { await endArcStartLine() await page.mouse.click(572, 110) - await editor.expectEditor.toContain(`|> line([-11.73, 5.35], %)`) + await editor.expectEditor.toContain(`|> line(end = [-11.73, 5.35])`) await startProfile1() await editor.expectEditor.toContain( - `|> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%)`, + `|> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close()`, { shouldNormalise: true } ) await page.waitForTimeout(300) @@ -1435,10 +1435,10 @@ test.describe('multi-profile sketching', () => { ) await profile2Point2() await page.waitForTimeout(300) - await editor.expectEditor.toContain(`|> line([9.43, -0.68], %)`) + await editor.expectEditor.toContain(`|> line(end = [9.43, -0.68])`) await profile2Point3() await page.waitForTimeout(300) - await editor.expectEditor.toContain(`|> line([2.17, -5.97], %)`) + await editor.expectEditor.toContain(`|> line(end = [2.17, -5.97])`) }) await test.step('create two circles in a row without unequip', async () => { @@ -1465,7 +1465,6 @@ test.describe('multi-profile sketching', () => { ) }) await test.step('create two corner rectangles in a row without unequip', async () => { - await page.screenshot({ path: 'rectangle.png' }) await toolbar.rectangleBtn.click() await crnRect1point1() @@ -1480,8 +1479,8 @@ test.describe('multi-profile sketching', () => { segAng(rectangleSegmentA001), -segLen(rectangleSegmentA001) ], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%)`.replaceAll('\n', '') + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close()`.replaceAll('\n', '') ) await crnRect2point1() @@ -1501,8 +1500,8 @@ test.describe('multi-profile sketching', () => { segAng(rectangleSegmentA002), -segLen(rectangleSegmentA002) ], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%)`.replaceAll('\n', '') + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close()`.replaceAll('\n', '') ) }) @@ -1526,8 +1525,8 @@ test.describe('multi-profile sketching', () => { segAng(rectangleSegmentA003), -segLen(rectangleSegmentA003) ], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%)`.replaceAll('\n', '') + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close()`.replaceAll('\n', '') ) await page.waitForTimeout(300) @@ -1548,8 +1547,8 @@ test.describe('multi-profile sketching', () => { segAng(rectangleSegmentA004), -segLen(rectangleSegmentA004) ], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%)`.replaceAll('\n', '') + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close()`.replaceAll('\n', '') ) }) }) @@ -1566,9 +1565,9 @@ test.describe('multi-profile sketching', () => { 'persistCode', `sketch001 = startSketchOn('XZ') profile001 = startProfileAt([6.24, 4.54], sketch001) - |> line([-0.41, 6.99], %) - |> line([8.61, 0.74], %) - |> line([10.99, -5.22], %) + |> line(end = [-0.41, 6.99]) + |> line(end = [8.61, 0.74]) + |> line(end = [10.99, -5.22]) profile002 = startProfileAt([11.19, 5.02], sketch001) |> angledLine([0, 10.78], %, $rectangleSegmentA001) |> angledLine([ @@ -1579,8 +1578,8 @@ profile002 = startProfileAt([11.19, 5.02], sketch001) segAng(rectangleSegmentA001), -segLen(rectangleSegmentA001) ], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() profile003 = circle({ center = [6.92, -4.2], radius = 3.16 }, sketch001) ` ) @@ -1609,11 +1608,9 @@ profile003 = circle({ center = [6.92, -4.2], radius = 3.16 }, sketch001) const [rectEnd] = scene.makeMouseHelpers(757, 395) await test.step('enter sketch and setup', async () => { - await page.screenshot({ path: 'toolbar1.png' }) await pointOnSegment({ shouldDbClick: true }) await page.waitForTimeout(600) - await page.screenshot({ path: 'toolbar2.png' }) await toolbar.lineBtn.click() await page.waitForTimeout(100) }) @@ -1622,7 +1619,7 @@ profile003 = circle({ center = [6.92, -4.2], radius = 3.16 }, sketch001) await profileEnd() await page.waitForTimeout(100) await newProfileEnd() - await editor.expectEditor.toContain(`|> line([-11.4, 0.71], %)`) + await editor.expectEditor.toContain(`|> line(end = [-11.4, 0.71])`) await toolbar.lineBtn.click() await page.waitForTimeout(100) }) @@ -1632,7 +1629,7 @@ profile003 = circle({ center = [6.92, -4.2], radius = 3.16 }, sketch001) await page.mouse.down() await dragSegmentTo() await page.mouse.up() - await editor.expectEditor.toContain(`line([4.16, -4.51], %)`) + await editor.expectEditor.toContain(`line(end = [4.16, -4.51])`) }) await test.step('edit existing rect', async () => { @@ -1674,8 +1671,8 @@ profile003 = circle({ center = [6.92, -4.2], radius = 3.16 }, sketch001) segAng(rectangleSegmentA002), -segLen(rectangleSegmentA002) ], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%)`.replaceAll('\n', '') + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close()`.replaceAll('\n', '') ) }) }) @@ -1692,9 +1689,9 @@ profile003 = circle({ center = [6.92, -4.2], radius = 3.16 }, sketch001) 'persistCode', `sketch001 = startSketchOn('XZ') profile001 = startProfileAt([6.24, 4.54], sketch001) - |> line([-0.41, 6.99], %) - |> line([8.61, 0.74], %) - |> line([10.99, -5.22], %) + |> line(end = [-0.41, 6.99]) + |> line(end = [8.61, 0.74]) + |> line(end = [10.99, -5.22]) profile002 = startProfileAt([11.19, 5.02], sketch001) |> angledLine([0, 10.78], %, $rectangleSegmentA001) |> angledLine([ @@ -1705,8 +1702,8 @@ profile002 = startProfileAt([11.19, 5.02], sketch001) segAng(rectangleSegmentA001), -segLen(rectangleSegmentA001) ], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() profile003 = circle({ center = [6.92, -4.2], radius = 3.16 }, sketch001) ` ) @@ -1737,7 +1734,7 @@ profile003 = circle({ center = [6.92, -4.2], radius = 3.16 }, sketch001) }) await test.step('select and delete code for a profile', async () => {}) - await page.getByText('close(%)').click() + await page.getByText('close()').click() await page.keyboard.down('Shift') for (let i = 0; i < 11; i++) { await page.keyboard.press('ArrowUp') @@ -1761,8 +1758,8 @@ profile003 = circle({ center = [6.92, -4.2], radius = 3.16 }, sketch001) await segment1Click() await editor.expectState({ diagnostics: [], - activeLines: ['|>line([-0.41,6.99],%)'], - highlightedCode: 'line([-0.41,6.99],%)', + activeLines: ['|>line(end = [-0.41,6.99])'], + highlightedCode: 'line(end = [-0.41,6.99])', }) }).toPass({ timeout: 5_000, intervals: [500] }) @@ -1794,12 +1791,12 @@ profile003 = circle({ center = [6.92, -4.2], radius = 3.16 }, sketch001) 'persistCode', `sketch001 = startSketchOn('XZ') profile001 = startProfileAt([-63.43, 193.08], sketch001) - |> line([168.52, 149.87], %) - |> line([190.29, -39.18], %) + |> line(end = [168.52, 149.87]) + |> line(end = [190.29, -39.18]) |> tangentialArcTo([319.63, 129.65], %) - |> line([-217.65, -21.76], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(end = [-217.65, -21.76]) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() profile003 = startProfileAt([16.79, 38.24], sketch001) |> angledLine([0, 182.82], %, $rectangleSegmentA001) |> angledLine([ @@ -1810,14 +1807,14 @@ profile003 = startProfileAt([16.79, 38.24], sketch001) segAng(rectangleSegmentA001), -segLen(rectangleSegmentA001) ], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() profile004 = circle({ center = [280.45, 47.57], radius = 55.26 }, sketch001) -extrude002 = extrude(50, profile001) -extrude001 = extrude(5, profile003) +extrude002 = extrude(profile001, length = 50) +extrude001 = extrude(profile003, length = 5) ` ) }) @@ -1836,9 +1833,9 @@ extrude001 = extrude(5, profile003) await page.waitForTimeout(600) await test.step('check the sketch is still drawn properly', async () => { - await scene.expectPixelColor([255, 255, 255], { x: 591, y: 167 }, 15) - await scene.expectPixelColor([255, 255, 255], { x: 638, y: 222 }, 15) - await scene.expectPixelColor([255, 255, 255], { x: 756, y: 214 }, 15) + await scene.expectPixelColor([255, 255, 255], { x: 596, y: 165 }, 15) + await scene.expectPixelColor([255, 255, 255], { x: 641, y: 220 }, 15) + await scene.expectPixelColor([255, 255, 255], { x: 763, y: 214 }, 15) }) }) test('exit new sketch without drawing anything should not be a problem', async ({ @@ -1897,10 +1894,10 @@ extrude001 = extrude(5, profile003) 'persistCode', `sketch001 = startSketchOn('XZ') profile001 = startProfileAt([85.19, 338.59], sketch001) - |> line([213.3, -94.52], %) - |> line([-230.09, -55.34], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(end = [213.3, -94.52]) + |> line(end = [-230.09, -55.34]) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() sketch002 = startSketchOn('XY') profile002 = startProfileAt([85.81, 52.55], sketch002) @@ -1927,7 +1924,7 @@ profile002 = startProfileAt([85.81, 52.55], sketch002) await startProfileAt() await page.waitForTimeout(100) await nextPoint() - await editor.expectEditor.toContain(`|> line([126.05, 44.12], %)`) + await editor.expectEditor.toContain(`|> line(end = [126.05, 44.12])`) }) test('old style sketch all in one pipe (with extrude) will break up to allow users to add a new profile to the same sketch', async ({ homePage, @@ -1941,12 +1938,12 @@ profile002 = startProfileAt([85.81, 52.55], sketch002) 'persistCode', `thePart = startSketchOn('XZ') |> startProfileAt([7.53, 10.51], %) - |> line([12.54, 1.83], %) - |> line([6.65, -6.91], %) - |> line([-6.31, -8.69], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) -extrude001 = extrude(75, thePart) + |> line(end = [12.54, 1.83]) + |> line(end = [6.65, -6.91]) + |> line(end = [-6.31, -8.69]) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() +extrude001 = extrude(thePart, length = 75) ` ) }) @@ -1984,10 +1981,10 @@ extrude001 = extrude(75, thePart) await test.step('can continue on to add a new profile to this sketch', async () => { await profilePoint1() await editor.expectEditor.toContain( - `profile001 = startProfileAt([19.77, -7.08], sketch001)` + `profile001 = startProfileAt([19.69, -7.05], sketch001)` ) await profilePoint2() - await editor.expectEditor.toContain(`|> line([19.05, -18.14], %)`) + await editor.expectEditor.toContain(`|> line(end = [18.97, -18.06])`) }) }) test('Can enter sketch on sketch of wall and cap for segment, solid2d, extrude-wall, extrude-cap selections', async ({ @@ -2004,15 +2001,15 @@ extrude001 = extrude(75, thePart) 'persistCode', `sketch001 = startSketchOn('XZ') profile001 = startProfileAt([6.71, -3.66], sketch001) - |> line([2.65, 9.02], %, $seg02) - |> line([3.73, -9.36], %, $seg01) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) -extrude001 = extrude(20, profile001) + |> line(end = [2.65, 9.02], tag = $seg02) + |> line(end = [3.73, -9.36], tag = $seg01) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() +extrude001 = extrude(profile001, length = 20) sketch002 = startSketchOn(extrude001, seg01) profile002 = startProfileAt([0.75, 13.46], sketch002) - |> line([4.52, 3.79], %) - |> line([5.98, -2.81], %) + |> line(end = [4.52, 3.79]) + |> line(end = [5.98, -2.81]) profile003 = startProfileAt([3.19, 13.3], sketch002) |> angledLine([0, 6.64], %, $rectangleSegmentA001) |> angledLine([ @@ -2023,38 +2020,38 @@ profile003 = startProfileAt([3.19, 13.3], sketch002) segAng(rectangleSegmentA001), -segLen(rectangleSegmentA001) ], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() profile004 = startProfileAt([3.15, 9.39], sketch002) |> xLine(6.92, %) - |> line([-7.41, -2.85], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(end = [-7.41, -2.85]) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() profile005 = circle({ center = [5.15, 4.34], radius = 1.66 }, sketch002) profile006 = startProfileAt([9.65, 3.82], sketch002) - |> line([2.38, 5.62], %) - |> line([2.13, -5.57], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(end = [2.38, 5.62]) + |> line(end = [2.13, -5.57]) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() revolve001 = revolve({ angle = 45, axis = getNextAdjacentEdge(seg01) }, profile004) -extrude002 = extrude(4, profile006) +extrude002 = extrude(profile006, length = 4) sketch003 = startSketchOn('-XZ') profile007 = startProfileAt([4.8, 7.55], sketch003) - |> line([7.39, 2.58], %) - |> line([7.02, -2.85], %) + |> line(end = [7.39, 2.58]) + |> line(end = [7.02, -2.85]) profile008 = startProfileAt([5.54, 5.49], sketch003) - |> line([6.34, 2.64], %) - |> line([6.33, -2.96], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(end = [6.34, 2.64]) + |> line(end = [6.33, -2.96]) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() profile009 = startProfileAt([5.23, 1.95], sketch003) - |> line([6.8, 2.17], %) - |> line([7.34, -2.75], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(end = [6.8, 2.17]) + |> line(end = [7.34, -2.75]) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() profile010 = circle({ center = [7.18, -2.11], radius = 2.67 @@ -2069,9 +2066,9 @@ profile011 = startProfileAt([5.07, -6.39], sketch003) segAng(rectangleSegmentA002), -segLen(rectangleSegmentA002) ], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) -extrude003 = extrude(2.5, profile011) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() +extrude003 = extrude(profile011, length = 2.5) // TODO this breaks the test, // revolve002 = revolve({ angle = 45, axis = seg02 }, profile008) ` @@ -2226,17 +2223,17 @@ extrude003 = extrude(2.5, profile011) 'persistCode', `sketch001 = startSketchOn('XZ') profile001 = startProfileAt([34, 42.66], sketch001) - |> line([102.65, 151.99], %) - |> line([76, -138.66], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(end = [102.65, 151.99]) + |> line(end = [76, -138.66]) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() plane001 = offsetPlane('XZ', 50) sketch002 = startSketchOn(plane001) profile002 = startProfileAt([39.43, 172.21], sketch002) |> xLine(183.99, %) - |> line([-77.95, -145.93], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(end = [-77.95, -145.93]) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() loft([profile001, profile002]) ` @@ -2282,17 +2279,17 @@ loft([profile001, profile002]) 'persistCode', `sketch001 = startSketchOn('XZ') profile001 = startProfileAt([34, 42.66], sketch001) - |> line([102.65, 151.99], %) - |> line([76, -138.66], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(end = [102.65, 151.99]) + |> line(end = [76, -138.66]) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() plane001 = offsetPlane('XZ', 50) sketch002 = startSketchOn(plane001) profile002 = startProfileAt([39.43, 172.21], sketch002) |> xLine(183.99, %) - |> line([-77.95, -145.93], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(end = [-77.95, -145.93]) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() loft([profile001, profile002]) ` @@ -2338,6 +2335,7 @@ loft([profile001, profile002]) await editor.expectEditor.toContain( `angledLine([0, 106.42], %, $rectangleSegmentA001)` ) + await page.waitForTimeout(100) }) })