//CC BY NC 4.0 // Attribution : // - Luc Hanneuse, author, conception, realisation, OpenScad design, optimisation for 3D printing & documentation. // - Florent Lemaire for OpenScad help // AgriLab, http://agrilab.unilasalle.fr/ , Innovation Center & FabLab Collaborative innovation for Agriculture // Name : Bpex, Boitier Parametrique Extérieur // Contact for other licences or commercial usage : agrilab@unilasalle.fr // Inspired by the Stevenson screen $fn = 100; // unit in mm shell = 0.4 * 4; // multiple of the printer's nozzel size, here 0.4 sizeBase = 60/2; // bottom radius sizeTop = 45/2; // top radius pinInsideSize = 3.2; // Thread diameter numberOfPin = 2; // number of thread height= 15; // height fixture_radius = 45/2; // radius for the thread position hat_height= 12; // height of the hat fixture_height = height + 5; // height of the fixture difference() { cylinder(r1=sizeBase, r2=sizeTop, h=height, center=true); cylinder(r1=sizeBase-shell, r2=sizeTop-shell, h=height, center=true); for (p = [0:numberOfPin-1]) { rotate([0,0,p*360/numberOfPin]) { translate([fixture_radius,0,2.5]) { cylinder(r=pinInsideSize, h=fixture_height, center=true); } } } } for (p = [0:numberOfPin-1]) { rotate([0,0,p*360/numberOfPin]) { translate([fixture_radius,0,2.5 ]) {difference() { cylinder(r=pinInsideSize+shell, h=fixture_height, center=true); cylinder(r=pinInsideSize, h=fixture_height, center=true); } } } } // hat translate([0,0,height/2 + hat_height / 2 - shell]) { difference() { difference() { translate( [0, 0, shell] ){cylinder(r1=sizeTop, r2=0, h=hat_height, center=true);} cylinder(r1=sizeTop-(shell/2), r2=0, h=hat_height+shell, center=true); } for (p = [0:numberOfPin-1]) { rotate([0,0,p*360/numberOfPin]) { translate([fixture_radius,0,2.5 ]) { cylinder(r=pinInsideSize, h=fixture_height, center=true); } } } } }