/* Talks am Mittwoch, 14. August 2024, ab 19:00 */
[stratum0-wiki.git] / Gesellschaftsspiel-Replikator%2FW6_V1.1.mw
1 Mal ein flexibleres Angebot. Dürfte sich selbst erklären. Voreingestellt ist ein Teil, bei dem man sieht, was so ungefähr geht und kein sinnvoller Würfel. Alle bisher diskutierten Würfel mit Ausnahme der Farbwürfel lassen sich so realisieren. Auch der Würfel aus V1 ist noch möglich. Leider noch nichts testgedruckt. Mir fehlt hier noch die Möglichkeit. Kommentare sind willkommen. Ein Kubator-Modul für den Gesellschaftsspiel-Replikator könnte die Zahlen am Anfang einstellen. Das dürfte programmtechnisch nicht allzu aufwendig sein.
2
3 == Neuerungen Version 1.12 ==
4
5 * Bugfixes
6 * Neue Seitenvorschläge (Dreieck, Fünfeck, Sechseck, Siebeneck, Achteck)
7 * Neue Ausschnittsmöglichkeiten (Dreieck, Fünfeck, Sechseck, Siebeneck, Achteck)
8
9 <pre>
10
11 // Kubator 1.12
12 // Würfel massiv drucken, um möglichst faire Würfel zu erhalten!
13
14 // Individuelle Einstellungen (die Zahlen können verändert werden, um den Würfel individuellen Wünschen anzupassen)
15
16 kante=20; // Kantenlänge des Würfels (in mm)
17 // typisch sind 20 mm oder 25 mm
18
19 // mögliches Aussehen der Seiten
20 // 0 glatte Seite
21 // 1 1 kegliger Punkt
22 // 2 2 keglige Punkte
23 // 3 3 keglige Punkte
24 // 4 4 keglige Punkte
25 // 5 5 keglige Punkte
26 // 6 6 keglige Punkte
27 // 7 taktiler Strich
28 // 8 taktiles Plus
29 // 9 taktiler Schrägstrich
30 // 10 Quadratischer Ausschnitt
31 // 11 1 Auge
32 // 12 2 Augen
33 // 13 3 Augen
34 // 14 4 Augen
35 // 15 5 Augen
36 // 16 6 Augen
37 // 17 Ausgeschnittener Strich
38 // 18 Ausgeschnittenes Plus-Zeichen
39 // 19 Ausgeschnittener Schrägstrich
40 // 20 Kreisförmiger Ausschnitt
41 // 21 1 kugliger Punkt
42 // 22 2 kuglige Punkte
43 // 23 3 kuglige Punkte
44 // 24 4 kuglige Punkte
45 // 25 5 kuglige Punkte
46 // 26 6 kuglige Punkte
47 // 27 taktiles Quadrat
48 // 28 Dreieckiger Ausschnitt
49 // 29 Fünfeckiger Ausschnitt
50 // 30 ausgeschnittenes X
51 // 31 taktiles X
52 // 32 taktiler Kreis
53 // 33 ausgeschnittener Stern
54 // 34 taktiler Stern
55 // 35 Sechseckiger Ausschnitt
56 // 36 Siebeneckiger Ausschnitt
57 // 37 Achteckiger Ausschnitt
58 // 38 Taktiles Dreieck
59 // 39 Taktiler Fünfeck
60 // 40 Taktiles Sechseck
61 // 41 Taktiles Siebeneck
62 // 42 Taktiles Achteck
63
64 // hier die Nummern der gewünschten Seiten eintragen
65 seite_unten = 16;
66 seite_oben = 17;
67 seite_links = 31;
68 seite_rechts = 6;
69 seite_vorne = 0;
70 seite_hinten = 26;
71
72 abgerundet = 1; // Aussehen des Würfelkörpers
73 // Werte ganzahlig von 0 bis 4
74 // 0 = keine Abrundung der Ecken und Kanten
75 // 1 = Ecken und Kanten sind abgerundet
76 // 2 = nur Ecken sind abgerundet
77 // 3 = Ecken und Kanten fehlen
78 // 4 = Ecken fehlen, Kanten sind abgerundet
79
80 abrundungsgroesse = 0.7; // je kleiner desto runder (0.55 <= abrundungsgroesse <= 1.0)
81
82 koerperfarbe = "white"; // Farbe des Würfelkörper
83 kerbenfarbe = "white"; // Farbe der Ausschnitte
84 augenfarbe = "black"; // Farbe der Augen
85 punktfarbe = "black"; // Farbe der taktilen Punkte
86
87 ausschnittstyp = 1; // 1 = quadratischer Ausschnitt
88 // 2 = kreisförmiger Ausschnitt
89 // n (n > 2) = n-eckiger Ausschnitt
90
91 kerbe = 2; // Tiefe der ausgeschnittenen Bereiche (in mm)
92 ausschnitt = 13; // Seitenlänge der ausgeschnittenen Bereiche bei quadratischem Ausschnitt(in mm)
93 kreisdurchmesser = 7.5; // Durchmesser des Kreises bei kreisförmigem Ausschnitt (in mm)
94
95 abstand_kegelpunkte=4; // Abstand der erhabenen kegligen Punkte (in mm)
96 basis_kegelpunkte=1.5; // Basisdurchmesser der erhabenen kegligen Punkte (in mm)
97 kegelspitze=1; // Spitzheit der erhabenen kegligen Punkte (in mm)
98 // 0 = Kegel,
99 // > 0 Kegelstumpf
100 // Zylinder, wenn gleicher Wert wie basis_kegelpunkte
101
102 abstand_kugelpunkte=4; // Abstand der kugligen Punkte (in mm
103 basis_kugelpunkte=1; // Basisdurchmesser der erhabenen kugligen Punkte (in mm)
104 // wird auf kerbe gesetzt, wenn er kleiner als diese Tiefe
105
106 augenabstand=4.5; // Abstand der Augen von der Mitte der Seiten (in mm) bei Seiten 11 bis 16
107 d_auge=3.5; // Durchmesser der Augen (in mm) bei Seiten 11 bis 16
108
109 strichdicke = 2.5; // Dicke des Striches bei Seiten 7 - 9,17 - 19, 30, 31, 33, 34
110 strichlaenge = 11; // Länge des Striches bei Seiten 7 - 9,17 - 19, 30, 31, 33, 34
111 ringgroesse = 10; // Durchmesser des inneren Kreises bei Seite 32 (in mm)
112 quadgroesse = 8; // Seitenlänge des inneren Quadrates bei Seite 27 (in mm)
113
114 //$fn = 70; // je größer desto genauer der Würfel
115 // je größer desto langsamer die Berechnung
116 // für Testzwecke auskommentieren
117
118 // Kopierbereich (hier fertige Vorlagen hineinkopieren)
119
120
121
122 // Ende Kopierbereich
123
124
125 // Ende der individuellen Einstellungen
126 // ab hier nichts verändern
127
128 r=-kante/2;
129 r2=(d_auge/2);
130 tiefe = kerbe * 2;
131 punktpos=kante/2-kerbe;
132
133
134 main();
135
136 module body_intersection (body_intersection_size) {
137 difference () {
138 intersection() {
139 color(koerperfarbe) cube(size=kante,center=true);
140 color(koerperfarbe) sphere(r=kante*body_intersection_size, center=true);
141 }
142 color(augenfarbe) CutDice();
143 }
144 }
145
146 module body_union_ecken(kante_kl,eckradius) {
147 halbe_kante = kante_kl /2;
148 for(r = [0:90:270])
149 rotate([0,r,0])
150 for(y = [halbe_kante,-halbe_kante])
151 translate([halbe_kante,y,halbe_kante])
152 sphere(eckradius,center=true);
153 }
154
155 module body_union_kanten(kante_kl, eckradius) {
156 halbe_kante = kante_kl /2;
157 for(r = [0:90:270])
158 rotate([0,r,0])
159 for(y = [halbe_kante,-halbe_kante])
160 translate([halbe_kante,y,0])
161 cylinder(kante_kl,eckradius,eckradius,center=true);
162 for(r = [0:90:270])
163 rotate([0,r,0])
164 translate([halbe_kante,0,halbe_kante])
165 rotate([90,0,0])
166 cylinder(kante_kl,eckradius,eckradius,center=true);
167 }
168
169 module body_union_seiten(kante_kl, eckradius) {
170 for(r = [0:90:270])
171 rotate([0,r,0])
172 translate([eckradius,0,0])
173 cube([kante_kl,kante_kl,kante_kl],center=true);
174 for(y = [eckradius,-eckradius])
175 translate([0,y,0])
176 cube([kante_kl,kante_kl,kante_kl],center=true);
177 }
178
179
180 module body_union(body_union_size)
181
182 {
183 kante_kl = kante * body_union_size;
184 eckradius = (kante - kante_kl) / 2;
185 difference () {
186 union()
187 {
188 body_union_ecken(kante_kl,eckradius);
189 body_union_kanten(kante_kl,eckradius);
190 body_union_seiten(kante_kl,eckradius);
191 }
192 color(augenfarbe) CutDice();
193 }
194 }
195
196 module body_union_ohne_ecken(body_union_size)
197
198 {
199 kante_kl = kante * body_union_size;
200 eckradius = (kante - kante_kl) / 2;
201 difference () {
202 union()
203 {
204 body_union_kanten(kante_kl,eckradius);
205 body_union_seiten(kante_kl,eckradius);
206 }
207 color(augenfarbe) CutDice();
208 }
209 }
210
211 module body_union_ohne_ecken_und_kanten(body_union_size)
212
213 {
214 kante_kl = kante * body_union_size;
215 eckradius = (kante - kante_kl) / 2;
216 difference () {
217 union()
218 {
219 body_union_seiten(kante_kl,eckradius);
220 }
221 color(augenfarbe) CutDice();
222 }
223 }
224
225 module main() {
226 if (abgerundet == 0) body_intersection (1.0);
227 if (abgerundet == 1) body_union (abrundungsgroesse);
228 if (abgerundet == 2) body_intersection (abrundungsgroesse);
229 if (abgerundet == 3) body_union_ohne_ecken_und_kanten (abrundungsgroesse);
230 if (abgerundet == 4) body_union_ohne_ecken (abrundungsgroesse);
231
232 color(punktfarbe) AddPoints();
233 }
234
235 module cut_quad () {
236 translate ([0,0,-kante/2]) cube([ausschnitt, ausschnitt, tiefe],center=true);
237 }
238
239 module cut_circle (n=0) {
240 if (n == 0) {
241 translate ([0,0,-kante/2]) cylinder(tiefe,kreisdurchmesser,kreisdurchmesser, center=true);
242 }
243 if (n > 0) {
244 translate ([0,0,-kante/2]) cylinder(tiefe,kreisdurchmesser,kreisdurchmesser, center=true, $fn=n);
245 }
246
247 }
248
249 module cut_strich () {
250 translate ([0,0,-kante/2]) cube([strichlaenge, strichdicke, tiefe],center=true);
251 }
252
253 module cut_slash () {
254 translate ([0,0,-kante/2]) rotate([0,0,-45]) cube([strichlaenge, strichdicke, tiefe],center=true);
255 }
256
257 module cut_star () {
258 translate ([0,0,-kante/2]) cube([strichlaenge, strichdicke, tiefe],center=true);
259 translate ([0,0,-kante/2]) cube([strichdicke, strichlaenge, tiefe],center=true);
260 translate ([0,0,-kante/2]) rotate([0,0,-45]) cube([strichlaenge, strichdicke, tiefe],center=true);
261 translate ([0,0,-kante/2]) rotate([0,0,45]) cube([strichlaenge, strichdicke, tiefe],center=true);
262 }
263
264 module cut_x () {
265 translate ([0,0,-kante/2]) rotate([0,0,-45]) cube([strichlaenge, strichdicke, tiefe],center=true);
266 translate ([0,0,-kante/2]) rotate([0,0,45]) cube([strichlaenge, strichdicke, tiefe],center=true);
267 }
268
269 module cut_plus () {
270 translate ([0,0,-kante/2]) cube([strichlaenge, strichdicke, tiefe],center=true);
271 translate ([0,0,-kante/2]) cube([strichdicke, strichlaenge, tiefe],center=true);
272 }
273
274
275 module cut_pips1 () {
276 translate([0,0,r]) sphere(r=r2*1.4, center=true);
277 }
278
279 module cut_pips2 () {
280 translate([-augenabstand,augenabstand,r]) sphere(r=r2, center=true);
281 translate([augenabstand,-augenabstand,r]) sphere(r=r2, center=true);
282 }
283
284 module cut_pips3 () {
285 translate([-augenabstand,augenabstand,r]) sphere(r=r2, center=true);
286 translate([0,0,r]) sphere(r=r2, center=true);
287 translate([augenabstand,-augenabstand,r]) sphere(r=r2, center=true);
288 }
289
290 module cut_pips4 () {
291 translate([-augenabstand,augenabstand,r]) sphere(r=r2, center=true);
292 translate([augenabstand,-augenabstand,r]) sphere(r=r2, center=true);
293 translate([augenabstand,augenabstand,r]) sphere(r=r2, center=true);
294 translate([-augenabstand,-augenabstand,r]) sphere(r=r2, center=true);
295 }
296
297 module cut_pips5 () {
298 translate([-augenabstand,augenabstand,r]) sphere(r=r2, center=true);
299 translate([augenabstand,-augenabstand,r]) sphere(r=r2, center=true);
300 translate([0,0,r]) sphere(r=r2, center=true);
301 translate([augenabstand,augenabstand,r]) sphere(r=r2, center=true);
302 translate([-augenabstand,-augenabstand,r]) sphere(r=r2, center=true);
303 }
304
305 module cut_pips6 () {
306 translate([-augenabstand,augenabstand,r]) sphere(r=r2, center=true);
307 translate([augenabstand,-augenabstand,r]) sphere(r=r2, center=true);
308 translate([-augenabstand,0,r]) sphere(r=r2, center=true);
309 translate([augenabstand,0,r]) sphere(r=r2, center=true);
310 translate([augenabstand,augenabstand,r]) sphere(r=r2, center=true);
311 translate([-augenabstand,-augenabstand,r]) sphere(r=r2, center=true);
312 }
313
314 module add_strich () {
315 translate ([0,0,-kante/2+kerbe]) cube([strichlaenge, strichdicke, tiefe],center=true);
316 }
317
318 module add_star () {
319 translate([0,0,-kante/2+kerbe]) cube([strichlaenge, strichdicke, tiefe],center=true);
320 translate([0,0,-kante/2+kerbe]) cube([strichdicke, strichlaenge, tiefe],center=true);
321 translate([0,0,-kante/2+kerbe]) rotate([0,0,-45]) cube([strichlaenge, strichdicke, tiefe],center=true);
322 translate([0,0,-kante/2+kerbe]) rotate([0,0,45]) cube([strichlaenge, strichdicke, tiefe],center=true);
323 }
324
325 module add_plus () {
326 translate([0,0,-kante/2+kerbe]) cube([strichlaenge, strichdicke, tiefe],center=true);
327 translate([0,0,-kante/2+kerbe]) cube([strichdicke, strichlaenge, tiefe],center=true);
328 }
329
330
331
332 module add_slash () {
333 translate([0,0,-kante/2+kerbe]) rotate([0,0,-45]) cube([strichlaenge, strichdicke, tiefe],center=true);
334 }
335
336 module add_x () {
337 translate([0,0,-kante/2+kerbe]) rotate([0,0,-45]) cube([strichlaenge, strichdicke, tiefe],center=true);
338 translate([0,0,-kante/2+kerbe]) rotate([0,0,45]) cube([strichlaenge, strichdicke, tiefe],center=true);
339 }
340
341 module add_ring () {
342 translate([0,0,r]) cylinder(tiefe,ringgroesse/2,ringgroesse/2,center=false);
343 }
344
345 module add_prisma (n=3) {
346 groesse = strichlaenge / 2.3;
347 translate([0,0,-kante/2+kerbe]) cylinder(tiefe,groesse,groesse,center=true,$fn=n);
348 }
349
350 module add_quad () {
351 translate([0,0,-tiefe]) cube([quadgroesse, quadgroesse, 3*tiefe],center=true);
352 // translate([0,0,r]) cube(tiefe,35,35,center=true);
353 }
354
355 module add_sphere1 () {
356 hoehe = kerbe;
357 rho = min (basis_kugelpunkte / 2, hoehe);
358 radius = max((pow(hoehe,2) + pow(rho,2)) / (2 * hoehe),hoehe);
359
360 translate([0,0,r+hoehe]) sphere(r=radius, center=true);
361 }
362
363 module add_sphere2 () {
364 hoehe = kerbe;
365 rho = min (basis_kugelpunkte / 2, hoehe);
366 radius = max((pow(hoehe,2) + pow(rho,2)) / (2 * hoehe),hoehe);
367 translate([-abstand_kugelpunkte,abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true);
368 translate([abstand_kugelpunkte,-abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true);
369 }
370
371 module add_sphere3 () {
372 hoehe = kerbe;
373 rho = min (basis_kugelpunkte / 2, hoehe);
374 radius = max((pow(hoehe,2) + pow(rho,2)) / (2 * hoehe),hoehe);
375 translate([-abstand_kugelpunkte,abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true);
376 translate([0,0,r+hoehe]) sphere(r=radius, center=true);
377 translate([abstand_kugelpunkte,-abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true);
378 }
379 module add_sphere4 () {
380 hoehe = kerbe;
381 rho = min (basis_kugelpunkte / 2, hoehe);
382 radius = max((pow(hoehe,2) + pow(rho,2)) / (2 * hoehe),hoehe);
383
384 translate([-abstand_kugelpunkte,abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true);
385 translate([abstand_kugelpunkte,-abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true);
386 translate([abstand_kugelpunkte,abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true);
387 translate([-abstand_kugelpunkte,-abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true);
388
389 }
390 module add_sphere5 () {
391 hoehe = kerbe;
392 rho = min (basis_kugelpunkte / 2, hoehe);
393 radius = max((pow(hoehe,2) + pow(rho,2)) / (2 * hoehe),hoehe);
394 translate([-abstand_kugelpunkte,abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true);
395 translate([abstand_kugelpunkte,-abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true);
396 translate([0,0,r+hoehe]) sphere(r=radius, center=true);
397 translate([abstand_kugelpunkte,abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true);
398 translate([-abstand_kugelpunkte,-abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true);
399 }
400 module add_sphere6 () {
401 hoehe = kerbe;
402 rho = min (basis_kugelpunkte / 2, hoehe);
403 radius = max((pow(hoehe,2) + pow(rho,2)) / (2 * hoehe),hoehe);
404 translate([-abstand_kugelpunkte,abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true);
405 translate([abstand_kugelpunkte,-abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true);
406 translate([-abstand_kugelpunkte,0,r+hoehe]) sphere(r=radius, center=true);
407 translate([abstand_kugelpunkte,0,r+hoehe]) sphere(r=radius, center=true);
408 translate([abstand_kugelpunkte,abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true);
409 translate([-abstand_kugelpunkte,-abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true);
410 }
411
412
413 module add_pips1 () {
414 translate([0,0,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
415 }
416
417 module add_pips2 () {
418 translate([-abstand_kegelpunkte,abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
419 translate([abstand_kegelpunkte,-abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
420 }
421
422 module add_pips3 () {
423 translate([-abstand_kegelpunkte,abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
424 translate([0,0,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
425 translate([abstand_kegelpunkte,-abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
426 }
427
428 module add_pips4 () {
429 translate([-abstand_kegelpunkte,abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
430 translate([abstand_kegelpunkte,-abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
431 translate([abstand_kegelpunkte,abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
432 translate([-abstand_kegelpunkte,-abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
433 }
434
435 module add_pips5 () {
436 translate([-abstand_kegelpunkte,abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
437 translate([abstand_kegelpunkte,-abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
438 translate([0,0,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
439 translate([abstand_kegelpunkte,abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
440 translate([-abstand_kegelpunkte,-abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
441 }
442
443 module add_pips6 () {
444 translate([-abstand_kegelpunkte,abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
445 translate([abstand_kegelpunkte,-abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
446 translate([-abstand_kegelpunkte,0,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
447 translate([abstand_kegelpunkte,0,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
448 translate([abstand_kegelpunkte,abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
449 translate([-abstand_kegelpunkte,-abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
450 }
451
452 module make_ausschnitt () {
453 if (ausschnittstyp == 1) color(kerbenfarbe) cut_quad ();
454 if (ausschnittstyp == 2) color(kerbenfarbe) cut_circle ();
455 if (ausschnittstyp > 2) color(kerbenfarbe) cut_circle (n=ausschnittstyp);
456 }
457
458
459 module cut_weiche(variant) {
460 if (variant == 1) make_ausschnitt();
461 if (variant == 2) make_ausschnitt();
462 if (variant == 3) make_ausschnitt();
463 if (variant == 4) make_ausschnitt();
464 if (variant == 5) make_ausschnitt();
465 if (variant == 6) make_ausschnitt();
466 if (variant == 7) make_ausschnitt();
467 if (variant == 8) make_ausschnitt();
468 if (variant == 9) make_ausschnitt();
469 if (variant == 10) cut_quad ();
470 if (variant == 11) cut_pips1 (); // 1 Auge
471 if (variant == 12) cut_pips2 (); // 2 Augen
472 if (variant == 13) cut_pips3 (); // 3 Augen
473 if (variant == 14) cut_pips4 (); // 4 Augen
474 if (variant == 15) cut_pips5 (); // 5 Augen
475 if (variant == 16) cut_pips6 (); // 6 Augen
476 if (variant == 17) cut_strich ();
477 if (variant == 18) cut_plus ();
478 if (variant == 19) cut_slash ();
479 if (variant == 20) cut_circle ();
480 if (variant == 21) make_ausschnitt();
481 if (variant == 22) make_ausschnitt();
482 if (variant == 23) make_ausschnitt();
483 if (variant == 24) make_ausschnitt();
484 if (variant == 25) make_ausschnitt();
485 if (variant == 26) make_ausschnitt();
486 if (variant == 27) make_ausschnitt();
487 if (variant == 28) cut_circle (n=3);
488 if (variant == 29) cut_circle (n=5);
489 if (variant == 30) cut_x ();
490 if (variant == 31) make_ausschnitt();
491 if (variant == 32) make_ausschnitt();
492 if (variant == 33) cut_star ();
493 if (variant == 34) make_ausschnitt();
494 if (variant == 35) cut_circle (n=6);
495 if (variant == 36) cut_circle (n=7);
496 if (variant == 37) cut_circle (n=8);
497 if (variant == 38) make_ausschnitt();
498 if (variant == 39) make_ausschnitt();
499 if (variant == 40) make_ausschnitt();
500 if (variant == 41) make_ausschnitt();
501 if (variant == 42) make_ausschnitt();
502 }
503
504 module cut_unten() {
505 cut_weiche(seite_unten);
506 }
507
508 module cut_hinten() {
509 rotate([90,0,0]) {
510 cut_weiche(seite_hinten);
511 }
512 }
513
514 module cut_links() {
515 rotate([0,90,0]) {
516 cut_weiche(seite_links);
517 }
518 }
519
520 module cut_rechts() {
521 rotate([0,-90,0]) {
522 cut_weiche(seite_rechts);
523 }
524 }
525
526 module cut_vorne() {
527 rotate([-90,0,0]) {
528 cut_weiche(seite_vorne);
529 }
530 }
531
532 module add_weiche(variant=0) {
533 if (variant == 1) add_pips1 (); // 1 keglige Punkt
534 if (variant == 2) add_pips2 (); // 2 keglige Punkte
535 if (variant == 3) add_pips3 (); // 3 keglige Punkt
536 if (variant == 4) add_pips4 (); // 4 keglige Punkte
537 if (variant == 5) add_pips5 (); // 5 keglige Punkte
538 if (variant == 6) add_pips6 (); // 6 keglige Punkte
539 if (variant == 7) add_strich (); // Taktiler Strich
540 if (variant == 8) add_plus (); // Taktiler Plus
541 if (variant == 9) add_slash (); // Taktiler Schrägstrich
542 if (variant == 21) add_sphere1 (); // 1 kugliger Punkt
543 if (variant == 22) add_sphere2 (); // 2 kuglige Punkte
544 if (variant == 23) add_sphere3 (); // 3 kuglige Punkte
545 if (variant == 24) add_sphere4 (); // 4 kuglige Punkte
546 if (variant == 25) add_sphere5 (); // 5 kuglige Punkte
547 if (variant == 26) add_sphere6 (); // 6 kuglige Punkte
548 if (variant == 27) add_quad (); // Taktiles Quadrat
549 if (variant == 31) add_x (); // Taktiles X
550 if (variant == 32) add_ring (); // Taktiler Ring
551 if (variant == 34) add_star (); // Taktiler Stern
552 if (variant == 38) add_prisma (n=3); // Taktiles Dreieck
553 if (variant == 39) add_prisma (n=5); // Taktiles Fünfeck
554 if (variant == 40) add_prisma (n=6); // Taktiles Sechseck
555 if (variant == 41) add_prisma (n=7); // Taktiles Siebeneck
556 if (variant == 42) add_prisma (n=8); // Taktiles Achteck
557 }
558
559 module cut_oben() {
560 rotate([180,0,0]) {
561 cut_weiche(seite_oben);
562 }
563 }
564
565 module CutDice(){
566 cut_unten();
567 cut_hinten();
568 cut_links();
569 cut_rechts();
570 cut_vorne();
571 cut_oben();
572 }
573
574 module add_unten() {
575 add_weiche(seite_unten);
576 }
577
578 module add_hinten() {
579 rotate([90,0,0]) {
580 add_weiche(seite_hinten);
581 }
582 }
583
584 module add_links() {
585 rotate([0,90,0]) {
586 add_weiche(seite_links);
587 }
588 }
589
590 module add_rechts() {
591 rotate([0,-90,0]) {
592 add_weiche(seite_rechts);
593 }
594 }
595
596 module add_vorne() {
597 rotate([-90,0,0]) {
598 add_weiche(seite_vorne);
599 }
600 }
601
602 module add_oben() {
603 rotate([180,0,0]) {
604 add_weiche(seite_oben);
605 }
606 }
607
608 module AddPoints(){
609 add_unten();
610 add_hinten();
611 add_links();
612 add_rechts();
613 add_vorne();
614 add_oben();
615 }
616 </pre>
This page took 0.090054 seconds and 5 git commands to generate.