+ union(){
+ PsHull([P2,P3,P4]);
+ PsHull([P0,P1,P2,P5,P8,P9]);
+ }
+ hull(){
+ for (dp = [ [0,0],
+ (P6-P5),
+ (P3-P4)
+ ]) {
+ translate(Q0 + 5*dp) circle(r=edge_or, $fn=20);
+ }
+ }
+ }
+}
+
+module StrapSectTop(){
+ translate(P9t + ourcirc_r * [+1,-1]) {
+ difference(){
+ circle(r = strap_below + strap_th, $fn=40);
+ circle(r = strap_below, $fn=40);
+ }
+ }
+}
+
+module StrapSectBot(){
+ mirror([0,1]){
+ for (dx = [ -(strap_below + strap_th),
+ 0 ]) {
+ translate(P9b + [ ourcirc_r + dx, -10 ]) {
+ square([strap_th, 20]);
+ }
+ }
+ }
+}
+
+module Ribbles(xmax, xmin, y){
+ for (x = [ xmax + ourcirc_r - ribble_rad :
+ -ribble_rad * 4 :
+ xmin ]) {
+ translate([x, y])
+ circle(r = ribble_rad, $fn=20);
+ }
+}
+
+module LeverSectTop(){
+ difference(){
+ union(){
+ LeverSect(true, false);
+ Ribbles(P8t[0],
+ Q0[0] + edge_or + ribble_rad*2,
+ P5[1] + ourcirc_r);
+ }
+ translate([pivot_x,0]) circle(r= pivot_r + pivot_slop, $fn=20);
+ }
+}
+
+module LeverSectBot(inadj=false){
+ P6 = inadj ? P6a : P6t;
+ mirror([0,1]) {
+ LeverSect(false, inadj);
+ PsHull([P5,P6,P7]);
+ PsHull([P8b,P8eb,P9eb,P9b]);
+ Ribbles(P8eb[0],
+ P9b[0],
+ P8eb[1]);
+ translate([pivot_x,0]) circle(r=pivot_r, $fn=20);