Polyhedron maps
Projects | |
---|---|
![]() | |
Participants | Brainsmoke |
Skills | maths, lasercutting |
Status | Active |
Niche | Mechanics |
Purpose | World domination |
Contents
Polyhedron Maps
By combining globe projection code (used for the HAR2009 shirt as well as for the Eth0:2012 Summer poster,) with polyhedron math code written for polyhedrone, I was able to create a script which projects the world map on the surface of a polyhedron. The script generates laser-cuttable polyhedral faces with notches which lock at the correct angle.
Source
Example
Generated with:
./polymap.py --type sC --radius 120 --thickness 3 snubcubemap.svg
Usage
usage: polymap.py [-h] [--type {T,O,C,D,I,tT,tC,bC,tO,tD,bD,tI,aC,aD,eC,eD,sC,sD,kT,kO,mC,kC,kI,mD,kD,jC,jD,oC,oD,gC,gD}] [--map {earth}] [--radius RADIUS] [--thickness THICKNESS] [--overhang OVERHANG] [--overcut OVERCUT] [--padding PADDING] [--sheetwidth SHEETWIDTH] [--cutwidth CUTWIDTH] [--flip] [--dpi DPI] [--invert] [--nonumbers] [--noengraving] filename positional arguments: filename output svg optional arguments: -h, --help show this help message and exit --type {T,O,C,D,I,tT,tC,bC,tO,tD,bD,tI,aC,aD,eC,eD,sC,sD,kT,kO,mC,kC,kI,mD,kD,jC,jD,oC,oD,gC,gD} solid type (Conway name) --map {earth} map engraving --radius RADIUS polyhedron's radius (mm) (default: 100) --thickness THICKNESS material thickness (mm) (default: 3.) --overhang OVERHANG overhang of notches (mm) (default: .3) --overcut OVERCUT overcut in corners to account for cutting width (mm) (default: 0) --padding PADDING padding between faces (mm) (default: 3.) --sheetwidth SHEETWIDTH maximum sheet width (mm) (default: 550) --cutwidth CUTWIDTH cutting width of laser(mm) (default: .15) --flip engrave on the backside --dpi DPI dpi used for svg, (default: 90, as used by inkscape) --invert engrave seas instead of landmass --nonumbers do not plot number hints --noengraving do not plot world map Supported solids: T: Tetrahedron (???) O: Octahedron (???) C: Cube (???) D: Dodecahedron I: Icosahedron tT: Truncated tetrahedron (???) tC: Truncated cube (???) bC: Truncated cuboctahedron tO: Truncated octahedron (???) tD: Truncated dodecahedron bD: Truncated icosidodecahedron tI: Truncated icosahedron aC: Cuboctahedron (???) aD: Icosidodecahedron eC: Rhombicuboctahedron eD: Rhombicosidodecahedron sC: Snub cube sD: Snub dodecahedron kT: Triakis tetrahedron kO: Triakis octahedron mC: Disdyakis dodecahedron kC: Tetrakis hexahedron kI: Triakis icosahedron mD: Disdyakis triacontahedron kD: Pentakis dodecahedron jC: Rhombic dodecahedron jD: Rhombic triacontahedron oC: Deltoidal icositetrahedron oD: Deltoidal hexecontahedron gC: Pentagonal icositetrahedron gD: Pentagonal hexecontahedron Errata: - Solids marked ??? may have too steep dihedral angles (different notches are required) - this script invokes inkscape to do a boolean path intersection operation this seems to fail for the tC solid (Europe's missing.)