N3MIS15
Well-Known Member
- Joined
- 4/10/10
- Messages
- 97
- Reaction score
- 41
Bottle washers have been done to death, but I figured I would post mine anyways. The main difference in mine is the 3d printed "nozzle".
I designed the "nozzle" to enable a snug fit with all bottles I had on hand (coopers PET, grolsh, coopers long neck and a random assortment of stubbies).
I printed in flexible PLA (polyflex) but intend to print in TPU in the future.
The "nozzle" is a snug fit in the 1/2" tees I got from bunnings, but the scad file is for the most part parametric anyways..
Few pictures:
Openscad source:
I designed the "nozzle" to enable a snug fit with all bottles I had on hand (coopers PET, grolsh, coopers long neck and a random assortment of stubbies).
I printed in flexible PLA (polyflex) but intend to print in TPU in the future.
The "nozzle" is a snug fit in the 1/2" tees I got from bunnings, but the scad file is for the most part parametric anyways..
Few pictures:
Openscad source:
Code:
$fn=100;
pvc_pipe = 22;
socket_height = 40;
shelf_pos = socket_height/2;
shelf_height = 2;
shelf_width = 2;
relief_angle = 25;
relief_dia = 8.4;
relief_pcd = (pvc_pipe/2)+1;
relief_count = 6;
small_bottle_inner = 18.6;
large_bottle_inner = 22.2;
twist_count = 3;
module nozzle() {
difference() {
union() {
difference() {
union() {
translate([0, 0, -socket_height/4])
cylinder(r=pvc_pipe/2, h=socket_height/2, center=true);
translate([0, 0, (-(socket_height/2)+(shelf_height/2))+shelf_pos+shelf_height])
cylinder(r=(pvc_pipe/2)+shelf_width, h=shelf_height, center=true); //shelf
translate([0, 0, (-(socket_height/2)+(shelf_height/2))+shelf_pos])
cylinder(r1=(pvc_pipe/2), r2=(pvc_pipe/2)+shelf_width, h=shelf_height, center=true);
}
translate([0, 0, -socket_height/4])
cylinder(r1=(pvc_pipe/2)-2, r2=2, h=socket_height/2, center=true);
for (i=[0 : relief_count-1]){
rotate(i*360/relief_count+360/relief_count, [0, 0, 1])
rotate([relief_angle, 0, 0])
translate([0, relief_pcd, 0])
cylinder(r=relief_dia/2, h=shelf_height*10, center=true);
}
}
translate([0, 0, socket_height/4+shelf_height*2])
cylinder(r=12/2, h=socket_height/2, center=true);
translate([0, 0, socket_height/4+shelf_height*2])
for (i=[0 : twist_count-1]){
rotate(i*360/twist_count, [0, 0, 1])
linear_extrude(height=socket_height/2, center=true, convexity=10, twist=-30, $fn=1000)
square([small_bottle_inner, 2.4], center=true);
}
translate([0, 0, socket_height/8+shelf_height*2])
for (i=[0 : twist_count-1]){
rotate(i*360/twist_count, [0, 0, 1])
linear_extrude(height=socket_height/4, center=true, convexity=10, twist=-15, $fn=1000)
square([large_bottle_inner, 2.4], center=true);
}
}
cylinder(r=2, h=socket_height*2, center=true);
translate([0, 0, -(socket_height/2)+0.5])
difference() {
cylinder(r=pvc_pipe/2, h=1, center=true);
cylinder(r1=(pvc_pipe/2)-1, r2=pvc_pipe/2, h=1, center=true);
}
}
}
nozzle();