+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);
+ }
+}
+