Grasshopper - Lamp Shade
by connelltrainor in Craft > Digital Graphics
664 Views, 0 Favorites, 0 Comments
Grasshopper - Lamp Shade
Goal:
Create a lamp shade for an existing lamp or light fixture in your home.
- Using any of the past approaches (2d pattern to 3d surface, surface from points, revolution of a profile curve), design a lamp shade in Grasshopper.
- Find an existing light fixture in your home. Measure the diameter of the light fixture base (where the shade attaches, and create a part that will correctly nest with the fixture in Rhino.
- Perform a boolean operation between the shade and the test part.
- Ensure the design is 3D printable by checking its edges and slicing it in the Cura 3D software.
- 3D print your design. Note- this may take up to one day depending on the size of your design. You may choose to revise your design based on the time it will take to print. You should also test-print the part where the shade connects with the lamp initially to ensure fit prior to printing the entire structure.
Inspiration
Here you can see the 'existing light fixture in my home'. It is a glowing diffuser. The plastic dome you see keeps the water in and releases the diffusing vapor out the top. It also glows at the same time. I hope to create a lampshade that will fit over this dome. My inspiration is to create something resembling the icecream-like spiral seen above using some of the pst approaches we have seen for creating a series of shapes and then rotating/revolving them.
Series of Stacked Polygons
I started by creating a series of identical polygons, translated vertically along the x-axis. I used controls to determine the size and number of vertices of the polygons as well as the distance between and total number of polygons
Spiralling Polygons Using Rotation
I now edited the grasshopper flow to rotate (around the XY plane) each polygon in series by a controlled angle.
Creating Curved Spiral Cone
In order to get the ice-cream-like spiral, and incorporated this shape into the series of polygons. I used a scaling factor block in Grasshopper. Each polygon is scaled separately depending on the curve function seen above. The domain controls the start and finishing scale for the 2 endpoints.
Creating External Surface
Here I added a 'loft' in order to transform my series of polygons into an external surface resembling the kind of spiral I desire for my lamp.
Surface -> Solid
I used an offset in order to transform this lofted external surface into a solid (2mm thick).
Circular Base
I added a circular fitting below the spiral. This will be tuned to fit the lampshade tight around the circular defuser in order to achieve a stable fit.
Optimising Grasshopper Settings to Fit Lamp
At this stage, I had to tuning the settings within Grasshopper so that the lampshade would fit the diffuser cup/lamp. By measuring the cup. This involved tuning the inner radius of the polygon and circular base to fit relatively snug over the cup. The curve was the hardest thing to 'tune' in order to achieve the right shape since it is very difficult to measure the shape of the curve on the current cup. By measuring the diameter of the cup at different heights I gained a relative idea of what the curve should look like. I then used the 'Distance' tool in Rhino in order to determine if the lamp shade diameter matched that of the cup at different heights. I was sure to add a slight offset so that the shade fits over the cup.
Baking & BooleanUnion
I then baked the base and spiral lamp shade separately in Grasshopper. In order to combine the six 'swirls' that make up the lampshade and the circular base, I used a manual boolean union in Rhino. I had some difficulties achieving the union as it failed initially. As I realized in a previous week, the boolean can fail when dealing with two surfaces that are flush but not overlapping. I quickly spotted this has occurred during the 'offset surface' stage used the create the solid. I spotted the offset of 1.8mm connected to the adjacent surface 'flush'. By increasing this to 2mm all surfaces overlapped and the union was easily achieved.
1/3 Scale Model Print
I printed the lamp shade at a 1:3 scale model in order to evaluate its print before doing the full scale. The print took 2.5 hours and was very successfull.
Vase Mode
I was interested in the 'vase mode' for printing as suggested in class. I decided to try this for the fullscale model before I did the full print which would take >15 hours. The preview of the slice suggested it the printer may have some difficulties at the top of the lampshade where the overhang is greatest. After printing these difficulties were evident at the steep angle at the top. However, the print gave me a good idea of how the shade would fit. I adjusted the internal radius of the base ring by 1mm in order to improve the fit of this circular base around the lamp. I believe that supports will still not be needed as once the lampshade wall thickness is increased during the print, the printer should find a better connection point and avoid the separations seen in the photos above.
Whilst the full-scale print completes (~15 hours), here can be seen the 'vase mode' printed lampshade over the lamp whilst on.
My initial attempt to print the full model failed. I tried to pause the print before night and resume in the morning, however, the printer could not achieve adhesion in the morning. I am going to attempt the full print in one go now.
Further Investigation
I attempted to create a more complex structure that could let light through holes. I used the 'pipe' block on the deconstructed outer loft. Once importing to Cura I realized that this structure would be very difficult to print. In class, I asked and was advised to possibly print in 6 different parts for each face if I really wanted to build this lampshade.