diff --git a/e2e/playwright/regression-tests.spec.ts b/e2e/playwright/regression-tests.spec.ts index 189d7d220..766c6fce1 100644 --- a/e2e/playwright/regression-tests.spec.ts +++ b/e2e/playwright/regression-tests.spec.ts @@ -314,6 +314,7 @@ extrude001 = extrude(sketch001, length = 50) ) test('when engine fails export we handle the failure and alert the user', async ({ + scene, page, homePage, }) => { @@ -383,10 +384,7 @@ extrude001 = extrude(sketch001, length = 50) await page.keyboard.press('End') await page.keyboard.press('Enter') - // wait for execution done - await u.openDebugPanel() - await u.expectCmdLog('[data-message-type="execution-done"]') - await u.closeDebugPanel() + await scene.waitForExecutionDone() // Now try exporting diff --git a/src/lib/exampleKcl.ts b/src/lib/exampleKcl.ts index 2204a9232..4c6c37618 100644 --- a/src/lib/exampleKcl.ts +++ b/src/lib/exampleKcl.ts @@ -12,104 +12,68 @@ wallMountL = 2 // inches shelfDepth = 12 // Shelf is 12 inches in depth from the wall moment = shelfDepth * p // assume the force is applied at the end of the shelf to be conservative (lb-in) - -filletRadius = .375 // inches -extFilletRadius = .25 // inches -mountingHoleDiameter = 0.5 // inches - - // Calculate required thickness of bracket thickness = sqrt(moment * factorOfSafety * 6 / (sigmaAllow * width)) // this is the calculation of two brackets holding up the shelf (inches) +filletRadius = .25 +extFilletRadius = filletRadius + thickness +mountingHoleDiameter = 0.5 -// Sketch the bracket body and fillet the inner and outer edges of the bend -bracketLeg1Sketch = startSketchOn('XY') +sketch001 = startSketchOn('XZ') |> startProfileAt([0, 0], %) - |> line(end = [shelfMountL - filletRadius, 0], tag = $fillet1) - |> line(end = [0, width], tag = $fillet2) - |> line(end = [-shelfMountL + filletRadius, 0]) + |> xLine(shelfMountL - thickness, %, $seg01) + |> yLine(thickness, %, $seg02) + |> xLine(-shelfMountL, %, $seg03) + |> yLine(-wallMountL, %, $seg04) + |> xLine(thickness, %, $seg05) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg06) |> close() - |> hole(circle({ - center = [1, 1], - radius = mountingHoleDiameter / 2 - }, %), %) - |> hole(circle({ - center = [shelfMountL - 1.5, width - 1], - radius = mountingHoleDiameter / 2 - }, %), %) - |> hole(circle({ - center = [1, width - 1], - radius = mountingHoleDiameter / 2 - }, %), %) - |> hole(circle({ - center = [shelfMountL - 1.5, 1], - radius = mountingHoleDiameter / 2 - }, %), %) - -// Extrude the leg 2 bracket sketch -bracketLeg1Extrude = extrude(bracketLeg1Sketch, length = thickness) + |> extrude(%, length = width) |> fillet({ radius = extFilletRadius, - tags = [ - getNextAdjacentEdge(fillet1), - getNextAdjacentEdge(fillet2) - ] + tags = [getNextAdjacentEdge(seg03)] }, %) - -// Sketch the fillet arc -filletSketch = startSketchOn('XZ') - |> startProfileAt([0, 0], %) - |> line(end = [0, thickness]) - |> arc({ - angleEnd = 180, - angleStart = 90, - radius = filletRadius + thickness - }, %) - |> line(end = [thickness, 0]) - |> arc({ - angleEnd = 90, - angleStart = 180, - radius = filletRadius - }, %) - -// Sketch the bend -filletExtrude = extrude(filletSketch, length = -width) - -// Create a custom plane for the leg that sits on the wall -customPlane = { - plane = { - origin = { x = -filletRadius, y = 0, z = 0 }, - xAxis = { x = 0, y = 1, z = 0 }, - yAxis = { x = 0, y = 0, z = 1 }, - zAxis = { x = 1, y = 0, z = 0 } - } -} - -// Create a sketch for the second leg -bracketLeg2Sketch = startSketchOn(customPlane) - |> startProfileAt([0, -filletRadius], %) - |> line(end = [width, 0]) - |> line(end = [0, -wallMountL], tag = $fillet3) - |> line(end = [-width, 0], tag = $fillet4) - |> close() - |> hole(circle({ - center = [1, -1.5], - radius = mountingHoleDiameter / 2 - }, %), %) - |> hole(circle({ - center = [5, -1.5], - radius = mountingHoleDiameter / 2 - }, %), %) - -// Extrude the second leg -bracketLeg2Extrude = extrude(bracketLeg2Sketch, length = -thickness) |> fillet({ - radius = extFilletRadius, - tags = [ - getNextAdjacentEdge(fillet3), - getNextAdjacentEdge(fillet4) - ] + radius = filletRadius, + tags = [getNextAdjacentEdge(seg06)] }, %) + |> fillet({ + radius = filletRadius, + tags = [seg02, getOppositeEdge(seg02)], + }, %) + |> fillet({ + radius = filletRadius, + tags = [seg05, getOppositeEdge(seg05)], + }, %) + +sketch002 = startSketchOn(sketch001, seg03) + |> circle({ + center = [-1.25, 1], + radius = mountingHoleDiameter / 2, + }, %) + |> patternLinear2d({ + instances = 2, + distance = 2.5, + axis = [-1, 0], + }, %) + |> patternLinear2d({ + instances = 2, + distance = 4, + axis = [0, 1], + }, %) + |> extrude(%, length = -thickness-.01) + +sketch003 = startSketchOn(sketch001, seg04) + |> circle({ + center = [1, -1], + radius = mountingHoleDiameter / 2, + }, %) + |> patternLinear2d({ + instances = 2, + distance = 4, + axis = [1, 0], + }, %) + |> extrude(%, length = -thickness-0.1) ` /**