mirror of
https://github.com/Doodle3D/Doodle3D-Slicer.git
synced 2024-11-26 15:34:57 +01:00
Merge branch 'develop'
This commit is contained in:
commit
fb69ad850d
@ -1,6 +1,6 @@
|
|||||||
import * as THREE from 'three';
|
import * as THREE from 'three';
|
||||||
import { defaultSettings, Slicer } from 'src/index.js';
|
import { defaultSettings, Slicer } from 'src/index.js';
|
||||||
import { saveAs } from 'file-saver';
|
import fileSaver from 'file-saver';
|
||||||
|
|
||||||
const settings = {
|
const settings = {
|
||||||
...defaultSettings.base,
|
...defaultSettings.base,
|
||||||
@ -12,16 +12,15 @@ const settings = {
|
|||||||
const jsonLoader = new THREE.JSONLoader();
|
const jsonLoader = new THREE.JSONLoader();
|
||||||
jsonLoader.load('models/airplane.json', async geometry => {
|
jsonLoader.load('models/airplane.json', async geometry => {
|
||||||
geometry.applyMatrix(new THREE.Matrix4().makeRotationX(Math.PI / -2));
|
geometry.applyMatrix(new THREE.Matrix4().makeRotationX(Math.PI / -2));
|
||||||
geometry.applyMatrix(new THREE.Matrix4().setPosition(new THREE.Vector3(50, -0.1, 50)));
|
geometry.applyMatrix(new THREE.Matrix4().setPosition(new THREE.Vector3(50, -0.0, 50)));
|
||||||
geometry.computeFaceNormals();
|
geometry.computeFaceNormals();
|
||||||
|
|
||||||
const slicer = new Slicer().setGeometry(geometry);
|
const slicer = new Slicer().setGeometry(geometry);
|
||||||
const gcode = await slicer.slice(settings)
|
const gcode = await slicer.slice(settings, ({ progress: { done, total, action } }) => {
|
||||||
.progress(({ progress: { done, total, action } }) => {
|
|
||||||
const percentage = `${(done / total * 100).toFixed()}%`
|
const percentage = `${(done / total * 100).toFixed()}%`
|
||||||
document.write(`<p>${action}, ${percentage}</p>`);
|
document.write(`<p>${action}, ${percentage}</p>`);
|
||||||
});
|
});
|
||||||
|
|
||||||
const file = new File([gcode], 'gcode.gcode', { type: 'text/plain' });
|
const file = new File([gcode], 'gcode.gcode', { type: 'text/plain' });
|
||||||
saveAs(file);
|
fileSaver.saveAs(file);
|
||||||
});
|
});
|
||||||
|
@ -26,10 +26,14 @@ export default class {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
sliceSync(settings, onProgress) {
|
sliceSync(settings, onProgress) {
|
||||||
|
if (typeof this.geometry === 'undefined') {
|
||||||
|
throw new Error('Geometry is not set, use Slicer.setGeometry or Slicer.setMesh first');
|
||||||
|
}
|
||||||
|
|
||||||
return slice(this.geometry, settings, onProgress);
|
return slice(this.geometry, settings, onProgress);
|
||||||
}
|
}
|
||||||
slice(settings, onProgress) {
|
slice(settings, onProgress) {
|
||||||
if (!this.geometry) {
|
if (typeof this.geometry === 'undefined') {
|
||||||
throw new Error('Geometry is not set, use Slicer.setGeometry or Slicer.setMesh first');
|
throw new Error('Geometry is not set, use Slicer.setGeometry or Slicer.setMesh first');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,7 +52,9 @@ export default class {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'PROGRESS': {
|
case 'PROGRESS': {
|
||||||
|
if (typeof onProgress !== 'undefined') {
|
||||||
onProgress(data);
|
onProgress(data);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user