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