chiark / gitweb /
mudguard-bracket: retainer right circle
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 24 Feb 2024 11:38:19 +0000 (11:38 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 24 Feb 2024 11:38:19 +0000 (11:38 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
mudguard-bracket.scad

index ab9b425d9160f034612e2e48917197bfe7b6ef2b..ce92a105cea76d139689c03446e6b1e34911c4aa 100644 (file)
@@ -202,30 +202,33 @@ module Bracket(){ ////toplevel
   }
 }
 
-module Retainer(){ ////toplevel
+module RetainerElevation(){
   difference(){
     union(){
-      linextr(0, retainer_th) {
-       difference(){
-         union(){
-           rectfromto([ -retainer_ea_x, retainer_z_ctr ],
-                      [ +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 );
-         rectfromto([ -retainer_void_w/2, retainer_z + retainer_th ],
-                    [ +retainer_void_w/2, 
-                      screw_hole_z - retainer_adjust/2 ]);
-       }
-      }
-      linextr(0, retainer_tab)
-       translate([ 0, retainer_z_ctr ])
-       circle(r = retainer_radius + retainer_th);
+      rectfromto([ -retainer_ea_x, retainer_z_ctr ],
+                [ +retainer_ea_x, bracket_top_z + retainer_adjust/2 ]);
+      // TODO make it round at bottom
     }
-    linextr(-1, retainer_tab+1)
-      translate([ 0, retainer_z_ctr ])
+    translate([ 0, screw_hole_z ])
+      Oval( screw_dia/2, retainer_adjust );
+    translate([ 0, retainer_z_ctr ])
       circle(r = retainer_radius);
+    rectfromto([ -retainer_void_w/2, retainer_z + retainer_th ],
+              [ +retainer_void_w/2, 
+                screw_hole_z - retainer_adjust/2 ]);
+  }
+}
+
+module Retainer(){ ////toplevel
+  linextr(0, retainer_th) {
+    RetainerElevation();
+  }
+  linextr(0, retainer_tab) {
+    intersection(){
+      RetainerElevation();
+      translate([ 0, retainer_z_ctr ])
+       circle(r = retainer_radius + retainer_th);
+    }
   }
 }