Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $fn = $preview ? 32 : 64;
- w = 20; //width of die
- r = w/2; //radius of die
- dr = 1; //radius of dots
- dd = 1/sqrt(2); //depth of dots
- dm = 5; //margin between dots and edge of die
- dc = r-dm; //distance from center of face to dots on edge
- er = 1.5; //radius of rounded edges and corners
- intersection() {
- minkowski() {
- intersection() {
- cube(w-er*2, true);
- sphere((r-er)*1.5, $fn=$preview ? 64 : 128);
- }
- sphere(er, $fn=$preview ? 32 : 64);
- }
- difference() {
- cube(w, true);
- dr2 = (dr*dr + dd*dd) / (2*dd);
- r2 = r + dr2 - dd;
- union() {
- //1
- translate([0, 0, r2])sphere(dr2);
- //2
- translate([dc, r2, dc])sphere(dr2);
- translate([-dc, r2, -dc])sphere(dr2);
- //3
- translate([-r2, 0, 0])sphere(dr2);
- translate([-r2, -dc, dc])sphere(dr2);
- translate([-r2, dc, -dc])sphere(dr2);
- //4
- translate([r2, dc, dc])sphere(dr2);
- translate([r2, dc, -dc])sphere(dr2);
- translate([r2, -dc, dc])sphere(dr2);
- translate([r2, -dc, -dc])sphere(dr2);
- //5
- translate([0, -r2, 0])sphere(dr2);
- translate([dc, -r2, dc])sphere(dr2);
- translate([dc, -r2, -dc])sphere(dr2);
- translate([-dc, -r2, dc])sphere(dr2);
- translate([-dc, -r2, -dc])sphere(dr2);
- //6
- translate([-dc, -dc, -r2])sphere(dr2);
- translate([-dc, dc, -r2])sphere(dr2);
- translate([dc, -dc, -r2])sphere(dr2);
- translate([dc, dc, -r2])sphere(dr2);
- translate([0, -dc, -r2])sphere(dr2);
- translate([0, dc, -r2])sphere(dr2);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement