### Project 2: Tower

I wasn't sure what would be really cool to build with press fit, but pure height seemed like an interesting, fairly low-hanging fruit, so I went for it.

I made a press-fit tower over 6' high including the 'antenna mast'. It's in the form of a very steeply sloped three-sided pyramid, and is made in 28 stages, each about 2.5 inches high (plus the antenna). Each stage has 3 trapezoids which contribute to the 3 outer faces, 3 sets of 2 'horizontal' fasteners to join the trapezoids to each other, and 3 sets of 2 'vertical' fasteners to join the trapezoids to the next stage, or 15 pieces total. The antennas are made of about 30 leftover vertical fasteners. So there are about 450 pieces in total.

All these pieces were generated and partially laid out by program I wrote to generate them. This program manipulated strings of operations:

- Move {distance}
- Rotate {angle in radians}
- SetPoint {x,y}
- SetTheta {angle in radians}
- PlacePoint
- PlacePolyline

These strings could be manipulated by functions like "flip", joined with list concatenation, and parameterized by functions which accept parameters and return these lists. For example, the champhered slot I developed was written as a parameterized list of operations like this, and could be pre-rotated and translated into place along a fastener or trapezoid. The trapezoids themselves had their precise dimensions, angles, and slot positions computed to (theoretically) flawlessly flow as effectively single faces.
I also put in a very primitive layout engine that could flip trapezoids in a checkerboard scheme to save some space, and that could duplicate vertical and horizontal fasteners in any dimensions to save time when cutting large numbers of them.

edit