clean up spacing on motor-mount drill jig
[challenge-bot] / motor-mount-drill-jig.scad
CommitLineData
d2b2f016 1// challenge-bot
2// GNU AGPLv3 (or later at your option)
3// project available at these locations:
4// https://gitorious.org/ozzloy/challenge-bot
5// https://github.com/waynegramlich/challenge-bot
6
a96c0938 7// use this drill jig for putting holes in a motor mount for screws
8// and motor shaft. the four tabs at the bottom are for clamping
9// the jig down.
10
3258faff 11mm_per_inch = 25.4;
12
3e81f997 13material_width = (1 / 8) * mm_per_inch;
3258faff 14
15board_length = 1.75 * mm_per_inch;
16board_width = 1.5 * mm_per_inch;
3e81f997 17board_depth = (3 / 16) * mm_per_inch;
3258faff 18tab_length = 3 * mm_per_inch;
3e81f997 19tab_width = (1 / 4) * mm_per_inch;
3258faff 20
21union(){
22 rotate(a = 90, v = [1, 0, 0]) {
23 cube([board_length + material_width,
24 1.75 * mm_per_inch + material_width,
3e81f997 25 material_width]);}
3258faff 26
27 translate(v = [0, -material_width, 0]){
28 rotate(a = -90, v = [0, 1, 0]) {
29 cube( [1.75 * mm_per_inch + material_width,
30 1.5 * mm_per_inch + 2 * material_width,
3e81f997 31 material_width]);}}
3258faff 32
3e81f997 33 translate(v = [(1.75 * mm_per_inch + material_width) / 2 + tab_width,
34 -tab_length,
35 0]){
3258faff 36 rotate(a = 90, v = [0 ,0 ,1 ]){
3e81f997 37 cube([3 * mm_per_inch, 0.5 * mm_per_inch , material_width]);}}
3258faff 38
39 translate(v = [-tab_length,
3e81f997 40 (1.5 * mm_per_inch + material_width) / 2 - tab_width,
3258faff 41 0]){
3e81f997 42 cube([3 * mm_per_inch, 0.5 * mm_per_inch , material_width]);}
3258faff 43
3e81f997 44 translate(v = [(1.75 * mm_per_inch + material_width) / 2 + tab_width,
45 (1.5 * mm_per_inch),
3258faff 46 0]){
47 rotate(a = 90, v = [0, 0, 1]){
3e81f997 48 cube([3 * mm_per_inch, 0.5 * mm_per_inch , material_width]);}}
3258faff 49
3e81f997 50 translate(v = [(1.75 * mm_per_inch),
51 (1.5 * mm_per_inch + material_width) / 2 - tab_width,
3258faff 52 0]){
3e81f997 53 cube([3 * mm_per_inch, 0.5 * mm_per_inch , material_width]);}}
3258faff 54
3e81f997 55_4_40 = 0.1285 * mm_per_inch / 2; // size of hole for 4x40
56_6_32 = 0.1495 * mm_per_inch / 2; // size of hole for 6x32
3258faff 57
58module collar_hole(){
3e81f997 59 cylinder(h = board_depth, r = 2 * _6_32, $fn = 20);}
3258faff 60
61module nubbin_hole(){
3e81f997 62 cylinder(h = board_depth, r = _6_32, $fn = 20);}
3258faff 63
64module mounting_screw_hole(){
3e81f997 65 cylinder(h = board_depth, r = _6_32, $fn = 20);}
3258faff 66
67module bracket_screw_hole(){
3e81f997 68 cylinder(h = board_depth, r = _6_32, $fn = 20);}
3258faff 69
70module wheel_motor_holes(scale){
3e81f997 71 translate([51 - 26.78, 38 - 10.8, 0] * scale) {
3258faff 72 collar_hole();}
3e81f997 73 translate([51 - 26.78, 38 - 22.23, 0] * scale){
3258faff 74 nubbin_hole();}
3e81f997 75 translate([51 - 18.05 - 17.45, 38 - 30.81, 0] * scale){
3258faff 76 mounting_screw_hole();}
3e81f997 77 translate([51 - 18.05, 38 - 30.81, 0] * scale){
3258faff 78 mounting_screw_hole();}
3e81f997 79 translate([7.5, 8.5, 0] * scale){
3258faff 80 bracket_screw_hole();}
3e81f997 81 translate([7.5, 21 + 8.5, 0] * scale){
3258faff 82 bracket_screw_hole();}}
83
84module wheel_mount(scale){
85 difference(){
86 cube(scale * [board_length + material_width,
87 board_width + material_width,
88 material_width]);
89 wheel_motor_holes(scale);}}
90
91wheel_mount(1);
92
93translate(v = [0, 0, board_length]) jig_lid();
94
95module jig_lid() {
96 union() {
97 wheel_mount(1);
98 translate(v = [0, -2.1 * material_width, material_width]){
99 cube([board_length + material_width,
100 3.1 * material_width,
101 material_width]);}
102 translate(v = [0, -2.1 * material_width, 0]){
103 cube([board_length + material_width, material_width, material_width]);}
104 translate(v = [-2.1 * material_width, 0, material_width]){
105 cube([3.1 * material_width,
106 board_width + material_width,
107 material_width]);}
108 translate(v = [-2.1 * material_width, 0, 0]){
109 cube([material_width, board_width+material_width, material_width]);}}}