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;
+cpp2 = cpp1 + [1,0] * (rivet_entry_width - catch_pin_gap);
+cpp4 = cpp0 + [0,-1] * catch_stem_end_h;
+cpp3 = [ cpp2[0], cpp4[1] ];
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
+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;
cpp6 = [ cpp5[0], cpp7[1] ];
-cpp8 = [ cpp7[0] + catch_cr*2,
- cpp0[0] - catch_cr ];
+cpp10 = [ cpp11[0], cpp0[1] - catch_cr ];
+cpp8 = cpp10 + [1,0] * catch_cr;
+cpp9 = cpp8 + [0,1] * catch_cr;
cppC = cpp8 + [1,1] * catch_cr;
cppA = [ cpp5[0] - catch_cr*2, cpp0[1] ];
cppD = cppC + [0,-1] * catch_strap_width;
}
}
-module CatchCoreProfile(){
+module CatchCoreProfile(){ ////toplevel
difference(){
polygon([ cpp4,
cpp3,
cppE,
cppD,
cppC,
- ]);
+ cpp9,
+ cpp10,
+ cpp11,
+ cpp6,
+ cpp5,
+ ], convexity=10);
}
}