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
|
// Eppie Model
// Cathal Garvey
// CC License, Attribution, Sharealike
// http://creativecommons.org/licenses/by-sa/2.0/
// ===== Parameters =====
// Change $fn to higher numbers to increase the detail on curved surfaces.
$fn = 25;
TaperLength = 16;
BottomSphereRad = 2.5;
MidwayRad = 5.25;
TopLength = 20;
TopRad = 5.5;
LipRad = 6.5;
LipLength = 1;
WallThickness = 0.5;
// ======= Modules ======
// Tapered tube:
module TaperedTube(LipRad,LipLength,TopRad,TopLength,MidRad,TaperLength,EndRad){
union(){
translate([0,0,EndRad+TaperLength+TopLength])
cylinder(LipLength,LipRad,LipRad);
translate([0,0,EndRad+TaperLength])
cylinder(TopLength,MidRad,TopRad);
translate([0,0,EndRad-0.1])
cylinder(TaperLength+0.11,EndRad,MidRad);
translate([0,0,EndRad])
sphere(EndRad);
}
}
module HollowTube(){
difference(){
TaperedTube(LipRad,LipLength,TopRad,TopLength,MidwayRad,TaperLength,BottomSphereRad);
translate([0,0,WallThickness]) TaperedTube(TopRad-WallThickness,LipLength,TopRad-WallThickness,TopLength,MidwayRad-WallThickness,TaperLength,BottomSphereRad-WallThickness);
}
}
// ==== Construction ====
HollowTube();
|