chiark / gitweb /
adafruit-powerboost: wip common, test
[reprap-play.git] / adafruit-powerboost-common.scad
index dc16c8ed0e7069a83f94ff030a34be622d05eba2..4d7cd7f5c1e46decb87cfad690b2919a2ae7104c 100644 (file)
@@ -1,6 +1,9 @@
 // -*- C -*-
 
 include <nutbox.scad>
+include <utils.scad>
+
+psu_sz  = psu_sz_nom + [ 0.11, 0.44 ] + [ 0.25, 0.25 ];
 
 psu_th = 1.70 + 0.25;
 psu_th_for_clamp = 1.50;
@@ -17,9 +20,16 @@ psu_clamp_w = 8.0;
 psu_clamp_gap = 0.4;
 
 psu_board_clamp_ovlp = 4.5;
-psu_board_support_wall = 2;
 psu_board_nutbox = nutbox_data_M3;
 
+psu_board_gap = 0.5;
+psu_board_support_wall = 2;
+psu_board_support_ovlp = 4.5;
+psu_board_support_ovlp_ceil = 2;
+psu_board_support_z = 2;
+
+psu_baffle_gap = 1.0 + 0.5;
+
 psu_y = +psu_sz[1]/2 + psu_usb_protr;
 
 // ----- calculated -----
@@ -48,7 +58,7 @@ module AtPsuMountCorner(mx,my){
        children();
 }
 
-module PsuMountCornerExtrude(mx,my, plus_z=board_support_z){
+module PsuMountCornerExtrude(mx,my, plus_z=psu_board_support_z){
   AtPsuMountCorner(mx,my){
     linear_extrude(height= psu_z_down + plus_z, convexity=10) {
       children();
@@ -61,14 +71,14 @@ module PsuMountPositiveMain(){
     for (my=[0,1]) {
       PsuMountCornerExtrude(mx,my){
        rectfromto(-[1,1]*psu_board_support_wall,
-                  +[1,1]*board_support_ovlp);
+                  +[1,1]*psu_board_support_ovlp);
       }
     }
     // mount above at plug end
     PsuMountCornerExtrude(mx,0, psu_th + psu_board_support_wall){
       rectfromto(-[1,1]*psu_board_support_wall,
-                [board_support_ovlp,
-                 board_support_ovlp_ceil]);
+                [psu_board_support_ovlp,
+                 psu_board_support_ovlp_ceil]);
     }
   }
   translate([0,0, -psu_z_down])
@@ -80,7 +90,7 @@ module PsuMountNegative(){
   axis = [0, -psu_sz[1]/2, psu_th];
   PsuRepresentation();
   translate(axis)
-    rotate([atan(2 * board_support_z / psu_sz[1]),
+    rotate([atan(2 * psu_board_support_z / psu_sz[1]),
            0,0])
     translate(-axis)
     PsuBoardRepresentation();
@@ -105,7 +115,7 @@ module PsuMountPositive(){
     PsuMountCornerExtrude(mx,1){
       translate([psu_sz[0]/2 - psu_hole_pos[1],
                 psu_hole_pos[0]]
-               + board_gap * [1,1] )
+               + psu_board_gap * [1,1] )
        circle(r= psu_hole_dia/2);
     }
   }
@@ -150,3 +160,21 @@ module PsuMountDemo(ceil = 2.5) { ////toplevel
       PsuLedWindowsPlan();
   }
 }
+
+module PsuMountTest(ceil = 2.5) { ////toplevel
+  difference(){
+    union(){
+      translate([0, psu_y, psu_z])
+       PsuMountPositive();
+      linextr_x_yz(-(psu_sz[0]/2 + 5),
+                  +(psu_sz[0]/2 + 5)){
+       difference(){
+         rectfromto([-ceil, -ceil], [psu_sz[1] + 5, psu_z + 10]);
+         rectfromto([0,0], 400*[1,1]);
+       }
+      }
+    }
+    translate([0, psu_y, psu_z])
+      PsuMountNegative();
+  }
+}