// Création du Cube de Menger // Pour OpenSCAD, c.f. // https://en.wikibooks.org/wiki/OpenSCAD_User_Manual // Un cube de Menger de niveau 5 // est composé de 20 cubes de Menger de niveau 5 for (i5=[0:2], j5=[0:2], k5=[0:2]) { if ((i5!=1 || j5!=1) && (i5!=1 || k5!=1) && (j5!=1 || k5!=1)) { translate([81*i5, 81*j5, 81*k5]) // Un cube de Menger de niveau 4 // est composé de 20 cubes de Menger de niveau 3 for (i4=[0:2], j4=[0:2], k4=[0:2]) { if ((i4!=1 || j4!=1) && (i4!=1 || k4!=1) && (j4!=1 || k4!=1)) { translate([27*i4, 27*j4, 27*k4]) // Un cube de Menger de niveau 3 // est composé de 20 cubes de Menger de niveau 2 for (i3=[0:2], j3=[0:2], k3=[0:2]) { if ((i3!=1 || j3!=1) && (i3!=1 || k3!=1) && (j3!=1 || k3!=1)) { translate([9*i3, 9*j3, 9*k3]) // Un cube de Menger de niveau 2 // est composé de 20 cubes de Menger de niveau 1 for (i2=[0:2], j2=[0:2], k2=[0:2]) { if ((i2!=1 || j2!=1) && (i2!=1 || k2!=1) && (j2!=1 || k2!=1)) { translate([3*i2, 3*j2, 3*k2]) // Un cube de Menger de niveau 1 // est composé de 20 cubes de Menger de niveau 0 for (i1=[0:2], j1=[0:2], k1=[0:2]) { if ((i1!=1 || j1!=1) && (i1!=1 || k1!=1) && (j1!=1 || k1!=1)) { translate([1*i1, 1*j1, 1*k1]) // Un cube de Menger de niveau 0 // est un simple cube cube(1, true); }; }; }; }; }; }; }; }; }; };