diff options
author | Christian Hodgden <chrhodgden@gmail.com> | 2024-07-17 19:06:42 -0500 |
---|---|---|
committer | Christian Hodgden <chrhodgden@gmail.com> | 2024-07-17 19:06:42 -0500 |
commit | 0160edd164fda76dd71e09f6c75cfbf5c7865215 (patch) | |
tree | fe000a11c580f27025a59a114d8bbc3190635ac2 /openscad/normal.scad | |
parent | 5c95f3965fc379fc884147eaab20fe8178012b7a (diff) |
Diffstat (limited to 'openscad/normal.scad')
-rw-r--r-- | openscad/normal.scad | 78 |
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); + +} |