-
Notifications
You must be signed in to change notification settings - Fork 1
/
temp_tower.scad
89 lines (67 loc) · 2.59 KB
/
temp_tower.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
/*
parametric temp tower - http://fns.csokolade.hu
Use tempInjector.py from https://github.com/fablabnbg/tronxy-xy100 to inject temperatures into generated GCODE file.
tempInjector.py parameters used in this temp_tower.scad file:
STARTTEMP = temp (240)
TEMP_INCREMENTS = inc (-5)
TEMP_STEPS_HEIGHT_MM = z_bridgesole (2)
BASE_HEIGHT_MM = z_sole (10)
*/
// temp tower steps
temp = 240;
inc = -5;
steps = 8;
// bottom sole:
x_sole = 80;
y_sole = 20;
z_sole = 2;
// pillars with bridge soles
xygap_pillars = 4;
xy_pillars = y_sole - 2 * xygap_pillars;
xygap_bridgesole = 2;
xy_bridgesole = y_sole - 2 * xygap_bridgesole;
z_bridgesole = 10;
// bridge definition
gap_bridge = 1; //
zgap_bridge = 2; // gap between bridge soles
z_bridge = z_bridgesole + zgap_bridge;
xz_support = 6;
y_plank = 8;
z_plank = 2;
union() {
// tower sole
linear_extrude(height=z_sole) square(size=[x_sole, y_sole]);
// left pillar
translate([4, 4, 0]) linear_extrude(height=steps * (z_bridge + gap_bridge)) square(size=[xy_pillars, xy_pillars]);
// right pillar
translate([x_sole - xy_pillars - 4, 4, 0]) linear_extrude(height=steps * (z_bridge + gap_bridge)) square(size=[xy_pillars, xy_pillars]);
// ladder
for (i = [0 : steps]) {
// left bridge sole with numbers
difference() {
translate([(y_sole - xy_bridgesole) / 2, (y_sole - xy_bridgesole) / 2, z_sole + i * z_bridge]) leg(); // left
translate([(y_sole - xy_bridgesole) / 2 + 1, (y_sole - xy_bridgesole) / 2+2, z_sole + i * z_bridge +2]) {
// title
rotate([90, 0, 0]) linear_extrude(3) text(str(temp + i * inc), size = 6);
}
}
// right bridge sole
translate([x_sole - xy_bridgesole - (y_sole - xy_bridgesole) / 2, (y_sole - xy_bridgesole) / 2, z_sole + i * z_bridge]) leg(); // right
// bridge
//translate([xy_bridgesole + xygap_bridgesole, 0, (i+1)*z_bridge - 4]) bridge(i);
translate([xygap_bridgesole + xy_bridgesole, y_sole / 2- xy_bridgesole/2 , (i+1)*z_bridge - 4]) bridge(i);
}
}
module leg() {
linear_extrude(height = z_bridgesole) square(size = [xy_bridgesole, xy_bridgesole]);
}
module bridge(i) {
x_bridge = x_sole - 2 * xy_bridgesole - 2 * xygap_bridgesole;
x_plank = x_bridge - xz_support;
// left mount
rotate([-90,0,0]) linear_extrude(height = xy_bridgesole) polygon(points=[[0, 0], [xz_support,0], [0,xz_support]]);
// right mount
translate([x_plank,0,0]) rotate([-90,0,0]) linear_extrude(height=xy_bridgesole) polygon(points=[[0, 0], [xz_support, xz_support], [xz_support,0]]);
// bridge
translate([(x_bridge - x_plank)/2, (xy_bridgesole-y_plank)/2, 0]) linear_extrude(height=z_plank) square(size=[x_plank, y_plank]);
}