3d Printed Tiki Shades for Deck Lights

I like tiki / exotica music, visiting good tiki bars, and interesting tiki drinks. Recently, we were on vacation in Montreal and visited the Snowbird Tiki Bar. When we were there and looking at the decor, my wife suggested that I make some tiki covers for some of the lights on our deck. Challenge accepted!

Design

In order to build the tiki shades, I needed a 3d design. The basic concept began with a hollow cylinder with the tiki head design cut as holes in one side. I used TinkerCad to do the bulk of the design work. The shades had to fit around and over the deck lights, which are permanently attached to their cord, and the bulbs can’t be removed. So I needed the shades to be in two pieces that would fit around each light. I also needed a top with an opening large enough to let the cord through, but small enough so that the shade stayed on and didn’t simply fall down off the light. Finally, I needed a way to fasten the two halves of the cylinder together around each light.

A silhouette of a tiki face. It has a large nose, a large open mouth, and some other features.

The .png File for the Face

I first found a photograph online of a tiki light that I liked. From that I edited it a bit and the result was a mask as a .png file. The idea is to use the design to generate the set of holes to cut into the hollow cylinder, rather than try to hand-draw and cut out the holes. You can import a design such as this into TinkerCad and turn it into a 3D object provided it is in SVG format, not a jpeg or png. So I  used the free online SVGCreator to turn the png file into an svg. Then I simply imported the svg file into TinkerCad.

It took a couple of trial and error attempts to get the top the right size.

 

Closeup of a portion of the two cylinders. The left shows a small block attached to the inner wall with a square finger, while the right shows a small block with a cut out for the finger to fit into.

A Closeup of the Fastener Design, as Seen in TinkerCad

I probably could have reduced the failed attempts by measuring more carefully. To fasten the halves together, I first though of having a projecting shape on a small block on each side of one of the halves, and a matching cutout in a block on the inside of the other half. But I decided instead to use two fingers on one half, and matching slots on the other half. In hindsight, it might have been better to rotate the fasteners 90 degrees, so that the two halves didn’t get held in place against gravity just by friction, but it did work. If you make these yourself, the finger needs just a little bit of filing to fit snugly into the cutout and be held in place by friction.

A closeup of just the two fastener objects. The left has a cube with a square finger coming out one side, while the right is a cube with a cutout that the finger fits into.

A close-up photo of just the fastener objects. In the actual shades, they are integrated into the two shade halves and printed as one.

Printing and Building

The shades are printed upside down, so that the partially closed top forms the base for printing. Because of the large overhangs for the cutouts, there are a fair num

A photo of one of the shades in the 3d printer while it prints. A large number of tree supports are visible.

One of the Shades Being Printed.

ber of supports needed. I used tree supports, as shown in the figure. Once the shades were printed, I cut out diffusers from sheets of frosted plastic. These were bent and placed inside the shades and held in place with three small drops of hot glue on the top and upper sides.

The front halves of four printed tiki heads, each a different color, with cut plastic diffuser sheets in front of them.

Printed Tiki Shades and the Cut Plastic Diffusers that will go Inside.

Close-up of the two halves of a blue shade with the diffuser sheet that will be mounted inside. The fasteners are clearly visible inside the two halves.

Close-up of One of the Tiki Shades and the Diffuser Sheet.

The inside front half of a blue tiki shade showing the shade curved around and inserted.

The Inside Front Half of a Shade, with the Diffuser Ready to be Glued in Place

Front exterior view of a blue Tiki shade, with the diffuser glued in place.

Diffuser Glued in Place

 

Results

A view of the inside of the screened in deck, showing the eight tiki lights.

Set of Eight Finished and Installed

I’m quite happy with the results, and think that they look very nice, both in the daylight, when the different shade colors show up, and at night when they are lit. You can also print scaled down versions and put them over an LED candle. I did that with one of my test runs.

Blue tiki shade hung over one of the deck lights, with the light lit inside.

Finished and Installed Tiki Shade

Print Files

The print files for these shades are available on Thingiverse: https://www.thingiverse.com/thing:7154065

Quick Post #6: Bears Go Punk!

I’ve been pleasantly surprised by the uses around the house that I’ve found for the 3d printer my wife got for me last Christmas. This is about one such use. A couple of years back we saw some silhouettes of black bears in a yard while we were on vacation in the Great Smoky Mountains. I found patterns for some online and with plywood, jigsaw, and paint, we made a mama bear and two cubs. We love them, and they drew a lot of attention and positive comments from our neighbors. Unfortunately, the birds also like them, perching on them and doing their business. My wife had the good idea to look into spikes, but then the question was how to attach them. Our son suggested 3d printing clips. I modified that a bit into brackets, and we were in business.
Rubber spike strip

Plastic spike strip, which has three segments and flexes between them.

A still frame of the plastic clips being printed inside the 3d printer

Printing the clips on my printer

Plastic bracket with a slot for plywood to fit between and a base.

The bracket design, a modification of a plywood bracket that I found online.

This is the bracket. I found a plywood stand design online. The base was too large, but I liked the fillet where the supports meet the base and the slot was already pre-sized for 1/2″ plywood.
I couldn’t just scale the design, since it wasn’t parametric and shrinking it would also shrink the slot opening. Instead, I just used TinkerCad to cut off the excess on all four sides.
The 3d printed brackets were a great solution for the question of how to mount the strips. The strips aren’t invisible, but with their black color they don’t jump out too much, either, and I think the silhouettes still look pretty good from a distance. Time will tell what the birds think.😊
What uses around the house have you found for your 3d printer? Please share in the comments.
A plastic spike strip with two brackets glued onto the bottom

One of the plastic spike strips with two of the printed brackets glued onto the bottom, ready for installation.

Black plywood silhouette of a bear, with three spike strips mounted on top.

Mama bear sporting her new punk haircut

Plywood silhouettes of a mama bear and two cubs. Spike strips are mounted along the top of each bear.

The spike strips aren’t invisible, but they don’t stand out either. I think they still look pretty good from a distance.

Quick Post #5: A Utility for Converting .obj Files Created by Microsoft 3D Builder

There are several different file formats for specifying 3d objects (as Tannenbaum wrote, “The good thing about standards is that there are so many to choose from.” One such standard is the obj or .obj open format. By itself, the .obj file definition does not support coding surface shading properties in the .obj file, but these can be provided in a separate Material Template Library (.mtl) file.

While not part of the official file format, many program support vertex coloring by adding the RGB values for color to the end of the relevant vertex line. The de facto “standard” for this non-standard usage is to code the RGB values as decimals between 0 and 1. However for some reason, Microsoft’s 3D Builder codes them as integers between 0 and 255. As a result, other programs, e.g., Bambu Studio, while capable of using vertex coloring using values between 0.0 and 1.0, won’t read the color information when you import such a file. This simple script converts the RGB values from a range of 0-255 to a range of 0.0 – 1.0 and writes out the modified file. Here’s the code, which is also published as a Gist:

import sys

def convert_obj_vertex_colors(input_file, output_file):
    with open(input_file, 'r') as infile, open(output_file, 'w') as 
    outfile:
        for line in infile:
            parts = line.strip().split()
            if parts and parts[0] == 'v' and len(parts) == 7:
                # Convert RGB from [0, 255] to [0, 1]
                r, g, b = map(float, parts[4:7])
                r, g, b = r / 255.0, g / 255.0, b / 255.0
                outfile.write(f"{parts[0]} {parts[1]} {parts[2]} {
                parts[3]} {r:.6f} {g:.6f} {b:.6f}\n")
            else:
                outfile.write(line)

if __name__ == "__main__":
    if len(sys.argv) != 3:
        print("Usage: python convert_obj_rgb.py input.obj output.obj")
    else:
        convert_obj_vertex_colors(sys.argv[1], sys.argv[2])