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 |
11 | mm_per_inch = 25.4; |
12 | |
13 | material_width = (1/8) * mm_per_inch; |
14 | |
15 | board_length = 1.75 * mm_per_inch; |
16 | board_width = 1.5 * mm_per_inch; |
17 | board_depth = (3/16) * mm_per_inch; |
18 | tab_length = 3 * mm_per_inch; |
19 | tab_width = (1/4) * mm_per_inch; |
20 | |
21 | union(){ |
22 | rotate(a = 90, v = [1, 0, 0]) { |
23 | cube([board_length + material_width, |
24 | 1.75 * mm_per_inch + material_width, |
25 | material_width ]);} |
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, |
31 | material_width ]);}} |
32 | |
33 | translate(v = [(1.75*mm_per_inch + material_width)/2 + tab_width, |
34 | -tab_length, 0]){ |
35 | rotate(a = 90, v = [0 ,0 ,1 ]){ |
36 | cube([3*mm_per_inch, 0.5*mm_per_inch , material_width]);}} |
37 | |
38 | translate(v = [-tab_length, |
39 | (1.5*mm_per_inch + material_width)/2 - tab_width, |
40 | 0]){ |
41 | cube([3*mm_per_inch, 0.5*mm_per_inch , material_width]);} |
42 | |
43 | translate(v = [(1.75*mm_per_inch + material_width)/2 + tab_width, |
44 | (1.5*mm_per_inch), |
45 | 0]){ |
46 | rotate(a = 90, v = [0, 0, 1]){ |
47 | cube([3*mm_per_inch, 0.5*mm_per_inch , material_width]);}} |
48 | |
49 | translate(v = [(1.75*mm_per_inch), |
50 | (1.5*mm_per_inch+material_width)/2 - tab_width, |
51 | 0]){ |
52 | cube([3*mm_per_inch, 0.5*mm_per_inch , material_width]);}} |
53 | |
54 | _4_40 = 0.1285*mm_per_inch/2; // size of hole for 4x40 |
55 | _6_32 = 0.1495*mm_per_inch/2; // size of hole for 6x32 |
56 | |
57 | module collar_hole(){ |
58 | cylinder(h = board_depth, r = 2*_6_32, $fn=20);} |
59 | |
60 | module nubbin_hole(){ |
61 | cylinder(h = board_depth, r = _6_32, $fn=20);} |
62 | |
63 | module mounting_screw_hole(){ |
64 | cylinder(h = board_depth, r = _6_32, $fn=20);} |
65 | |
66 | module bracket_screw_hole(){ |
67 | cylinder(h = board_depth, r = _6_32, $fn=20);} |
68 | |
69 | module wheel_motor_holes(scale){ |
70 | translate([ 51-26.78,38-10.8, 0] * scale) { |
71 | collar_hole();} |
72 | translate([ 51-26.78,38-22.23, 0] * scale){ |
73 | nubbin_hole();} |
74 | translate([51-18.05-17.45,38-30.81, 0] * scale){ |
75 | mounting_screw_hole();} |
76 | translate([51-18.05,38-30.81, 0] * scale){ |
77 | mounting_screw_hole();} |
78 | translate([7.5,8.5, 0] * scale){ |
79 | bracket_screw_hole();} |
80 | translate([7.5,21+8.5, 0] * scale){ |
81 | bracket_screw_hole();}} |
82 | |
83 | module wheel_mount(scale){ |
84 | difference(){ |
85 | cube(scale * [board_length + material_width, |
86 | board_width + material_width, |
87 | material_width]); |
88 | wheel_motor_holes(scale);}} |
89 | |
90 | wheel_mount(1); |
91 | |
92 | translate(v = [0, 0, board_length]) jig_lid(); |
93 | |
94 | module jig_lid() { |
95 | union() { |
96 | wheel_mount(1); |
97 | translate(v = [0, -2.1 * material_width, material_width]){ |
98 | cube([board_length + material_width, |
99 | 3.1 * material_width, |
100 | material_width]);} |
101 | translate(v = [0, -2.1 * material_width, 0]){ |
102 | cube([board_length + material_width, material_width, material_width]);} |
103 | translate(v = [-2.1 * material_width, 0, material_width]){ |
104 | cube([3.1 * material_width, |
105 | board_width + material_width, |
106 | material_width]);} |
107 | translate(v = [-2.1 * material_width, 0, 0]){ |
108 | cube([material_width, board_width+material_width, material_width]);}}} |