2019-05-01 18:44:44 +00:00
|
|
|
var allowContinuousJog = false;
|
2018-06-21 20:02:40 +00:00
|
|
|
var jogdist = 10;
|
2018-06-25 17:25:19 +00:00
|
|
|
var safeToUpdateSliders = true;
|
2018-06-21 20:02:40 +00:00
|
|
|
|
|
|
|
$(document).ready(function() {
|
|
|
|
|
2019-04-12 13:32:56 +00:00
|
|
|
$(document).mousedown(function(e) {
|
2018-06-25 17:25:19 +00:00
|
|
|
safeToUpdateSliders = false;
|
2019-04-12 13:32:56 +00:00
|
|
|
}).mouseup(function(e) {
|
2018-06-25 17:25:19 +00:00
|
|
|
safeToUpdateSliders = true;
|
2019-04-12 13:32:56 +00:00
|
|
|
}).mouseleave(function(e) {
|
2018-06-25 17:25:19 +00:00
|
|
|
safeToUpdateSliders = true;
|
|
|
|
});
|
|
|
|
|
|
|
|
$("#xPos").click(function() {
|
|
|
|
$("#xPos").hide()
|
|
|
|
$("#xPosInput").show().focus().val(laststatus.machine.position.work.x)
|
|
|
|
});
|
|
|
|
|
|
|
|
$("#xPosInput").blur(function() {
|
|
|
|
$("#xPos").show()
|
|
|
|
$("#xPosInput").hide()
|
|
|
|
});
|
|
|
|
|
|
|
|
$('#xPosInput').on('keypress', function(e) {
|
|
|
|
if (e.which === 13) {
|
|
|
|
//Disable textbox to prevent multiple submit
|
|
|
|
$(this).attr("disabled", "disabled");
|
|
|
|
$("#xPos").show()
|
|
|
|
$("#xPosInput").hide()
|
|
|
|
//Enable the textbox again if needed.
|
|
|
|
$(this).removeAttr("disabled");
|
|
|
|
sendGcode("G0 X" + $("#xPosInput").val())
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
$("#yPos").click(function() {
|
|
|
|
$("#yPos").hide()
|
|
|
|
$("#yPosInput").show().focus().val(laststatus.machine.position.work.y)
|
|
|
|
});
|
|
|
|
|
|
|
|
$("#yPosInput").blur(function() {
|
|
|
|
$("#yPos").show()
|
|
|
|
$("#yPosInput").hide()
|
|
|
|
});
|
|
|
|
|
|
|
|
$('#yPosInput').on('keypress', function(e) {
|
|
|
|
if (e.which === 13) {
|
|
|
|
//Disable textbox to prevent multiple submit
|
|
|
|
$(this).attr("disabled", "disabled");
|
|
|
|
$("#yPos").show()
|
|
|
|
$("#yPosInput").hide()
|
|
|
|
//Enable the textbox again if needed.
|
|
|
|
$(this).removeAttr("disabled");
|
|
|
|
sendGcode("G0 Y" + $("#yPosInput").val())
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
$("#zPos").click(function() {
|
|
|
|
$("#zPos").hide()
|
|
|
|
$("#zPosInput").show().focus().val(laststatus.machine.position.work.z)
|
|
|
|
});
|
|
|
|
|
|
|
|
$("#zPosInput").blur(function() {
|
|
|
|
$("#zPos").show()
|
|
|
|
$("#zPosInput").hide()
|
|
|
|
});
|
|
|
|
|
|
|
|
$('#zPosInput').on('keypress', function(e) {
|
|
|
|
if (e.which === 13) {
|
|
|
|
//Disable textbox to prevent multiple submit
|
|
|
|
$(this).attr("disabled", "disabled");
|
|
|
|
$("#zPos").show()
|
|
|
|
$("#zPosInput").hide()
|
|
|
|
//Enable the textbox again if needed.
|
|
|
|
$(this).removeAttr("disabled");
|
|
|
|
sendGcode("G0 Z" + $("#zPosInput").val())
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2018-06-21 20:02:40 +00:00
|
|
|
|
|
|
|
$('#dist01').on('click', function(ev) {
|
|
|
|
jogdist = 0.1;
|
2019-03-25 19:10:26 +00:00
|
|
|
$('.distbtn').removeClass('bd-openbuilds')
|
|
|
|
$('#dist01').addClass('bd-openbuilds')
|
|
|
|
$('.jogdist').removeClass('fg-openbuilds')
|
2018-06-21 20:02:40 +00:00
|
|
|
$('.jogdist').addClass('fg-gray')
|
|
|
|
$('#dist01label').removeClass('fg-gray')
|
2019-03-25 19:10:26 +00:00
|
|
|
$('#dist01label').addClass('fg-openbuilds')
|
2018-06-21 20:02:40 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
$('#dist1').on('click', function(ev) {
|
|
|
|
jogdist = 1;
|
2019-03-25 19:10:26 +00:00
|
|
|
$('.distbtn').removeClass('bd-openbuilds')
|
|
|
|
$('#dist1').addClass('bd-openbuilds')
|
|
|
|
$('.jogdist').removeClass('fg-openbuilds')
|
2018-06-21 20:02:40 +00:00
|
|
|
$('.jogdist').addClass('fg-gray')
|
|
|
|
$('#dist1label').removeClass('fg-gray')
|
2019-03-25 19:10:26 +00:00
|
|
|
$('#dist1label').addClass('fg-openbuilds')
|
2018-06-21 20:02:40 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
$('#dist10').on('click', function(ev) {
|
|
|
|
jogdist = 10;
|
2019-03-25 19:10:26 +00:00
|
|
|
$('.distbtn').removeClass('bd-openbuilds')
|
|
|
|
$('#dist10').addClass('bd-openbuilds')
|
|
|
|
$('.jogdist').removeClass('fg-openbuilds')
|
2018-06-21 20:02:40 +00:00
|
|
|
$('.jogdist').addClass('fg-gray')
|
|
|
|
$('#dist10label').removeClass('fg-gray')
|
2019-03-25 19:10:26 +00:00
|
|
|
$('#dist10label').addClass('fg-openbuilds')
|
2018-06-21 20:02:40 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
$('#dist100').on('click', function(ev) {
|
|
|
|
jogdist = 100;
|
2019-03-25 19:10:26 +00:00
|
|
|
$('.distbtn').removeClass('bd-openbuilds')
|
|
|
|
$('#dist100').addClass('bd-openbuilds')
|
|
|
|
$('.jogdist').removeClass('fg-openbuilds')
|
2018-06-21 20:02:40 +00:00
|
|
|
$('.jogdist').addClass('fg-gray')
|
|
|
|
$('#dist100label').removeClass('fg-gray')
|
2019-03-25 19:10:26 +00:00
|
|
|
$('#dist100label').addClass('fg-openbuilds')
|
2018-06-21 20:02:40 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
$('#dist500').on('click', function(ev) {
|
|
|
|
jogdist = 500;
|
2019-03-25 19:10:26 +00:00
|
|
|
$('.distbtn').removeClass('bd-openbuilds')
|
|
|
|
$('#dist500').addClass('bd-openbuilds')
|
|
|
|
$('.jogdist').removeClass('fg-openbuilds')
|
2018-06-21 20:02:40 +00:00
|
|
|
$('.jogdist').addClass('fg-gray')
|
|
|
|
$('#dist500label').removeClass('fg-gray')
|
2019-03-25 19:10:26 +00:00
|
|
|
$('#dist500label').addClass('fg-openbuilds')
|
2018-06-21 20:02:40 +00:00
|
|
|
})
|
|
|
|
|
2019-01-18 19:01:53 +00:00
|
|
|
$('#gotozeroWPos').on('click', function(ev) {
|
2019-01-21 12:46:21 +00:00
|
|
|
sendGcode('G21 G90');
|
2018-06-21 20:02:40 +00:00
|
|
|
sendGcode('G0 Z5');
|
|
|
|
sendGcode('G0 X0 Y0');
|
|
|
|
sendGcode('G0 Z0');
|
|
|
|
});
|
|
|
|
|
2019-01-18 19:01:53 +00:00
|
|
|
$('#gotozeroMPos').on('click', function(ev) {
|
|
|
|
sendGcode('G53 G0 Z0');
|
|
|
|
sendGcode('G0 X0 Y0');
|
|
|
|
sendGcode('G0 Z0');
|
|
|
|
});
|
|
|
|
|
2018-06-21 20:02:40 +00:00
|
|
|
$('#xM').on('click', function(ev) {
|
2019-04-18 14:23:51 +00:00
|
|
|
if (!allowContinuousJog) {
|
|
|
|
var dir = 'X-';
|
|
|
|
var feedrate = $('#jograte').val();
|
|
|
|
jog('X', '-' + jogdist, feedrate);
|
|
|
|
}
|
2018-06-21 20:02:40 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
$('#xP').on('click', function(ev) {
|
2019-04-18 14:23:51 +00:00
|
|
|
if (!allowContinuousJog) {
|
|
|
|
var dir = 'X-';
|
|
|
|
var feedrate = $('#jograte').val();
|
|
|
|
jog('X', jogdist, feedrate);
|
|
|
|
}
|
2018-06-21 20:02:40 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
$('#yM').on('click', function(ev) {
|
2019-04-18 14:23:51 +00:00
|
|
|
if (!allowContinuousJog) {
|
|
|
|
var dir = 'X-';
|
|
|
|
var feedrate = $('#jograte').val();
|
|
|
|
jog('Y', '-' + jogdist, feedrate);
|
|
|
|
}
|
2018-06-21 20:02:40 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
$('#yP').on('click', function(ev) {
|
2019-04-18 14:23:51 +00:00
|
|
|
if (!allowContinuousJog) {
|
|
|
|
var dir = 'X-';
|
|
|
|
var feedrate = $('#jograte').val();
|
|
|
|
jog('Y', jogdist, feedrate);
|
|
|
|
}
|
2018-06-21 20:02:40 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
$('#zM').on('click', function(ev) {
|
2019-04-18 14:23:51 +00:00
|
|
|
if (!allowContinuousJog) {
|
|
|
|
var dir = 'X-';
|
|
|
|
var feedrate = $('#jograte').val();
|
|
|
|
jog('Z', '-' + jogdist, feedrate);
|
|
|
|
}
|
2018-06-21 20:02:40 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
$('#zP').on('click', function(ev) {
|
2019-04-18 14:23:51 +00:00
|
|
|
if (!allowContinuousJog) {
|
|
|
|
var dir = 'X-';
|
|
|
|
var feedrate = $('#jograte').val();
|
|
|
|
jog('Z', jogdist, feedrate);
|
|
|
|
}
|
2018-06-21 20:02:40 +00:00
|
|
|
})
|
|
|
|
|
2019-04-18 14:23:51 +00:00
|
|
|
$('#xP').on('mousedown', function(ev) {
|
|
|
|
if (allowContinuousJog) { // startJog();
|
|
|
|
var direction = "X";
|
|
|
|
var feed = $('#jograte').val();
|
|
|
|
socket.emit('runCommand', "$J=G91 G21 " + direction + "1000 F" + feed + "\n");
|
|
|
|
$('#xM').click();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
$('#xP').on('mouseup', function(ev) {
|
|
|
|
if (allowContinuousJog) {
|
|
|
|
cancelJog()
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
$('#yM').on('mousedown', function(ev) {
|
|
|
|
if (allowContinuousJog) { // startJog();
|
|
|
|
var direction = "Y-";
|
|
|
|
var feed = $('#jograte').val();
|
|
|
|
socket.emit('runCommand', "$J=G91 G21 " + direction + "1000 F" + feed + "\n");
|
|
|
|
$('#xM').click();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
$('#yM').on('mouseup', function(ev) {
|
|
|
|
if (allowContinuousJog) {
|
|
|
|
cancelJog()
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
$('#yP').on('mousedown', function(ev) {
|
|
|
|
if (allowContinuousJog) { // startJog();
|
|
|
|
var direction = "Y";
|
|
|
|
var feed = $('#jograte').val();
|
|
|
|
socket.emit('runCommand', "$J=G91 G21 " + direction + "1000 F" + feed + "\n");
|
|
|
|
$('#xM').click();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
$('#yP').on('mouseup', function(ev) {
|
|
|
|
if (allowContinuousJog) {
|
|
|
|
cancelJog()
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
$('#zM').on('mousedown', function(ev) {
|
|
|
|
if (allowContinuousJog) { // startJog();
|
|
|
|
var direction = "Z-";
|
|
|
|
var feed = $('#jograte').val();
|
|
|
|
socket.emit('runCommand', "$J=G91 G21 " + direction + "1000 F" + feed + "\n");
|
|
|
|
$('#xM').click();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
$('#zM').on('mouseup', function(ev) {
|
|
|
|
if (allowContinuousJog) {
|
|
|
|
cancelJog()
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
$('#zP').on('mousedown', function(ev) {
|
|
|
|
if (allowContinuousJog) { // startJog();
|
|
|
|
var direction = "Z";
|
|
|
|
var feed = $('#jograte').val();
|
|
|
|
socket.emit('runCommand', "$J=G91 G21 " + direction + "1000 F" + feed + "\n");
|
|
|
|
$('#xM').click();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
$('#zP').on('mouseup', function(ev) {
|
|
|
|
if (allowContinuousJog) {
|
|
|
|
cancelJog()
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
$('#xM').on('mousedown', function(ev) {
|
|
|
|
if (allowContinuousJog) { // startJog();
|
|
|
|
var direction = "X-";
|
|
|
|
var feed = $('#jograte').val();
|
|
|
|
socket.emit('runCommand', "$J=G91 G21 " + direction + "1000 F" + feed + "\n");
|
|
|
|
$('#xM').click();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
$('#xM').on('mouseup', function(ev) {
|
|
|
|
if (allowContinuousJog) {
|
|
|
|
cancelJog()
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2019-01-30 08:39:36 +00:00
|
|
|
$('#homeBtn').on('click', function(ev) {
|
2019-04-17 18:56:22 +00:00
|
|
|
home();
|
2019-01-30 08:39:36 +00:00
|
|
|
})
|
|
|
|
|
2018-09-06 21:08:06 +00:00
|
|
|
$('#chkSize').on('click', function() {
|
|
|
|
var bbox2 = new THREE.Box3().setFromObject(object);
|
|
|
|
console.log('bbox for Draw Bounding Box: ' + object + ' Min X: ', (bbox2.min.x), ' Max X:', (bbox2.max.x), 'Min Y: ', (bbox2.min.y), ' Max Y:', (bbox2.max.y));
|
|
|
|
var feedrate = $('#jograte').val();
|
|
|
|
if (laststatus.machine.firmware.type === 'grbl') {
|
2019-01-30 08:39:36 +00:00
|
|
|
if (object.userData.inch) {
|
2019-01-29 21:35:57 +00:00
|
|
|
var moves = `
|
|
|
|
$J=G90G20X` + (bbox2.min.x) + ` Y` + (bbox2.min.y) + ` F` + feedrate + `\n
|
|
|
|
$J=G90G20X` + (bbox2.max.x) + ` Y` + (bbox2.min.y) + ` F` + feedrate + `\n
|
|
|
|
$J=G90G20X` + (bbox2.max.x) + ` Y` + (bbox2.max.y) + ` F` + feedrate + `\n
|
|
|
|
$J=G90G20X` + (bbox2.min.x) + ` Y` + (bbox2.max.y) + ` F` + feedrate + `\n
|
|
|
|
$J=G90G20X` + (bbox2.min.x) + ` Y` + (bbox2.min.y) + ` F` + feedrate + `\n
|
|
|
|
`;
|
|
|
|
} else {
|
|
|
|
var moves = `
|
|
|
|
$J=G90G21X` + (bbox2.min.x) + ` Y` + (bbox2.min.y) + ` F` + feedrate + `\n
|
|
|
|
$J=G90G21X` + (bbox2.max.x) + ` Y` + (bbox2.min.y) + ` F` + feedrate + `\n
|
|
|
|
$J=G90G21X` + (bbox2.max.x) + ` Y` + (bbox2.max.y) + ` F` + feedrate + `\n
|
|
|
|
$J=G90G21X` + (bbox2.min.x) + ` Y` + (bbox2.max.y) + ` F` + feedrate + `\n
|
|
|
|
$J=G90G21X` + (bbox2.min.x) + ` Y` + (bbox2.min.y) + ` F` + feedrate + `\n
|
|
|
|
`;
|
|
|
|
}
|
|
|
|
|
2018-09-06 21:08:06 +00:00
|
|
|
} else {
|
|
|
|
var moves = `
|
|
|
|
G90\n
|
|
|
|
G0 X` + (bbox2.min.x) + ` Y` + (bbox2.min.y) + ` F` + feedrate + `\n
|
|
|
|
G0 X` + (bbox2.max.x) + ` Y` + (bbox2.min.y) + ` F` + feedrate + `\n
|
|
|
|
G0 X` + (bbox2.max.x) + ` Y` + (bbox2.max.y) + ` F` + feedrate + `\n
|
|
|
|
G0 X` + (bbox2.min.x) + ` Y` + (bbox2.max.y) + ` F` + feedrate + `\n
|
|
|
|
G0 X` + (bbox2.min.x) + ` Y` + (bbox2.min.y) + ` F` + feedrate + `\n
|
|
|
|
G90\n`;
|
|
|
|
}
|
|
|
|
socket.emit('runJob', moves);
|
|
|
|
});
|
|
|
|
|
2018-06-21 20:02:40 +00:00
|
|
|
});
|
|
|
|
|
2019-04-16 18:17:42 +00:00
|
|
|
function changeStepSize(dir) {
|
|
|
|
if (jogdist == 0.1) {
|
|
|
|
if (dir == 1) {
|
|
|
|
jogdist = 1;
|
|
|
|
$('.distbtn').removeClass('bd-openbuilds')
|
|
|
|
$('#dist1').addClass('bd-openbuilds')
|
|
|
|
$('.jogdist').removeClass('fg-openbuilds')
|
|
|
|
$('.jogdist').addClass('fg-gray')
|
|
|
|
$('#dist1label').removeClass('fg-gray')
|
|
|
|
$('#dist1label').addClass('fg-openbuilds')
|
|
|
|
}
|
|
|
|
if (dir == -1) {
|
|
|
|
// do nothing
|
|
|
|
}
|
|
|
|
} else if (jogdist == 1) {
|
|
|
|
if (dir == 1) {
|
|
|
|
jogdist = 10;
|
|
|
|
$('.distbtn').removeClass('bd-openbuilds')
|
|
|
|
$('#dist10').addClass('bd-openbuilds')
|
|
|
|
$('.jogdist').removeClass('fg-openbuilds')
|
|
|
|
$('.jogdist').addClass('fg-gray')
|
|
|
|
$('#dist10label').removeClass('fg-gray')
|
|
|
|
$('#dist10label').addClass('fg-openbuilds')
|
|
|
|
}
|
|
|
|
if (dir == -1) {
|
|
|
|
jogdist = 0.1;
|
|
|
|
$('.distbtn').removeClass('bd-openbuilds')
|
|
|
|
$('#dist01').addClass('bd-openbuilds')
|
|
|
|
$('.jogdist').removeClass('fg-openbuilds')
|
|
|
|
$('.jogdist').addClass('fg-gray')
|
|
|
|
$('#dist01label').removeClass('fg-gray')
|
|
|
|
$('#dist01label').addClass('fg-openbuilds')
|
|
|
|
}
|
|
|
|
} else if (jogdist == 10) {
|
|
|
|
if (dir == 1) {
|
|
|
|
jogdist = 100;
|
|
|
|
$('.distbtn').removeClass('bd-openbuilds')
|
|
|
|
$('#dist100').addClass('bd-openbuilds')
|
|
|
|
$('.jogdist').removeClass('fg-openbuilds')
|
|
|
|
$('.jogdist').addClass('fg-gray')
|
|
|
|
$('#dist100label').removeClass('fg-gray')
|
|
|
|
$('#dist100label').addClass('fg-openbuilds')
|
|
|
|
}
|
|
|
|
if (dir == -1) {
|
|
|
|
jogdist = 1;
|
|
|
|
$('.distbtn').removeClass('bd-openbuilds')
|
|
|
|
$('#dist1').addClass('bd-openbuilds')
|
|
|
|
$('.jogdist').removeClass('fg-openbuilds')
|
|
|
|
$('.jogdist').addClass('fg-gray')
|
|
|
|
$('#dist1label').removeClass('fg-gray')
|
|
|
|
$('#dist1label').addClass('fg-openbuilds')
|
|
|
|
}
|
|
|
|
} else if (jogdist == 100) {
|
|
|
|
if (dir == 1) {
|
|
|
|
// do nothing
|
|
|
|
}
|
|
|
|
if (dir == -1) {
|
|
|
|
jogdist = 10;
|
|
|
|
$('.distbtn').removeClass('bd-openbuilds')
|
|
|
|
$('#dist10').addClass('bd-openbuilds')
|
|
|
|
$('.jogdist').removeClass('fg-openbuilds')
|
|
|
|
$('.jogdist').addClass('fg-gray')
|
|
|
|
$('#dist10label').removeClass('fg-gray')
|
|
|
|
$('#dist10label').addClass('fg-openbuilds')
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2018-06-21 20:02:40 +00:00
|
|
|
function jog(dir, dist, feed = null) {
|
|
|
|
if (feed) {
|
|
|
|
socket.emit('jog', dir + ',' + dist + ',' + feed);
|
|
|
|
} else {
|
|
|
|
socket.emit('jog', dir + ',' + dist);
|
|
|
|
}
|
2018-08-24 19:00:03 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
function jogXY(xincrement, yincrement, feed = null) {
|
|
|
|
var data = {
|
|
|
|
x: xincrement,
|
|
|
|
y: yincrement,
|
|
|
|
feed: feed
|
|
|
|
}
|
|
|
|
socket.emit('jogXY', data);
|
2019-04-17 18:56:22 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
function home() {
|
|
|
|
if (laststatus != undefined && laststatus.machine.firmware.type == 'grbl') {
|
|
|
|
sendGcode('$H')
|
|
|
|
} else if (laststatus != undefined && laststatus.machine.firmware.type == 'smoothie') {
|
|
|
|
sendGcode('G28')
|
|
|
|
}
|
2018-06-21 20:02:40 +00:00
|
|
|
}
|