-
Notifications
You must be signed in to change notification settings - Fork 0
/
PondPumpSplitterAdapter.scad
135 lines (107 loc) · 4 KB
/
PondPumpSplitterAdapter.scad
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
// Laminar Flow Pond Pump Hose Splitter Adapter
// This will take a pond pump and split the output into multiple hoses.
// The unique part of this item is it creates laminar flow streams before the splitting occurs over smooth transitions into the smaller sized hoses. This should reduce water flow drop.
// Created by Mike Creuzer Feb 2013 [email protected]
// Using Customizable Honeycomb Pencil Holder by IWorkInPixels http://www.thingiverse.com/thing:41703
// Tubing
// Tubing Outer Diameter
TubingOD = 6;
//Tubing Inner Diameter
TubingID = 4;
// Create the base
// Diameter of the pump outlet
PumpHousingHole = 19;
// Height (Base height to clear the pump housing; may be adjusted by rounded top)
height = 40;
// How thick the walls will be
WallThickness = 2; // Even numbers of your printer's print thread width would give good results.
//Laminar Flow Generator
// Honeycomb Radius (hexes from center to outside of holder)
honeycomb_radius = 2; //[2:5]
// Floor Thickness
floor_thickness = 0; //[0:5]
// The value that the honeycomb_radius is a fudge factor to allow for good wall thicknesses on the outside of the honeycomb mesh. this may need to be replaced with a true cylindar
HexMath = PumpHousingHole * .5 / (3 * honeycomb_radius);
// Inner Smoothing for the output end.
smooth = 180; // Number of facets of rounding cylinder 360 is smooth but slow rendering
Base();
translate([0,0,height]) ReducerCone (3);
// Print Support Beam
linear_extrude(height=height + PumpHousingHole + 3){hexagon(HexMath*1.2);} // base
module ReducerCone (count)
{
difference()
{
for ( i = [1 : count] )
{
// Outer Cones
rotate(a= i * 360 / count) hull()
{
cylinder(r=PumpHousingHole * .5, h=.01);
translate([0, (PumpHousingHole - TubingOD) * .5 , PumpHousingHole + TubingOD]) cylinder(r=(TubingOD + WallThickness) * .5, h=.01);
}
// tube sockets OD
rotate(a= i * 360 / count) translate([0, (PumpHousingHole - TubingOD) * .5 , PumpHousingHole + TubingOD]) cylinder(r=(TubingOD + WallThickness) * .5, h=TubingOD);
}
for ( i = [1 : count] )
{
// Inner Cones
rotate(a= i * 360 / count) hull()
{
cylinder(r=(PumpHousingHole - WallThickness) * .5, h=.01);
translate([0, (PumpHousingHole - TubingOD) * .5 , PumpHousingHole + TubingOD]) cylinder(r=TubingID * .5, h=.01, $fn=smooth);
}
//Tube sockets ID
rotate(a= i * 360 / count) translate([0, (PumpHousingHole - TubingOD) * .5 , PumpHousingHole + TubingOD]) cylinder(r=(TubingOD) * .5, h=TubingOD, $fn=smooth);
}
}
}
module Base()
{
difference()
{
cylinder(r=PumpHousingHole * .5, h=height);
translate([0,0,height - (height * .25)]) cylinder(r1=(PumpHousingHole - WallThickness) * .40, r2=(PumpHousingHole - WallThickness) * .5, h=height * .25);
pencil_holder(honeycomb_radius, HexMath, height*2, height*2);
}
pencil_holder(honeycomb_radius, HexMath, height, floor_thickness);
}
module hexagon(radius){
circle(r=radius,$fn=6);
}
module cell(radius, height, floor_thickness){
difference(){
linear_extrude(height=height){hexagon(radius*1.2);} // base
translate([0,0,floor_thickness]) linear_extrude(height=height){hexagon(radius*1.1);} // hole
}
}
module translate_to_hex(x_coord, y_coord, hex_width){
x = x_coord*hex_width*1.75;
y = (2*y_coord*hex_width)+(x_coord*hex_width);
translate([x, y, 0]){
child(0);
}
}
module rounded_cap(radius, hex_width, height){
difference(){
translate([0,0,height]) cylinder(r=3*hex_width*radius,h=height *.75,center=true);
translate([0,0,height/1.5]) scale([1,1,1/radius]) sphere(r=3*hex_width*radius,center=true);
}
}
// This code section is by IWorkInPixels from http://www.thingiverse.com/thing:41703
module pencil_holder(radius, hex_width, height, floor_thickness){
difference(){
union(){
for(x = [-radius:radius]){
for(y = [-radius:radius]){
assign(z=0-x-y){
if(max(abs(x),abs(y),abs(z))<=radius){
translate_to_hex(x, y, hex_width) cell(hex_width, height, floor_thickness);
}
}
}
}
}
rounded_cap(radius, hex_width, height);
}
}