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;
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;
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 ],
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)
}
}
-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 );
}
}
}
color("red")
rotate([90,0,0])
translate([ 0, 0, beam_th + 1 ])
- Restrainer();
+ Retainer();
}