/* Various parts used to hold things, like wires */ use <../cadlib.h> // allviews samples // allviews holdwires-small // allviews holdwires-medium // allviews holdwires-large // allviews angle_1_1 print16_angle_1_1 // printviews holdwires-small:x2 holdwires-small:x3 holdwires-small:x2,y2 // printviews holdwires-medium2 holdwires-medium3 // printviews holdwires-large2 holdwires-large3 // viewsopts fill80 include module screwhole(thick){ cylinder(r=2.5,h=thick,$fn=20); } module holdwires(ray,angle,thick){ width=10; basewidth=20; difference(){ cube([2*15,basewidth,thick]); translate([15,(basewidth-width)/2,0]) screwhole(thick); } translate([15,basewidth,ray]) rotate([90,90,0]) 3darc(ray,thick,width,angle,360,50); } module small(){ rotate([-90,0,0]) translate([0,-20,0]) holdwires(15,90,4); } module medium(){ rotate([-90,0,0]) translate([0,-20,0]) holdwires(20,75,4); } module large(){ rotate([-90,0,0]) translate([0,-20,0]) holdwires(25,65,4); } module angle(lenx,leny){ w=10; thick=3; difference(){ union(){ rotate([90,0,0]) translate([0,0,-w/2-thick/2]) triangle_rectangle(3*lenx/5,3*leny/5,thick); cube([lenx,w,thick]); cube([thick,w,leny]); rotate([-90,0,0]) translate([thick,-thick,0]) quarter_concave(thick,w,10,2); } union(){ translate([lenx*5/8,w/2,0]) screwhole(thick); translate([0,w/2,leny*5/8]) rotate([0,90,0]) screwhole(thick+1); } } } module main_view(view){ if (view=="holdwires-small"){ small(); }else if (view=="holdwires-medium"){ medium(); }else if (view=="holdwires-medium2"){ medium(); translate([50,0,0]) medium(); }else if (view=="holdwires-medium3"){ medium(); translate([50,0,0]) medium(); translate([25,50,0]) medium(); }else if (view=="holdwires-large"){ large(); }else if (view=="holdwires-large2"){ large(); translate([60,0,0]) large(); }else if (view=="holdwires-large3"){ large(); translate([60,0,0]) large(); translate([30,60,0]) large(); }else if (view=="samples"){ small(); translate([50,0,0]) medium(); translate([100,0,0]) large(); }else if (view=="angle_1_1"){ angle(25,25); }else if (view=="print16_angle_1_1"){ for(x=[0:3],y=[0:3]){ translate ([x*30,y*15,0]) angle(25,25); } } }