-
Notifications
You must be signed in to change notification settings - Fork 0
/
kuehlkoerper.html
127 lines (110 loc) · 3.06 KB
/
kuehlkoerper.html
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
<div id="container"></div>
<style>
body {
margin: 0;
padding: 0;
overflow: hidden;
}
.buttons {
position: absolute;
top: 10px;
left: 10px;
}
.buttons button {
border: 1px solid black;
background-color: darkgray;
color: white;
font-size: 16px;
padding: 4px;
}
#time {
font-family: verdana;
font-size: 16px;
font-weight: bold;
}
#pathtime {
font-family: verdana;
font-size: 14px;
font-weight: bold;
color: #cccccc;
}
</style>
<script src="lib/jquery.js"></script>
<script src="lib/socket.io.js"></script>
<script src="lib/three.js"></script>
<script src="lib/helvetiker_regular.typeface.js"></script>
<script src="lib/orbit.js"></script>
<script src="lib/cnclib.js"></script>
<textarea class="buttons" style="display: none">
</textarea>
<script>
var cnc = new cnclib({ extendCorners: true, defaultSpeed: 100, dipSpeed: 50 });
var mill = 2;
var dim = { x: 400, y: 250 }; // width & height of segment
var nsegments = 3; // number of repeated segments
var spacing = 0; //mm spacing between segments
var types =
[
{ r: 1.35, d: 4.5, nSteps: 1, always: true },
{ r: 1.35, d: 4.5, nSteps: 1, always: false },
{ r: 5.50, d: 17, step: 2, always: true },
];
var holes =
[
{ x: 5, y: 40, type: 0 },
{ x: 30, y: 20, type: 0 },
{ x: 132, y: 22, type: 0 },
{ x: 132, y: 60, type: 0 },
{ x: 200, y: 45, type: 0 },
{ x: 215, y: 40, type: 0 },
{ x: 296, y: 17, type: 0 },
{ x: 330, y: 17, type: 0 },
{ x: 370, y: 20, type: 0 },
// { x: 250, y: 75, type: 2 },
{ x: 231, y: 95, type: 0 },
{ x: 231, y: 155, type: 0 },
{ x: 169, y: 155, type: 0 },
{ x: 169, y: 95, type: 0 },
{ x: 148, y: 90, type: 1 },
{ x: 116, y: 90, type: 1 },
{ x: 96, y: 79, type: 1 },
{ x: 14, y: 63, type: 1 },
{ x: 14, y: 119, type: 1 },
{ x: 58, y: 119, type: 1 },
{ x: 116, y: 112, type: 1 },
{ x: 116, y: 112 + 11.5, type: 1 },
{ x: 116, y: 112 + 11.5 * 2, type: 1 },
{ x: 116, y: 112 + 11.5 * 3, type: 1 },
{ x: 116, y: 112 + 11.5 * 4, type: 1 },
{ x: 116, y: 112 + 11.5 * 5, type: 1 },
{ x: 58, y: 177, type: 1 },
{ x: 14, y: 177, type: 1 },
{ x: 5, y: 250 - 40, type: 0 },
{ x: 30, y: 250 - 20, type: 0 },
{ x: 110, y: 250 - 22, type: 0 },
{ x: 110, y: 250 - 54, type: 0 },
{ x: 155, y: 250 - 50, type: 1 },
{ x: 200, y: 250 - 45, type: 0 },
{ x: 215, y: 250 - 40, type: 0 },
{ x: 296, y: 250 - 17, type: 0 },
{ x: 330, y: 250 - 17, type: 0 },
{ x: 370, y: 250 - 20, type: 0 },
];
var first = true;
var ox = 0, oy = 0;
ox += dim.x + spacing;
for (var seg = 1; seg < nsegments; seg++)
{
for (var h in holes)
{
var hole = holes[h];
var type = types[hole.type];
if (type.always || first)
cnc.drill( { x: ox + hole.x, y: dim.y - oy - hole.y, radius: type.r, depth: type.d, nSteps: type.step, outlineOnly: true } );
}
ox += dim.x + spacing;
first = false;
}
cnc.setBody( { width: ox - spacing, height: dim.y, depth: 40, x: (ox - spacing) / 2, y: dim.y / 2 } );
cnc.done();
</script>