# Doodle3D-Slicer **Repository Path**: springtiger/Doodle3D-Slicer ## Basic Information - **Project Name**: Doodle3D-Slicer - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-07-31 - **Last Updated**: 2021-07-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Doodle3D-Slicer JavaScript gcode slicer, Intended to use with the Doodle3D WiFi-Box # Usage ```javascript import * as THREE from 'three'; import { defaultSettings, sliceGeometry } from 'Doodle3D/Doodle3D-Slicer'; const settings = { ...defaultSettings.default, ...defaultSettings.material.pla, ...defaultSettings.printer.ultimaker2go, ...defaultSettings.quality.high }; const geometry = new THREE.TorusGeometry(20, 10, 30, 30).clone(); const gcode = await sliceGeometry(settings, geometry); ``` # API **Settings** ```javascript import { defaultSettings } from 'Doodle3D/Doodle3D-Slicer'; const settings = { ...defaultSettings.default, ...defaultSettings.material.pla, ...defaultSettings.printer.ultimaker2go, ...defaultSettings.quality.high }; ``` Create settings object to be used by the slicer **Slice Mesh** ```javascript import { sliceMesh } from 'Doodle3D/Doodle3D-Slicer'; GCode: String = sliceMesh(settings: Object, mesh: THREE.Mesh, [sync: Boolean = false, onProgress: Func ]) ``` Slice function that accepts Meshes - Settings: settings object (see [settings](#settings)) - Mesh: THREE.Mesh instance that contains the geometry - Sync: determines if the slicing progress will be sync (blocking) or async (non-blocking). A webworker is used to slice async - onProgress: progress callback **Slice Geometry** ```javascript import { sliceGeometry } from 'Doodle3D/Doodle3D-Slicer'; GCode: String = sliceGeometry(settings: Object, geometry: THREE.Geometry | THREE.BufferGeometry, [matrix: THREE.Matrix, sync: Boolean = false, onProgress: Func ]) ``` Slice function that accepts Geometry - Settings: settings object (see [settings](#settings)) - Geometry: THREE.Geometry instance - matrix: matrix that can control the scale, rotation and position of the model - Sync: determines if the slicing progress will be sync (blocking) or async (non-blocking). A webworker is used to slice async - onProgress: progress callback