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.
3 == Neuerungen Version 1.12 ==
6 * Neue Seitenvorschläge (Dreieck, Fünfeck, Sechseck, Siebeneck, Achteck)
7 * Neue Ausschnittsmöglichkeiten (Dreieck, Fünfeck, Sechseck, Siebeneck, Achteck)
12 // Würfel massiv drucken, um möglichst faire Würfel zu erhalten!
14 // Individuelle Einstellungen (die Zahlen können verändert werden, um den Würfel individuellen Wünschen anzupassen)
16 kante=20; // Kantenlänge des Würfels (in mm)
17 // typisch sind 20 mm oder 25 mm
19 // mögliches Aussehen der Seiten
29 // 9 taktiler Schrägstrich
30 // 10 Quadratischer Ausschnitt
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
53 // 33 ausgeschnittener 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
64 // hier die Nummern der gewünschten Seiten eintragen
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
80 abrundungsgroesse = 0.7; // je kleiner desto runder (0.55 <= abrundungsgroesse <= 1.0)
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
87 ausschnittstyp = 1; // 1 = quadratischer Ausschnitt
88 // 2 = kreisförmiger Ausschnitt
89 // n (n > 2) = n-eckiger Ausschnitt
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)
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)
100 // Zylinder, wenn gleicher Wert wie basis_kegelpunkte
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
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
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)
114 //$fn = 70; // je größer desto genauer der Würfel
115 // je größer desto langsamer die Berechnung
116 // für Testzwecke auskommentieren
118 // Kopierbereich (hier fertige Vorlagen hineinkopieren)
122 // Ende Kopierbereich
125 // Ende der individuellen Einstellungen
126 // ab hier nichts verändern
131 punktpos=kante/2-kerbe;
136 module body_intersection (body_intersection_size) {
139 color(koerperfarbe) cube(size=kante,center=true);
140 color(koerperfarbe) sphere(r=kante*body_intersection_size, center=true);
142 color(augenfarbe) CutDice();
146 module body_union_ecken(kante_kl,eckradius) {
147 halbe_kante = kante_kl /2;
150 for(y = [halbe_kante,-halbe_kante])
151 translate([halbe_kante,y,halbe_kante])
152 sphere(eckradius,center=true);
155 module body_union_kanten(kante_kl, eckradius) {
156 halbe_kante = kante_kl /2;
159 for(y = [halbe_kante,-halbe_kante])
160 translate([halbe_kante,y,0])
161 cylinder(kante_kl,eckradius,eckradius,center=true);
164 translate([halbe_kante,0,halbe_kante])
166 cylinder(kante_kl,eckradius,eckradius,center=true);
169 module body_union_seiten(kante_kl, eckradius) {
172 translate([eckradius,0,0])
173 cube([kante_kl,kante_kl,kante_kl],center=true);
174 for(y = [eckradius,-eckradius])
176 cube([kante_kl,kante_kl,kante_kl],center=true);
180 module body_union(body_union_size)
183 kante_kl = kante * body_union_size;
184 eckradius = (kante - kante_kl) / 2;
188 body_union_ecken(kante_kl,eckradius);
189 body_union_kanten(kante_kl,eckradius);
190 body_union_seiten(kante_kl,eckradius);
192 color(augenfarbe) CutDice();
196 module body_union_ohne_ecken(body_union_size)
199 kante_kl = kante * body_union_size;
200 eckradius = (kante - kante_kl) / 2;
204 body_union_kanten(kante_kl,eckradius);
205 body_union_seiten(kante_kl,eckradius);
207 color(augenfarbe) CutDice();
211 module body_union_ohne_ecken_und_kanten(body_union_size)
214 kante_kl = kante * body_union_size;
215 eckradius = (kante - kante_kl) / 2;
219 body_union_seiten(kante_kl,eckradius);
221 color(augenfarbe) CutDice();
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);
232 color(punktfarbe) AddPoints();
236 translate ([0,0,-kante/2]) cube([ausschnitt, ausschnitt, tiefe],center=true);
239 module cut_circle (n=0) {
241 translate ([0,0,-kante/2]) cylinder(tiefe,kreisdurchmesser,kreisdurchmesser, center=true);
244 translate ([0,0,-kante/2]) cylinder(tiefe,kreisdurchmesser,kreisdurchmesser, center=true, $fn=n);
249 module cut_strich () {
250 translate ([0,0,-kante/2]) cube([strichlaenge, strichdicke, tiefe],center=true);
253 module cut_slash () {
254 translate ([0,0,-kante/2]) rotate([0,0,-45]) cube([strichlaenge, strichdicke, tiefe],center=true);
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);
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);
270 translate ([0,0,-kante/2]) cube([strichlaenge, strichdicke, tiefe],center=true);
271 translate ([0,0,-kante/2]) cube([strichdicke, strichlaenge, tiefe],center=true);
275 module cut_pips1 () {
276 translate([0,0,r]) sphere(r=r2*1.4, center=true);
279 module cut_pips2 () {
280 translate([-augenabstand,augenabstand,r]) sphere(r=r2, center=true);
281 translate([augenabstand,-augenabstand,r]) sphere(r=r2, center=true);
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);
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);
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);
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);
314 module add_strich () {
315 translate ([0,0,-kante/2+kerbe]) cube([strichlaenge, strichdicke, tiefe],center=true);
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);
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);
332 module add_slash () {
333 translate([0,0,-kante/2+kerbe]) rotate([0,0,-45]) cube([strichlaenge, strichdicke, tiefe],center=true);
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);
342 translate([0,0,r]) cylinder(tiefe,ringgroesse/2,ringgroesse/2,center=false);
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);
351 translate([0,0,-tiefe]) cube([quadgroesse, quadgroesse, 3*tiefe],center=true);
352 // translate([0,0,r]) cube(tiefe,35,35,center=true);
355 module add_sphere1 () {
357 rho = min (basis_kugelpunkte / 2, hoehe);
358 radius = max((pow(hoehe,2) + pow(rho,2)) / (2 * hoehe),hoehe);
360 translate([0,0,r+hoehe]) sphere(r=radius, center=true);
363 module add_sphere2 () {
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);
371 module add_sphere3 () {
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);
379 module add_sphere4 () {
381 rho = min (basis_kugelpunkte / 2, hoehe);
382 radius = max((pow(hoehe,2) + pow(rho,2)) / (2 * hoehe),hoehe);
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);
390 module add_sphere5 () {
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);
400 module add_sphere6 () {
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);
413 module add_pips1 () {
414 translate([0,0,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);
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);
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);
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);
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);
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);
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);
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();
505 cut_weiche(seite_unten);
508 module cut_hinten() {
510 cut_weiche(seite_hinten);
516 cut_weiche(seite_links);
520 module cut_rechts() {
522 cut_weiche(seite_rechts);
528 cut_weiche(seite_vorne);
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
561 cut_weiche(seite_oben);
575 add_weiche(seite_unten);
578 module add_hinten() {
580 add_weiche(seite_hinten);
586 add_weiche(seite_links);
590 module add_rechts() {
592 add_weiche(seite_rechts);
598 add_weiche(seite_vorne);
604 add_weiche(seite_oben);