// allviews view1 view2 equerre // testviews assembly // printviews view1,view2:x3,h30,w40 // printviews view1,view2:h30 include len1=30; depth=15; thick=1; len2=10; tube_ray1=2; tube_ray2=1; module tube(len,ray1,ray2){ difference(){ cylinder(r=ray1,h=len,$fn=30); cylinder(r=ray2,h=len,$fn=20); } } module view1(){ lenc=(len1-len2)/2-0.5; difference(){ cube([len1,depth,thick]); union(){ translate([lenc,0,0]) cube([len2+2*0.5,3,thick]); translate([5,depth/2,-1]) cylinder(r=1,h=4,$fn=20); translate([len1-5,depth/2,-1]) cylinder(r=1,h=4,$fn=20); } } offy=0; translate([0,offy,tube_ray1]) rotate ([0,90,0]) tube(lenc,tube_ray1,tube_ray2); translate([len1-lenc,offy,tube_ray1]) rotate ([0,90,0]) tube(lenc,tube_ray1,tube_ray2); } module view2(){ difference(){ cube([len2,depth,thick]); translate([len2/2,depth/2,-1]) cylinder(r=1,h=4,$fn=20); } translate([0,-1,tube_ray1]) rotate ([0,90,0]) tube(len2,tube_ray1,tube_ray2); } module equerre(){ len=30; width=10; thick=2; difference(){ cube ([len,width,thick]); union(){ translate([5,width/2+thick/2,-1]) rotate([0,0,0]) cylinder(r=1,h=4,$fn=20); translate([len-5,width/2+thick/2,-1]) rotate([0,0,0]) cylinder(r=1,h=4,$fn=20); } } difference(){ cube([len,thick,width]); union(){ translate([5,-1,width/2+thick/2]) rotate([-90,0,0]) cylinder(r=1,h=4,$fn=20); translate([len-5,-1,width/2+thick/2]) rotate([-90,0,0]) cylinder(r=1,h=4,$fn=20); } } } module main_view(view){ if (view=="view1"){ view1(); }else if (view=="view2"){ view2(); }else if (view=="equerre"){ equerre(); }else if (view=="assembly"){ view1(); translate([len1-len2,-1,0]) rotate([0,0,180]) view2(); } }