This instructable describes how to create triangulated lampshades (or, I suppose, any triangulated form) from a simple mesh. This is a little trickier than it might first appear, because while each triangle joins to its neighbors with no thickness in a digital mesh, any built version will need to account for the thickness of the material being used. The connection geometry to ensure the proper angle is maintained between adjacent triangles is also generated in the script and all parts are laid down and outlined so that they're ready to be cut. If you're interested in trying to make your own lamp you'll need the tools and materials listed below:
The code and model files on github

Rhino 5 for Windows (sorry, the code's in VB, not Python, so this is a Windows-only project)

Access to a laser cutter or CNC, or an incredible amount of patience, a large format printer and an exacto

A material you can cut on that laser cutter or CNC (I used 1/8" plywood)

Optionally, a thinner translucent material for the interior of the shade (I used translucent yupo)

A glue appropriate for your materials (I used UHU extra)

Some knowledge of 3D modeling is helpful, but shouldn't be incredibly necessary. The code is also fairly simple and should be modifiable by anyone with basic programming experience. This project can vary in time and cost based on the materials you choose, the complexity of your mesh and the digital fabrication technology you use. I spent about $40 on materials and, of course, quite a bit of time writing all the code :)

Step 1: Preparing a base file

Open the base file you downloaded from github (lamp base.3dm).

You'll see three layers: mesh, edges and armature.

The mesh layer contains the base triangulated mesh. If you'd like to make your own lamp, this is the layer you'll put your mesh on. Your mesh can be drawn in nearly any modeling program and then imported using an stl, dxf or any of the other formats Rhino can import. The only constraints are that the mesh must be triangulated (this can be ensured using the TriangulateMesh command) and that the normals must all point in the outwards direction (do this by using the UnifyMeshNormals command combined with the Dir command to check the normal direction). Also, keep in mind that the largest triangle in your mesh must be smaller than the size of your material or the bed size of your digital fab machine, whichever is smaller. Once you've created your mesh to your satisfaction make sure that it is the only object on the mesh layer.

The edges layer contains line describing each edge of the mesh that needs to be joined with an adjacent edge. In practice, this means every non-open edge in the mesh. These lines can be easily created using the DupMeshEdge command and clicking on the edges you want to create. Once you've created all the edges you want, make sure that those lines, and only those lines, are on the edges layer.

Assuming you are, in fact, making a lamp, you'll need some geometry to connect the lamp form to the lamp shade threaded connector. You can use the one I've modeled as a guide, but you'll need to measure and figure out what will work for you. When you're done, place the polysurface you've created on the armature layer. After the script has been run, you'll also need to add an outline of this piece to the cut file by hand.
<p>Hi, I really like your project. I want to create my own form with a different cad program (Ironcad). The question is, how did you calculate the size/shape of your triangles so that it forms a whole?</p>
Hello!<br><br>Unfortunately this project depends on rhinoscript to calculate all of the triangles and their connections so Rhino has to be the cad program you eventually use. However, your base shape is just a triangle mesh so that could be made in nearly any cad program that can export to a format Rhino can read, such as stl, dwg, dxf or obj.

About This Instructable


125 favorites


More by jftesser: Triangulated Lamps Illuminated texts Mardi Gras Mask
Add instructable to: