1.0.6 • Published 4 years ago

gcode-file v1.0.6

Weekly downloads
3
License
ISC
Repository
github
Last release
4 years ago

gcode-file

Create and save a gcode file in browser via javascript

Installation

You can grab it as an npm package

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

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.3

4 years ago

1.0.0

4 years ago