Spiral Staircase Dice Tower

By Christopher Palazzo | Tuesday, February 13, 2024

Overview and Goals

A dice tower. Because of the beauty in its simplicity, I thought I could view this project as time to work on a more advanced assembly as this project was introduced as an exercise with the laser cutter. My idea was to replicate a spiral staircase for the dice tower, using a hexagon profile for the base with a total height below 12.” I thought I’d also use clear and dyed acrylic so the user can watch the dice roll down.

Initial Sketches

To the right is my initial sketch, but I’ll summarize it here as well. The assembly will have an internal hexagon column and a larger, external hexagon column. Between these two columns, I’ll have 6 steps each on a different side and angle downward making sure the gap between is smaller than the dice, so the max gap size must be less than 0.64”. The dice will be placed in a slot on the top, roll down these steps, and finally land in a chamber at the bottom to be presented to the user. 

fgh

Designing Assembly Tabs

Since the project would be held together with purely tabs (glue or tape was not allowed), it was critical that I find the ideal tab dimensions so that the tower would not fall apart or crack the acrylic. To do this, I designed a test piece with varying tab overlaps from 0.001” to 0.005”. Before I tested this though I’d had to tackle the laser cutter’s kerf.

jh

Custom Kerf Program

To deal with the kerf, I could have designed the tabs to all be adjusted in the CAD model but this would quickly become a nightmare in the assembly as parts would clearly not mesh correctly. So instead, I decided to try and write a program that would analyze the exported DXF file and output a properly adjusted DXF file so that the cut part would have the exact dimensions as the CAD model.

To do this, I first found a library that would allow me to interface python with the DXF file format. After some experimentation, I found that the library interprets the DXF as a series of lines and arcs, each with starting and stopping points (or angles.) To get the result I wanted I would need to 1) Find and separate the CLOSED shapes in the DXF file, 2) Analyze the shape to see which lines would need adjusting due to the kerf, 3) Combine all of these closed shapes onto a final DXF file. 

After a few days, I was able to write the script to accomplish this. The full script is 528 lines of code. Closed shapes were determined by iterating over each line or arc element, then all arcs were approximated with a large amount small line segments so I can fit a Polyline (a group of lines) over each closed shape, logic was used to determine which sides of each line were external or internal and this was used to determine how much the line should be adjusted. Finally, the adjusted polyline shapes were combined and returned as one DXF file.

  • uy
  • lm

Careful CAD

As this is a complex assembly, I wanted to think carefully about the order of steps to assemble the complete project. One problem is that since the entire tower is completely closed, i.e. no way to reach internally after assembled so the tabs on the inside will be impossible to align. To solve this, I decided to split the top piece into two hexagons that fit into each other as they would be cut from each other. This close fit of the hexagons would allow me to align the internal tabs separately.

sdf
Here’s the Full CAD Model

This version has no kerf designed in, so we can see how the actual parts will fit.

gfh

Cutting and Assembly

Now that I have a good understanding of the project, I moved to finish the CAD and cut the parts. Total cutting time was about an hour, and assembly time was two and a half. As most of the tabs fit well, I did crack two parts during assembly, I believe this not because of the tab fit itself, rather that the tall columns applied a large torque at the bottom tab, causing a crack. After being more careful, the tower was assembled!

intro2

Using the Tower!