update puzzle to latest version to match solution instructions
[ozzloy@gmail.com/3d-printables] / crazyflie-2.0-housing.scad
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
12 $fn = 300;
13
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;
20
21 propeller_radius_measured = 46.35 / 2;
22 holder_wall_thickness = 1.2;
23 propeller_guard_wall_thickness = 1.2;
24
25 motor_diameter = 7;
26 motor_height_measured = 17;
27 motor_radius = motor_diameter / 2;
28
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); } } }
55
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);
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 */