chiark / gitweb /
powerbank-bike-clamp: wip brace
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 7 Feb 2021 22:42:57 +0000 (22:42 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 7 Feb 2021 23:04:14 +0000 (23:04 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
powerbank-bike-clamp.scad

index 90fae7578561f1ecb25b464296fc0a8d25fa267c..bf6a0394b199c5d703189891e43d8459306dd625 100644 (file)
@@ -54,6 +54,11 @@ bank_input_sz  = [ 8.5, 10.5 ];
 
 mounted_pos_y_offset = 20;
 
+liner_th = 0.8;
+
+brace_r = 5;
+brace_len = 50;
+
 // calculated
 
 straps_y = [ -bank_y_sz * 0.25,
@@ -85,6 +90,10 @@ holder_x_sz = bank_x_sz + bank_recess_dx*2;
 bank_bot_y = strap_above + strap_th;
 strap_r = strap_th;
 
+brace_total_len = brace_len + main_th;
+brace_ctrs_y = [ straps_y[0] - (brace_r + strap_r/2),
+                straps_y[1] + (brace_r + strap_r/2) ];
+
 echo(bot_y);
 
 module TubePlan(){ circle(r = tube_dia/2); }
@@ -171,17 +180,21 @@ module SomeClamp(hinge_alt=false){
 }
 
 module PowerBankItselfSidePlan(){
-  translate([0, bank_bot_y])
-    scale( bank_profile_scale_bodge *
-          bank_x_sz / ( (
-                         bank_eps_bbox_x[1] -
-                         bank_eps_bbox_x[0]
-                         ) * pspt_to_mm ))
-    translate(pspt_to_mm *
-             [-0.5 * (bank_eps_bbox_x[0] +
-                      bank_eps_bbox_x[1]),
-              -bank_eps_bbox_y[0]])
-    import("powerbank-anker-10000.dxf", convexity=5);
+  translate([0, bank_bot_y]){
+    minkowski(){
+      circle($fn=8, r=liner_th);
+      scale( bank_profile_scale_bodge *
+            bank_x_sz / ( (
+                           bank_eps_bbox_x[1] -
+                           bank_eps_bbox_x[0]
+                           ) * pspt_to_mm ))
+       translate(pspt_to_mm *
+                 [-0.5 * (bank_eps_bbox_x[0] +
+                          bank_eps_bbox_x[1]),
+                  -bank_eps_bbox_y[0]])
+       import("powerbank-anker-10000.dxf", convexity=5);
+    }
+  }
 }
 
 module PowerBankItself(){ ////toplevel
@@ -242,6 +255,14 @@ module EndRetainer(depth){ ////toplevel
   }
 }
 
+module BraceTubePlan(){
+  intersection(){
+    circle(r= brace_r);
+    rectfromto(brace_r * [-2,  0],
+              brace_r * [+2, +2]);
+  }
+}
+
 module PowerBankHolder(){ ////toplevel
   difference(){
     union(){
@@ -268,6 +289,19 @@ module PowerBankHolder(){ ////toplevel
        translate(bank_input_ctr)
        square(center=true, bank_input_sz);
   }
+
+  translate([0,0, bank_x_sz/2]){
+    for (y = brace_ctrs_y) {
+      translate([0,y,0]) {
+       linextr_x_yz(0, brace_total_len)
+         BraceTubePlan();
+      }
+    }
+    translate([brace_total_len, 0,0])
+      linextr_y_xz(brace_ctrs_y[0] - brace_r,
+                  brace_ctrs_y[1] + brace_r)
+      BraceTubePlan();
+  }
 }
 
 module TubeClampLeft() { ////toplevel