dice-d6.scad 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /* [OpenSCAD]*/
  2. $fn=90;
  3. /* [Würfel] */
  4. // Kantenlänge des Würfels
  5. Size = 14; // [10:1:30]
  6. // Faktor der Kugel
  7. Faktor = 0.95;
  8. /* [Augen] */
  9. // Runde Augen
  10. Rund = true;
  11. Augen = Size*0.15;
  12. loch_position=Size/5;
  13. shift=Size/2;
  14. module wert_eins() {
  15. if (Rund) {
  16. sphere(d=Augen);
  17. }
  18. else {
  19. cylinder(d=Augen, h=Augen, center=true);
  20. }
  21. }
  22. module wert_zwei() {
  23. translate([loch_position,loch_position,0]) wert_eins();
  24. translate([-loch_position,-loch_position,0]) wert_eins();
  25. }
  26. module wert_drei() {
  27. wert_eins();
  28. wert_zwei();
  29. }
  30. module wert_vier() {
  31. wert_zwei();
  32. rotate([0,0,90]) wert_zwei();
  33. }
  34. module wert_fuenf() {
  35. wert_eins();
  36. wert_vier();
  37. }
  38. module wert_sechs() {
  39. wert_vier();
  40. translate([loch_position,0,0]) wert_eins();
  41. translate([-loch_position,0,0]) wert_eins();
  42. }
  43. difference() {
  44. intersection() {
  45. cube(Size, center=true);
  46. sphere(d=sqrt(2)*Size*Faktor);
  47. }
  48. union() {
  49. rotate([0,0,0]) union() {
  50. translate([0,0,shift]) wert_sechs();
  51. translate([0,0,-shift]) wert_eins();
  52. }
  53. rotate([0,90,0]) union() {
  54. translate([0,0,shift]) wert_zwei();
  55. translate([0,0,-shift]) wert_fuenf();
  56. }
  57. rotate([90,0,0]) union() {
  58. translate([0,0,shift]) wert_drei();
  59. translate([0,0,-shift]) wert_vier();
  60. }
  61. }
  62. }