All pastes #2058574 Raw Edit

Unnamed

public text v1 · immutable
#2058574 ·published 2011-05-13 21:14 UTC
rendered paste body
function elen(vec)= sqrt(vec[0]*vec[0]+vec[1]*vec[1]+vec[2]*vec[2]);
function cprod(a,b)=[a[1]*b[2]-a[2]*b[1],a[2]*b[0]-a[0]*b[2],a[0]*b[1]-a[1]*b[0]];
function dprod(a,b)=a[0]*b[0]+a[1]*b[1]+a[2]*b[2];
function vangle(a,b)=acos(dprod(a,b)/(elen(a)*elen(b)));
module link(a,b,r=3,cr=3){
diff=b-a;
translate(a)sphere(r=cr,center=true,$fn=8);
translate(b)sphere(r=cr,center=true,$fn=8);
translate(a+diff/2)rotate(vangle(diff,[0,0,1]),-cprod(diff,[0,0,1]))cylinder(r=r,h=elen(diff),center=true,$fn=8);
}
v=[[0,0,0],[40,60,0],[40,-60,0],[80,0,0],[36,22,0],[44,-22,0],[44,22,60],[36,-22,60],[40,0,60],[40,0,0]];
/*for(i=v){
	translate(i)color([255,0,0])sphere(r=2.5,center=true);
}
*/
module trilink(a,b,c){
link(a,b);
link(b,c);
link(c,d);
}
%cube([200,200,0.01]);
translate([40,90,0]){
//%translate(){
link(v[0],v[1]);
link(v[1],v[3]);
link(v[0],v[2]);
link(v[2],v[3]);
link(v[0],v[3]);
link(v[0],v[4]);
link(v[1],v[4]);
link(v[3],v[4]);
link(v[0],v[5]);
link(v[2],v[5]);
link(v[3],v[5]);
link(v[0],v[6]);
link(v[1],v[6]);
link(v[3],v[6]);
link(v[4],v[6]);
link(v[0],v[7]);
link(v[2],v[7]);
link(v[3],v[7]);
link(v[5],v[7]);
link(v[6],v[7]);
link(v[0],v[8]);
link(v[3],v[8]);
link(v[9],v[8]);

}