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