* 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>
1.1 MiB
1.1 MiB
title, excerpt, layout
title | excerpt | layout |
---|---|---|
revolve | Rotate a sketch around some provided axis, creating a solid from its extent. | manual |
Rotate a sketch around some provided axis, creating a solid from its extent.
This, like extrude, is able to create a 3-dimensional solid from a 2-dimensional sketch. However, unlike extrude, this creates a solid by using the extent of the sketch as its revolved around an axis rather than using the extent of the sketch linearly translated through a third dimension.
Revolve occurs around a local sketch axis rather than a global axis.
revolve(data: RevolveData, sketch: Sketch) -> Solid
Arguments
Name | Type | Description | Required |
---|---|---|---|
data |
RevolveData |
Data for revolution surfaces. | Yes |
sketch |
Sketch |
A sketch is a collection of paths. | Yes |
Returns
Solid
- An solid is a collection of extrude surfaces.
Examples
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' }, %) // default angle is 360
// A donut shape.
sketch001 = startSketchOn('XY')
|> circle({ center: [15, 0], radius: 5 }, %)
|> revolve({ angle: 360, axis: 'y' }, %)
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 }, %)
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 }, %)
part002 = startSketchOn(part001, 'end')
|> startProfileAt([4.5, -5], %)
|> line([0, 5], %)
|> line([5, 0], %)
|> line([0, -5], %)
|> close(%)
|> extrude(5, %)
box = startSketchOn('XY')
|> startProfileAt([0, 0], %)
|> line([0, 20], %)
|> line([20, 0], %)
|> line([0, -20], %)
|> close(%)
|> extrude(20, %)
sketch001 = startSketchOn(box, "END")
|> circle({ center: [10, 10], radius: 4 }, %)
|> revolve({ angle: -90, axis: 'y' }, %)
box = startSketchOn('XY')
|> startProfileAt([0, 0], %)
|> line([0, 20], %)
|> line([20, 0], %)
|> line([0, -20], %, $revolveAxis)
|> close(%)
|> extrude(20, %)
sketch001 = startSketchOn(box, "END")
|> circle({ center: [10, 10], radius: 4 }, %)
|> revolve({
angle: 90,
axis: getOppositeEdge(revolveAxis)
}, %)
box = startSketchOn('XY')
|> startProfileAt([0, 0], %)
|> line([0, 20], %)
|> line([20, 0], %)
|> line([0, -20], %, $revolveAxis)
|> close(%)
|> extrude(20, %)
sketch001 = startSketchOn(box, "END")
|> circle({ center: [10, 10], radius: 4 }, %)
|> revolve({
angle: 90,
axis: getOppositeEdge(revolveAxis),
tolerance: 0.0001
}, %)
sketch001 = startSketchOn('XY')
|> startProfileAt([10, 0], %)
|> line([5, -5], %)
|> line([5, 5], %)
|> lineTo([profileStartX(%), profileStartY(%)], %)
|> close(%)
part001 = revolve({
axis: {
custom: { axis: [0.0, 1.0], origin: [0.0, 0.0] }
}
}, sketch001)