mirror of
https://github.com/Doodle3D/Doodle3D-Slicer.git
synced 2024-11-25 06:57:58 +01:00
55 lines
2.0 KiB
JavaScript
55 lines
2.0 KiB
JavaScript
import calculateLayersIntersections from 'src/sliceActions/calculateLayersIntersections.js';
|
|
import createLines from 'src/sliceActions/createLines.js';
|
|
import generateInfills from 'src/sliceActions/generateInfills.js';
|
|
import generateInnerLines from 'src/sliceActions/generateInnerLines.js';
|
|
import generateSupport from 'src/sliceActions/generateSupport.js';
|
|
import intersectionsToShapes from 'src/sliceActions/intersectionsToShapes.js';
|
|
import addBrim from 'src/sliceActions/addBrim.js';
|
|
import optimizePaths from 'src/sliceActions/optimizePaths.js';
|
|
import shapesToSlices from 'src/sliceActions/shapesToSlices.js';
|
|
import slicesToGCode from 'src/sliceActions/slicesToGCode.js';
|
|
import applyPrecision from 'src/sliceActions/applyPrecision.js';
|
|
import removePrecision from 'src/sliceActions/removePrecision.js';
|
|
|
|
export default function generateRawData(geometry, settings) {
|
|
const rawData = {};
|
|
|
|
const lines = createLines(geometry, settings);
|
|
|
|
const {
|
|
layerIntersectionIndexes,
|
|
layerIntersectionPoints
|
|
} = calculateLayersIntersections(lines, settings);
|
|
|
|
rawData.layerIntersectionPoints = layerIntersectionPoints
|
|
.map(intersectionPoints => intersectionPoints.map(intersectionPoint => intersectionPoint.clone()));
|
|
|
|
const layerShapes = intersectionsToShapes(layerIntersectionIndexes, layerIntersectionPoints, lines, settings);
|
|
|
|
rawData.layerShapes = layerShapes
|
|
.map(({ closedShapes, openShapes }) => ({
|
|
closedShapes: closedShapes.map(closedShape => closedShape.map(vector => vector.clone())),
|
|
openShapes: openShapes.map(openShape => openShape.map(vector => vector.clone()))
|
|
}));
|
|
|
|
|
|
applyPrecision(layerShapes);
|
|
|
|
const slices = shapesToSlices(layerShapes, settings);
|
|
|
|
generateInnerLines(slices, settings);
|
|
generateInfills(slices, settings);
|
|
generateSupport(slices, settings);
|
|
addBrim(slices, settings);
|
|
optimizePaths(slices, settings);
|
|
removePrecision(slices);
|
|
|
|
rawData.slices = slices;
|
|
|
|
const gcode = slicesToGCode(slices, settings);
|
|
|
|
rawData.gcode = gcode;
|
|
|
|
return rawData;
|
|
}
|