forked from jeremybennett/scad-examples
-
Notifications
You must be signed in to change notification settings - Fork 0
/
boat.scad
124 lines (124 loc) · 4.95 KB
/
boat.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
// Define a hull. The parameter controls whether we are above (+1) or
// below (-1) the Z axis.
module half_hull (x) {
polyhedron (
points = [ [ 0, 36, 0 * x], // Point 0
[ 0, 34, 0 * x], // Point 1
[ 0, 110, 0 * x], // Point 2
[ 60, 30, 8 * x], // Point 3
[ 60, 8, 0 * x], // Point 4
[ 60, 102, 8 * x], // Point 5
[120, 25, 15 * x], // Point 6
[120, 5, 0 * x], // Point 7
[120, 95, 15 * x], // Point 8
[180, 23, 19 * x], // Point 9
[180, 4, 0 * x], // Point 10
[180, 91, 19 * x], // Point 11
[240, 21, 23 * x], // Point 12
[240, 2, 0 * x], // Point 13
[240, 87, 23 * x], // Point 14
[300, 20, 25 * x], // Point 15
[300, 1, 0 * x], // Point 16
[300, 85, 25 * x], // Point 17
[360, 19, 25 * x], // Point 18
[360, 2, 0 * x], // Point 19
[360, 85, 25 * x], // Point 20
[420, 23, 25 * x], // Point 21
[420, 3, 0 * x], // Point 22
[420, 85, 25 * x], // Point 23
[480, 28, 23 * x], // Point 24
[480, 5, 0 * x], // Point 25
[480, 59, 24 * x], // Point 26
[480, 85, 25 * x], // Point 27
[540, 40, 18 * x], // Point 28
[540, 10, 0 * x], // Point 29
[540, 64, 25 * x], // Point 30
[540, 85, 25 * x], // Point 31
[600, 54, 10 * x], // Point 32
[600, 14, 0 * x], // Point 33
[600, 70, 24 * x], // Point 34
[600, 87, 24 * x], // Point 35
[660, 73, 0 * x], // Point 36
[660, 21, 0 * x], // Point 37
[660, 80, 22 * x], // Point 38
[660, 90, 22 * x], // Point 39
[420,-294, 0 * x], // Point 40
[480,-283, 0 * x], // Point 41
[360,-270, 0 * x], // Point 42
[240, -92, 0 * x] ], // Point 43
triangles = [ [ 2, 0, 5],
[ 0, 3, 5],
[ 0, 1, 3],
[ 4, 1, 3],
[ 5, 3, 8],
[ 3, 6, 8],
[ 3, 4, 6],
[ 7, 4, 6],
[ 8, 6, 11],
[ 6, 9, 11],
[ 6, 7, 9],
[10, 7, 9],
[11, 9, 14],
[ 9, 12, 14],
[ 9, 10, 12],
[13, 10, 12],
[14, 12, 17],
[12, 15, 17],
[12, 13, 15],
[16, 13, 15],
[17, 15, 20],
[15, 18, 20],
[15, 16, 18],
[19, 16, 18],
[20, 18, 23],
[18, 21, 23],
[18, 19, 21],
[22, 19, 21],
[23, 21, 27],
[21, 24, 27],
[21, 22, 24],
[25, 22, 24],
[31, 30, 26],
[31, 27, 26],
[30, 26, 24],
[30, 28, 24],
[28, 29, 25],
[28, 24, 25],
[39, 38, 34],
[39, 35, 34],
[38, 34, 32],
[38, 36, 32],
[36, 37, 33],
[36, 32, 33],
[35, 34, 30],
[35, 31, 30],
[34, 30, 28],
[34, 32, 28],
[32, 33, 29],
[32, 28, 29],
[40, 25, 22],
[41, 40, 25],
[42, 22, 40],
[43, 22, 42],
[43, 22, 4],
[41, 37, 25] ] );
}
// Two halves of the hull
half_hull (x = 1);
half_hull (x = -1);
// Sails
polyhedron (
points = [ // Foresail
[ 60, 103, 0], // Point 0
[300, 160, 90], // Point 1
[350,1050, 0], // Point 2
// Mainsail
[300, 140, 0], // Point 3
[360,1400, 0], // Point 4
[600, 140, 100], // Point 5
[460,1400, 33] ], // Point 6
triangles = [ // Foresail
[0, 1, 2],
// Mainsail
[5, 3, 4],
[5, 6, 4] ] );