- circle( r= brk_bolt_nut_r, $fn = 6 );
- translate([ 0, brk_bolt_nut_across_flats/2 ])
- circle( r=brk_bolt_nut_r/2, $fn = 4);
+ hull()
+ for (dz = [0, support_bridge_gap_z])
+ translate([0, dz])
+ circle( r= brk_bolt_nut_r, $fn = 6 );
+ }
+}
+
+module IfFam(){
+ if ($foreaftmaint_dz) {
+ children();
+ }
+}
+
+module FamLinextr(){
+ IfFam()
+ linextr_x_yz(-main_sz_x_fam/2, +main_sz_x_fam/2)
+ rotate(-90)
+ children();
+}
+
+module FamGraspElevation(){
+ difference(){
+ hull(){
+ ybot = $rack_rail_y - rack_rail_dia/2 + grasp_large_r
+ - fit_slope_len * 0.5;
+ for (y = [
+ ybot,
+ adapt_main_top_y - grasp_large_r
+ ])
+ for (dx= [/*-1,*/ +1] * rack_rail_dia/2)
+ translate([ -$foreaftmaint_rail_z + dx, y ])
+ circle(r= grasp_large_r);
+ }
+ if ($foreaftmaint_cutoff) {
+ translate([ -$foreaftmaint_rail_z, 0 ])
+ rectfromto([-100, -100],
+ [0, 100]);
+ }
+ }
+}
+
+module FamStemElevation(){
+ hull(){
+ rectfromto([ -$foreaftmaint_rail_z
+ , adapt_main_top_y ],
+ [ 0, block_y_min]);
+ translate([
+ -$foreaftmaint_rail_z,
+ $rack_rail_y +
+ rack_shear_ratio * $foreaftmaint_rail_z * $reverse_sign,
+ ])
+ square([0.1, rack_rail_dia * 0.5], center=true);