/* Talks am Sonntag, 14. April 2024, ab 19:00 */
[stratum0-wiki.git] / Gesellschaftsspiel-Replikator%2FW6_V1.1.mw
index bf29a90..972df0c 100644 (file)
@@ -1,6 +1,14 @@
-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.
+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.
+
+== Neuerungen Version 1.12 ==
+
+* Bugfixes
+* Neue Seitenvorschläge (Dreieck, Fünfeck, Sechseck, Siebeneck, Achteck)
+* Neue Ausschnittsmöglichkeiten (Dreieck, Fünfeck, Sechseck, Siebeneck, Achteck)
 
 <pre>
+
+// Kubator 1.12
 // Würfel massiv drucken, um möglichst faire Würfel zu erhalten!  
 
 // Individuelle Einstellungen (die Zahlen können verändert werden, um den Würfel individuellen Wünschen anzupassen)
@@ -37,11 +45,21 @@ kante=20;    // Kantenlänge des Würfels (in mm)
 // 25 5 kuglige Punkte 
 // 26 6 kuglige Punkte 
 // 27 taktiles Quadrat
+// 28 Dreieckiger Ausschnitt
+// 29 Fünfeckiger Ausschnitt
 // 30 ausgeschnittenes X
 // 31 taktiles X 
 // 32 taktiler Kreis
 // 33 ausgeschnittener Stern
 // 34 taktiler Stern 
+// 35 Sechseckiger Ausschnitt
+// 36 Siebeneckiger Ausschnitt
+// 37 Achteckiger Ausschnitt
+// 38 Taktiles Dreieck
+// 39 Taktiler Fünfeck
+// 40 Taktiles Sechseck
+// 41 Taktiles Siebeneck
+// 42 Taktiles Achteck
 
 // hier die Nummern der gewünschten Seiten eintragen
 seite_unten = 16;  
@@ -51,7 +69,7 @@ seite_rechts = 6;
 seite_vorne = 0;  
 seite_hinten = 26; 
 
-abgerundet = 2; // Aussehen des Würfelkörpers
+abgerundet = 1; // Aussehen des Würfelkörpers
                 // Werte ganzahlig von 0 bis 4
                 // 0 = keine Abrundung der Ecken und Kanten
                 // 1 = Ecken und Kanten sind abgerundet
@@ -61,15 +79,16 @@ abgerundet = 2; // Aussehen des Würfelkörpers
 
 abrundungsgroesse = 0.7;  // je kleiner desto runder (0.55 <= abrundungsgroesse <= 1.0)
 
-koerperfarbe = "black"; // Farbe des Würfelkörper
-kerbenfarbe = "black"; // Farbe der Ausschnitte 
-augenfarbe = "yellow"; // Farbe der Augen
-punktfarbe = "white"; // Farbe der taktilen Punkte
+koerperfarbe = "white"; // Farbe des Würfelkörper
+kerbenfarbe = "white"; // Farbe der Ausschnitte 
+augenfarbe = "black"; // Farbe der Augen
+punktfarbe = "black"; // Farbe der taktilen Punkte
 
 ausschnittstyp = 1; // 1 = quadratischer Ausschnitt
                     // 2 = kreisförmiger Ausschnitt
+                    // n (n > 2) = n-eckiger Ausschnitt
 
-tiefe_ausschnitt = 2; // Tiefe der ausgeschnittenen Bereiche (in mm)
+kerbe = 2; // Tiefe der ausgeschnittenen Bereiche (in mm)
 ausschnitt = 13; // Seitenlänge der ausgeschnittenen Bereiche bei quadratischem Ausschnitt(in mm)
 kreisdurchmesser = 7.5; // Durchmesser des Kreises bei kreisförmigem Ausschnitt (in mm)
 
@@ -82,7 +101,7 @@ kegelspitze=1; // Spitzheit der erhabenen kegligen Punkte (in mm)
 
 abstand_kugelpunkte=4; // Abstand der kugligen Punkte (in mm
 basis_kugelpunkte=1; // Basisdurchmesser der erhabenen kugligen Punkte (in mm)
-// wird auf tiefe_ausschnitt gesetzt, wenn er kleiner als diese Tiefe
+// wird auf kerbe gesetzt, wenn er kleiner als diese Tiefe
 
 augenabstand=4.5;              // Abstand der Augen von der Mitte der Seiten (in mm) bei Seiten 11 bis 16
 d_auge=3.5;                    // Durchmesser der Augen (in mm) bei Seiten 11 bis 16
@@ -92,11 +111,12 @@ strichlaenge = 11; // Länge des Striches bei Seiten 7 - 9,17 - 19, 30, 31, 33,
 ringgroesse = 10; // Durchmesser des inneren Kreises bei Seite 32 (in mm)
 quadgroesse = 8; // Seitenlänge des inneren Quadrates bei Seite 27 (in mm)
 
-aufloesung = 60;         //    je größer desto genauer der Würfel
+//$fn = 70;      //    je größer desto genauer der Würfel
                    //  je größer desto langsamer die Berechnung
                    // für Testzwecke auskommentieren 
 
-// Kopierbereich (hier können fertige Vorlagen hineinkopiert werden)
+// Kopierbereich (hier fertige Vorlagen hineinkopieren)
+
 
 
 // Ende Kopierbereich
@@ -105,12 +125,11 @@ aufloesung = 60;    //    je größer desto genauer der Würfel
 // Ende der individuellen Einstellungen
 // ab hier nichts verändern
 
-kerbe = tiefe_ausschnitt;
 r=-kante/2;
 r2=(d_auge/2);
 tiefe = kerbe * 2;
 punktpos=kante/2-kerbe;
-$fn = aufloesung;
+
 
 main();
 
@@ -217,8 +236,14 @@ module cut_quad () {
 translate ([0,0,-kante/2]) cube([ausschnitt, ausschnitt, tiefe],center=true);
 }
 
-module cut_circle () {
+module cut_circle (n=0) {
+if (n == 0) {
 translate ([0,0,-kante/2]) cylinder(tiefe,kreisdurchmesser,kreisdurchmesser, center=true);
+}
+if (n > 0) {
+translate ([0,0,-kante/2]) cylinder(tiefe,kreisdurchmesser,kreisdurchmesser, center=true, $fn=n);
+}
+
 }
 
 module cut_strich () {
@@ -287,35 +312,41 @@ module cut_pips6 () {
 }
 
 module add_strich () {
-translate([0,0,-tiefe]) cube([strichlaenge, strichdicke, 3*tiefe],center=true);
+translate ([0,0,-kante/2+kerbe]) cube([strichlaenge, strichdicke, tiefe],center=true);
 }
 
 module add_star () {
-translate([0,0,-tiefe]) cube([strichlaenge, strichdicke, 3*tiefe],center=true);
-translate([0,0,-tiefe]) cube([strichdicke, strichlaenge, 3*tiefe],center=true);
-translate([0,0,-tiefe]) rotate([0,0,-45]) cube([strichlaenge, strichdicke, 3*tiefe],center=true);
-translate([0,0,-tiefe]) rotate([0,0,45]) cube([strichlaenge, strichdicke, 3*tiefe],center=true);
+translate([0,0,-kante/2+kerbe]) cube([strichlaenge, strichdicke, tiefe],center=true);
+translate([0,0,-kante/2+kerbe]) cube([strichdicke, strichlaenge, tiefe],center=true);
+translate([0,0,-kante/2+kerbe]) rotate([0,0,-45]) cube([strichlaenge, strichdicke, tiefe],center=true);
+translate([0,0,-kante/2+kerbe]) rotate([0,0,45]) cube([strichlaenge, strichdicke, tiefe],center=true);
 }
 
-
 module add_plus () {
-translate([0,0,-tiefe]) cube([strichlaenge, strichdicke, 3*tiefe],center=true);
-translate([0,0,-tiefe]) cube([strichdicke, strichlaenge, 3*kerbe],center=true);
+translate([0,0,-kante/2+kerbe]) cube([strichlaenge, strichdicke, tiefe],center=true);
+translate([0,0,-kante/2+kerbe]) cube([strichdicke, strichlaenge, tiefe],center=true);
 }
 
+
+
 module add_slash () {
-translate([0,0,-tiefe]) rotate([0,0,-45]) cube([strichlaenge, strichdicke, 3*tiefe],center=true);
+translate([0,0,-kante/2+kerbe]) rotate([0,0,-45]) cube([strichlaenge, strichdicke, tiefe],center=true);
 }
 
 module add_x () {
-translate([0,0,-tiefe]) rotate([0,0,-45]) cube([strichlaenge, strichdicke, 3*tiefe],center=true);
-translate([0,0,-tiefe]) rotate([0,0,45]) cube([strichlaenge, strichdicke, 3*tiefe],center=true);
+translate([0,0,-kante/2+kerbe]) rotate([0,0,-45]) cube([strichlaenge, strichdicke, tiefe],center=true);
+translate([0,0,-kante/2+kerbe]) rotate([0,0,45]) cube([strichlaenge, strichdicke, tiefe],center=true);
 }
 
 module add_ring () {
        translate([0,0,r])      cylinder(tiefe,ringgroesse/2,ringgroesse/2,center=false);
 }
 
+module add_prisma (n=3) {
+  groesse =  strichlaenge / 2.3;
+       translate([0,0,-kante/2+kerbe]) cylinder(tiefe,groesse,groesse,center=true,$fn=n);
+}
+
 module add_quad () {
   translate([0,0,-tiefe]) cube([quadgroesse, quadgroesse, 3*tiefe],center=true);
 //     translate([0,0,r])      cube(tiefe,35,35,center=true);
@@ -421,8 +452,10 @@ module add_pips6 () {
 module make_ausschnitt () {
   if (ausschnittstyp == 1) color(kerbenfarbe) cut_quad (); 
   if (ausschnittstyp == 2) color(kerbenfarbe) cut_circle (); 
+  if (ausschnittstyp > 2) color(kerbenfarbe) cut_circle (n=ausschnittstyp); 
 }
 
+
 module cut_weiche(variant) {
  if (variant == 1) make_ausschnitt(); 
  if (variant == 2) make_ausschnitt();  
@@ -451,11 +484,21 @@ module cut_weiche(variant) {
  if (variant == 25) make_ausschnitt(); 
  if (variant == 26) make_ausschnitt(); 
  if (variant == 27) make_ausschnitt(); 
+ if (variant == 28) cut_circle (n=3); 
+ if (variant == 29) cut_circle (n=5); 
  if (variant == 30) cut_x (); 
  if (variant == 31) make_ausschnitt(); 
  if (variant == 32) make_ausschnitt(); 
  if (variant == 33) cut_star (); 
  if (variant == 34) make_ausschnitt();  
+ if (variant == 35) cut_circle (n=6); 
+ if (variant == 36) cut_circle (n=7); 
+ if (variant == 37) cut_circle (n=8); 
+ if (variant == 38) make_ausschnitt();  
+ if (variant == 39) make_ausschnitt();  
+ if (variant == 40) make_ausschnitt();  
+ if (variant == 41) make_ausschnitt();  
+ if (variant == 42) make_ausschnitt();  
 }
 
 module cut_unten() {
@@ -487,25 +530,30 @@ module cut_vorne() {
 }
 
 module add_weiche(variant=0) {
- if (variant == 1) add_pips1 (); // 1 kegliger Punkt
- if (variant == 2) add_pips2 (); // 2 kegliger Punkte
- if (variant == 3) add_pips3 (); // 3 kegliger Punkt
- if (variant == 4) add_pips4 (); // 4 kegliger Punkte
- if (variant == 5) add_pips5 (); // 5 kegliger Punkte
- if (variant == 6) add_pips6 (); // 6 kegliger Punkte
+ if (variant == 1) add_pips1 (); // 1 keglige Punkt
+ if (variant == 2) add_pips2 (); // 2 keglige Punkte
+ if (variant == 3) add_pips3 (); // 3 keglige Punkt
+ if (variant == 4) add_pips4 (); // 4 keglige Punkte
+ if (variant == 5) add_pips5 (); // 5 keglige Punkte
+ if (variant == 6) add_pips6 (); // 6 keglige Punkte
  if (variant == 7) add_strich (); // Taktiler Strich
  if (variant == 8) add_plus (); // Taktiler Plus
  if (variant == 9) add_slash (); // Taktiler Schrägstrich
  if (variant == 21) add_sphere1 (); // 1 kugliger Punkt 
- if (variant == 22) add_sphere2 (); // 2 kugliger Punkte 
- if (variant == 23) add_sphere3 (); // 3 kugliger Punkte 
- if (variant == 24) add_sphere4 (); // 4 kugliger Punkte 
- if (variant == 25) add_sphere5 (); // 5 kugliger Punkte 
- if (variant == 26) add_sphere6 (); // 6 kugliger Punkte 
+ if (variant == 22) add_sphere2 (); // 2 kuglige Punkte 
+ if (variant == 23) add_sphere3 (); // 3 kuglige Punkte 
+ if (variant == 24) add_sphere4 (); // 4 kuglige Punkte 
+ if (variant == 25) add_sphere5 (); // 5 kuglige Punkte 
+ if (variant == 26) add_sphere6 (); // 6 kuglige Punkte 
  if (variant == 27) add_quad (); // Taktiles Quadrat
  if (variant == 31) add_x (); // Taktiles X
  if (variant == 32) add_ring (); // Taktiler Ring
  if (variant == 34) add_star (); // Taktiler Stern
+ if (variant == 38) add_prisma (n=3); // Taktiles Dreieck
+ if (variant == 39) add_prisma (n=5); // Taktiles Fünfeck
+ if (variant == 40) add_prisma (n=6); // Taktiles Sechseck
+ if (variant == 41) add_prisma (n=7); // Taktiles Siebeneck
+ if (variant == 42) add_prisma (n=8); // Taktiles Achteck
 }
 
 module cut_oben() {
This page took 0.030245 seconds and 4 git commands to generate.