Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/skarab42/lw.raster-to-gcode
Raster to G-Code for LaserWeb
https://github.com/skarab42/lw.raster-to-gcode
Last synced: 15 days ago
JSON representation
Raster to G-Code for LaserWeb
- Host: GitHub
- URL: https://github.com/skarab42/lw.raster-to-gcode
- Owner: skarab42
- License: mit
- Created: 2016-12-19T12:04:20.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-03-20T12:15:56.000Z (over 7 years ago)
- Last Synced: 2024-05-21T11:29:16.553Z (6 months ago)
- Language: JavaScript
- Size: 215 KB
- Stars: 18
- Watchers: 3
- Forks: 9
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# lw.raster-to-gcode
Raster to G-Code for [LaserWeb/CNCWeb](https://github.com/LaserWeb/LaserWeb4).## Demo
https://lautr3k.github.io/lw.raster-to-gcode/dist/example/## Installation
Using NPM
```
npm install lw.raster-to-gcode
```Using GIT
```
git clone https://github.com/lautr3k/lw.raster-to-gcode.git
cd lw.raster-to-gcode
npm install
```Or download the last build from https://raw.githubusercontent.com/lautr3k/lw.raster-to-gcode/master/dist/lw.raster-to-gcode.js
```htmlvar rasterToGcode = RasterToGcode.RasterToGcode();
```
## Settings
```javascript
let settings = {
ppi: { x: 254, y: 254 }, // Pixel Per Inch (25.4 ppi == 1 ppm)toolDiameter: 0.1, // Tool diameter in millimeters
rapidRate : 1500, // Rapid rate in mm/min (G0 F value) nullish value to disable
feedRate : 500, // Feed rate in mm/min (G1 F value)
rateUnit : 'mm/min', // Rapid/Feed rate unit [mm/min, mm/sec]beamRange: { min: 0, max: 1 }, // Beam power range (Firmware value)
beamPower: { min: 0, max: 100 }, // Beam power (S value) as percentage of beamRangemilling : false, // EXPERIMENTAL
zSafe : 5, // Safe Z for fast move
zSurface : 0, // Usinable surface (white pixels)
zDepth : -10, // Z depth (black pixels)
passDepth: 1, // Pass depth in millimetersoffsets : { X: 0, Y: 0 }, // Global coordinates offsets
trimLine : true, // Trim trailing white pixels
joinPixel: true, // Join consecutive pixels with same intensity
burnWhite: true, // [true = G1 S0 | false = G0] on inner white pixels
verboseG : false, // Output verbose GCode (print each commands)
diagonal : false, // Go diagonally (increase the distance between points)precision: { X: 2, Y: 2, S: 4 }, // Number of decimals for each commands
nonBlocking: true, // Use setTimeout to avoid blocking the UI
filters: {
smoothing : 0, // Smoothing the input image ?
brightness : 0, // Image brightness [-255 to +255]
contrast : 0, // Image contrast [-255 to +255]
gamma : 0, // Image gamma correction [0.01 to 7.99]
grayscale : 'none', // Graysale algorithm [average, luma, luma-601, luma-709, luma-240, desaturation, decomposition-[min|max], [red|green|blue]-chanel]
shadesOfGray: 256, // Number of shades of gray [2-256]
invertColor : false // Invert color...
},onProgress : null, // On progress callbacks
onProgressContext: null, // On progress callback contextonDone : null, // On done callback
onDoneContext: null, // On done callback contextonAbort : null, // On abort callback
onAbortContext: null // On abort callback context
}
```## Usages
```javascript
import RasterToGcode from 'lw.raster-to-gcode'// Create RasterToGcode object
let rasterToGcode = new RasterToGcode(settings)// Register events callbacks
rasterToGcode.on('progress', function(event) {
console.log('onProgress:', event); // event = { gcode, percent }
})
.on('done', function(event) {
console.log('onDone:', event); // event = { gcode }
});// can be Image, File URL object or URL string (http://* or data:image/*)
rasterToGcode.load(file).then(function(rtg) {
console.log('rasterToGcode:', rtg); // rtg === rasterToGcode
rasterToGcode.run(); // Return gcode array if nonBlocking = false
})
.catch(function(error) {
console.error('error:', error);
});
```