chiark / gitweb /
powerbank-bike-clamp: refactor for clamp width nfc
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 7 Feb 2021 23:07:32 +0000 (23:07 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 7 Feb 2021 23:07:32 +0000 (23:07 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
powerbank-bike-clamp.scad

index f72078d30edf7a3ef8c1dd3f571d76535175cebe..076538b14795904ddc9d899f51726abcb0928905 100644 (file)
@@ -70,13 +70,8 @@ bank_recess_dx = minor_wall_min;
 
 pspt_to_mm = 25.4 / 72;
 
-hinge_stride = (clamp_width + hinge_gap_z) / hinge_lobes;
-
 main_r = tube_dia/2 + main_th;
 
-hinge_outer_r = hinge_around + hinge_pin/2;
-hinge_y = tube_dia/2 + hinge_outer_r;
-
 screw_max_y_lhs = -main_r -screw_nut_across/2;
 screw_max_y_rhs = -main_r -knob_behind_across/2;
 
@@ -94,6 +89,13 @@ 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) ];
 
+clamp_width_actual = max(clamp_width, 0);
+
+hinge_stride = (clamp_width_actual + hinge_gap_z) / hinge_lobes;
+
+hinge_outer_r = hinge_around + hinge_pin/2;
+hinge_y = tube_dia/2 + hinge_outer_r;
+
 echo(bot_y);
 
 module TubePlan(){ circle(r = tube_dia/2); }
@@ -118,7 +120,7 @@ module TubeClampLeftPlan(){
 }
 
 module TubeClampLeft() { ////toplevel
-  linextr(-clamp_width/2, clamp_width/2)
+  linextr(-clamp_width_actual/2, clamp_width_actual/2)
     TubeClampLeftPlan();
 }
 
@@ -163,7 +165,7 @@ module Screws(){
 
 module SomeClamp(hinge_alt=false){
   difference(){
-    linextr(-clamp_width/2, clamp_width/2)
+    linextr(-clamp_width_actual/2, clamp_width_actual/2)
       children(0);
 
     Screws();
@@ -171,7 +173,7 @@ module SomeClamp(hinge_alt=false){
     for (i=[0 : hinge_lobes-1]) {
       translate([0,
                 hinge_y,
-                -clamp_width/2 + i * hinge_stride
+                -clamp_width_actual/2 + i * hinge_stride
                 + (hinge_alt ? hinge_stride/2 : 0)
                 ])
        linextr(-hinge_gap_z, hinge_stride/2)