Edge truncation of polyhedra​
​By Sándor Kabai
1. Edge truncation of dodecahedron corresponds to truncation of rhombic triacontahedron at the fivefold vertices. In the middle position a the 80 faces depict the geometry of C80 Fullerene molecule.
In[]:=
Manipulate[Module[{},​​sp={RGBColor[0,1,1],Sphere[{0,0,0},sps]};​​ϕ=1.618;α=ArcTan[1.618];​​β=ArcTan[0.618];​​y=Cos[β];​​x=Sin[β];​​vA={x,0,0};​​vB={0,y,0};​​vC={-x,0,0};​​vD={0,-y,0};​​vE={dia,(x-dia)ϕ,0};​​vF={-dia,(x-dia)ϕ,0};​​vG={-dia,-(x-dia)ϕ,0};​​vH={dia,-(x-dia)ϕ,0};​​frame={vA,vE,vF,vC,vG,vH,vA};​​f1=Polygon[frame];​​f1b={Red,Polygon[frame]/.PolygonTube};​​sp6=Map[Translate[sp,#]&,frame];​​r1=Translate[{f1,f1b,sp6},{0,0,yϕ}];​​r2=Translate[{f1,f1b,sp6},{0,0,-yϕ}];​​r3=Rotate[Rotate[{r1,r2},Pi/2+0.001,{1,0,0}],Pi/2+0.001,{0,0,1}];​​r4=Rotate[Rotate[{r1,r2},Pi/2+0.001,{0,0,1}],Pi/2+0.001,{1,0,0}];​​r5=Table[Rotate[Rotate[{r1,r2,r3,r4},-β,{1,0,0}],i2Pi/5,{0,0,1}],{i,5}];​​r=y/Sin[β];rr=Sin[β]2y;mm=r-rr;m=Sin[β](x-dia)ϕ;sug=dia/Sin[Pi/5];​​pent=Polygon[Table[{sugSin[i2Pi/5+Pi/5],sugCos[i2Pi/5+Pi/5],m+mm+rr/2},{i,6}]];​​pent1=Table[Rotate[Rotate[Rotate[pent,Pi,{0,0,1}],-2β,{10,0,0}],i2Pi/5,{0,0,1}],{i,6}];​​pent2=Rotate[{pent,pent1},Pi,{1,0,0}];​​bar={pent,pent1,pent2}/.PolygonTube;​​Graphics3D[{{Red,bar},r5,Green,pent,pent1,pent2},BoxedFalse,SphericalRegionTrue]],​​{{dia,0.262,"chamfer"},0,0.524,0.01,Appearance"Labeled"},​​{{sps,0.03,"sphere size"},0.01,0.5,0.01,Appearance"Labeled"},​​TrackedSymbols{dia,sps},SaveDefinitions->True]
Out[]=
​
chamfer
0.262
sphere size
0.18
2. Truncating the edge of a cube corresponds to the truncation of a rhombic dodecahedron at its four-fold vertices. When the truncation is continued beyond the cube, an Escher polyhedron is also related. The relationship with a truncated octahedron and an enveloping cube is also shown.
In[]:=
Manipulate[Module[{},​​t=Sqrt[2];​​cvA={-1/2,-1/2,0};cvB={1/2,-1/2,0};cvC={1/2,1/2,0};cvD={-1/2,1/2,0};cs1={cvA,cvB,cvC,cvD,cvA};​​​​cs2=perf{cvA,cvB,cvC,cvD,cvA};​​k0=Polygon[{cs1}{cs2}];​​k4=Table[Rotate[Rotate[Translate[k0,{-1,0,0}],Pi/2,{0,1,0},{-1/2,0,0}],i2Pi/4,{0,0,1}],{i,4}];​​kt=Translate[k0,{0,0,1}];​​cuba=Translate[{k0,k4,kt},{0,0,-1/2}];​​cubframe={RGBColor[0.4,1,1],Scale[cuba,4]};​​y=t(1-x);​​vA={1,0,0};​​vB={0,t,0};​​vC={-1,0,0};​​vD={0,-t,0};​​vE={x,y,0};​​vF={-x,y,0};​​vG={-x,-y,0};​​vH={x,-y,0};​​r1=Polygon[{vA,vE,vF,vC,vG,vH}];​​r2=Rotate[Translate[r1,{0,0,t}],Pi/4,{1,0,0}];​​h=2-xTan[Pi/4];​​vI={x,-x,h};​​vJ={x,x,h};​​vK={-x,x,h};​​vL={-x,-x,h};​​sq={RGBColor[1,0.5,0.6],Polygon[{vI,vJ,vK,vL}]};​​band1=Table[Rotate[{r2},i2Pi/4,{1,0,0}],{i,4}];​​band2=Rotate[band1,Pi/2+0.001,{0,1,0}];​​band3=Rotate[band1,Pi/2+0.001,{0,0,1}];​​sq1=Table[Rotate[{sq},i2Pi/4+0.001,{1,0,0}],{i,4}];​​sq2=Table[Rotate[{sq},i2Pi/2+Pi/2+0.001,{0,1,0}],{i,2}];​​troc=GraphicsComplex[PolyhedronData["TruncatedOctahedron","VertexCoordinates"],Polygon[PolyhedronData["TruncatedOctahedron","FaceIndices"]]];​​troc0={Yellow,Scale[troc,1.001]};​​Graphics3D[{band1,band2,band3,sq1,sq2,cubframe,If[stroc0,troc0,{}]},BoxedFalse,SphericalRegionTrue,ViewPoint{2,-7,1.6}]],​​Grid[{​​{Control@{{x,0.8,"truncate edges"},2,0,0.01,Appearance"Labeled",ImageSizeSmall},​​Control@{{perf,0.9,"perforate cube"},0.1,0.9,0.01,Appearance"Labeled",ImageSizeSmall}},​​{Control@{{stroc0,False,"show truncated octahedron"},{True,False}}}},AlignmentLeft],​​TrackedSymbols{x,stroc0,perf},SaveDefinitions->True]