Download this thing or ask me how I made it at thingiverse.com
back
triangular hebesphenorotunda sphere

for(n=[0:9])
     {

vector1 = [
         //[-1.37638,0.,0.262866],
         //[1.37638,0.,-0.262866],
         //[-0.425325,-1.30902,0.262866],
         //[-0.425325,1.30902,0.262866],
         [1.11352,-0.809017,0.262866],
         [1.11352,0.809017,0.262866],
         [-0.262866,-0.809017,1.11352],
         [-0.262866,0.809017,1.11352],
         //[-0.688191,-0.5,-1.11352],
         //[-0.688191,0.5,-1.11352],
         //[0.688191,-0.5,1.11352],
         //[0.688191,0.5,1.11352],
         [0.850651,0.,-1.11352],
         [-1.11352,-0.809017,-0.262866],
         [-1.11352,0.809017,-0.262866],
         [-0.850651,0.,1.11352],
         [0.262866,-0.809017,-1.11352],
         [0.262866,0.809017,-1.11352],
         //[0.425325,-1.30902,-0.262866],
         //[0.425325,1.30902,-0.262866]
         ];




     translate(vector1[n])
         {
             vector2 = vector1[n];
             //rotate around <-y,x,0> by angle cos^-1(z/sqrt(x^2+y^2+z^2))
             rotate(a=acos(vector2[2]/sqrt(pow(vector2[0],2)+pow(vector2[1],2)+pow(vector2[2],2))),v=[-vector2[1],vector2[0],0])
                 {
                 //around tan^-1(y/x)
                 rotate(a=atan(vector2[1]/vector2[0]),v=[0,0,1])
                     {
                         translate([0, 0, .89])
                         {
                             rotate([0, 0,30])
                             {
a = 1.511522628; //altitude of the top of the tri hebe
b = .9341723589; // altitude of the mid plane
//hull()
{

     for(n=[0:17])
     {
         verts =
         [
         [0, -sqrt(3)/3, a], //top level verts
         [1/2, sqrt(3)/6, a],
         [-1/2, sqrt(3)/6, a],
         [1/2, -1.222847494, b], // mid plane verts
         [(1+sqrt(5))/4, 1.044436449, b],
         [(1+sqrt(5))/4+1/2, sqrt(3)/6*(2+(1+sqrt(5))/2)-sqrt(3)/2, b],
         [-1/2, -1.222847494, b], // mid plane verts
         [-(1+sqrt(5))/4, 1.044436449, b],
         [-(1+sqrt(5))/4-1/2, sqrt(3)/6*(2+(1+sqrt(5))/2)-sqrt(3)/2, b],
         [1.3039016994, -.7557613138, .5773502619], //points of pentagons below the midpoint
         [-1.3039016994, -.7557613138, .5773502619],
         [0, 1.511522628, .5773502619],
         [cos(60), sin(60), 0],
         [cos(120), sin(120), 0],
         [cos(180), sin(180), 0],
         [cos(240), sin(240), 0],
         [cos(300), sin(300), 0],
         [cos(0), sin(0), 0]
         ];
        
         vector_1 = verts[n];
        
         translate([vector_1[0], vector_1[1], vector_1[2]])
         {
                 sphere(.1, true);
         }
     }
}

hull()
{
     translate([0, -sqrt(3)/3, a])
     {
         sphere(.1, true);
         }
     translate([1/2, sqrt(3)/6, a])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([0, -sqrt(3)/3, a])
     {
         sphere(.1, true);
         }
     translate([-1/2, sqrt(3)/6, a])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([1/2, sqrt(3)/6, a])
     {
         sphere(.1, true);
         }
     translate([-1/2, sqrt(3)/6, a])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([0, -sqrt(3)/3, a])
     {
         sphere(.1, true);
         }
     translate([1/2, -1.222847494, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([0, -sqrt(3)/3, a])
     {
         sphere(.1, true);
         }
     translate([-1/2, -1.222847494, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([1/2, sqrt(3)/6, a])
     {
         sphere(.1, true);
         }
     translate([(1+sqrt(5))/4, 1.044436449, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([1/2, sqrt(3)/6, a])
     {
         sphere(.1, true);
         }
     translate([(1+sqrt(5))/4+1/2, sqrt(3)/6*(2+(1+sqrt(5))/2)-sqrt(3)/2, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-1/2, sqrt(3)/6, a])
     {
         sphere(.1, true);
         }
     translate([-(1+sqrt(5))/4, 1.044436449, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-1/2, sqrt(3)/6, a])
     {
         sphere(.1, true);
         }
     translate([-(1+sqrt(5))/4-1/2, sqrt(3)/6*(2+(1+sqrt(5))/2)-sqrt(3)/2, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-(1+sqrt(5))/4-1/2, sqrt(3)/6*(2+(1+sqrt(5))/2)-sqrt(3)/2, b])
     {
         sphere(.1, true);
         }
     translate([-1.3039016994, -.7557613138, .5773502619])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-1.3039016994, -.7557613138, .5773502619])
     {
         sphere(.1, true);
         }
     translate([-1/2, -1.222847494, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-1/2, -1.222847494, b])
     {
         sphere(.1, true);
         }
     translate([1/2, -1.222847494, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([1/2, -1.222847494, b])
     {
         sphere(.1, true);
         }
     translate([1.3039016994, -.7557613138, .5773502619])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([1.3039016994, -.7557613138, .5773502619])
     {
         sphere(.1, true);
         }
     translate([(1+sqrt(5))/4+1/2, sqrt(3)/6*(2+(1+sqrt(5))/2)-sqrt(3)/2, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([(1+sqrt(5))/4+1/2, sqrt(3)/6*(2+(1+sqrt(5))/2)-sqrt(3)/2, b])
     {
         sphere(.1, true);
         }
     translate([(1+sqrt(5))/4, 1.044436449, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([(1+sqrt(5))/4, 1.044436449, b])
     {
         sphere(.1, true);
         }
     translate([0, 1.511522628, .5773502619])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([0, 1.511522628, .5773502619])
     {
         sphere(.1, true);
         }
     translate([-(1+sqrt(5))/4, 1.044436449, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-(1+sqrt(5))/4, 1.044436449, b])
     {
         sphere(.1, true);
         }
     translate([-(1+sqrt(5))/4-1/2, sqrt(3)/6*(2+(1+sqrt(5))/2)-sqrt(3)/2, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([0, 1.511522628, .5773502619])
     {
         sphere(.1, true);
         }
     translate([cos(60), sin(60), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([0, 1.511522628, .5773502619])
     {
         sphere(.1, true);
         }
     translate([cos(120), sin(120), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-(1+sqrt(5))/4, 1.044436449, b])
     {
         sphere(.1, true);
         }
     translate([cos(120), sin(120), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-(1+sqrt(5))/4-1/2, sqrt(3)/6*(2+(1+sqrt(5))/2)-sqrt(3)/2, b])
     {
         sphere(.1, true);
         }
     translate([cos(180), sin(180), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-1.3039016994, -.7557613138, .5773502619])
     {
         sphere(.1, true);
         }
     translate([cos(180), sin(180), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-1.3039016994, -.7557613138, .5773502619])
     {
         sphere(.1, true);
         }
     translate([cos(240), sin(240), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-1/2, -1.222847494, b])
     {
         sphere(.1, true);
         }
     translate([cos(240), sin(240), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([1/2, -1.222847494, b])
     {
         sphere(.1, true);
         }
     translate([cos(300), sin(300), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([1.3039016994, -.7557613138, .5773502619])
     {
         sphere(.1, true);
         }
     translate([cos(300), sin(300), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([1.3039016994, -.7557613138, .5773502619])
     {
         sphere(.1, true);
         }
     translate([cos(0), sin(0), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate( [(1+sqrt(5))/4, 1.044436449, b])
     {
         sphere(.1, true);
         }
     translate([cos(60), sin(60), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([(1+sqrt(5))/4+1/2, sqrt(3)/6*(2+(1+sqrt(5))/2)-sqrt(3)/2, b])
     {
         sphere(.1, true);
         }
     translate([cos(0), sin(0), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([cos(0), sin(0), 0])
     {
         sphere(.1, true);
         }
     translate([cos(60), sin(60), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([cos(60), sin(60), 0])
     {
         sphere(.1, true);
         }
     translate([cos(120), sin(120), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([cos(120), sin(120), 0])
     {
         sphere(.1, true);
         }
     translate([cos(180), sin(180), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([cos(180), sin(180), 0])
     {
         sphere(.1, true);
         }
     translate([cos(240), sin(240), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([cos(240), sin(240), 0])
     {
         sphere(.1, true);
         }
     translate([cos(300), sin(300), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([cos(300), sin(300), 0])
     {
         sphere(.1, true);
         }
     translate([cos(0), sin(0), 0])
     {
         sphere(.1, true);
         }
     }
    
    
}
    
                     }
                 }
         }
     }
}
//////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////


for(n=[0:9])
     {

vector1 = [
         [-1.37638,0.,0.262866],
         [1.37638,0.,-0.262866],
         [-0.425325,-1.30902,0.262866],
         [-0.425325,1.30902,0.262866],
         //[1.11352,-0.809017,0.262866],
         //[1.11352,0.809017,0.262866],
         //[-0.262866,-0.809017,1.11352],
         //[-0.262866,0.809017,1.11352],
         [-0.688191,-0.5,-1.11352],
         [-0.688191,0.5,-1.11352],
         [0.688191,-0.5,1.11352],
         [0.688191,0.5,1.11352],
         //[0.850651,0.,-1.11352],
         //[-1.11352,-0.809017,-0.262866],
         //[-1.11352,0.809017,-0.262866],
         //[-0.850651,0.,1.11352],
         //[0.262866,-0.809017,-1.11352],
         //[0.262866,0.809017,-1.11352],
         [0.425325,-1.30902,-0.262866],
         [0.425325,1.30902,-0.262866]
         ];




     translate(vector1[n])
         {
             vector2 = vector1[n];
             //rotate around <-y,x,0> by angle cos^-1(z/sqrt(x^2+y^2+z^2))
             rotate(a=acos(vector2[2]/sqrt(pow(vector2[0],2)+pow(vector2[1],2)+pow(vector2[2],2))),v=[-vector2[1],vector2[0],0])
                 {
                 //around tan^-1(y/x)
                 rotate(a=atan(vector2[1]/vector2[0]),v=[0,0,1])
                     {
                         translate([0, 0, .89])
                         {
                             rotate([0, 0, 90])
                             {
a = 1.511522628; //altitude of the top of the tri hebe
b = .9341723589; // altitude of the mid plane
//hull()
{

     for(n=[0:17])
     {
         verts =
         [
         [0, -sqrt(3)/3, a], //top level verts
         [1/2, sqrt(3)/6, a],
         [-1/2, sqrt(3)/6, a],
         [1/2, -1.222847494, b], // mid plane verts
         [(1+sqrt(5))/4, 1.044436449, b],
         [(1+sqrt(5))/4+1/2, sqrt(3)/6*(2+(1+sqrt(5))/2)-sqrt(3)/2, b],
         [-1/2, -1.222847494, b], // mid plane verts
         [-(1+sqrt(5))/4, 1.044436449, b],
         [-(1+sqrt(5))/4-1/2, sqrt(3)/6*(2+(1+sqrt(5))/2)-sqrt(3)/2, b],
         [1.3039016994, -.7557613138, .5773502619], //points of pentagons below the midpoint
         [-1.3039016994, -.7557613138, .5773502619],
         [0, 1.511522628, .5773502619],
         [cos(60), sin(60), 0],
         [cos(120), sin(120), 0],
         [cos(180), sin(180), 0],
         [cos(240), sin(240), 0],
         [cos(300), sin(300), 0],
         [cos(0), sin(0), 0]
         ];
        
         vector_1 = verts[n];
        
         translate([vector_1[0], vector_1[1], vector_1[2]])
         {
                 sphere(.1, true);
         }
     }
}

hull()
{
     translate([0, -sqrt(3)/3, a])
     {
         sphere(.1, true);
         }
     translate([1/2, sqrt(3)/6, a])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([0, -sqrt(3)/3, a])
     {
         sphere(.1, true);
         }
     translate([-1/2, sqrt(3)/6, a])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([1/2, sqrt(3)/6, a])
     {
         sphere(.1, true);
         }
     translate([-1/2, sqrt(3)/6, a])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([0, -sqrt(3)/3, a])
     {
         sphere(.1, true);
         }
     translate([1/2, -1.222847494, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([0, -sqrt(3)/3, a])
     {
         sphere(.1, true);
         }
     translate([-1/2, -1.222847494, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([1/2, sqrt(3)/6, a])
     {
         sphere(.1, true);
         }
     translate([(1+sqrt(5))/4, 1.044436449, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([1/2, sqrt(3)/6, a])
     {
         sphere(.1, true);
         }
     translate([(1+sqrt(5))/4+1/2, sqrt(3)/6*(2+(1+sqrt(5))/2)-sqrt(3)/2, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-1/2, sqrt(3)/6, a])
     {
         sphere(.1, true);
         }
     translate([-(1+sqrt(5))/4, 1.044436449, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-1/2, sqrt(3)/6, a])
     {
         sphere(.1, true);
         }
     translate([-(1+sqrt(5))/4-1/2, sqrt(3)/6*(2+(1+sqrt(5))/2)-sqrt(3)/2, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-(1+sqrt(5))/4-1/2, sqrt(3)/6*(2+(1+sqrt(5))/2)-sqrt(3)/2, b])
     {
         sphere(.1, true);
         }
     translate([-1.3039016994, -.7557613138, .5773502619])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-1.3039016994, -.7557613138, .5773502619])
     {
         sphere(.1, true);
         }
     translate([-1/2, -1.222847494, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-1/2, -1.222847494, b])
     {
         sphere(.1, true);
         }
     translate([1/2, -1.222847494, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([1/2, -1.222847494, b])
     {
         sphere(.1, true);
         }
     translate([1.3039016994, -.7557613138, .5773502619])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([1.3039016994, -.7557613138, .5773502619])
     {
         sphere(.1, true);
         }
     translate([(1+sqrt(5))/4+1/2, sqrt(3)/6*(2+(1+sqrt(5))/2)-sqrt(3)/2, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([(1+sqrt(5))/4+1/2, sqrt(3)/6*(2+(1+sqrt(5))/2)-sqrt(3)/2, b])
     {
         sphere(.1, true);
         }
     translate([(1+sqrt(5))/4, 1.044436449, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([(1+sqrt(5))/4, 1.044436449, b])
     {
         sphere(.1, true);
         }
     translate([0, 1.511522628, .5773502619])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([0, 1.511522628, .5773502619])
     {
         sphere(.1, true);
         }
     translate([-(1+sqrt(5))/4, 1.044436449, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-(1+sqrt(5))/4, 1.044436449, b])
     {
         sphere(.1, true);
         }
     translate([-(1+sqrt(5))/4-1/2, sqrt(3)/6*(2+(1+sqrt(5))/2)-sqrt(3)/2, b])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([0, 1.511522628, .5773502619])
     {
         sphere(.1, true);
         }
     translate([cos(60), sin(60), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([0, 1.511522628, .5773502619])
     {
         sphere(.1, true);
         }
     translate([cos(120), sin(120), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-(1+sqrt(5))/4, 1.044436449, b])
     {
         sphere(.1, true);
         }
     translate([cos(120), sin(120), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-(1+sqrt(5))/4-1/2, sqrt(3)/6*(2+(1+sqrt(5))/2)-sqrt(3)/2, b])
     {
         sphere(.1, true);
         }
     translate([cos(180), sin(180), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-1.3039016994, -.7557613138, .5773502619])
     {
         sphere(.1, true);
         }
     translate([cos(180), sin(180), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-1.3039016994, -.7557613138, .5773502619])
     {
         sphere(.1, true);
         }
     translate([cos(240), sin(240), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([-1/2, -1.222847494, b])
     {
         sphere(.1, true);
         }
     translate([cos(240), sin(240), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([1/2, -1.222847494, b])
     {
         sphere(.1, true);
         }
     translate([cos(300), sin(300), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([1.3039016994, -.7557613138, .5773502619])
     {
         sphere(.1, true);
         }
     translate([cos(300), sin(300), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([1.3039016994, -.7557613138, .5773502619])
     {
         sphere(.1, true);
         }
     translate([cos(0), sin(0), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate( [(1+sqrt(5))/4, 1.044436449, b])
     {
         sphere(.1, true);
         }
     translate([cos(60), sin(60), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([(1+sqrt(5))/4+1/2, sqrt(3)/6*(2+(1+sqrt(5))/2)-sqrt(3)/2, b])
     {
         sphere(.1, true);
         }
     translate([cos(0), sin(0), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([cos(0), sin(0), 0])
     {
         sphere(.1, true);
         }
     translate([cos(60), sin(60), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([cos(60), sin(60), 0])
     {
         sphere(.1, true);
         }
     translate([cos(120), sin(120), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([cos(120), sin(120), 0])
     {
         sphere(.1, true);
         }
     translate([cos(180), sin(180), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([cos(180), sin(180), 0])
     {
         sphere(.1, true);
         }
     translate([cos(240), sin(240), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([cos(240), sin(240), 0])
     {
         sphere(.1, true);
         }
     translate([cos(300), sin(300), 0])
     {
         sphere(.1, true);
         }
     }
hull()
{
     translate([cos(300), sin(300), 0])
     {
         sphere(.1, true);
         }
     translate([cos(0), sin(0), 0])
     {
         sphere(.1, true);
         }
     }
    
    
}
    
                     }
                 }
         }
     }
}