Honeycomb structure
Sándor Kabai
Mount hexagonal tubes on both sides of a honeycomb sheet consisting of units formed by three rhombuses. A rhombic dodecahedron (RD) is shown at the middle to indicate how these rhombuses correspond to three faces of the RD. A similar geometry is often used for creating lightweight structures. Bees seem to build their hives this way, too.
Mount hexagonal tubes on both sides of a honeycomb sheet consisting of units formed by three rhombuses. A rhombic dodecahedron (RD) is shown at the middle to indicate how these rhombuses correspond to three faces of the RD. A similar geometry is often used for creating lightweight structures. Bees seem to build their hives this way, too.
In[]:=
Manipulate[Module[{t,u,d,z,vA,vAA,vB,vBB,s1,vC,vD,vDD,s2,r1,side1,side2,rd,rdn,points1,points2,t1,t2,h1,h2},t=1;u=1/Sqrt[2];d=t/Sqrt[3];z=Sqrt[(2u)^2-(2d)^2];vA={2d,0,z};vAA={2d,0,grow};vB={d,t,z/2};vBB={d,t,grow};s1=Polygon[{vA,vB,vBB,vAA}];vC={0,0,0};vD={d,-t,z/2};vDD={d,-t,grow};s2=Polygon[{vA,vD,vDD,vAA}];r1=Table[Rotate[Polygon[{vA,vB,vC,vD}],i2Pi/3+Pi/6,{0,0,1}],{i,3}];side1=Translate[Table[Rotate[Polygon[{vA,vB,vBB,vAA}],i2Pi/3+Pi/6,{0,0,1}],{i,3}],{0,0,el}];side2=Translate[Table[Rotate[Polygon[{vA,vD,vDD,vAA}],i2Pi/3+Pi/6,{0,0,1}],{i,3}],{0,0,el}];rd=GraphicsComplex[PolyhedronData["RhombicDodecahedron","VertexCoordinates"],Polygon[PolyhedronData["RhombicDodecahedron","FaceIndices"]]];rdn=Rotate[Translate[Scale[Rotate[rd,-ArcTan[Sqrt[2]],{1,0,0}],0.99Sqrt[3/2]{1,1,1}],{0,0,Sqrt[3/2]}],Pi/3,{0,0,1}];points1=Table[{(2j-i),Sqrt[3]i,0},{i,1,n},{j,i,n}];points2=Table[{-2j+i,-Sqrt[3]i,0},{i,1,n},{j,i,n}];t1=Map[Translate[{side1,side2,Yellow,r1},#]&,points1];t2=Map[Translate[{side1,side2,Yellow,r1},#]&,points2];h1=Table[Rotate[{{Red,r1},t1,t2},i2Pi/3,{0,0,1}],{i,3}];h2=Translate[Rotate[{rdn,h1},Pi,{1,0,0},{0,0,z/2-sep}],{1,d,0}];Graphics3D[{{{Green,rdn},h1,h2}},BoxedFalse,SphericalRegionTrue,ViewPoint{4,4,2},ViewAngle0.16,ImageSize450]],Grid[{{Control@{{n,2,"layers"},0,4,1,RadioButton},Control@{{grow,2.5,"wall height"},1,3.5,0.01,Appearance"Labeled",ImageSizeSmall,Enabledn>0}},{Control@{{sep,0,"separate"},0,2,0.01,Appearance"Labeled",ImageSizeSmall},Control@{{el,0,"elevate"},0,2,0.01,Appearance"Labeled",ImageSizeSmall,Enabledn>0}}},Spacings{2,1},AlignmentLeft],TrackedSymbols{n,grow,sep,el}]
Out[]=

