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