Polyhedron maps

From Technologia Incognita
Revision as of 01:09, 19 December 2014 by Brainsmoke (talk | contribs) (Polyhedron Maps)
Jump to: navigation, search
Projects
D60dron earthmap.jpg
Participants Brainsmoke
Skills maths, lasercutting
Status Active
Niche Mechanics
Purpose World domination

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.

Eth0:2012 Summer poster

Source

github.com/brainsmoke/polymap

Example

Generated with:

 ./polymap.py --type sC --radius 120 --thickness 3 snubcubemap.svg

Snubcubemap.png

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.)