+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;
+
+cpp0 = [0,0];
+cpp1 = cpp0 + [0,1] * catch_pin_height;
+cpp2 = cpp0 + [1,0] * (rivet_entry_width - catch_pin_gap);
+cpp3 = cpp2 + [0,-1] * catch_stem_end_h;
+cpp4 = cpp2 + [0,-1] * catch_stem_end_h;
+cpp5 = [ cpp0[0] - catch_stem_len,
+ cpp0[1] - (catch_stem_h + catch_cr) ];
+cppB = [ 0.5*(cpp1 + cpp2)[0],
+ cpp1[1] - catch_pin_height - catch_knob_above_gap -
+ 0.5 * catch_knob_dia ];
+cpp7 = cppB + [-1,-1] * catch_knob_dia/2
+ + [ catch_stem_beside_gap, -catch_stem_below_gap ]
+ + [ 0, -catch_pin_height ]
+ + [-1,1] * catch_cr;
+cpp6 = [ cpp5[0], cpp7[1] ];
+cpp8 = [ cpp7[0] + catch_cr*2,
+ cpp0[0] - catch_cr ];
+cppC = cpp8 + [1,1] * catch_cr;
+cppA = [ cpp5[0] - catch_cr*2, cpp0[1] ];
+cppD = cppC + [0,-1] * catch_strap_width;
+cppE = [ cppA[0], cppD[1] ];
+