-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)
// 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;
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
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)
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
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
// 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();
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 () {
}
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);
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();
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() {
}
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() {