Skip to content

Instantly share code, notes, and snippets.

@tmpvar
Created May 27, 2014 23:07
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tmpvar/6c6502cfad5c9abf4be6 to your computer and use it in GitHub Desktop.
Save tmpvar/6c6502cfad5c9abf4be6 to your computer and use it in GitHub Desktop.
campjs gcode generator with gcanvas
function main(ctx) {
ctx.toolDiameter = 1.6;
ctx.scale(-.1, -.1);
ctx.translate(-600, -135);
//ctx.map('-xyz');
// ctx.retract = 10;
// ctx.ramping = false;
ctx.depth= -2.5;
ctx.depthOfCut = .1;
ctx.save();
// C
ctx.beginPath();
ctx.moveTo(0, 13);
ctx.lineTo(0, 93);
ctx.lineTo(13, 93);
ctx.lineTo(13, 106);
ctx.lineTo(67, 106);
ctx.lineTo(67, 93);
ctx.lineTo(80, 93);
ctx.lineTo(80, 66);
ctx.lineTo(53, 66);
ctx.lineTo(53, 79);
ctx.lineTo(27, 79);
ctx.lineTo(27, 27);
ctx.lineTo(53, 27);
ctx.lineTo(53, 40);
ctx.lineTo(80, 40);
ctx.lineTo(80, 13);
ctx.lineTo(67, 13);
ctx.lineTo(67, 0);
ctx.lineTo(13, 0);
ctx.lineTo(13, 13);
ctx.closePath();
ctx.fill('nonzero');
// A
ctx.translate(92, 0);
ctx.beginPath();
ctx.moveTo(0, 13);
ctx.lineTo(0, 106);
ctx.lineTo(27, 106);
ctx.lineTo(27, 106);
ctx.lineTo(27, 79);
ctx.lineTo(52, 79);
ctx.lineTo(52, 106);
ctx.lineTo(80, 106);
ctx.lineTo(80, 13);
ctx.lineTo(67, 13);
ctx.lineTo(67, 0);
ctx.lineTo(13, 0);
ctx.lineTo(13, 13);
ctx.moveTo(27, 26);
ctx.lineTo(52, 26);
ctx.lineTo(52, 53);
ctx.lineTo(27, 53);
ctx.fill('nonzero');
// M
ctx.translate(92, 0);
ctx.beginPath();
ctx.moveTo(0, 0);
ctx.lineTo(0, 106);
ctx.lineTo(27, 106);
ctx.lineTo(27, 27);
ctx.lineTo(40, 27);
ctx.lineTo(40, 106);
ctx.lineTo(67, 106);
ctx.lineTo(67, 27);
ctx.lineTo(80, 27);
ctx.lineTo(80, 106);
ctx.lineTo(106, 106);
ctx.lineTo(106, 13);
ctx.lineTo(93, 13);
ctx.lineTo(93, 0);
ctx.closePath()
ctx.fill('nonzero');
// P
ctx.translate(119, 0);
ctx.beginPath();
ctx.moveTo(0, 0);
ctx.lineTo(0, 106);
ctx.lineTo(27, 106);
ctx.lineTo(27, 80);
ctx.lineTo(67, 80);
ctx.lineTo(67, 67);
ctx.lineTo(80, 67);
ctx.lineTo(80, 13);
ctx.lineTo(67, 13);
ctx.lineTo(67, 0);
ctx.moveTo(27, 26);
ctx.lineTo(52, 26);
ctx.lineTo(52, 53);
ctx.lineTo(27, 53);
ctx.closePath()
ctx.fill('nonzero');
// J
ctx.translate(92, 0);
ctx.beginPath();
ctx.moveTo(0, 53);
ctx.lineTo(0, 93);
ctx.lineTo(13, 93);
ctx.lineTo(13, 106);
ctx.lineTo(67, 106);
ctx.lineTo(67, 93);
ctx.lineTo(80, 93);
ctx.lineTo(80, 0);
ctx.lineTo(53, 0);
ctx.lineTo(53, 79);
ctx.lineTo(53-26, 79);
ctx.lineTo(53-26, 53);
ctx.closePath()
ctx.fill('nonzero');
// S
ctx.translate(92, 0);
ctx.beginPath();
ctx.moveTo(0, 13);
ctx.lineTo(0, 54);
ctx.lineTo(13, 54);
ctx.lineTo(13, 66);
ctx.lineTo(53, 66);
ctx.lineTo(53, 79);
ctx.lineTo(0, 79);
ctx.lineTo(0, 106);
ctx.lineTo(67, 106);
ctx.lineTo(67, 93);
ctx.lineTo(80, 93);
ctx.lineTo(80, 53);
ctx.lineTo(67, 53);
ctx.lineTo(67, 40);
ctx.lineTo(27, 40);
ctx.lineTo(27, 27);
ctx.lineTo(80, 27);
ctx.lineTo(80, 0);
ctx.lineTo(13, 0);
ctx.lineTo(13, 13);
ctx.closePath()
ctx.fill('nonzero');
ctx.translate(-93*3 - 17, 106+26);
// // I
// for (var i=0; i<3; i++) {
// ctx.beginPath();
// ctx.moveTo(0, 0);
// ctx.lineTo(0, 27);
// ctx.lineTo(13, 27);
// ctx.lineTo(13, 79);
// ctx.lineTo(0, 79);
// ctx.lineTo(0, 106);
// ctx.lineTo(53, 106);
// ctx.lineTo(53, 80);
// ctx.lineTo(53, 79);
// ctx.lineTo(40, 79);
// ctx.lineTo(40, 27);
// ctx.lineTo(53, 27);
// ctx.lineTo(53, 0);
// ctx.closePath()
// ctx.fill();
// ctx.translate(66, 0);
// }
ctx.restore();
ctx.depth = -5
ctx.beginPath()
ctx.moveTo(-27, -27);
ctx.lineTo(-27, 133);
ctx.lineTo(166, 133);
// ctx.lineTo(166, 257);
// ctx.lineTo(400, 257);
// ctx.lineTo(400, 133);
ctx.lineTo(413+91*2, 133);
ctx.lineTo(413+91*2, -27);
ctx.closePath();
ctx.stroke()
// ctx.arc(100, 130, 30, 0, Math.PI*2);
// ctx.fill('nonzero');
}
if(this.example) example('winding', main);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment