diff --git a/simpleExample/index.js b/simpleExample/index.js
index 885f863..89c0e46 100644
--- a/simpleExample/index.js
+++ b/simpleExample/index.js
@@ -3,9 +3,17 @@ import * as THREE from 'three';
import { Interface } from 'doodle3d-slicer';
import fileURL from '!url-loader!./models/shape.json';
import { render } from 'react-dom';
-// import fileSaver from 'file-saver';
+import fileSaver from 'file-saver';
+
+const downloadGCode = gcode => {
+ const file = new File([gcode], 'gcode.gcode', { type: 'text/plain' });
+ fileSaver.saveAs(file);
+};
const jsonLoader = new THREE.JSONLoader();
jsonLoader.load(fileURL, geometry => {
- render(, document.getElementById('app'));
+ render(, document.getElementById('app'));
});
diff --git a/src/interface/index.js b/src/interface/index.js
index f278ca0..bc0b57c 100644
--- a/src/interface/index.js
+++ b/src/interface/index.js
@@ -46,6 +46,7 @@ class Interface extends React.Component {
classes: PropTypes.objectOf(PropTypes.string),
printers: PropTypes.object.isRequired,
defaultPrinter: PropTypes.string.isRequired,
+ onCompleteActions: PropTypes.arrayOf(PropTypes.shape({ title: PropTypes.string, callback: PropTypes.func })).isRequired,
};
state = {
controlMode: 'translate',
@@ -126,8 +127,9 @@ class Interface extends React.Component {
}
render() {
- const { width, height, classes } = this.props;
- const { sliced } = this.state;
+ const { width, height, classes, onCompleteActions } = this.props;
+ const { sliced, gcode } = this.state;
+
return (
@@ -142,7 +144,9 @@ class Interface extends React.Component {
}
{sliced &&
-
+ {onCompleteActions.map(({ title, callback }, i) => (
+
+ ))}
}
);
diff --git a/src/slicer.js b/src/slicer.js
index db2b28f..d608723 100644
--- a/src/slicer.js
+++ b/src/slicer.js
@@ -96,7 +96,7 @@ function gcodeToString(gcode) {
const value = command[action];
const currentValue = currentValues[action];
if (first) {
- string = action + value;
+ string += action + value;
first = false;
} else if (currentValue !== value) {
string += ` ${action}${value}`;
@@ -104,6 +104,7 @@ function gcodeToString(gcode) {
}
}
string += '\n';
+ return string;
}, '');
}