df8e764d |
1 | /* GNU AGPLv3 (or later at your option) |
2 | see bottom for more license info */ |
3 | |
4 | /* protective housing for crazyflie 2.0. |
5 | |
6 | reinforce the arms so they do not snap. |
7 | |
8 | keep the props up high so they do not get hairs from the ground |
9 | wrapped around the motor shaft. |
10 | */ |
11 | |
eace0c6c |
12 | $fn = 300; |
df8e764d |
13 | |
eace0c6c |
14 | // propeller diameter was measured with calipers |
15 | propeller_radius = 46.35 / 2; |
16 | // 7mm from spec |
17 | motor_grippable_height = 8; |
18 | motor_gripper_height = motor_grippable_height / 2; |
19 | holder_height = motor_grippable_height * 1.1; |
df8e764d |
20 | |
eace0c6c |
21 | propeller_radius_measured = 46.35 / 2; |
22 | holder_wall_thickness = 1.2; |
23 | propeller_guard_wall_thickness = 1.2; |
b2b49e2c |
24 | |
eace0c6c |
25 | motor_diameter = 7; |
26 | motor_height_measured = 17; |
27 | motor_radius = motor_diameter / 2; |
b2b49e2c |
28 | |
eace0c6c |
29 | module propeller_protector(motor_radius, |
30 | holder_wall_thickness, |
31 | propeller_guard_wall_thickness, |
32 | motor_gripper_height, |
33 | holder_height, |
34 | propeller_radius) { |
35 | propeller_guard_inner_radius = propeller_radius + 1.5; |
36 | holder_outer_radius = motor_radius + holder_wall_thickness; |
37 | number_of_arms = 3; |
38 | linear_extrude(height = motor_gripper_height) { |
39 | // part that holds the motor |
40 | difference() { |
41 | circle(r = holder_outer_radius); |
42 | circle(r = motor_radius); } |
43 | for(arm_number = [0: (number_of_arms - 1)]) { |
44 | rotate(arm_number * (360 / number_of_arms)) { |
45 | translate([-propeller_guard_inner_radius, |
46 | -holder_wall_thickness / 2]) { |
47 | square([propeller_guard_inner_radius - motor_radius, |
48 | holder_wall_thickness]); } } } } |
49 | // prop protector |
50 | linear_extrude(height = holder_height) { |
51 | difference() { |
52 | circle(propeller_guard_inner_radius + |
53 | propeller_guard_wall_thickness); |
54 | circle(propeller_guard_inner_radius); } } } |
cfa97e05 |
55 | |
eace0c6c |
56 | propeller_protector(motor_radius, |
57 | holder_wall_thickness, |
58 | propeller_guard_wall_thickness, |
59 | motor_gripper_height, |
60 | holder_height, |
61 | propeller_radius_measured); |
df8e764d |
62 | |
63 | /* |
64 | This file is part of 3d-printables. |
65 | |
66 | 3d-printables is free software: you can redistribute it and/or modify |
67 | it under the terms of the GNU Affero General Public License as published by |
68 | the Free Software Foundation, either version 3 of the License, or |
69 | (at your option) any later version. |
70 | |
71 | 3d-printables is distributed in the hope that it will be useful, |
72 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
73 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
74 | GNU Affero General Public License for more details. |
75 | |
76 | You should have received a copy of the GNU Affero General Public License |
77 | along with challenge-bot. If not, see <http://www.gnu.org/licenses/>. |
78 | */ |