4 diaphragm_thickness = 0.8;
14 cylinder(h=diaphragm_thickness, r = outer_d/2 + wall_thickness-epsilon);
19 cylinder(r=outer_d/2 + wall_thickness, h = shader_h);
20 translate([0, 0, -epsilon/2])
21 cylinder(r1 = outer_d/2+wall_thickness/2, r2=outer_d/2+wall_thickness/2-(2/5)*(outer_d-inner_d),
22 h = shader_h + epsilon);
28 cylinder(r = outer_d/2 + wall_thickness, h = base_h + epsilon);
29 translate([0, 0, - epsilon/2])
30 cylinder(r = inner_d/2, h = base_h + 2*epsilon);
36 cylinder(r = outer_d/2 + wall_thickness, h = holder_h-base_h);
37 translate([0, 0, -epsilon/2])
38 cylinder(r = outer_d/2, h = holder_h - base_h + epsilon);
43 cylinder(r = outer_d/2 + wall_thickness - epsilon, h = holder_h-base_h-epsilon);
44 translate([-50, -(inner_d-3)/2, -epsilon])
45 cube([100, inner_d-3, 100]);
48 translate([outer_d/2+1.5, holder_h-base_h-1, 0])
54 intersection() { // belt clip arc
56 cylinder(r = outer_d/2 + 2*wall_thickness + cable_thickness, h = shader_h + holder_h);
57 translate([0, 0, -epsilon/2])
58 cylinder(r = outer_d/2 + wall_thickness + cable_thickness, h = shader_h + holder_h + epsilon);
61 cube([outer_d + 4*wall_thickness + 2*cable_thickness + epsilon, 12, shader_h + holder_h]);
63 difference() { // connect the clip to the body
65 translate([outer_d/2-3, 0, 0])
66 cylinder(r = cable_thickness + 2*wall_thickness + 3, h = shader_h + holder_h);
67 translate([0, 0, -epsilon/2])
68 cylinder(r = outer_d/2 + wall_thickness - epsilon, h = shader_h + holder_h + epsilon);
69 translate([0, -4, -epsilon/2])
70 cube([outer_d/2 + 2*wall_thickness + cable_thickness + epsilon, 20, holder_h + shader_h + epsilon]);
73 intersection() { // hold the cable in position
75 translate([outer_d/2+2*wall_thickness + cable_thickness, 0, 0])
76 cylinder(r = 2.75, h = shader_h + holder_h);
77 translate([0, 0, -epsilon/2])
78 cylinder(r = outer_d/2 + 2*wall_thickness + cable_thickness, h = shader_h + holder_h + epsilon);
84 translate([0, 0, shader_h])
85 color([1, 0.5, 0.5, 0.2]) diaphragm();
87 translate([0, 0, shader_h-epsilon])
90 translate([0, 0, shader_h+base_h-2*epsilon])