Download this thing or ask me how I made it at thingiverse.com
back
truncated octahedral stewart

/////////////////////////// truncated octahedron
trunc_octa_verts = [[-1.5,-0.5,0.],
[-1.5,0.5,0.],
[-1.,-1.,-0.707107],
[-1.,-1.,0.707107],
[-1.,1.,-0.707107],
[-1.,1.,0.707107],
[-0.5,-1.5,0.],
[-0.5,-0.5,-1.41421],
[-0.5,-0.5,1.41421],
[-0.5,0.5,-1.41421],
[-0.5,0.5,1.41421],
[-0.5,1.5,0.],
[0.5,-1.5,0.],
[0.5,-0.5,-1.41421],
[0.5,-0.5,1.41421],
[0.5,0.5,-1.41421],[0.5,0.5,1.41421],[0.5,1.5,0.],
[1.,-1.,-0.707107],
[1.,-1.,0.707107],[1.,1.,-0.707107],[1.,1.,
0.707107],[1.5,-0.5,0.],[1.5,0.5,0.]];
// rotate it 125.2643897
difference()
{
     translate([0,0,0])
     {
         rotate([0, 0, 0])
         {
             hull()
             {
                 for(n=[0:23])
                 {
                 v_1 = trunc_octa_verts[n];
                     translate([v_1[0], v_1[1], v_1[2]])
                     {
                         sphere(.01, true);
                     }
                 }
             }
         }
     }
     b = 1; //radius of the hexqagon ///// triangular cupola
     c = 60; //angle of the hexagon
     d = sqrt(3)/3; //radius of the triangle
     e = sqrt(2)/sqrt(3); // height of the triangle
     f = 120; //angle of the triangle
     translate([0, -1, -.707107]) //////////// first cupola
     {
         rotate(a=54.73560197, v=[-1, 0, 0])
         {
             rotate([0, 0, -1/6*180])
             {
                 hull()
                 {
                     for(k=[0:5])
                     {
                         translate([cos(c*k+30), sin(c*k+30), 0])
                         {
                                 sphere(.011, true);
                         }
                     }

                     for(l=[0:2])
                     {
                         translate([d*cos(f*l), d*sin(f*l), e])
                         {
                                 sphere(.011, true);
                         }
                     }
                 }
             }
         }
     }
     translate([0, 1, -.707107]) ///////////// second cupola
     {
         rotate(a=54.73560197, v=[1, 0, 0])
         {
             rotate([0, 0, 1/6*180])
             {
                 hull()
                 {
                     for(k=[0:5])
                     {
                         translate([cos(c*k+30), sin(c*k+30), 0])
                         {
                                 sphere(.011, true);
                         }
                     }

                     for(l=[0:2])
                     {
                         translate([d*cos(f*l), d*sin(f*l), e])
                         {
                                 sphere(.011, true);
                         }
                     }
                 }
             }
         }
     }
    
     translate([1, 0, .707107]) // third cupola
     {
         rotate(a=54.73560197, v=[0, 1, 0])
         {
             rotate([0, 180, 0])
             {
                 hull()
                 {
                     for(k=[0:5])
                     {
                         translate([cos(c*k+30), sin(c*k+30), 0])
                         {
                                 sphere(.011, true);
                         }
                     }

                     for(l=[0:2])
                     {
                         translate([d*cos(f*l), d*sin(f*l), e])
                         {
                                 sphere(.011, true);
                         }
                     }
                 }
             }
         }
     }
    
         translate([-1, 0, .707107]) // fourth cupola
     {
         rotate(a=54.73560197, v=[0, -1, 0])
         {
             rotate([0, 180, 180])
             {
                 hull()
                 {
                     for(k=[0:5])
                     {
                         translate([cos(c*k+30), sin(c*k+30), 0])
                         {
                                 sphere(.011, true);
                         }
                     }

                     for(l=[0:2])
                     {
                         translate([d*cos(f*l), d*sin(f*l), e])
                         {
                                 sphere(.011, true);
                         }
                     }
                 }
             }
         }
     }
    
     ///// octahedron in the middle
     h = 1/sqrt(2);
     octahedron_verts = [
     [0, 0, -h],
     [0, 0, h],
     [0, -h, 0],
     [0, h, 0],
     [h, 0, 0],
     [-h, 0, 0]];
     rotate([0, 0, 45])
     {
         hull()
         {
             for(n=[0:7])
             {
                 v_2 = octahedron_verts[n];
                 translate([v_2[0], v_2[1], v_2[2]])
                 {
                         sphere(.011, true);
                 }
             }
         }
     }
}