1group() {
2	group() {
3		multmatrix([[1, 0, 0, 2], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) {
4			group() {
5				cylinder($fn = 0, $fa = 12, $fs = 2, h = 1, r1 = 0.7, r2 = 0.2, center = true);
6			}
7		}
8		multmatrix([[1, 0, 0, 2], [0, 1, 0, -2], [0, 0, 1, 0], [0, 0, 0, 1]]) {
9			group() {
10				cylinder($fn = 10, $fa = 12, $fs = 2, h = 1, r1 = 0.5, r2 = 0.5, center = true);
11			}
12		}
13		cube(size = [1, 1, 1], center = true);
14	}
15	multmatrix([[1, 0, 0, 4], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]);
16	multmatrix([[1, 0, 0, 4], [0, 1, 0, -2], [0, 0, 1, 0], [0, 0, 0, 1]]);
17	multmatrix([[1, 0, 0, -2], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) {
18		group() {
19			sphere($fn = 8, $fa = 12, $fs = 2, r = 0.5);
20		}
21	}
22	multmatrix([[1, 0, 0, -2], [0, 1, 0, -2], [0, 0, 1, 0], [0, 0, 0, 1]]) {
23		group() {
24			difference() {
25				cube(size = [1, 1, 1], center = true);
26				cylinder($fn = 0, $fa = 12, $fs = 2, h = 2, r1 = 0.4, r2 = 0.4, center = true);
27			}
28		}
29	}
30	multmatrix([[1, 0, 0, 0], [0, 1, 0, 2], [0, 0, 1, 0], [0, 0, 0, 1]]) {
31		group() {
32			cube(size = [0.5, 0.5, 1], center = true);
33		}
34	}
35	multmatrix([[1, 0, 0, 0], [0, 1, 0, -2], [0, 0, 1, 0], [0, 0, 0, 1]]) {
36		sphere($fn = 16, $fa = 12, $fs = 2, r = 1);
37	}
38	multmatrix([[1, 0, 0, 0], [0, 1, 0, -4], [0, 0, 1, 0], [0, 0, 0, 1]]) {
39		group() {
40			multmatrix([[0, 0, 1, 0], [0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 0, 1]]) {
41				union() {
42					linear_extrude(height = 1.5, center = true, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
43						circle($fn = 30, $fa = 12, $fs = 2, r = 0.3);
44					}
45					linear_extrude(height = 1.5, center = true, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
46						projection(cut = false, convexity = 0) {
47							multmatrix([[0, 0, -1, 0], [0, 1, 0, 0], [1, 0, 0, 0], [0, 0, 0, 1]]) {
48								multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0.318198], [0, 0, 0, 1]]) {
49									cylinder($fn = 30, $fa = 12, $fs = 2, h = 0.212132, r1 = 0.212132, r2 = 0, center = true);
50								}
51							}
52						}
53					}
54				}
55			}
56		}
57	}
58	multmatrix([[1, 0, 0, -2], [0, 1, 0, -4], [0, 0, 1, 0], [0, 0, 0, 1]]) {
59		cube(size = [1.43239, 0.5, 0.5], center = true);
60	}
61	multmatrix([[1, 0, 0, 2], [0, 1, 0, -4], [0, 0, 1, -0.5], [0, 0, 0, 1]]) {
62		multmatrix([[0.05, 0, 0, 0], [0, 0.05, 0, 0], [0, 0, 0.05, 0], [0, 0, 0, 1]]) {
63			group() {
64				multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) {
65					multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) {
66						union() {
67							multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 17], [0, 0, 0, 1]]) {
68								cylinder($fn = 30, $fa = 12, $fs = 2, h = 8, r1 = 6, r2 = 6, center = false);
69								cylinder($fn = 20, $fa = 12, $fs = 2, h = 10.5, r1 = 2.5, r2 = 2.5, center = false);
70							}
71							multmatrix([[1, 0, 0, -6], [0, 1, 0, -6], [0, 0, 1, 0], [0, 0, 0, 1]]) {
72								cube(size = [12, 22.8, 19.5], center = false);
73								multmatrix([[1, 0, 0, 0], [0, 1, 0, -5], [0, 0, 1, 17], [0, 0, 0, 1]]) {
74									cube(size = [12, 7, 2.5], center = false);
75								}
76								multmatrix([[1, 0, 0, 0], [0, 1, 0, 20.8], [0, 0, 1, 17], [0, 0, 0, 1]]) {
77									cube(size = [12, 7, 2.5], center = false);
78								}
79							}
80							multmatrix([[1, 0, 0, -6], [0, 1, 0, 0], [0, 0, 1, 19], [0, 0, 0, 1]]) {
81								multmatrix([[0, 0, 1, 0], [1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 0, 1]]) {
82									group() {
83										multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) {
84											linear_extrude(height = 12, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
85												polygon(points = [[0, 0], [18, 0], [0, 4]], paths = [[0, 1, 2]], convexity = 1);
86											}
87										}
88									}
89								}
90							}
91							multmatrix([[1, 0, 0, -6], [0, 1, 0, -6], [0, 0, 1, 19], [0, 0, 0, 1]]) {
92								cube(size = [12, 6.5, 4], center = false);
93							}
94						}
95					}
96				}
97			}
98		}
99	}
100}
101
102