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

index 72c0563afe46160742d6342d20c172ec581b239b..216965665b3ce32976cc13ae7e1ff40a7df1fa20 100644 (file)
@@ -34,8 +34,17 @@ bracket_top_xsz = tubeswidth_at_z(bracket_top_z) + tube_dia * 1.5;
 
 wing_top_ea_x = -tubeswidth_top/2 - wings_main_th/2;
 
+wing_corners = [
+               [ -wings_dist_x/2, wings_cup_z/2 ],
+               [ wing_top_ea_x, 0 ],
+               [ wing_top_ea_x, bracket_top_z - wings_main_th/2 ]
+               ];
+
+wing_elevation_cup_outside_circle =
+  [ -wings_cup_inner/2 - wings_main_th/2, wings_cup_inner/2 ];
+
 module AtWingCupElevation () {
-  translate([ -wings_dist_x, wings_cup_z ])
+  translate([ -wings_dist_x/2, wings_cup_z ])
     rotate(-wings_cup_angle)
     children();
 }
@@ -71,16 +80,36 @@ module WingCupElevationPositive () {
   }
 }
 
+module WingCircle(){
+  circle(r = wings_main_th/2);
+}
+
+module WingElevationCupToWingJoinCircle(){
+  translate(wing_elevation_cup_outside_circle + [ 0, wings_cup_depth ])
+    WingCircle();
+}
+
 module WingElevation(){
   hull(){
     AtWingCupElevation(){
-      translate([ -(wings_inner_th + wings_main_th)/2,
-                 wings_cup_inner/2 ])
-       circle(r = wings_main_th);
+      translate(wing_elevation_cup_outside_circle)
+       WingCircle();
+      WingElevationCupToWingJoinCircle();
+    }
+  }
+  hull(){
+    AtWingCupElevation()
+      WingElevationCupToWingJoinCircle();
+    translate(wing_corners[0])
+      WingCircle();
+  }
+  for (i = [0: len(wing_corners)-2]) {
+    hull(){
+      for (j = [0, 1]) {
+       translate(wing_corners[i + j])
+         WingCircle();
+      }
     }
-    translate([ wing_top_ea_x, 0])
-      circle(r = wings_main_th);
-    // TODO add the other end here
   }
 }
 
@@ -100,6 +129,12 @@ module ElevationDemo(){
   translate([0,0,1]) color("blue") WingElevation();
   WingCupElevationPositive();
   BracketAcrossElevation();
+  AtWingCupElevation(){
+    translate([0,0,-2]) color("grey") {
+      rectfromto([0,0], [10,10]);
+      rectfromto([0,0], -[10,10]);
+    }
+  }
 }
 
 /*WingsElevation () {