chiark / gitweb /
mudguard-bracket: wip
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 24 Feb 2024 01:28:18 +0000 (01:28 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 24 Feb 2024 01:28:18 +0000 (01:28 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
mudguard-bracket.scad

index 0ead9740a2dfe37b485a1da6762fe1fdff265e15..b6993d13aa3c0bbd8ba56fc5a51868060afe2af3 100644 (file)
@@ -25,6 +25,8 @@ beam_h = 15;
 beam_th = 4.5;
 wings_height = 15;
 retainer_th = 3;
+clamp_main_th = 3;
+clamp_depth = 4;
 
 retainer_x_gap = 0.25;
 
@@ -50,6 +52,10 @@ retainer_void_w = -retainer_ea_x*2 - retainer_th*2;;
 
 tube_angle = atan2((tubeswidth_bot - tubeswidth_top)/2, tubeswidth_dz);
 
+tube_ctr_y = tube_dia/2;
+clamp_near_y = tube_ctr_y + tube_dia/2 - clamp_depth;
+clamp_far_y = tube_ctr_y + tube_dia/2 + clamp_main_th;
+
 wing_corners = [
 //             [ -wings_dist_x/2, wings_cup_z/2 ],
                [ wing_top_ea_x, 0 ],
@@ -190,17 +196,22 @@ module Retainer(){ ////toplevel
   }
 }
 
-module Tube(){ ////toplevel
-  translate([ -tubeswidth_bot/2 - tube_dia/2, tube_dia/2, 0 ])
+module Tube(dr=0){ ////toplevel
+  translate([ -tubeswidth_bot/2 - tube_dia/2, tube_ctr_y, 0 ])
     rotate([ 0, tube_angle, 0])
     linextr(-50, 100)
-    circle(r = tube_dia/2);
+    circle(r = tube_dia/2 + dr);
 }
 
 module Clamp(){ ////toplevel
   difference(){
-    hull(){
-      
+    intersection(){
+      hull(){
+       for (m=[0,1]) mirror([m,0,0]) Tube(dr=clamp_main_th);
+      }
+      linextr(bracket_bot_z, bracket_top_z)
+       rectfromto([ -100, clamp_near_y ],
+                  [ +100, clamp_far_y ]);
     }
   }
 }
@@ -226,5 +237,7 @@ module Demo(){ ////toplevel
     rotate([90,0,0])
     translate([ 0, 0, beam_th + 1 ])
     Retainer();
+  color("green")
+    Clamp();
   %for (m=[0,1]) mirror([m,0,0]) Tube();
 }