-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathentry.js
76 lines (60 loc) · 2.31 KB
/
entry.js
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
var Editor3 = require('editor3');
var ModeManager = require('modemanager');
var OrbitControls = require('./lib/orbitcontrols')
var HelperMode = require('./modes/helper');
var SelectFaceMode = require('./modes/select-face');
var UploadMode = require('./modes/upload');
var ToolpathMode = require('./modes/toolpath');
var SendToGrblMode = require('./modes/send-to-grbl');
var SimulateMode = require('./modes/send-to-grbl');
var tools = window.tools = require('editor3-meshtools');
var skateboard = require('skateboard');
require('domready')(function() {
var rootModeManager = new ModeManager(true);
var editor = window.editor = new Editor3('#editor3 .context', '#editor3');
editor.updateSteps.push(rootModeManager.update.bind(rootModeManager));
var axes = new THREE.AxisHelper(10);
editor.scene.add(axes)
rootModeManager.add('editor3', editor.modeManager);
var uploadMode = new UploadMode(
rootModeManager,
document.getElementById('stl-drop-target')
);
// Setup editor3 controls
editor.modeManager.add(
'navigation',
new OrbitControls(editor.scene, editor.camera),
true
);
// Toolpath generation
editor.modeManager.add('toolpath', new ToolpathMode(editor));
editor.modeManager.add('select-bottom', new SelectFaceMode(editor));
editor.modeManager.add('simulate', new SimulateMode(editor));
editor.modeManager.add('send-to-grbl', new SendToGrblMode(editor));
var mesh = null;
uploadMode.exit = function(uploadedMesh) {
mesh = uploadedMesh;
editor.parentElement.style.display = "block";
editor.resize();
rootModeManager.mode('editor3');
editor.modeManager.mode('select-bottom', uploadedMesh);
};
editor.modeManager.modes['select-bottom'].exit = function(ngonHelper) {
// TODO: store the ngon helper dimensions
editor.modeManager.mode('toolpath', mesh)
};
editor.modeManager.modes.toolpath.exit = function(gcode, mesh) {
editor.modeManager.mode('simulate', { mesh: mesh, gcode: gcode });
console.log(gcode.join('\n'));
skateboard(function(stream) {
gcode.forEach(function(line) {
stream.write(line + '\r\n');
});
});
};
editor.modeManager.modes.simulate.exit = function(gcode) {
editor.modeManager.mode('send-to-grbl', gcode);
};
rootModeManager.add('upload', uploadMode);
rootModeManager.mode('upload', editor);
});