//sgn 2022 // case for Murata SCL3300 high precision inclinometer pcb test board. $fn = 64; rod_size = 7.; main_case(); rod_holder(rod_size); //holder_adapter_ears(); //use this translated version for rod holder adapter. translate([0,0,-11]) holder_adapter_ears(); rod_holder_adapter(rod_size); module main_case(){ difference(){ translate([0,0,-3]) minkowski(){ cube([45, 29, 10], center = true); cylinder(d = 3, h = 1, center = true); } //body size of pcb + 1mm translate([0,0,-5]) cube([44, 29, 19], center = true); //through holes for bolts translate([17.5,9.5,1]) cylinder(d = 4, h = 10, center = true); translate([-17.5,9.5,1]) cylinder(d = 4, h = 10, center = true); translate([17.5,-9.5,1]) cylinder(d = 4, h = 10, center = true); translate([-17.5,-9.5,1]) cylinder(d = 4, h = 10, center = true); //space for actual sensor translate([0,2,-2]) cube([7.5, 9.5, 6], center = true); } } module rod_holder_adapter(rod_size){ difference(){ union(){ //connector to tubing translate([0,0,-12]) rotate([0,90,0]) cylinder(d = rod_size + 5, h = 48, center = true); //cube to support rod adapter translate([0,0, -10]) minkowski(){ cube([45, 29, 3], center = true); cylinder(d = 3, h = 1, center = true); } } //ROD through hole translate([0,0,-15]) rotate([0,90,0]) cylinder(d = rod_size, h = 80, center = true); //cube to cut tube in half translate([0,0,-29]) cube([80,40,30], center = true); //space for actual sensor translate([0,2,-8]) cube([7.5, 9.5, 7], center = true); //body size of pcb + 1mm translate([0,0,-3]) cube([44, 29, 10], center = true); //through holes for bolts translate([17.5,9.5,-4]) cylinder(d = 2.5, h = 17, center = true); translate([-17.5,9.5,-4]) cylinder(d = 2.5, h = 17, center = true); translate([17.5,-9.5,-4]) cylinder(d = 2.5, h = 17, center = true); translate([-17.5,-9.5,-4]) cylinder(d = 2.5, h = 17, center = true); } } module holder_adapter_ears(){ difference(){ translate([0,0,-1.5]) minkowski(){ cube([45, 44, 2], center = true); cylinder(d = 3, h = 1, center = true); } //space to clear middle translate([0,0,0]) cube([49, 11, 12], center = true); //space for actual sensor translate([0,2,3]) cube([7.5, 9.5, 10], center = true); //through holes for bolts translate([17.5,19.5,-1]) cylinder(d = 4, h = 10, center = true); translate([-17.5,19.5,-1]) cylinder(d = 4, h = 10, center = true); translate([17.5,-19.5,-1]) cylinder(d = 4, h = 10, center = true); translate([-17.5,-19.5,-1]) cylinder(d = 4, h = 10, center = true); //through holes for threading bolts translate([17.5,9.5,-4]) cylinder(d = 2.5, h = 17, center = true); translate([-17.5,9.5,-4]) cylinder(d = 2.5, h = 17, center = true); translate([17.5,-9.5,-4]) cylinder(d = 2.5, h = 17, center = true); translate([-17.5,-9.5,-4]) cylinder(d = 2.5, h = 17, center = true); } } module rod_holder(rod_size){ difference(){ union(){ //connector to tubing translate([0,0,-45]) rotate([0,90,0]) cylinder(d = rod_size + 5, h = 46, center = true); //ears translate([0,0,-47.5]) minkowski(){ cube([43, 44, 2], center = true); cylinder(d = 3, h = 1, center = true); } } //ROD through hole translate([0,0,-45]) rotate([0,90,0]) cylinder(d = rod_size, h = 80, center = true); //cube to cut tube in half translate([0,0,-31]) cube([80,30,30], center = true); //through holes for bolts translate([17.5,19.5,-46]) cylinder(d = 4, h = 10, center = true); translate([-17.5,19.5,-46]) cylinder(d = 4, h = 10, center = true); translate([17.5,-19.5,-46]) cylinder(d = 4, h = 10, center = true); translate([-17.5,-19.5,-46]) cylinder(d = 4, h = 10, center = true); } }