* Log any Errors to stderr This isn't perfect -- in fact, this is maybe not even very good at all, but it's better than what we have today. Currently, when we get an Erorr back from the WebSocket, we drop it in kcl-lib. The web-app logs these to the console (I can't find my commit doing that off the top of my head, but I remember doing it) -- so this is some degree of partity. This won't be very useful at all for wasm usage, but it will fix issues with the zoo cli silently breaking with a "WebSocket Closed" error -- which is the same issue I was solving for in the desktop app too. In the future perhaps this can be a real Error? I'm not totally sure yet, since we can't align to the request-id, so we can't really tie it to a specific call (yet). * add to responses Signed-off-by: Jess Frazelle <github@jessfraz.com> * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest) * add a test Signed-off-by: Jess Frazelle <github@jessfraz.com> * clippy[ Signed-off-by: Jess Frazelle <github@jessfraz.com> * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest) * empty * fix error Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates tests Signed-off-by: Jess Frazelle <github@jessfraz.com> * docs Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com> Co-authored-by: Jess Frazelle <github@jessfraz.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
689 KiB
689 KiB
title, excerpt, layout
title | excerpt | layout |
---|---|---|
shell | Remove volume from a 3-dimensional shape such that a wall of the | manual |
Remove volume from a 3-dimensional shape such that a wall of the
provided thickness remains, taking volume starting at the provided face, leaving it open in that direction.
shell(data: ShellData, solid_set: SolidSet) -> SolidSet
Arguments
Name | Type | Description | Required |
---|---|---|---|
data |
ShellData |
Data for shells. | Yes |
solid_set |
SolidSet |
A solid or a group of solids. | Yes |
Returns
SolidSet
- A solid or a group of solids.
Examples
// Remove the end face for the extrusion.
firstSketch = startSketchOn('XY')
|> startProfileAt([-12, 12], %)
|> line([24, 0], %)
|> line([0, -24], %)
|> line([-24, 0], %)
|> close(%)
|> extrude(6, %)
// Remove the end face for the extrusion.
shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
// Remove the start face for the extrusion.
firstSketch = startSketchOn('-XZ')
|> startProfileAt([-12, 12], %)
|> line([24, 0], %)
|> line([0, -24], %)
|> line([-24, 0], %)
|> close(%)
|> extrude(6, %)
// Remove the start face for the extrusion.
shell({ faces: ['start'], thickness: 0.25 }, firstSketch)
// Remove a tagged face and the end face for the extrusion.
firstSketch = startSketchOn('XY')
|> startProfileAt([-12, 12], %)
|> line([24, 0], %)
|> line([0, -24], %)
|> line([-24, 0], %, $myTag)
|> close(%)
|> extrude(6, %)
// Remove a tagged face for the extrusion.
shell({ faces: [myTag], thickness: 0.25 }, firstSketch)
// Remove multiple faces at once.
firstSketch = startSketchOn('XY')
|> startProfileAt([-12, 12], %)
|> line([24, 0], %)
|> line([0, -24], %)
|> line([-24, 0], %, $myTag)
|> close(%)
|> extrude(6, %)
// Remove a tagged face and the end face for the extrusion.
shell({
faces: [myTag, 'end'],
thickness: 0.25
}, firstSketch)
// Shell a sketch on face.
size = 100
case = startSketchOn('-XZ')
|> startProfileAt([-size, -size], %)
|> line([2 * size, 0], %)
|> line([0, 2 * size], %)
|> tangentialArcTo([-size, size], %)
|> close(%)
|> extrude(65, %)
thing1 = startSketchOn(case, 'end')
|> circle({
center: [-size / 2, -size / 2],
radius: 25
}, %)
|> extrude(50, %)
thing2 = startSketchOn(case, 'end')
|> circle({
center: [size / 2, -size / 2],
radius: 25
}, %)
|> extrude(50, %)
// We put "case" in the shell function to shell the entire object.
shell({ faces: ['start'], thickness: 5 }, case)
// Shell a sketch on face object on the end face.
size = 100
case = startSketchOn('XY')
|> startProfileAt([-size, -size], %)
|> line([2 * size, 0], %)
|> line([0, 2 * size], %)
|> tangentialArcTo([-size, size], %)
|> close(%)
|> extrude(65, %)
thing1 = startSketchOn(case, 'end')
|> circle({
center: [-size / 2, -size / 2],
radius: 25
}, %)
|> extrude(50, %)
thing2 = startSketchOn(case, 'end')
|> circle({
center: [size / 2, -size / 2],
radius: 25
}, %)
|> extrude(50, %)
// We put "thing1" in the shell function to shell the end face of the object.
shell({ faces: ['end'], thickness: 5 }, thing1)
// Shell sketched on face objects on the end face, include all sketches to shell
// the entire object.
size = 100
case = startSketchOn('XY')
|> startProfileAt([-size, -size], %)
|> line([2 * size, 0], %)
|> line([0, 2 * size], %)
|> tangentialArcTo([-size, size], %)
|> close(%)
|> extrude(65, %)
thing1 = startSketchOn(case, 'end')
|> circle({
center: [-size / 2, -size / 2],
radius: 25
}, %)
|> extrude(50, %)
thing2 = startSketchOn(case, 'end')
|> circle({
center: [size / 2, -size / 2],
radius: 25
}, %)
|> extrude(50, %)
// We put "thing1" and "thing2" in the shell function to shell the end face of the object.
shell({ faces: ['end'], thickness: 5 }, [thing1, thing2])