-
Notifications
You must be signed in to change notification settings - Fork 0
/
Tube_Insert.scad
67 lines (56 loc) · 2.87 KB
/
Tube_Insert.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
//This work by Eric Bissonnette is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/.
// Primary parameters
tube_length = 80;
tube_width = 40;
tube_wall_thickness = 1;
// The rest
sole_thickness = 4;
sole_corner_radius = 1;
rib_count = 4;
rib_offset = 2;
rib_width = 2;
rib_min_thickness = 0.5;
rib_max_thickness = 4;
rib_wall_thickness = 2;
sole_width = tube_width;
sole_length = tube_length;
rib_height = rib_offset + rib_max_thickness;
// Sole
hull() {
translate([sole_corner_radius, sole_corner_radius, 0])
cube([sole_length - (2 * sole_corner_radius), sole_width - (2 * sole_corner_radius), sole_thickness]);
for (i = [[sole_corner_radius, sole_corner_radius, sole_corner_radius],
[sole_length - sole_corner_radius, sole_corner_radius, sole_corner_radius],
[sole_corner_radius, sole_width - sole_corner_radius, sole_corner_radius],
[sole_length - sole_corner_radius, sole_width - sole_corner_radius, sole_corner_radius]]) {
translate(i)
cylinder(sole_thickness - sole_corner_radius, sole_corner_radius, $fn = 16);
translate(i)
sphere(sole_corner_radius, $fn = 16);
}
}
// Insert
module rib() {
difference()
{
union() {
translate([tube_wall_thickness + rib_width, tube_wall_thickness + rib_width, 0])
cube([sole_length - (2 * tube_wall_thickness) - (2 * rib_width), sole_width - (2 * tube_wall_thickness) - (2 * rib_width), rib_offset]);
hull() {
translate([tube_wall_thickness + (2 * rib_width), tube_wall_thickness, rib_offset + (rib_max_thickness / 2)])
cube([sole_length - (2 * tube_wall_thickness) - (4 * rib_width), sole_width - (2 * tube_wall_thickness), rib_min_thickness]);
translate([tube_wall_thickness, tube_wall_thickness + (2 * rib_width), rib_offset + (rib_max_thickness / 2)])
cube([sole_length - (2 * tube_wall_thickness), sole_width - (2 * tube_wall_thickness) - (4 * rib_width), rib_min_thickness]);
translate([tube_wall_thickness + rib_width, tube_wall_thickness + rib_width, rib_offset])
cube([sole_length - (2 * tube_wall_thickness) - (2 * rib_width), sole_width - (2 * tube_wall_thickness) - (2 * rib_width), rib_max_thickness]);
}
}
translate([tube_wall_thickness + rib_width + rib_wall_thickness, tube_wall_thickness + rib_width + rib_wall_thickness, 0])
cube([sole_length - (2 * tube_wall_thickness) - (2 * rib_width) - (2 * rib_wall_thickness), sole_width - (2 * tube_wall_thickness) - (2 * rib_width) - (2 * rib_wall_thickness), rib_height]);
}
}
for (i = [0:rib_count - 1])
{
translate([0,0,sole_thickness + (i * rib_height)])
rib();
}