Introduction: W3: Lampshade
This week's assignment is designing a lampshade using Rhino and Grasshopper and manufacturing it using Ender 3 Pro. In my house, we have a ceiling light that we don't use regularly. I wanted to refresh its look in the hopes of using it more often. My initial idea was to print 4 variations of my design for each of the light bulbs, but due to time constraints and insufficient material, I will need to reconsider this goal.
Supplies
Rhino, Grasshopper, 3D printer, and ~300gr of filament
Step 1: Fitting the Cap
I started designing the lampshade using its fitting component to the ceiling light. I measured the original cap with a digital caliper, recreated a section of it using curves in Rhino, and used the RevSrf component in Grasshopper to create the circular surface. I printed a test version (~40 minutes) and made sure that it fits perfectly.
Step 2: The Ring
The original lampshade has a brass ring around it. Since it's light enough and would go well together with my black PLA, I wanted to incorporate that into the design. I measured the ring with a caliper, modeled a curve and used the same method from the previous step. Then, I added a little holder for the ring, later to be connected with the cap, and the shade itself.
Step 3: Shade & Pattern Morph
Then I started thinking about the main shade structure. The design goal was creating an interesting shape, and use pattern morphing on its surface to create holes (I have a black PLA, without the holes it would look too solid for a lampshade). For this, I tried the parametric mesh creation method using a modified version of Jennifer Jacob's sample code. This approach could create beautiful forms, yet I couldn't find a way to use the resulting mesh in SrfMorph component in Grasshopper. Is there a reliable way to convert meshes into surfaces?
I also tried creating a surface using parametric methods in another Python script, but I realized I need to know more about NURBS (knots and control vertices) before using it successfully for 3d-printing. I set it aside for future investigations.
In order to create the initial surface to be morphed on, I used Swp2 component in Grasshopper with two rail curves and one circular section curve. When setting two curves, I accidentally made one longer than the other, but I ended up liking this better than the symmetric version. I ended up creating a "folded" look for one side of the shade by rotating the ring holder by 7 degrees (around the origin). For the "holes", I experimented with different basic curves, replicated and extruded the curve to achieve a desirable and printable morph on the surface.
Step 4: Print
For manufacturing the lampshade, I tried various configurations and rotations of the object in Cura software. The object is 17x17x10.5cm and it is expected to take a long time. My hope was to print at the lowest quality (0.28 mm layer height) for time considerations. I soon realized the trade-off between thicker layer height and support overhang angles; recommended settings were set to 35 degrees for 0.28mm, and 45 for 0.2mm. Higher quality settings require less support but use more filament. The average time estimates with various settings in Cura were around 2 days and 3 hours. Once I placed the slanted bottom part flat on the bed I found one setup with less than 2 days print time (i.e. 1 day 19 hours 40 minutes).
Currently, I am printing the object. A small patch of support structures broke off, and the loose filament is filling that gap right now like a spider web. I hope it doesn't cause a problem with the overhang part and/or surrounding print area in the following layers.
Update #1: I couldn't leave the print without the support structures overnight. So I canceled the print 6 hours in, added a Raft underneath for better adhesion of small support pillars, and restarted. The new estimate with Raft is 1 day 22 hours. It's been 10 hours so far and the print doesn't show any problems.
Update #2: Finally done! Separating the final shape from the bed was a challenge; I had to use a spatula underneath the raft and pull from the top at the same time. I am glad that raft and the model itself didn't cause separation problems. Support structures were hard to pull off; I had to break them by applying force with a screwdriver.
Update #3: I also printed another symmetric version of my lampshade. It is installed now.

Participated in the
Work From Home Speed Challenge
7 Comments
3 years ago
I like the design!
Question 3 years ago on Step 4
Mert, what do you mean by "I couldn't find a way to use the resulting mesh in SrfMorph component in Grasshopper."? In what way you couldn't use? Maybe I can help.
Reply 3 years ago
When I connect the output of the parametric surface script to the S input of SrfMorph, it throws this error: "1. Data conversion failed from Brep to Surface".
3 years ago
Love the design, really excited to see the final print. Wondering how your supports turn out, let me know!
3 years ago
I like how you organize your grasshopper patches, it looks clean and tidy! I see that you used swp2 instead of parametric surfaces for surface morph. I had similar problems and maybe we can ask professor @Jennifer (not sure if she can see it =) )
3 years ago
I think you've a really cool outcome and the process (incorporating the brass ring, using the folded look from the asymmetric sweep) is very creative. Great result -- can't wait to see the final print!
3 years ago
I like the design! I look forward to seeing how the print comes out :)