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

index 054e7e031e9ebe67cf152c4bf18bc7d4d6ccd62a..6e08e07b84710b5d41abc3beeadac495e8722a54 100644 (file)
@@ -9,7 +9,8 @@ wings_cup_inner = 3;
 wings_inner_th = 1;
 wings_main_th = 3.5;
 wings_cup_z = -34;
-restrainer_z = -15; // XXXX
+retainer_z = -15; // XXXX
+retainer_adjust = 15;
 
 tubeswidth_top = 23.5;
 tubeswidth_bot = 29;
@@ -22,9 +23,9 @@ screw_dia = 4 + 0.75;
 beam_h = 15;
 beam_th = 4.5;
 wings_height = 15;
-restrainer_th = 3;
+retainer_th = 3;
 
-restrainer_x_gap = 0.75;
+retainer_x_gap = 0.75;
 
 $fs = 0.1;
 $fa = 3;
@@ -42,7 +43,7 @@ bracket_top_xsz = tubeswidth_at_z(bracket_top_z) + tube_dia * 1.5;
 
 wing_top_ea_x = -tubeswidth_top/2 - wings_main_th/2;
 
-restrainer_ea_x = wing_top_ea_x + wings_main_th/2 + restrainer_x_gap;
+retainer_ea_x = wing_top_ea_x + wings_main_th/2 + retainer_x_gap;
 
 wing_corners = [
 //             [ -wings_dist_x/2, wings_cup_z/2 ],
@@ -53,6 +54,14 @@ wing_corners = [
 wing_elevation_cup_outside_circle =
   [ -wings_cup_inner/2 - wings_main_th/2, wings_cup_inner/2 ];
 
+module Oval(r, adjust_total){
+  hull(){
+    for (dy = [-1,+1] * adjust_total * 0.5)
+      translate([ 0, dy ])
+       circle(r = r);
+  }
+}
+
 module AtWingCupElevation () {
   translate([ -wings_dist_x/2, wings_cup_z ])
     rotate(-wings_cup_angle)
@@ -157,14 +166,16 @@ module Bracket(){ ////toplevel
   }
 }
 
-module Restrainer(){ ////toplevel
-  linextr(0, restrainer_th) {
+module Retainer(){ ////toplevel
+  linextr(0, retainer_th) {
     difference(){
       union(){
-       rectfromto([ -restrainer_ea_x, restrainer_z ],
-                  [ +restrainer_ea_x, bracket_top_z ]);
-       
+       rectfromto([ -retainer_ea_x, retainer_z ],
+                  [ +retainer_ea_x, bracket_top_z + retainer_adjust/2 ]);
+       // TODO make it round at bottom
       }
+      translate([ 0, screw_hole_z ])
+       Oval( screw_dia/2, retainer_adjust );
     }
   }
 }
@@ -189,5 +200,5 @@ module Demo(){ ////toplevel
   color("red")
     rotate([90,0,0])
     translate([ 0, 0, beam_th + 1 ])
-    Restrainer();
+    Retainer();
 }