CompFab Flower Lampshade

by jacquelinemai in Workshop > 3D Printing

139 Views, 1 Favorites, 0 Comments

CompFab Flower Lampshade

lamp.png

For this project, I tried to design a lampshade that would fit an existing lamp I own, combining parametric surface generation in Grasshopper and some hand-drawn components.

Supplies

Rhino 6 with Grasshopper (for Windows 10)
Ultimaker Cura

Measuring the Lamp

lamp_irl.jpg

First, I had to choose the lamp that I would be fitting with the model. I chose this LED lamp with a narrow neck, since it doesn't already have a lampshade and it seemed like it would be easy to create a fitting that could go around the neck. I also thought it'd be safer to use an LED light, since the lampshade will eventually be printed with PLA plastic that won't hold up to higher temperatures.

I measured around the top of the neck, just below the base of the light, and got a circumference of about 1.5 inches (3.81 cm). This gave me a radius of about 0.238 inches, which I decided to round down to 0.23in, since I was planning to leave some room for give in the lamp fitting.

Creating the Fitting

semi-open ring.png
semi-open ring side.png

I wanted to be able to snap the lampshade on over the neck, since it would be difficult to slide it on any other way. I started making the fitting in Rhino by creating a circle centered at (0,0,0) with a radius of 0.23 inches. Then, I created an arc that went only partially around the circle, leaving a segment open. My hope is that this opening will be large enough to be able to snap it onto the neck, but small enough that the shade doesn't just slide off.

Once I had an arc I was satisfied with, I created an outer offset to give it some thickness (shown in the first screenshot above). Then I extruded it to create a partial cylinder and converted the surface to a mesh (in the second screenshot).

Generating the Shade

lamp_grasshopper.png
lamp_form.png

I generated the shade itself with Grasshopper. As shown in the first screenshot above, I based my approach on the spherical sample from the class notes.

I wanted the lampshade to resemble a bell-shaped flower, so I elongated it along the z-axis and created sinusoidal undulations around its circumference. Since the light is basically just a flat panel pointed directly
downwards, I also wanted to leave an opening on the underside of the lampshade for the light to escape. This meant that the "sphere" is not closed in the x-y plane. In fact, that gap is meant to match up with the opening in the fitting component, so the entire piece can be just slid over the neck and light panel of the lamp at the same time. I also tried to create a spiral texture around the surface, but it didn't really seem to have any effect.

The script I used to generate the lampshade mesh is in the "lamp_script.py" file, and the mesh itself before baking is shown in the second screenshot above.

Downloads

Baking and Aligning the Fitting

lamp_with_fitting.png

When I was satisfied with the mesh generated by Grasshopper, I baked it and aligned it with the fitting in Rhino. I found that I needed to extrude the fitting a bit further, since the top part of the lamp shade turned out thicker than I expected.

I tried to MeshBooleanUnion the pieces together, but the operation kept failing. Ultimately, I decided to keep them as separate components, since I'll likely have to print the fitting on its own a couple of times to make sure it's got the correct dimensions and the gap fits the lamp neck properly. I did verify that the parts intersect where they should, so they can be sliced and printed as a single piece if I export them together into Cura.

Adding the Garnish

lamp_with_garnish.png
lamp_garnish_perspective.png

Since I wanted this lampshade to look like a flower, I decided to add a bit of extra embellishment. I drew out a curling vine and leaf with the curve tool, extruded them, then converted them to meshes. I also capped the leaf mesh, so it would be a flat, closed form. I then intersected them with the lampshade, right near the connection point with the fitting.

Checking the Scaling and Slicing in Cura

lamp_cura.png
lamp_preview.png
lamp_cura_flipped.png

Finally, I exported all the lamp components together as an STL and opened it in Cura (the first screenshot). There didn't seem to be any slicing issues so, while I expect there will be some printing artifacts, all the pieces seem like they fit together properly and will be printed as a single piece. One issue that I ran into was the scaling- although I had verified I used the correct units and dimensions in Rhino, the model was incredibly small when I opened it in Cura (in millimeter scale, rather than inches), so I had to scale it up by hand.

I think the shade itself is thin enough that it wouldn't require supports during printing, but the leaf and vine would require a lot of support during printing if the model was oriented downward. This orientation would also probably require a raft, since the bottom of the "petals" are not even with the x-y plane. As the second screenshot shows, this setup would require about 2 hours to print (assuming it's scaled properly). Flipping the model over greatly reduces the amount of supports and the size of the raft that might be necessary, as the third screenshot shows, although it might even be printable without supports with that orientation.

I still don't have my printer, but one final variable I would want to try adjusting is the print fill. Since I want this piece to be relatively light, I want to try seeing how little fill I can get away with using.