Przeglądaj źródła

updates for giessomat

Thomas Buck 3 lat temu
rodzic
commit
c8300e3ba5

BIN
giessomat/bottlecap.stl Wyświetl plik


BIN
giessomat/hose_filter.stl Wyświetl plik


+ 2
- 2
giessomat/peristaltic-hose-fix.scad Wyświetl plik

@@ -56,5 +56,5 @@ module print() {
56 56
     }
57 57
 }
58 58
 
59
-//fix();
60
-print();
59
+fix();
60
+//print();

+ 192
- 0
giessomat/pipe-light.scad Wyświetl plik

@@ -0,0 +1,192 @@
1
+gap = 15;
2
+wall = 3;
3
+add_outlet = gap - wall;
4
+support = 2;
5
+tab_w = 8;
6
+tab_p = 2;
7
+tab_x = 2;
8
+tab_d = tab_w + tab_p;
9
+tab_h1 = 3.8;
10
+tab_h2 = 6;
11
+
12
+display = true;
13
+
14
+$fn = 42;
15
+
16
+module wall() {
17
+    difference() {
18
+        translate([-18, -50, -50])
19
+        cube([18, 100, 100]);
20
+        
21
+        translate([1, 0, 0])
22
+        rotate([0, -90, 0])
23
+        cylinder(d = 15, h = 20);
24
+    }
25
+}
26
+
27
+module prism(l, w, h) {
28
+    polyhedron(
29
+        points = [[0,0,0], [l,0,0], [l,w,0], [0,w,0], [0,w,h], [l,w,h]],
30
+        faces = [[0,1,2,3],[5,4,3,2],[0,4,5,1],[0,3,4],[5,2,1]]
31
+    );
32
+}
33
+
34
+module prism_arc(w, n = 5, d = 0.1) {
35
+    hull()
36
+    for (i = [0 : n]) {
37
+        rotate([0, 0, i / n * 90])
38
+        translate([0, w, 0])
39
+        rotate([0, 0, 180])
40
+        translate([-d / 2, 0, 0]) // TODO
41
+        prism(d, w, w);
42
+    }
43
+}
44
+
45
+module addition(h) {
46
+    translate([0, -wall, 0])
47
+    cube([gap + wall, wall, h]);
48
+    
49
+    translate([gap, 0, 0])
50
+    cube([wall, gap, h]);
51
+    
52
+    translate([0, gap, 0])
53
+    cube([gap + wall, wall, h]);
54
+    
55
+    translate([gap - support, gap, h])
56
+    rotate([90, 90, 0])
57
+    prism(h + wall + gap, support, support);
58
+    
59
+    translate([gap, support, h])
60
+    rotate([180, 90, 0])
61
+    prism(h + wall, support, support);
62
+    
63
+    translate([gap, 0, -wall])
64
+    rotate([0, -90, 0])
65
+    prism_arc(support);
66
+}
67
+
68
+module tab() {
69
+    difference() {
70
+        cube([tab_w, tab_d, tab_x]);
71
+        
72
+        translate([tab_w / 2, (tab_d - tab_p) / 2, -0.1])
73
+        cylinder(d1 = tab_h1, d2 = tab_h2, h = tab_x + 0.2);
74
+    }
75
+    
76
+    translate([0, tab_d - tab_p, tab_x])
77
+    prism(tab_w, tab_p, tab_p);
78
+    
79
+    for (i = [0 : 1])
80
+    translate([i * tab_w, 0, 0])
81
+    scale([i * 2 - 1, 1, 1]) {
82
+        translate([0, tab_d - tab_p, tab_x])
83
+        rotate([0, 90, 0])
84
+        prism(tab_x, tab_p, tab_p);
85
+        
86
+        translate([0, tab_d, tab_x])
87
+        rotate([90, 90, 0])
88
+        prism_arc(tab_p);
89
+    }
90
+}
91
+
92
+module block(base = true) {
93
+    //%translate([0, 0, wall])
94
+    //cube([gap, gap, gap]);
95
+    
96
+    if (base) {
97
+        cube([gap, gap, wall]);
98
+    } else {
99
+        cube([gap, gap + wall, wall]);
100
+    }
101
+    
102
+    if (base) {
103
+        translate([0, 0, wall + gap])
104
+        cube([gap, gap, wall]);
105
+    }
106
+    
107
+    if (base) {
108
+        translate([0, -wall, 0])
109
+        cube([gap, wall, gap + 2 * wall]);
110
+    } else {
111
+        translate([0, -wall, 0])
112
+        cube([gap, wall, gap + wall]);
113
+    }
114
+    
115
+    if (base) {
116
+        translate([gap, -wall, 0])
117
+        cube([wall, gap + wall, gap + 2 * wall]);
118
+    } else {
119
+        translate([gap, -wall, 0])
120
+        cube([wall, gap + wall * 2, gap + wall]);
121
+    }
122
+}
123
+
124
+module pipeblock() {
125
+    translate([0, -gap / 2, -gap / 2 - wall])
126
+    block();
127
+    
128
+    translate([0, gap * 3 / 2 + wall, -gap / 2])
129
+    rotate([90, 0, 0])
130
+    block(false);
131
+    
132
+    translate([0, gap / 2, gap / 2 + wall])
133
+    addition(add_outlet);
134
+    
135
+    translate([0, gap * 3 / 2 - support, -gap / 2])
136
+    prism(gap, support, support);
137
+    
138
+    translate([0, -gap / 2, -gap / 2 + support])
139
+    rotate([-90, 0, 0])
140
+    prism(gap, support, support);
141
+    
142
+    translate([0, -gap / 2 + support, gap / 2])
143
+    rotate([180, 0, 0])
144
+    prism(gap, support, support);
145
+    
146
+    translate([gap, gap / 2, gap / 2 - support])
147
+    rotate([90, 0, -90])
148
+    prism(gap, support, support);
149
+    
150
+    translate([gap, -gap / 2 + support, gap / 2])
151
+    rotate([90, 90, -90])
152
+    prism(gap, support, support);
153
+    
154
+    translate([gap, -gap / 2, -gap / 2 + support])
155
+    rotate([-90, 0, 90])
156
+    prism(gap * 2, support, support);
157
+    
158
+    if (add_outlet > 0) {
159
+        translate([0, gap / 2 - wall - support, gap / 2 + wall])
160
+        prism(gap + wall, support, support);
161
+    }
162
+    
163
+    translate([0, 0, tab_d + gap / 2 + wall])
164
+    rotate([-90, 0, -90])
165
+    tab();
166
+    
167
+    translate([0, -gap / 2 - tab_d - wall, tab_w / 2])
168
+    rotate([-90, 90, -90])
169
+    tab();
170
+    
171
+    translate([0, gap * 3 / 2 + wall + tab_d, tab_w / 2])
172
+    rotate([-90, -90, -90])
173
+    tab();
174
+    
175
+    translate([0, gap / 2 - tab_w / 2, -gap / 2 - wall - tab_d])
176
+    rotate([-90, 180, -90])
177
+    tab();
178
+}
179
+
180
+if (display) {
181
+    %wall();
182
+    
183
+    pipeblock();
184
+    
185
+    translate([-18, 0, 0])
186
+    rotate([-90, 180, 0])
187
+    pipeblock();
188
+} else {
189
+    translate([0, 0, gap + wall])
190
+    rotate([0, 90, 0])
191
+    pipeblock();
192
+}

BIN
giessomat/pipe-light.stl Wyświetl plik


+ 1
- 1
giessomat/valve-mount2.scad Wyświetl plik

@@ -85,5 +85,5 @@ module all_valves() {
85 85
     }
86 86
 }
87 87
 
88
-rotate([0, -90, 0])
88
+//rotate([0, -90, 0])
89 89
 all_valves();

Ładowanie…
Anuluj
Zapisz