-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTaranis_X9D_M9_Gimbal_Protector.scad
91 lines (73 loc) · 1.79 KB
/
Taranis_X9D_M9_Gimbal_Protector.scad
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
$fn = 32;
EPSILON = 0.001;
LARGE_ROUNDING_DIAM = 2;
BOTTOM_SECTION_HEIGHT = 4;
SUPPORT_WIDTH = 2.5;
STICK_HEIGHT = 32;
STICK_DIAM = 10;
STICK_GUARD_DIAM = 15;
OUTER_RING_WIDTH = 6;
GIMBAL_DIAM = 46;
CENTER_SQUARE_DIMS = [10, 10, 5];
module Cap(d)
{
intersection()
{
sphere(d=d);
cylinder(d=d, h=d/2);
}
}
module Cutout(h, d1, d2, d3)
{
difference()
{
intersection()
{
cylinder(h=h, d=d2);
translate([d1 / 2, d1 / 2, 0])
cube([d2, d2, h]);
}
cylinder(h=h, d=d3);
}
}
difference()
{
minkowski()
{
difference()
{
hull()
{
cylinder(h=BOTTOM_SECTION_HEIGHT - (LARGE_ROUNDING_DIAM / 2), d=GIMBAL_DIAM - LARGE_ROUNDING_DIAM);
translate([0, 0, STICK_HEIGHT - 5 - (LARGE_ROUNDING_DIAM / 2)])
cylinder(h=BOTTOM_SECTION_HEIGHT, d=STICK_GUARD_DIAM - LARGE_ROUNDING_DIAM);
}
union()
{
cylinder(h=STICK_HEIGHT, d=STICK_DIAM + LARGE_ROUNDING_DIAM);
for(a=[0, 90, 180, 270])
{
rotate([0, 0, a])
{
Cutout(100, SUPPORT_WIDTH - (LARGE_ROUNDING_DIAM / 2), GIMBAL_DIAM - OUTER_RING_WIDTH, STICK_GUARD_DIAM - (LARGE_ROUNDING_DIAM / 2));
translate([0, 0, BOTTOM_SECTION_HEIGHT])
Cutout(100, SUPPORT_WIDTH - (LARGE_ROUNDING_DIAM / 2), GIMBAL_DIAM, STICK_GUARD_DIAM - (LARGE_ROUNDING_DIAM / 2));
}
}
}
}
Cap(LARGE_ROUNDING_DIAM);
}
translate([0, 0, CENTER_SQUARE_DIMS[2] / 2])
rotate([0, 0, 45])
cube(CENTER_SQUARE_DIMS, center=true);
}
/* Markers */
color("cyan", alpha=0.5)
{
/* cylinder(d=STICK_DIAM, h=STICK_HEIGHT); */
/* translate([0, 0, -2]) */
/* cylinder(d=GIMBAL_DIAM, h=1); */
/* translate([0, 0, STICK_HEIGHT + 1]) */
/* cylinder(d=STICK_GUARD_DIAM, h=1); */
}