In each side of an icosahedron an n-sided polygon hole is prepared. If n =3, then the icosahedron is perforated, and if n is large, then a circular hole is prepared.
In[]:=
fi=GoldenRatio;alf=ArcTan[fi];bet=ArcTan[1/fi];bet1=ArcTan[1/fi^2];u=0.5Sqrt[3]/3;(*Settheinternalpoygonhere.Largencausesthepolygonroapproachcircle.Ifn=3,thentheicoisperforatedinparallelwiththesides*)n=3;(*Setholesizehere*)icoperf=0.3;frame=Table[{2uSin[i2Pi/3-Pi/6],2uCos[i2Pi/3-Pi/6],0},{i,4}];hole=Table[{icoperfSin[i2Pi/n+Pi/2],icoperfCos[i2Pi/n+Pi/2],0},{i,n+1}];t1={FaceForm[Blue,Yellow],Polygon[Join[frame->hole]]};t2=Rotate[Translate[t1,{u,0,0}],bet1,{0,1,0}];t3=Rotate[t2,Pi,{0,0,1}];t4=Translate[{t2,t3},{0,0,fi/2}];t5=Rotate[t4,Pi,{1,0,0}];pico=Table[Rotate[Rotate[{t4,t5},alf,{0,1,0}],i2Pi/5,{0,0,1}],{i,5}];picon=Rotate[Scale[pico,1.001{1,1,1},{0,0,0}],Pi/2+Pi/10,{0,0,1}];Graphics3D[{picon},BoxedFalse,SphericalRegionTrue]
Out[]=
In[]:=
ico=PolyhedronData["Icosahedron","Faces"];Graphics3D[{picon,Orange,ico},BoxedFalse,SphericalRegionTrue]
Out[]=