/* [OpenSCAD]*/

$fn=90;

/* [Würfel] */
// Kantenlänge des Würfels
Size = 14; // [10:1:30]
// Faktor der Kugel
Faktor = 0.95;

/* [Augen] */
// Runde Augen
Rund = true;

Augen = Size*0.15;
loch_position=Size/5;
shift=Size/2;

module wert_eins() {
  if (Rund) {
    sphere(d=Augen);
  }
  else {
    cylinder(d=Augen, h=Augen, center=true);
  }
}
module wert_zwei() {
  translate([loch_position,loch_position,0]) wert_eins();
  translate([-loch_position,-loch_position,0]) wert_eins();
}
module wert_drei() {
  wert_eins();
  wert_zwei();
}
module wert_vier() {
  wert_zwei();
  rotate([0,0,90]) wert_zwei();
}
module wert_fuenf() {
  wert_eins();
  wert_vier();
}
module wert_sechs() {
  wert_vier();
  translate([loch_position,0,0]) wert_eins();
  translate([-loch_position,0,0]) wert_eins();
}

difference() {

  intersection() {
    cube(Size, center=true);
    sphere(d=sqrt(2)*Size*Faktor);
  }

  union() {
    rotate([0,0,0]) union() {
      translate([0,0,shift]) wert_sechs();
      translate([0,0,-shift]) wert_eins();
    }
    rotate([0,90,0]) union() {
      translate([0,0,shift]) wert_zwei();
      translate([0,0,-shift]) wert_fuenf();
    }
    rotate([90,0,0]) union() {
      translate([0,0,shift]) wert_drei();
      translate([0,0,-shift]) wert_vier();
    }
  }
}