// cuboctahedron version of a right-hand twist // version of 9.7.13 step = 20; da = step/1.4142; d = 0.98*da; x = d/2; // intended base plane through [x,-x,x] [x,-x,-x] [d,0,0] [0,-d,0] //i.e. through [x,-x,0] //parallel to plane [0,0,1] [0,0,-1] [1,1,-1] [-1,-1,-1] i.e. [\alpha,\alpha,\beta] // to link to cuboctahedron at displacement [da,da,0] use point [d,d,0] //template: translate ([,,]) sphere(r=0.01, center=true); rotate (a=90, v=[1,1,0]) union () { //translate ([x,-x,x]) sphere (r=3, center=true); //translate ([x,-x,-x]) sphere (r=3, center=true); //translate ([d,0,0]) sphere (r=3, center=true); //translate ([0,-d,0]) sphere (r=3, center=true); hull () { translate ([x,x,x]) sphere(r=0.01, center=true); translate ([x,x,-x]) sphere(r=0.01, center=true); translate ([x,-x,x]) sphere(r=0.01, center=true); translate ([x,-x,-x]) sphere(r=0.01, center=true); translate ([-x,x,x]) sphere(r=0.01, center=true); translate ([-x,x,-x]) sphere(r=0.01, center=true); translate ([-x,-x,x]) sphere(r=0.01, center=true); translate ([-x,-x,-x]) sphere(r=0.01, center=true); translate ([d,0,0]) sphere(r=0.01, center=true); translate ([0,d,0]) sphere(r=0.01, center=true); translate ([0,0,d]) sphere(r=0.01, center=true); translate ([-d,0,0]) sphere(r=0.01, center=true); translate ([0,-d,0]) sphere(r=0.01, center=true); translate ([0,0,-d]) sphere(r=0.01, center=true); //links translate ([0,d,-d]) sphere(r=0.01, center=true); translate ([d,d,0]) sphere(r=0.01, center=true); } translate ([0,da,-da]) hull () { translate ([x,x,x]) sphere(r=0.01, center=true); translate ([x,x,-x]) sphere(r=0.01, center=true); translate ([x,-x,x]) sphere(r=0.01, center=true); translate ([x,-x,-x]) sphere(r=0.01, center=true); translate ([-x,x,x]) sphere(r=0.01, center=true); translate ([-x,x,-x]) sphere(r=0.01, center=true); translate ([-x,-x,x]) sphere(r=0.01, center=true); translate ([-x,-x,-x]) sphere(r=0.01, center=true); translate ([d,0,0]) sphere(r=0.01, center=true); translate ([0,d,0]) sphere(r=0.01, center=true); translate ([0,0,d]) sphere(r=0.01, center=true); translate ([-d,0,0]) sphere(r=0.01, center=true); translate ([0,-d,0]) sphere(r=0.01, center=true); translate ([0,0,-d]) sphere(r=0.01, center=true); //links translate ([0,-d,d]) sphere(r=0.01, center=true); translate ([0,d,-d]) sphere(r=0.01, center=true); translate ([d,0,d]) sphere(r=0.01, center=true); translate ([d,0,-d]) sphere(r=0.01, center=true); } translate ([0,2*da,-2*da]) hull () { translate ([x,x,x]) sphere(r=0.01, center=true); translate ([x,x,-x]) sphere(r=0.01, center=true); translate ([x,-x,x]) sphere(r=0.01, center=true); translate ([x,-x,-x]) sphere(r=0.01, center=true); translate ([-x,x,x]) sphere(r=0.01, center=true); translate ([-x,x,-x]) sphere(r=0.01, center=true); translate ([-x,-x,x]) sphere(r=0.01, center=true); translate ([-x,-x,-x]) sphere(r=0.01, center=true); translate ([d,0,0]) sphere(r=0.01, center=true); translate ([0,d,0]) sphere(r=0.01, center=true); translate ([0,0,d]) sphere(r=0.01, center=true); translate ([-d,0,0]) sphere(r=0.01, center=true); translate ([0,-d,0]) sphere(r=0.01, center=true); translate ([0,0,-d]) sphere(r=0.01, center=true); //links translate ([0,-d,d]) sphere(r=0.01, center=true); translate ([d,-d,0]) sphere(r=0.01, center=true); } translate ([da,da,0]) hull () { translate ([x,x,x]) sphere(r=0.01, center=true); translate ([x,x,-x]) sphere(r=0.01, center=true); translate ([x,-x,x]) sphere(r=0.01, center=true); translate ([x,-x,-x]) sphere(r=0.01, center=true); translate ([-x,x,x]) sphere(r=0.01, center=true); translate ([-x,x,-x]) sphere(r=0.01, center=true); translate ([-x,-x,x]) sphere(r=0.01, center=true); translate ([-x,-x,-x]) sphere(r=0.01, center=true); translate ([d,0,0]) sphere(r=0.01, center=true); translate ([0,d,0]) sphere(r=0.01, center=true); translate ([0,0,d]) sphere(r=0.01, center=true); translate ([-d,0,0]) sphere(r=0.01, center=true); translate ([0,-d,0]) sphere(r=0.01, center=true); translate ([0,0,-d]) sphere(r=0.01, center=true); //links translate ([-d,-d,0]) sphere(r=0.01, center=true); translate ([-d,0,-d]) sphere(r=0.01, center=true); } translate ([da,da,-2*da]) hull () { translate ([x,x,x]) sphere(r=0.01, center=true); translate ([x,x,-x]) sphere(r=0.01, center=true); translate ([x,-x,x]) sphere(r=0.01, center=true); translate ([x,-x,-x]) sphere(r=0.01, center=true); translate ([-x,x,x]) sphere(r=0.01, center=true); translate ([-x,x,-x]) sphere(r=0.01, center=true); translate ([-x,-x,x]) sphere(r=0.01, center=true); translate ([-x,-x,-x]) sphere(r=0.01, center=true); translate ([d,0,0]) sphere(r=0.01, center=true); translate ([0,d,0]) sphere(r=0.01, center=true); translate ([0,0,d]) sphere(r=0.01, center=true); translate ([-d,0,0]) sphere(r=0.01, center=true); translate ([0,-d,0]) sphere(r=0.01, center=true); translate ([0,0,-d]) sphere(r=0.01, center=true); //links translate ([-d,0,d]) sphere(r=0.01, center=true); translate ([-d,d,0]) sphere(r=0.01, center=true); } };