From DIY home decor to handmade gifts, here are the best arts and crafts to spark your creativity


This project involves creating a shade for a lamp in my bedroom. I love the light that it provides, but the shade itself is plain. I would like to create a lamp shade design that casts different patterns of light in my room.

Design a Lamp Cap to Test Measurements

I created a lamp cap by using a polyline object to design a shape and then revolving it to get the final cap geometry. The base of my lamp measures approximately 3.5 inches in width, so I made a 90mm cap (3.5 * 25.4 = 88.9mm). However, right before printing, I realized that my cap needed to be hollow to fit around the light bulb. I therefore developed the second iteration of the cap (same final diameter) with ample room on the inside to allow for the light bulb to screw into the lamp. However, I realized that I didn't actually close the curve that I revolved in rhino, so while it appeared to be hollow in Rhino and Cura, it was actually not hollow when printing. This led to my final cap design, shown here.

The lamp cap was printed, however due to slightly improper bed leveling, one side of the print was actually compressed (as shown in the photo). Also, the middle opening was too snug (I did not give extra space), so it did not actually fit my lamp. Therefore, I made some adjustments to the next cap before printing with the lamp shade.

Design Lamp Shade

To design my lampshade, I followed the tutorial document and then modified my python code to create a structure that I aesthetically liked.

I struggled a lot with the Grasshopper aspect in making this lamp shade. For a while, I was trying to perform a boolean operation on the set of curves that was output from my Python script, which kept failing. It took me a while to try to troubleshoot the boolean fails, which I did by trying to resize my shape and fixing the curves manually. However, all I needed to do was just to loft and extrude the form in order to make it possible to perform a boolean union in Rhino. It took me a lot longer to realize that I needed to extrude the form (it simply slipped my mind), so when I was exporting my STL file to Cura, parts of the geometry of my lamp shade wasn't showing up in the layer view (as shown in the picture). Once I extruded the geometry, the boolean union worked perfectly and the geometry was recognized in Cura.

3D Print!

The first time I tried to 3D print the lampshade, my bed was not perfectly leveled, which resulted in a poor adhesion to the bed and quality of the start of the print. I stopped the print within several minutes of starting and had to scrape the messed-up print off of the bed. I needed to wipe the surface but didn't have pure rubbing alcohol, so I used hand sanitizer to try to clean the plate. This was a mistake however, as it made the bed too smooth in the area that I applied alcohol. When I tried to print after this, the filament was not able to adhere to the bed, resulting in clogging of the nozzle and a destroyed print. I was able to overcome this issue by scoring the bed lightly with the palette knife provided, allowing me to start my print successfully.

I have attached images of the final print, which turned out better than expected. It fits my lamp perfectly based on my measurements; however, I cannot remove the support structures from the print without breaking it because of the geometry. I did not expect the print to even be viable due to my issues with Rhino and Grasshopper, so I'm very excited that I could get this final result.


Your email address will not be published. Required fields are marked *