chiark / gitweb /
toolbox-inserts: wip plate
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 21 Apr 2025 12:12:43 +0000 (13:12 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 21 Apr 2025 12:12:43 +0000 (13:12 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
toolbox-inserts.scad

index dfbc66ce08feeed87c5515a669f79b47dfb45082..7f0860f1292fa43d3f37957f38b7d50e07e315bb 100644 (file)
@@ -11,12 +11,16 @@ box_edge_z_hindent = 0.5;
 box_edge_width = 10;
 
 below_plane_z = 4.5;
+fixing_head_th = 2.6;
+fixing_head_d = 7.82 + 0.25;
+plane_min_th = 2;
 
 fixing_pitch = 10;
 fixing_depth = 6;
 fixing_nom_d = 4;
 fixing_thread_d = fixing_nom_d + 0.375;
 fixing_thread_pitch = 0.5; // M4
+fixing_hole_d = fixing_nom_d + 0.375;
 
 fixing_receptacle_d = 4 + 2.5 + 2.5;
 
@@ -182,6 +186,27 @@ module BoxBottomModel() { ////toplevel
   }
 }
 
+module FullPlate() { ////toplevel
+  n_x = ceil(box_x / fixing_pitch / 2) + 1;
+  n_y = ceil(box_y / fixing_pitch / 2) + 1;
+
+  render() difference(){
+    render() intersection(){
+      BoxCavityModel();
+      linextr(-20, 0) square(1000, center=true);
+    }
+
+    for (xi=[-n_x : n_x])
+      for (yi=[-n_y : n_y])
+       translate(fixing_pitch * [xi, yi, 0]) {
+         linextr(-20, -below_plane_z + fixing_head_th)
+           circle(r = fixing_head_d/2);
+         linextr(-20, 20)
+           circle(r = fixing_nom_d/2);
+       }
+  }
+}
+
 module OdAt(x,y) {
   translate(fixing_pitch * [x,y,0])
     children(0);
@@ -189,6 +214,7 @@ module OdAt(x,y) {
 
 module OverallDemo() { ////toplevel
   color("grey") BoxBottomModel();
+  color("blue") FullPlate();
   color("red") OdAt(-5,-5.5) DriverHandleHolder();
 }