From 653ded5a38d8113b070aabb5206b86c4a470bd3a Mon Sep 17 00:00:00 2001 From: nicboone8 Date: Sun, 25 Aug 2024 20:51:21 -0700 Subject: [PATCH] Create avocado-chair.kcl --- avocado-chair.kcl | 93 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 avocado-chair.kcl diff --git a/avocado-chair.kcl b/avocado-chair.kcl new file mode 100644 index 00000000..49e33d31 --- /dev/null +++ b/avocado-chair.kcl @@ -0,0 +1,93 @@ +// Avocado Chair +// A modern office chair in the shape of an avocado + + +const radiusLarge = 25 +const seatBackAngle = 68 + +const plane001 = { + plane: { + origin: [0.0, 0.0, 0.0], + xAxis: [1.0, 0.0, 0.0], + yAxis: [0.0, 0.4, 1.0], + zAxis: [1.0, 0.0, 0.0] + } +} + +const chairBodyProfile = startSketchOn(plane001) + |> startProfileAt([-0.1, 5], %) + |> arc({ + angleStart: 270, + angleEnd: 90 + seatBackAngle, + radius: radiusLarge + }, %) + |> angledLine({ + angle: seatBackAngle, + length: radiusLarge + }, %) + |> arc({ + angleStart: 90 + seatBackAngle, + angleEnd: 90, + radius: radiusLarge / 2 + 2.5 + }, %) + |> yLine(-1, %) + |> arc({ + angleStart: 90, + angleEnd: 90 + seatBackAngle, + radius: radiusLarge / 2 + 1.5 + }, %) + |> angledLine({ + angle: seatBackAngle, + length: -radiusLarge + }, %) + |> arc({ + angleStart: 90 + seatBackAngle, + angleEnd: 270, + radius: radiusLarge - 10 + }, %) + |> xLine(8.3, %) + |> close(%) + |> revolve({ angle: -180, axis: 'Y' }, %) + +const plane002 = { + plane: { + origin: [0.0, 0.0, 17.3], + xAxis: [1.0, 0.0, 0.0], + yAxis: [0.0, 1.0, 0.0], + zAxis: [0.0, 0.0, 1.0] + } +} +const chairSeatSketch = startSketchOn(plane002) + |> startProfileAt([8.3, 7.4], %) + |> arc({ + angleStart: -50, + angleEnd: 230, + radius: 13 + }, %) + |> close(%) +const chairSeat = extrude(-2, chairSeatSketch) + +const plane003 = { + plane: { + origin: [0.0, 15.0, 0.0], + xAxis: [1.0, 0.0, 0.0], + yAxis: [0.0, 0.0, 1.0], + zAxis: [1.0, 0.0, 0.0] + } +} + +const standRevolve = startSketchOn(plane003) + |> startProfileAt([10, 0], %) + |> xLine(1, %) + |> yLine(0.5, %) + |> angledLine({ angle: 170, length: 4 }, %) + |> arc({ + angleStart: 270, + angleEnd: 220, + radius: 1 + }, %) + |> angledLine({ angle: 110, length: 3 }, %) + |> xLine(-2, %) + |> angledLineToY({ angle: 120, to: 0 }, %) + |> close(%) + |> revolve({ angle: 360, axis: 'Y' }, %)