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
|
$fn=150;
module lower_cone() {
cylinder(10, 30, 40, 0);
}
module lower_cone_cut_in() {
intersection() {
translate([0,0,-60])
sphere(70);
translate([0,0,-1])
cylinder(50, 28, 28, 0);
}
}
module middle_cylinder() {
cylinder(90, 40, 40, 0);
}
module upper_cone() {
color("red")
cylinder(20, 40, 30, 0);
color("silver")
translate([0,0,20])
cylinder(5, 30, 30, 0);
}
module upper_cone_cut_in() {
translate([0,0,21])
difference() {
cylinder(5, 27, 29.5, 0);
cylinder(2, 26.5, 26, 0);
}
}
union() {
color("silver")
difference() {
lower_cone();
lower_cone_cut_in();
}
color("red")
translate([0,0,10])
middle_cylinder();
translate([0,0,100])
difference() {
upper_cone();
color("silver")
upper_cone_cut_in();
}
}
|