gcode-toolpath
Install
npm install --save gcode-toolpath
Usage
const Toolpath = ; const toolpaths = ;const toolpath = // Initial position (optional) position: x: 0 y: 0 z: 0 // Initial modal state (optional) modal: motion: 'G0' // G0, G1, G2, G3, G38.2, G38.3, G38.4, G38.5, G80 wcs: 'G54' // G54, G55, G56, G57, G58, G59 plane: 'G17' // G17: xy-plane, G18: xz-plane, G19: yz-plane units: 'G21' // G20: Inches, G21: Millimeters distance: 'G90' // G90: Absolute, G91: Relative feedrate: 'G94' // G93: Inverse time mode, G94: Units per minute, G95: Units per rev program: 'M0' // M0, M1, M2, M30 spindle: 'M5' // M3, M4, M5 coolant: 'M9' // M7, M8, M9 tool: 0 // @param {object} modal The modal object. // @param {object} v1 A 3D vector of the start point. // @param {object} v2 A 3D vector of the end point. { const motion = modalmotion; const tool = modaltool; toolpaths; } // @param {object} modal The modal object. // @param {object} v1 A 3D vector of the start point. // @param {object} v2 A 3D vector of the end point. // @param {object} v0 A 3D vector of the fixed point. { const motion = modalmotion; const tool = modaltool; toolpaths; }; // Positiontoolpath; // x=100, y=10, z=0toolpath; // x=10, y=20, z=30 // Modaltoolpath; // Load G-code from fileconst file = 'example.nc';toolpath; // Load G-code from streamconst stream = fs;toolpath; // Load G-code from stringconst str = fs;toolpath;
Examples
Run this example with babel-node:
; const GCODE = 'N1 T2 G17 G20 G90 G94 G54' 'N2 G0 Z0.25' 'N3 X-0.5 Y0.' 'N4 Z0.1' 'N5 G01 Z0. F5.' 'N6 G02 X0. Y0.5 I0.5 J0. F2.5' 'N7 X0.5 Y0. I0. J-0.5' 'N8 X0. Y-0.5 I-0.5 J0.' 'N9 X-0.5 Y0. I0. J0.5' 'N10 G01 Z0.1 F5.' 'N11 G00 X0. Y0. Z0.25'; const toolpaths = ;const toolpath = // @param {object} modal The modal object. // @param {object} v1 A 3D vector of the start point. // @param {object} v2 A 3D vector of the end point. { const motion = modalmotion; const tool = modaltool; toolpaths; } // @param {object} modal The modal object. // @param {object} v1 A 3D vector of the start point. // @param {object} v2 A 3D vector of the end point. // @param {object} v0 A 3D vector of the fixed point. { const motion = modalmotion; const tool = modaltool; toolpaths; }; toolpath ;
and you will see the output as below:
motion: 'G0' tool: 2 v1: x: 0 y: 0 z: 0 v2: x: 0 y: 0 z: 635 motion: 'G0' tool: 2 v1: x: 0 y: 0 z: 635 v2: x: -127 y: 0 z: 635 motion: 'G0' tool: 2 v1: x: -127 y: 0 z: 635 v2: x: -127 y: 0 z: 254 motion: 'G1' tool: 2 v1: x: -127 y: 0 z: 254 v2: x: -127 y: 0 z: 0 motion: 'G2' tool: 2 v1: x: -127 y: 0 z: 0 v2: x: 0 y: 127 z: 0 v0: x: 0 y: 0 z: 0 motion: 'G2' tool: 2 v1: x: 0 y: 127 z: 0 v2: x: 127 y: 0 z: 0 v0: x: 0 y: 0 z: 0 motion: 'G2' tool: 2 v1: x: 127 y: 0 z: 0 v2: x: 0 y: -127 z: 0 v0: x: 0 y: 0 z: 0 motion: 'G2' tool: 2 v1: x: 0 y: -127 z: 0 v2: x: -127 y: 0 z: 0 v0: x: 0 y: 0 z: 0 motion: 'G1' tool: 2 v1: x: -127 y: 0 z: 0 v2: x: -127 y: 0 z: 254 motion: 'G0' tool: 2 v1: x: -127 y: 0 z: 254 v2: x: 0 y: 0 z: 635
G-code Toolpath Visualizer
Check out the source code at https://github.com/cncjs/cnc/blob/master/src/web/widgets/Visualizer/GCodeVisualizer.js
License
MIT