https://github.com/lavolpecheprogramma/gcode-file
Create and save a gcode file in browser via javascript
https://github.com/lavolpecheprogramma/gcode-file
Last synced: 8 months ago
JSON representation
Create and save a gcode file in browser via javascript
- Host: GitHub
- URL: https://github.com/lavolpecheprogramma/gcode-file
- Owner: lavolpecheprogramma
- Created: 2019-12-14T18:36:20.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-04-08T09:16:06.000Z (about 2 years ago)
- Last Synced: 2025-02-10T19:52:36.874Z (over 1 year ago)
- Language: JavaScript
- Size: 40 KB
- Stars: 10
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# gcode-file
Create and save a gcode file in browser via javascript
### Installation
You can grab it as an `npm` package
```bash
npm i --save @gcode-file
```
### Example
```
const { createPath, pathsToPolylines } = require('canvas-sketch-util/penplot');
const GCodeFile = require('gcode-file');
const gCode = new GCodeFile({
feedRate: 8000, // G1 movement (drawing speed)
seekRate: 8000, // G0 movement (no drawing speed)
onCommand: 'M03S20',
offCommand: 'M03S0',
powerDelay: 0.2,
fileName: 'sketch',
paperSize: [210, 297], // A4 size in mm
margin: 10, // or [10, 10] (top/bottom and left/right margin) or [10,10,10,10] (top/left/bottom/right)
flipX: false,
flipY: false
})
// ... your canvas setup ...
gCode.updateCoordsArea(canvas.width, canvas.height);
const p = createPath();
p.moveTo(10, 10);
p.lineTo(100, 100);
// Converting path to polylines...')
const lines = pathsToPolylines([p]);
console.log('Add data to gcode file...')
gCode.addPolylines(lines)
window.addEventListener('keydown', function(){
if((event.ctrlKey || event.metaKey) && event.which == 83) {
event.preventDefault();
console.log('Download file...')
gCode.downloadFile()
return false;
}
})
```
## Methods
### updateConfig(newConfig)
Accepts an object with the new config (or a part of it). It is useful if you modify your sketch size or print settings at runtime with a gui for example.
### updateCoordsArea(width, height)
Update the dimension of your drawing area. It is necessary to know how map the coordinates of your paths to the paper dimension.
### moveTo(x, y)
Wrap all the command to move the plot without draw
### drawLine(x, y)
Wrap all the command to move the plot drawing
### addPolylines(polylines)
Accepts an array on polylines and generate all the commands to draw the polylines.
### addLayer(name)
Add layer that will be saved on separate file.
### downloadFile()
Generate and download the gcode file