};
};
+module clip() {
+ translate([-1.5, 0, -1])
+ cube([1.5, 8, 9]);
+ translate([0, 0, -1]) difference() {
+ cube([3, 3, 9]);
+ translate([3-epsilon, 3-epsilon, -epsilon])
+ cylinder(r=3, h=9+2*epsilon);
+ };
+ translate([0, 0, -1])
+ difference() {
+ translate([-1, 8, 0])
+ cylinder(r=2, h=9);
+ translate([-infty/2-1.5+epsilon, 0, 0])
+ cube(infty, center=true);
+ };
+};
+
module stem() {
hull() {
cut_ellipse(25, 31, 4);
cut_ellipse(10, 24, 6);
};
+
+ // left-side and right-side clip
difference() {
- union() {
- translate([3.75, 31-epsilon, 0])
- rotate([0, 15, 0]) {
- cube([1.5, 8, 8]);
- difference() {
- translate([1, 8, 0])
- cylinder(r=2, h=8);
- translate([infty/2+1.5-epsilon, 0, 0])
- cube(infty, center=true);
- };
- };
- translate([-3.75, 31-epsilon, 0])
- rotate([0, -15, 0]) {
- translate([-1.5, 0, 0])
- cube([1.5, 8, 8]);
- difference() {
- translate([-1, 8, 0])
- cylinder(r=2, h=8);
- translate([-infty/2-1.5+epsilon, 0, 0])
- cube(infty, center=true);
- };
+ union() {
+ translate([3.75, 31-epsilon, 0])
+ rotate([0, 15, 0])
+ scale([-1, 1, 1])
+ clip();
+
+ translate([-3.75, 31-epsilon, 0])
+ rotate([0, -15, 0])
+ clip();
};
- };
- translate([0, 0, -infty/2])
- cube(infty, center=true);
- };
-/*
- hull() {
- cut_ellipse(12, 40, 0.5);
- cut_ellipse( 8, 35, 2);
- };
- hull() {
- cut_ellipse(12, 35, 2);
- cut_ellipse(10, 25, 5);
- };
- hull() {
- cut_ellipse(10, 25, 5);
- cut_ellipse(12, 10, 4);
+ translate([0, 0, -infty/2])
+ cube(infty, center=true);
};
-*/
+
for (dist=[0:9.5:19])
translate([0, dist, 0])
interdental_cylinder();
cube(infty, center=true);
*/
};
+ // rear-side protrusion
translate([-50, 1, 6])
- rotate([0, 90, 0])
- cylinder(r=2.5, h=100, $fn=4);
+ rotate([0, 90, 0])
+ cylinder(r=3, h=40, $fn=4);
+ // rear-side protrusion
+ translate([10, 1, 6])
+ rotate([0, 90, 0])
+ cylinder(r=3, h=40, $fn=4);
};
+ // screw head hole
rotate([-90, 0, 0])
translate([0,-6,3])
cylinder(r=3.5, h=55);
+ // screw head
rotate([-90, 0, 0])
translate([0,-6,-infty/2])
cylinder(r=1.75, h=infty, $fn=6);