+sm_inner_rad = (sm_inner_circum + sm_bolt_tighten_allow/2) / TAU;
+sm_outer_rad = sm_inner_rad + sm_main_thick;
+
+smc_pos = [ 0, sm_inner_rad, 0 ];
+
+smc_bolt_nut_dia = sm_bolt_nut_width / cos(30);
+smc_bolt_nut_eff_thick = sm_bolt_nut_thick + sm_bolt_tighten_allow;
+
+smc_bolt_y = sm_bolt_dia/2 + sm_bolt_y_clear;
+smc_max_y = smc_bolt_y + sm_bolt_y_over
+ + max(sm_bolt_head_dia/2, smc_bolt_nut_dia/2);
+smc_cnr_c_x = sm_bolt_shaft/2 - sm_closure_cnr
+ + sm_bolt_head_thick/2 + smc_bolt_nut_eff_thick/2;
+
+catch_cr = catch_knob_dia/2 + catch_stem_beside_gap;
+catch_strap_width = sm_main_width;
+catch_strap_thick = sm_main_thick;
+catch_stem_end_h = catch_stem_h;
+catch_pin_width = (rivet_entry_width * sm_inner_rad / bayo_nom_rad)
+ - catch_pin_gap;
+
+echo("R ", sm_inner_rad, bayo_real_rad, bayo_nom_rad);
+
+cppy6 = -catch_strap_width/2;
+cppxC = 0.34 * sm_inner_rad * TAU;
+cppB = [ catch_pin_width/2,
+ cppy6
+ + catch_stem_below_gap
+ + catch_pin_height
+ + catch_knob_dia/2 ];
+cpp0 = [ 0,
+ cppB[1]
+ + catch_knob_dia
+ + catch_knob_above_gap ];
+cpp12 = cpp0 + [1,0] * (catch_pin_height * catch_hook_slope);
+cpp1 = cpp0 + [0,1] * catch_pin_height;
+cpp2 = cpp1 + [1,0] * catch_pin_width;
+cpp4 = cpp0 + [0,-1] * catch_stem_end_h;
+cpp3 = [ cpp2[0], cpp4[1] ];
+cpp5 = [ cpp0[0] - catch_stem_len,
+ -catch_stem_h ];
+cpp6 = [ cpp5[0], catch_cr ];
+cpp7 = cppB + [1,-1] * catch_knob_dia/2
+ + [ catch_stem_beside_gap, -catch_stem_below_gap ]
+ + [ 0, -catch_pin_height ]
+ + [-1,1] * catch_cr;
+cpp11 = cpp7 + [1,0] * catch_cr;
+cpp10 = [ cpp11[0], 0 - catch_cr ];
+cpp8 = cpp10 + [1,0] * catch_cr;
+cpp9 = cpp8 + [0,1] * catch_cr;
+cppC = [ cppxC, cpp9[1] ];
+cppA = [ -cppxC, 0 ];
+cppD = cppC + [0,-1] * catch_strap_width;
+cppE = [ cppA[0], cppD[1] ];
+