-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathlanding gear.scad
82 lines (67 loc) · 1.73 KB
/
landing gear.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
include <_setup.scad>;
module shape_landing_gear(
boom_dim = BOOM_DIM,
frame_clamp_depth = FRAME_CLAMP_DEPTH,
frame_clamp_thickness = FRAME_CLAMP_THICKNESS,
frame_clamp_width = FRAME_CLAMP_WIDTH,
depth = LG_DEPTH,
h = LG_HEIGHT,
thickness = LG_THICKNESS,
) {
inset_bot = thickness;
y = boom_dim[2] + TOLERANCE_FIT * 2;
clamp_thickness = frame_clamp_thickness + frame_clamp_depth;
clamp_width = boom_dim[1] + TOLERANCE_CLOSE * 2 + frame_clamp_width * 2;
width = clamp_width + TOLERANCE_FIT * 2 + thickness;// * 2;
module boom() {
square([
boom_dim[1] + TOLERANCE_FIT * 2,
boom_dim[2] + TOLERANCE_FIT * 2], true);
}
module boom_clamp(width = clamp_width) {
translate([0, -boom_dim[2] / 2])
square([width, clamp_thickness], true);
}
module surround() {
translate([0, -boom_dim[2] / 2])
hull()
reflect()
translate([boom_dim[1] / 2 + frame_clamp_width, frame_clamp_depth])
circle(width / 4);
}
difference() {
// leg
hull() {
surround();
translate([0, -(y / 2 + h + thickness / 2)])
square(thickness, true);
}
boom();
boom_clamp();
// ease clip entry
translate([0, clamp_thickness - thickness])
hull() {
translate([0, clamp_thickness])
boom_clamp();
boom_clamp(width = boom_dim[1] + TOLERANCE_FIT * 2);
}
}
}
module landing_gear(
depth = LG_DEPTH,
h = LG_HEIGHT,
strut_dim = STRUT_DIM,
thickness = LG_THICKNESS,
width = LG_WIDTH,
) {
intersection() {
linear_extrude(width, center = true, convexity = 2)
shape_landing_gear();
// round bottom
hull()
reflect(x = false)
translate([0, -((strut_dim[2] + (TOLERANCE_FIT + thickness) * 2) / 2 + h - width / 2)])
rotate([0, 90])
cylinder_true(h = depth * 2, r = width / 2, center = true, $fn = 8);
}
}