# 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