- Notifications
You must be signed in to change notification settings - Fork16
cncjs/gcode-toolpath
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
npm install --save gcode-toolpath
constToolpath=require('gcode-toolpath');consttoolpaths=[];consttoolpath=newToolpath({// 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, G80wcs:'G54',// G54, G55, G56, G57, G58, G59plane:'G17',// G17: xy-plane, G18: xz-plane, G19: yz-planeunits:'G21',// G20: Inches, G21: Millimetersdistance:'G90',// G90: Absolute, G91: Relativefeedrate:'G94',// G93: Inverse time mode, G94: Units per minute, G95: Units per revprogram:'M0',// M0, M1, M2, M30spindle:'M5',// M3, M4, M5coolant:'M9',// M7, M8, M9tool: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.addLine:(modal,v1,v2)=>{constmotion=modal.motion;consttool=modal.tool;toolpaths.push({motion:motion,tool:tool,v1:v1,v2:v2});},//@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.addArcCurve:(modal,v1,v2,v0)=>{constmotion=modal.motion;consttool=modal.tool;toolpaths.push({motion:motion,tool:tool,v1:v1,v2:v2,v0:v0});}});// Positiontoolpath.setPosition({x:100,y:10});// x=100, y=10, z=0toolpath.setPosition(10,20,30);// x=10, y=20, z=30// Modaltoolpath.setModal({tool:1});// Load G-code from fileconstfile='example.nc';toolpath.loadFromFile(file,function(err,data){});// Load G-code from streamconststream=fs.createReadStream(file,{encoding:'utf8'});toolpath.loadFromStream(stream,function(err,data){});// Load G-code from stringconststr=fs.readFileSync(file,'utf8');toolpath.loadFromString(str,function(err,data){});
Run this example with babel-node:
importToolpathfrom'gcode-toolpath';constGCODE=['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'].join('\n');consttoolpaths=[];consttoolpath=newToolpath({//@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.addLine:(modal,v1,v2)=>{constmotion=modal.motion;consttool=modal.tool;toolpaths.push({motion:motion,tool:tool,v1:v1,v2:v2});},//@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.addArcCurve:(modal,v1,v2,v0)=>{constmotion=modal.motion;consttool=modal.tool;toolpaths.push({motion:motion,tool:tool,v1:v1,v2:v2,v0:v0});}});toolpath.loadFromString(GCODE,(err,results)=>{console.log(toolpaths);}).on('data',(data)=>{// 'data' event listener}).on('end',(results)=>{// 'end' event listener});
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:6.35}},{motion:'G0',tool:2,v1:{x:0,y:0,z:6.35},v2:{x:-12.7,y:0,z:6.35}},{motion:'G0',tool:2,v1:{x:-12.7,y:0,z:6.35},v2:{x:-12.7,y:0,z:2.54}},{motion:'G1',tool:2,v1:{x:-12.7,y:0,z:2.54},v2:{x:-12.7,y:0,z:0}},{motion:'G2',tool:2,v1:{x:-12.7,y:0,z:0},v2:{x:0,y:12.7,z:0},v0:{x:0,y:0,z:0}},{motion:'G2',tool:2,v1:{x:0,y:12.7,z:0},v2:{x:12.7,y:0,z:0},v0:{x:0,y:0,z:0}},{motion:'G2',tool:2,v1:{x:12.7,y:0,z:0},v2:{x:0,y:-12.7,z:0},v0:{x:0,y:0,z:0}},{motion:'G2',tool:2,v1:{x:0,y:-12.7,z:0},v2:{x:-12.7,y:0,z:0},v0:{x:0,y:0,z:0}},{motion:'G1',tool:2,v1:{x:-12.7,y:0,z:0},v2:{x:-12.7,y:0,z:2.54}},{motion:'G0',tool:2,v1:{x:-12.7,y:0,z:2.54},v2:{x:0,y:0,z:6.35}}]
Check out the source code athttps://github.com/cncjs/cnc/blob/master/src/web/widgets/Visualizer/GCodeVisualizer.js
MIT
About
G-code Toolpath Generator
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.