bracket_bot_z = screw_hole_z - beam_h/2;
bracket_top_z = screw_hole_z + beam_h/2;
-bracket_bot_xsz = tubeswidth_at_z(bracket_bot_z) + tube_dia * 1.5;
-bracket_top_xsz = tubeswidth_at_z(bracket_top_z) + tube_dia * 1.5;
+bracket_bot_xsz = tubeswidth_at_z(bracket_bot_z) + tube_dia * 2.5;
+bracket_top_xsz = tubeswidth_at_z(bracket_top_z) + tube_dia * 2.5;
wing_top_ea_x = -tubeswidth_top/2 - wings_main_th/2;
retainer_ea_x = wing_top_ea_x + wings_main_th/2 + retainer_x_gap;
retainer_z_ctr = retainer_z - retainer_radius;
+tube_angle = atan2((tubeswidth_bot - tubeswidth_top)/2, tubeswidth_dz);
+
wing_corners = [
// [ -wings_dist_x/2, wings_cup_z/2 ],
[ wing_top_ea_x, 0 ],
}
}
+module Tube(){ ////toplevel
+ translate([ -tubeswidth_bot/2 - tube_dia/2, tube_dia/2, 0 ])
+ rotate([ 0, tube_angle, 0])
+ linextr(-50, 100)
+ circle(r = tube_dia/2);
+}
+
+module Clamp(){ ////toplevel
+ difference(){
+ hull(){
+
+ }
+ }
+}
+
module ElevationDemo(){ ////toplevel
translate([0,0,2]) color("red") WingCupElevationNegative();
translate([0,0,1]) color("blue") WingElevation();
rotate([90,0,0])
translate([ 0, 0, beam_th + 1 ])
Retainer();
+ %for (m=[0,1]) mirror([m,0,0]) Tube();
}