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
9 // 3/16 inch in mm deck_depth = 4.7625;
10 // 1/4 inch in mm - a little to be a squeeze fit
11 deck_depth
= 6.35 - 0.4;
12 sonar_plate_width
= 20;
13 sonar_plate_length
= 45;
14 // sonar sensor measurements taken with calipers:
15 // 9.6 in between, 41.33 outside, 15.82 diameter
16 // measured diameter of 15.82 with calipers,
17 // but when printed ends up being too small
18 sonar_sensor_radius
= 15.82 / 2 + 0.3;
19 sonar_sensor_height
= 13.8;
20 between_sensor_centers
= 15.82 + 9.6;
22 sonar_holder_length
= sonar_plate_length
+ 10;
23 sonar_holder_width
= sonar_plate_width
+ 3;
24 sonar_holder_depth
= 3;
28 translate([between_sensor_centers
/ 2, 0, 0]){
29 cylinder(r
= sonar_sensor_radius
, h
= sonar_sensor_height
);}
30 translate([-between_sensor_centers
/ 2, 0, 0]){
31 cylinder(r
= sonar_sensor_radius
, h
= sonar_sensor_height
);}}
34 deck_holder_length
= 25;
35 deck_holder_width
= sonar_holder_width
;
36 cube([deck_holder_length
, deck_holder_width
, sonar_holder_depth
]);
37 translate([0, 0, sonar_holder_depth
]){
38 cube([deck_depth
, deck_holder_width
, deck_depth
]);
39 translate([0, 0, deck_depth
]){
40 cube([deck_holder_length
, deck_holder_width
, sonar_holder_depth
]);}}}
42 module
sonar_table_top_holder(){
45 cube([sonar_holder_length
, sonar_holder_width
, sonar_holder_depth
]);
46 translate([sonar_holder_length
, 0, 0]){
48 translate([between_sensor_centers
/ 2 + sonar_sensor_radius
+ 3,
49 sonar_holder_width
/ 2,
52 // cut out a bit of the circle to make it 3d printable,
54 translate([3 + sonar_sensor_radius
,
55 sonar_holder_width
- 3.025,
56 sonar_holder_depth
/ 2 - 0.025]){
57 cube([10, 6.1, sonar_holder_depth
+ .1], center
= true);
58 translate([between_sensor_centers
, 0, 0]){
59 cube([10, 6.1, sonar_holder_depth
+ .1], center
= true);}}}}
62 sonar_table_top_holder();}