aboutsummaryrefslogtreecommitdiff
path: root/openscad
diff options
context:
space:
mode:
authorChristian Hodgden <chrhodgden@gmail.com>2024-07-17 19:06:42 -0500
committerChristian Hodgden <chrhodgden@gmail.com>2024-07-17 19:06:42 -0500
commit0160edd164fda76dd71e09f6c75cfbf5c7865215 (patch)
treefe000a11c580f27025a59a114d8bbc3190635ac2 /openscad
parent5c95f3965fc379fc884147eaab20fe8178012b7a (diff)
added normal dice designHEADmain
Diffstat (limited to 'openscad')
-rw-r--r--openscad/normal.scad78
1 files changed, 78 insertions, 0 deletions
diff --git a/openscad/normal.scad b/openscad/normal.scad
new file mode 100644
index 0000000..2785182
--- /dev/null
+++ b/openscad/normal.scad
@@ -0,0 +1,78 @@
+
+$fn = 50;
+face_width = 14;
+bevel_margin = 1;
+cube_width = face_width + (2 * bevel_margin);
+face_depth = cube_width / 2;
+fd = face_depth;
+pip_radius = 1.5;
+pip_spacing = face_width / 3;
+ps = pip_spacing;
+
+difference() {
+ minkowski() {
+ cube(face_width, true);
+ sphere(bevel_margin);
+ }
+
+ // I want to take advantage of OpenSCAD's x-y-z dot notation for vectors
+ // Face 1 is on top (+z), clockwise 1-2-3, (+y,+x)
+ // Faces 4-5-6, will then be (-x, -y, -z)
+ // Faces 2 & 3 point together to face 6
+ // a wall of face 6 is against face 5
+
+ // Face 1
+ translate([0, 0, fd])
+ sphere(pip_radius);
+
+ // Face 2
+ translate([ps, fd, -ps])
+ sphere(pip_radius);
+ translate([-ps, fd, ps])
+ sphere(pip_radius);
+
+ // Face 3
+ translate([fd, ps, -ps])
+ sphere(pip_radius);
+ translate([fd, 0, 0])
+ sphere(pip_radius);
+ translate([fd, -ps, ps])
+ sphere(pip_radius);
+
+ // Face 4
+ translate([-fd, ps, ps])
+ sphere(pip_radius);
+ translate([-fd, ps, -ps])
+ sphere(pip_radius);
+ translate([-fd, -ps, ps])
+ sphere(pip_radius);
+ translate([-fd, -ps, -ps])
+ sphere(pip_radius);
+
+ // Face 5
+ translate([ps, -fd, ps])
+ sphere(pip_radius);
+ translate([ps, -fd, -ps])
+ sphere(pip_radius);
+ translate([0, -fd, 0])
+ sphere(pip_radius);
+ translate([-ps, -fd, ps])
+ sphere(pip_radius);
+ translate([-ps, -fd, -ps])
+ sphere(pip_radius);
+
+ // Face 6
+ translate([ps, ps, -fd])
+ sphere(pip_radius);
+ translate([ps, -ps, -fd])
+ sphere(pip_radius);
+ translate([0, ps, -fd])
+ sphere(pip_radius);
+ translate([0, -ps, -fd])
+ sphere(pip_radius);
+ translate([-ps, ps, -fd])
+ sphere(pip_radius);
+ translate([-ps, -ps, -fd])
+ sphere(pip_radius);
+
+}