+module JoinCircs(jr){
+ // http://mathworld.wolfram.com/Circle-CircleIntersection.html
+ R = tube_or + join_cr;
+ r = lock_or[1] + join_cr;
+ d = dist2d( [0,0], lock_0 );
+ x = (d*d - r*r + R*R) / (2*d);
+ y = sqrt( R*R - x*x );
+
+ echo(lock_0x, lock_0y, R,r, d, x,y);
+
+ for (m=[0,1]) {
+ mirror([m,0]) {
+ rotate(atan2(lock_0y, lock_0x)) {
+ translate([x,-y])
+ circle(r= jr);
+ }
+ }
+ }
+}
+
+module DividePlan(){
+ g = divide_gap;
+ dx = divide_head_dx;
+ for (m=[0,1]) mirror([m,0]) {
+ translate([divide_shaft_w, 0]) {
+ square([10, g]);
+ square([10, g]);
+ translate([0, 0]) square([g, divide_shaft_l + g]);
+ translate([0, divide_shaft_l]) square([divide_head_dx + g, g]);
+ translate([dx, divide_shaft_l]) square([g, divide_head_th + g]);
+ }
+ translate([-0.1, divide_shaft_l + divide_head_th])
+ square([divide_shaft_w + divide_head_dx + g, g]);
+ }
+}
+