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; }, ''); }