}
}
+module DivideCut(){
+ w = tube_th/2;
+ d = divide_gap;
+
+ difference(){
+ offset(r=divide_gap) DivideHook();
+ DivideHook();
+ translate([-2*w,0]) mirror([0,1]) square([4*w, 4*w]);
+ }
+}
+
module DivideInPlace(){
rotate([0,0, -divide_angle])
translate([ -tube_dia/2 -tube_th/2, 0])
children();
}
+module DivideSurround(){
+ w = tube_th/2;
+ d = divide_gap;
+
+ offset(r= w*2) {
+ hull() {
+ DivideCut();
+ translate([-(4*w + 2*d), 8*w]) circle(r=w);
+ }
+ }
+}
+
module MainPlan(){ ////toplevel
difference(){
union(){
JoinCircs(join_cr);
}
- hull(){
- minkowski(){
- DividePlanInPlace(0.1);
- circle(divide_around);
- }
- }
+ DivideInPlace() DivideSurround();
}
translate([0, lock_0y]){
oval([lock_w/2, lock_d/2]);
circle(r = tube_dia/2);
- DividePlanInPlace();
+ DivideInPlace() DivideCut();
}
}
module DivideDemo(){ ////toplevel
color("black") translate([0,0,-2]) MainPlan();
- DivideInPlace() DivideHook();
+ color("grey") DivideInPlace() DivideHook();
+ color("blue") translate([0,0,-4]) DivideInPlace() DivideCut();
}
//MainPlan();