angle = 450; shape_size = 10; order = 0; module MyGyroid(angle, shape_size, order){ for(x=[0:order], y=[0:order], z=[0:order]) translate([(angle/shape_size * x), (angle/shape_size * y), (angle/shape_size * z)]) { for(i=[0:shape_size:angle], j=[0:shape_size:angle], k=[0:shape_size:angle]){ num = ((cos(i) * sin(j)) + (cos(j) * sin(k)) + (cos(k) * sin(i))); if ((num < 0.2) && (num > -0.2)) { translate([(i/shape_size),(j/shape_size),(k/shape_size)]) cube([1.2,1.2,1.2]); } } } } ///////////////////////////// // MAIN MyGyroid(angle, shape_size, order);