/* Sensiplicity plant sensor prototype r4 cable gluing jig. */ /* Converts inches to millimeters. */ function in(mm) = mm*25.4; overall_length = in(1.5); shoulder_length = in(1.25); shoulder_width = in(.1); pcb_thick = 1.6; pcb_width = in(.61); channel_depth = in(.2); base_thick = 3; clamp_hole_spacing = in(1); clamp_hole_thread_dia = 2.7; clamp_hole_clear_dia = 3.4; clamp_hole_wall = 2; clamp_pos = in(.6); clamp_length = 20; clamp_thick = 2; pusher_length = 10; pusher_height = 12; pusher_thick = 6; overall_width = pcb_width + 2 * (2 * clamp_hole_wall + clamp_hole_clear_dia); OFF = .01; module base(){ difference(){ union(){ difference(){ cube([overall_width, overall_length, base_thick + channel_depth + pcb_thick]); translate([overall_width/2 - pcb_width/2, -.5, base_thick])cube([pcb_width, overall_length + 1, channel_depth + pcb_thick + 1]); } translate([overall_width/2 - pcb_width/2 - OFF, 0, base_thick])cube([shoulder_width, shoulder_length, channel_depth]); translate([overall_width/2 + pcb_width/2 + OFF - shoulder_width, 0, base_thick])cube([shoulder_width, shoulder_length, channel_depth]); translate([1,overall_length - pusher_length, base_thick + channel_depth + pcb_thick - OFF])cube([(overall_width - pcb_width)/2 - 1, pusher_length, pusher_height]); translate([overall_width - (overall_width/2 - pcb_width/2),overall_length - pusher_length, base_thick + channel_depth + pcb_thick - OFF])cube([(overall_width - pcb_width)/2 - 1, pusher_length, pusher_height]); translate([1,overall_length - pusher_length, base_thick + channel_depth + pcb_thick + pusher_height - 2*OFF])cube([overall_width-2, pusher_length, pusher_thick]); } translate([clamp_hole_wall + clamp_hole_clear_dia/2, clamp_pos, base_thick])cylinder(r=clamp_hole_thread_dia/2, h=100); translate([overall_width - clamp_hole_wall - clamp_hole_clear_dia/2, clamp_pos, base_thick])cylinder(r=clamp_hole_thread_dia/2, h=100); translate([-OFF, overall_length/2-1, base_thick+channel_depth+pcb_thick+OFF])rotate([0,45,0])cube([1, overall_length + 3, 1], center=true); translate([overall_width+OFF, overall_length/2-1, base_thick+channel_depth+pcb_thick+OFF])rotate([0,45,0])cube([1, overall_length + 3, 1], center=true); translate([overall_width/2, overall_length-pusher_length/2, base_thick + 1])cylinder(r=clamp_hole_thread_dia/2, h=1000); } } module clamp(){ difference(){ union(){ cube([(overall_width-pcb_width)/2 + clamp_thick + shoulder_width, clamp_length, clamp_thick]); translate([0,0,clamp_thick-OFF])cube([clamp_thick, clamp_length, 3]); } translate([clamp_hole_wall + clamp_hole_clear_dia/2 + clamp_thick, clamp_length/2, -1])cylinder(r=clamp_hole_clear_dia/2, h=100); } } base(); translate([32, 0,0])clamp(); translate([32, 22,0])clamp(); //translate([-clamp_thick, clamp_pos + clamp_length/2,base_thick + channel_depth + pcb_thick+clamp_thick])rotate([180,0,0])clamp();