mirror of
https://github.com/Doodle3D/Doodle3DSlicer.git
synced 20240804 13:20:43 +02:00
81 lines
2.0 KiB
Markdown
81 lines
2.0 KiB
Markdown

# Doodle3D Slicer



This document explains how the slice process works.






In this slicer Z is the "up" vector.






Requisites



 2D Vector math



 3D Vector math



 2D Boolean operations (union, difference)



 2D Path offsetting






### Step 0: Preparation



The first step is to prepare the data for slicing.



```



Vertices: Float32Array



Faces: Uint32Array



ObjectIndexes: UInt8Array



OpenObjectIndexes: [...Int]



Settings:



startCode: String



endcode: String



dimensions:



x: Number



y: Number



z: Number



heatedBed: Bool



nozzleDiameter: Number



filamentThickness: Number



temperature: Number



bedTemperature: Number



layerHeight: Number



combing: Bool



thickness:



top: Number



bottom: Number



shell: Number



retraction:



enabled: Bool



amount: Number



speed: Number



minDistance: Number



travel:



speed: Number



support:



enabled: Bool



minArea: Number



distanceY: Number



density: Number



margin: Number



flowRate: Number



speed: Number



innerShell:



flowRate: Number



speed: Number



outerShell:



flowRate: Number



speed: Number



innerInfill:



flowRate: Number



speed: Number



density: Number



outerInfill:



flowRate: Number



speed: Number



brim:



size: Number



flowRate: Number



speed: Number



firstLayer:



flowRate: Number



speed: Number



```



 Vertices: List of points in 3d



 Faces: Indexes refering to points in the vertices list that make a triangular surface



 ObjectIndexes: Describes of what object each face is part of (important for the generating of 2d shapes)



 OpenObjectIndexes: Determines weather a object is open or closed (important for the generating of 2d shapes)



 Settings: object containing all the settings for slicing. We go in depth in this object when it's needed






### Step 1: Creating lines



In this we take the 3d model and look at each surface to extract all individual lines. Note some lines are part of multiple surfaces. In addition we also add some additional data to each line, like the surfaces it is part of we'll also store the 2d normal
