feat: nix dev shell with Android SDK 34, JDK 17, gradle
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
# Corner Decoration — Design Spec
|
||||
|
||||
**Date:** 2026-06-11
|
||||
|
||||
## Overview
|
||||
|
||||
A 1-meter-tall decorative piece for a 90° wall corner. Twisted flat ribbon blade emerging from a hollow triangular spine. Split into 4 × 25cm 3D-printed pieces. Cable routing channel through the spine.
|
||||
|
||||
## Geometry
|
||||
|
||||
### Overall
|
||||
- Total height: 1000mm (4 × 250mm pieces)
|
||||
- Corner angle: 90°
|
||||
- Ribbon protrusion: 80mm from corner to ribbon centre axis (along 45° diagonal); ribbon extends 50mm either side → near edge at 30mm, far edge at 130mm from corner
|
||||
- Twist rate: 360° per 250mm piece (ribbon returns to same orientation at each joint)
|
||||
|
||||
### Ribbon Blade
|
||||
- Width: 100mm
|
||||
- Thickness: 4mm
|
||||
- Cross-section: flat rectangle (blade / ribbon profile)
|
||||
- Path: helical, centered on the 45° diagonal axis of the corner
|
||||
- One full twist (360°) per piece — top and bottom faces of each piece are geometrically identical
|
||||
|
||||
### Triangular Spine
|
||||
- Profile: right isosceles triangle, legs ~20mm × 20mm
|
||||
- Sits flush in the 90° corner; hypotenuse face at 45° to both walls
|
||||
- Two flanges (~5mm thick, 20mm wide) extend along each wall surface for gluing
|
||||
- Cable channel: 12mm diameter circular hole through the centroid of the triangle, running full height
|
||||
- Ribbon attaches at the midpoint of the hypotenuse face
|
||||
|
||||
### Piece Joinery
|
||||
- Alignment peg: 4mm square peg on top face, matching socket on bottom face
|
||||
- Cable hole aligns automatically via peg
|
||||
- Pieces glued wall-to-wall and to each other with construction adhesive
|
||||
|
||||
## Print Settings
|
||||
|
||||
| Parameter | Value |
|
||||
|-----------|-------|
|
||||
| Orientation | Vertical (upright) |
|
||||
| Supports | Required (ribbon overhangs during twist) |
|
||||
| Layer height | 0.15mm |
|
||||
| Infill | 15% gyroid |
|
||||
| Material | PLA |
|
||||
| Pieces | 4 identical pieces |
|
||||
|
||||
Fallback if supports leave bad finish: split each piece into spine + ribbon, print separately, glue.
|
||||
|
||||
## Generation
|
||||
|
||||
Python script using **cadquery**. All dimensions as named constants at top of file. Outputs one STL per piece (all 4 identical).
|
||||
|
||||
### Key construction steps
|
||||
1. Build spine: extrude right-isosceles triangle profile × 250mm, subtract 12mm cylinder for cable hole, add flanges on two legs
|
||||
2. Build ribbon: sweep a 100mm × 4mm rectangle along a 250mm helix path (pitch = 250mm for 360°/piece), centered on the 45° diagonal axis
|
||||
3. Boolean union spine + ribbon
|
||||
4. Add alignment peg (top face) and socket (bottom face)
|
||||
5. Export STL
|
||||
|
||||
### Parameters (all tunable)
|
||||
```python
|
||||
PIECE_HEIGHT = 250 # mm
|
||||
NUM_PIECES = 4
|
||||
RIBBON_WIDTH = 100 # mm
|
||||
RIBBON_THICKNESS = 4 # mm
|
||||
PROTRUSION = 80 # mm — corner to ribbon centre axis along 45° diagonal
|
||||
TWIST_DEG = 360 # degrees per piece
|
||||
SPINE_LEG = 20 # mm — triangle leg length
|
||||
FLANGE_WIDTH = 20 # mm
|
||||
FLANGE_THICKNESS = 5 # mm
|
||||
CABLE_HOLE_DIA = 12 # mm
|
||||
PEG_SIZE = 4 # mm square
|
||||
PEG_HEIGHT = 5 # mm
|
||||
```
|
||||
|
||||
## Mounting
|
||||
|
||||
- Glue flanges to both walls with construction adhesive (e.g. Liquid Nails)
|
||||
- Stack pieces bottom-up, aligning pegs
|
||||
- Thread cable through spine channel before gluing upper pieces
|
||||
- No visible hardware
|
||||
Reference in New Issue
Block a user