OpenBuilds-CONTROL/app/js/jog.js

803 wiersze
24 KiB
JavaScript
Czysty Zwykły widok Historia

2019-05-01 18:44:44 +00:00
var allowContinuousJog = false;
2020-01-08 13:39:24 +00:00
var continuousJogRunning = false;
2018-06-21 20:02:40 +00:00
var jogdist = 10;
var safeToUpdateSliders = true;
2018-06-21 20:02:40 +00:00
2019-05-10 18:36:51 +00:00
function mmtoinchrate() {
var value = $('#jograte').val();
var convert = "";
convert = (value / 25.4).toFixed(2); //converts the value of input(mm) to inch;
$("#jograteinch").val(convert);
}
2019-05-07 17:26:26 +00:00
2019-05-10 18:36:51 +00:00
function inchtommrate() {
var value = $('#jograteinch').val();
var convert = "";
convert = (value * 25.4).toFixed(2); //converts the value of input(mm) to inch;
$("#jograte").val(convert);
}
2019-05-08 20:26:04 +00:00
2019-05-07 17:26:26 +00:00
function mmMode() {
2019-05-10 18:36:51 +00:00
unit = "mm";
2019-05-08 20:26:04 +00:00
localStorage.setItem('unitsMode', unit);
2019-05-07 17:26:26 +00:00
$('#dist01label').html('0.1mm')
$('#dist1label').html('1mm')
$('#dist10label').html('10mm')
$('#dist100label').html('100mm')
2019-05-07 17:29:11 +00:00
if (jogdist == 0.254) {
jogdist = 0.1
}
if (jogdist == 2.54) {
jogdist = 1
}
if (jogdist == 25.4) {
jogdist = 10
}
if (jogdist == 254) {
jogdist = 100
}
2019-05-10 18:36:51 +00:00
$('#jogratemmdiv').show()
$('#jograteinchdiv').hide()
inchtommrate();
2019-05-07 17:26:26 +00:00
}
function inMode() {
2019-05-10 18:36:51 +00:00
unit = "in";
2019-05-08 20:26:04 +00:00
localStorage.setItem('unitsMode', unit);
2019-05-07 17:26:26 +00:00
$('#dist01label').html('0.01"')
$('#dist1label').html('0.1"')
$('#dist10label').html('1"')
$('#dist100label').html('10"')
if (jogdist == 0.1) {
2019-05-07 17:29:11 +00:00
jogdist = 0.254
2019-05-07 17:26:26 +00:00
}
if (jogdist == 1) {
jogdist = 2.54
}
if (jogdist == 10) {
jogdist = 25.4
}
if (jogdist == 100) {
jogdist = 254
}
2019-05-10 18:36:51 +00:00
$('#jogratemmdiv').hide()
$('#jograteinchdiv').show()
mmtoinchrate()
2019-05-07 17:26:26 +00:00
}
2020-04-15 13:59:32 +00:00
function cancelJog() {
2020-10-12 15:07:38 +00:00
socket.emit('stop', {
stop: false,
jog: true,
abort: false
})
2020-04-15 13:59:32 +00:00
continuousJogRunning = false;
}
2019-05-07 17:26:26 +00:00
2018-06-21 20:02:40 +00:00
$(document).ready(function() {
2020-04-15 13:59:32 +00:00
if (localStorage.getItem('continuousJog')) {
if (JSON.parse(localStorage.getItem('continuousJog')) == true) {
$('#jogTypeContinuous').prop('checked', true)
allowContinuousJog = true;
$('.distbtn').hide()
} else {
$('#jogTypeContinuous').prop('checked', false)
allowContinuousJog = false;
$('.distbtn').show();
}
}
$('#jogTypeContinuous').on('click', function() {
if ($(this).is(':checked')) {
localStorage.setItem('continuousJog', true);
allowContinuousJog = true;
$('.distbtn').hide();
} else {
localStorage.setItem('continuousJog', false);
allowContinuousJog = false;
$('.distbtn').show();
}
// console.log(document.activeElement)
document.activeElement.blur();
});
if (localStorage.getItem('unitsMode')) {
if (localStorage.getItem('unitsMode') == "mm") {
mmMode()
$('#mmMode').click()
} else if (localStorage.getItem('unitsMode') == "in") {
inMode();
$('#inMode').click()
}
} else {
// default to inches
inMode();
$('#inMode').click()
}
2020-11-16 17:58:36 +00:00
if (localStorage.getItem('jogFeed')) {
$('#jograte').val(localStorage.getItem('jogFeed'))
}
2020-04-15 13:59:32 +00:00
$("#jograte").keyup(function() {
mmtoinchrate()
2020-11-16 17:58:36 +00:00
var feed = $('#jograte').val();
localStorage.setItem('jogFeed', feed);
2020-04-15 13:59:32 +00:00
});
$("#jograteinch").keyup(function() {
inchtommrate()
2020-11-16 17:58:36 +00:00
var feed = $('#jograte').val();
localStorage.setItem('jogFeed', feed);
2020-04-15 13:59:32 +00:00
});
2020-06-22 21:04:23 +00:00
$("#jograte").on("keypress", function(e) {
if (e.which == 13) {
$("#jograte").blur();
}
})
$("#jograteinch").on("keypress", function(e) {
if (e.which == 13) {
$("#jograte").blur();
}
})
2019-04-12 13:32:56 +00:00
$(document).mousedown(function(e) {
safeToUpdateSliders = false;
2019-04-12 13:32:56 +00:00
}).mouseup(function(e) {
safeToUpdateSliders = true;
2019-04-12 13:32:56 +00:00
}).mouseleave(function(e) {
safeToUpdateSliders = true;
});
2020-06-22 21:04:23 +00:00
$("#xPosDro").click(function() {
$("#xPos").hide()
2019-05-10 18:36:51 +00:00
if (unit == "mm") {
2019-05-07 17:26:26 +00:00
$("#xPosInput").show().focus().val(laststatus.machine.position.work.x)
2019-05-10 18:36:51 +00:00
} else if (unit == "in") {
2019-05-07 17:26:26 +00:00
$("#xPosInput").show().focus().val((laststatus.machine.position.work.x / 25.4).toFixed(2))
}
});
$("#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");
2019-05-10 18:36:51 +00:00
if (unit == "mm") {
2020-06-22 21:04:23 +00:00
sendGcode("$J=G90 G21 X" + $("#xPosInput").val() + " F" + $('#jograte').val());
2019-05-10 18:36:51 +00:00
} else if (unit == "in") {
2020-06-22 21:04:23 +00:00
sendGcode("$J=G90 G20 X" + $("#xPosInput").val() + " F" + $('#jograteinch').val());
2019-05-07 17:26:26 +00:00
}
}
});
2020-06-22 21:04:23 +00:00
$("#yPosDro").click(function() {
$("#yPos").hide()
2019-05-10 18:36:51 +00:00
if (unit == "mm") {
2019-05-07 17:26:26 +00:00
$("#yPosInput").show().focus().val(laststatus.machine.position.work.y)
2019-05-10 18:36:51 +00:00
} else if (unit == "in") {
2019-05-07 17:26:26 +00:00
$("#yPosInput").show().focus().val((laststatus.machine.position.work.y / 25.4).toFixed(2))
}
});
$("#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");
2019-05-10 18:36:51 +00:00
if (unit == "mm") {
2020-06-22 21:04:23 +00:00
sendGcode("$J=G90 G21 Y" + $("#yPosInput").val() + " F" + $('#jograte').val());
2019-05-10 18:36:51 +00:00
} else if (unit == "in") {
2020-06-22 21:04:23 +00:00
sendGcode("$J=G90 G20 Y" + $("#yPosInput").val() + " F" + $('#jograteinch').val());
2019-05-07 17:26:26 +00:00
}
}
});
2020-06-22 21:04:23 +00:00
$("#zPosDro").click(function() {
$("#zPos").hide()
2019-05-10 18:36:51 +00:00
if (unit == "mm") {
2019-05-07 17:26:26 +00:00
$("#zPosInput").show().focus().val(laststatus.machine.position.work.z)
2019-05-10 18:36:51 +00:00
} else if (unit == "in") {
2019-05-07 17:26:26 +00:00
$("#zPosInput").show().focus().val((laststatus.machine.position.work.z / 25.4).toFixed(2))
}
});
$("#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");
2019-05-10 18:36:51 +00:00
if (unit == "mm") {
2020-06-22 21:04:23 +00:00
sendGcode("$J=G90 G21 Z" + $("#zPosInput").val() + " F" + $('#jograte').val());
2019-05-10 18:36:51 +00:00
} else if (unit == "in") {
2020-06-22 21:04:23 +00:00
sendGcode("$J=G90 G20 Z" + $("#zPosInput").val() + " F" + $('#jograteinch').val());
2019-05-07 17:26:26 +00:00
}
}
});
2018-06-21 20:02:40 +00:00
$('#dist01').on('click', function(ev) {
2019-05-10 18:36:51 +00:00
if (unit == "mm") {
2019-05-07 17:26:26 +00:00
jogdist = 0.1;
2019-05-10 18:36:51 +00:00
} else if (unit == "in") {
2019-05-07 17:26:26 +00:00
jogdist = 0.254;
}
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) {
2019-05-10 18:36:51 +00:00
if (unit == "mm") {
2019-05-07 17:26:26 +00:00
jogdist = 1;
2019-05-10 18:36:51 +00:00
} else if (unit == "in") {
2019-05-07 17:26:26 +00:00
jogdist = 2.54;
}
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) {
2019-05-10 18:36:51 +00:00
if (unit == "mm") {
2019-05-07 17:26:26 +00:00
jogdist = 10;
2019-05-10 18:36:51 +00:00
} else if (unit == "in") {
2019-05-07 17:26:26 +00:00
jogdist = 25.4;
}
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) {
2019-05-10 18:36:51 +00:00
if (unit == "mm") {
2019-05-07 17:26:26 +00:00
jogdist = 100;
2019-05-10 18:36:51 +00:00
} else if (unit == "in") {
2019-05-07 17:26:26 +00:00
jogdist = 254.0;
}
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');
});
2020-06-23 19:02:30 +00:00
$('#gotoXzeroMpos').on('click', function(ev) {
if (grblParams['$22'] == 1) {
sendGcode('G53 G0 X-' + grblParams["$27"]);
} else {
sendGcode('G53 G0 X0');
}
});
$('#gotoYzeroMpos').on('click', function(ev) {
if (grblParams['$22'] == 1) {
sendGcode('G53 G0 Y-' + grblParams["$27"]);
} else {
sendGcode('G53 G0 Y0');
}
});
$('#gotoZzeroMpos').on('click', function(ev) {
if (grblParams['$22'] == 1) {
sendGcode('G53 G0 Z-' + grblParams["$27"]);
} else {
sendGcode('G53 G0 Z0');
}
});
$('#gotozeroZmPosXYwPos').on('click', function(ev) {
if (grblParams['$22'] == 1) {
sendGcode('G53 G0 Z-' + grblParams["$27"]);
} else {
sendGcode('G53 G0 Z0');
}
2019-01-18 19:01:53 +00:00
sendGcode('G0 X0 Y0');
sendGcode('G0 Z0');
});
2020-06-23 19:02:30 +00:00
$('#gotozeroMPos').on('click', function(ev) {
if (grblParams['$22'] == 1) {
sendGcode('G53 G0 Z-' + grblParams["$27"]);
sendGcode('G53 G0 X-' + grblParams["$27"] + ' Y-' + grblParams["$27"]);
} else {
sendGcode('G53 G0 Z0');
sendGcode('G53 G0 X0 Y0');
}
});
2020-11-06 22:09:08 +00:00
2018-06-21 20:02:40 +00:00
2020-04-15 13:59:32 +00:00
$('.xM').on('touchstart mousedown', function(ev) {
ev.preventDefault();
2020-11-16 17:58:36 +00:00
var hasSoftLimits = false;
if (Object.keys(grblParams).length > 0) {
if (parseInt(grblParams.$20) == 1) {
hasSoftLimits = true;
}
}
2020-11-09 14:47:08 +00:00
if (allowContinuousJog) { // startJog();
2020-11-16 17:58:36 +00:00
if (!waitingForStatus && laststatus.comms.runStatus == "Idle") {
2020-11-09 14:47:08 +00:00
var direction = "X-";
var distance = 1000;
2020-11-16 17:58:36 +00:00
if (hasSoftLimits) {
// Soft Limits is enabled so lets calculate maximum move distance
var mindistance = parseInt(grblParams.$130)
var maxdistance = 0; // Grbl all negative coordinates
// Negative move:
distance = (mindistance + (parseFloat(laststatus.machine.position.offset.x) + parseFloat(laststatus.machine.position.work.x))) - 1
distance = distance.toFixed(3);
if (distance < 1) {
toastJogWillHit("X-");
2020-11-09 14:47:08 +00:00
}
2019-12-30 19:56:20 +00:00
}
2020-11-16 17:58:36 +00:00
2020-11-09 14:47:08 +00:00
var feed = $('#jograte').val();
2020-11-09 19:35:02 +00:00
if (distance >= 1) {
socket.emit('runCommand', "$J=G91 G21 " + direction + distance + " F" + feed + "\n");
continuousJogRunning = true;
waitingForStatus = true;
$('.xM').click();
}
} else {
toastJogNotIdle();
2019-12-30 19:56:20 +00:00
}
2020-04-16 13:32:26 +00:00
} else {
var feedrate = $('#jograte').val();
jog('X', '-' + jogdist, feedrate);
2019-12-30 19:56:20 +00:00
}
2020-04-16 13:32:26 +00:00
$('#runNewProbeBtn').addClass("disabled")
$('#confirmNewProbeBtn').removeClass("disabled")
2019-12-30 19:56:20 +00:00
});
2020-04-15 13:59:32 +00:00
$('.xM').on('touchend mouseup', function(ev) {
ev.preventDefault();
2019-12-30 19:56:20 +00:00
if (allowContinuousJog) {
cancelJog()
}
});
2020-04-15 13:59:32 +00:00
$('.xP').on('touchstart mousedown', function(ev) {
2020-06-23 17:55:56 +00:00
// console.log("xp down")
2020-04-15 13:59:32 +00:00
ev.preventDefault();
2020-11-16 17:58:36 +00:00
var hasSoftLimits = false;
if (Object.keys(grblParams).length > 0) {
if (parseInt(grblParams.$20) == 1) {
hasSoftLimits = true;
}
}
2020-11-09 14:47:08 +00:00
if (allowContinuousJog) { // startJog();
2020-11-16 17:58:36 +00:00
if (!waitingForStatus && laststatus.comms.runStatus == "Idle") {
2020-11-09 14:47:08 +00:00
var direction = "X";
var distance = 1000;
2020-11-16 17:58:36 +00:00
if (hasSoftLimits) {
// Soft Limits is enabled so lets calculate maximum move distance
var mindistance = parseInt(grblParams.$130)
var maxdistance = 0; // Grbl all negative coordinates
// Positive move:
distance = (maxdistance - (parseFloat(laststatus.machine.position.offset.x) + parseFloat(laststatus.machine.position.work.x))) - 1
distance = distance.toFixed(3);
if (distance < 1) {
toastJogWillHit("X+");
2020-11-09 14:47:08 +00:00
}
2019-12-30 19:56:20 +00:00
}
2020-11-09 14:47:08 +00:00
var feed = $('#jograte').val();
2020-11-09 19:35:02 +00:00
if (distance >= 1) {
socket.emit('runCommand', "$J=G91 G21 " + direction + distance + " F" + feed + "\n");
continuousJogRunning = true;
waitingForStatus = true;
$('.xP').click();
}
} else {
toastJogNotIdle();
2019-12-30 19:56:20 +00:00
}
2020-04-16 13:32:26 +00:00
} else {
var feedrate = $('#jograte').val();
jog('X', jogdist, feedrate);
2019-04-18 14:23:51 +00:00
}
2020-04-16 13:32:26 +00:00
$('#runNewProbeBtn').addClass("disabled")
$('#confirmNewProbeBtn').removeClass("disabled")
2019-04-18 14:23:51 +00:00
});
2020-04-15 13:59:32 +00:00
$('.xP').on('touchend mouseup', function(ev) {
2020-06-23 17:55:56 +00:00
// console.log("xp up")
2020-04-15 13:59:32 +00:00
ev.preventDefault();
2019-04-18 14:23:51 +00:00
if (allowContinuousJog) {
cancelJog()
}
});
2020-04-15 13:59:32 +00:00
$('.yM').on('touchstart mousedown', function(ev) {
ev.preventDefault();
2020-11-16 17:58:36 +00:00
var hasSoftLimits = false;
if (Object.keys(grblParams).length > 0) {
if (parseInt(grblParams.$20) == 1) {
hasSoftLimits = true;
}
}
2020-11-09 14:47:08 +00:00
if (allowContinuousJog) { // startJog();
2020-11-16 17:58:36 +00:00
if (!waitingForStatus && laststatus.comms.runStatus == "Idle") {
2020-11-09 14:47:08 +00:00
var direction = "Y-";
var distance = 1000;
2020-11-16 17:58:36 +00:00
if (hasSoftLimits) {
// Soft Limits is enabled so lets calculate maximum move distance
var mindistance = parseInt(grblParams.$131)
var maxdistance = 0; // Grbl all negative coordinates
// Negative move:
distance = (mindistance + (parseFloat(laststatus.machine.position.offset.y) + parseFloat(laststatus.machine.position.work.y))) - 1
distance = distance.toFixed(3);
if (distance < 1) {
toastJogWillHit("Y-");
2020-11-09 14:47:08 +00:00
}
2019-12-30 19:56:20 +00:00
}
2020-11-09 14:47:08 +00:00
var feed = $('#jograte').val();
2020-11-09 19:35:02 +00:00
if (distance >= 1) {
socket.emit('runCommand', "$J=G91 G21 " + direction + distance + " F" + feed + "\n");
continuousJogRunning = true;
waitingForStatus = true;
$('.yM').click();
}
} else {
toastJogNotIdle();
2020-11-09 14:47:08 +00:00
}
2020-04-16 13:32:26 +00:00
} else {
var feedrate = $('#jograte').val();
jog('Y', '-' + jogdist, feedrate);
2019-04-18 14:23:51 +00:00
}
2020-04-16 13:32:26 +00:00
$('#runNewProbeBtn').addClass("disabled")
$('#confirmNewProbeBtn').removeClass("disabled")
2019-04-18 14:23:51 +00:00
});
2020-04-15 13:59:32 +00:00
$('.yM').on('touchend mouseup', function(ev) {
ev.preventDefault();
2019-04-18 14:23:51 +00:00
if (allowContinuousJog) {
cancelJog()
}
});
2020-04-15 13:59:32 +00:00
$('.yP').on('touchstart mousedown', function(ev) {
ev.preventDefault();
2020-11-16 17:58:36 +00:00
var hasSoftLimits = false;
if (Object.keys(grblParams).length > 0) {
if (parseInt(grblParams.$20) == 1) {
hasSoftLimits = true;
}
}
2020-11-09 14:47:08 +00:00
if (allowContinuousJog) { // startJog();
2020-11-16 17:58:36 +00:00
if (!waitingForStatus && laststatus.comms.runStatus == "Idle") {
2020-11-09 14:47:08 +00:00
var direction = "Y";
var distance = 1000;
2020-11-16 17:58:36 +00:00
if (hasSoftLimits) {
// Soft Limits is enabled so lets calculate maximum move distance
var mindistance = parseInt(grblParams.$131)
var maxdistance = 0; // Grbl all negative coordinates
// Positive move:
distance = (maxdistance - (parseFloat(laststatus.machine.position.offset.y) + parseFloat(laststatus.machine.position.work.y))) - 1
distance = distance.toFixed(3);
if (distance < 1) {
toastJogWillHit("Y+");
2020-11-09 14:47:08 +00:00
}
2019-12-30 19:56:20 +00:00
}
2020-11-09 14:47:08 +00:00
var feed = $('#jograte').val();
2020-11-09 19:35:02 +00:00
if (distance >= 1) {
socket.emit('runCommand', "$J=G91 G21 " + direction + distance + " F" + feed + "\n");
continuousJogRunning = true;
waitingForStatus = true;
$('#yP').click();
}
} else {
toastJogNotIdle();
2020-11-09 14:47:08 +00:00
}
2020-04-16 13:32:26 +00:00
} else {
var feedrate = $('#jograte').val();
jog('Y', jogdist, feedrate);
2019-04-18 14:23:51 +00:00
}
2020-04-16 13:32:26 +00:00
$('#runNewProbeBtn').addClass("disabled")
$('#confirmNewProbeBtn').removeClass("disabled")
2019-04-18 14:23:51 +00:00
});
2020-04-15 13:59:32 +00:00
$('.yP').on('touchend mouseup', function(ev) {
ev.preventDefault();
2019-04-18 14:23:51 +00:00
if (allowContinuousJog) {
cancelJog()
}
});
2020-04-15 13:59:32 +00:00
$('.zM').on('touchstart mousedown', function(ev) {
ev.preventDefault();
2020-11-16 17:58:36 +00:00
var hasSoftLimits = false;
if (Object.keys(grblParams).length > 0) {
if (parseInt(grblParams.$20) == 1) {
hasSoftLimits = true;
}
}
2020-11-09 14:47:08 +00:00
if (allowContinuousJog) { // startJog();
2020-11-16 17:58:36 +00:00
if (!waitingForStatus && laststatus.comms.runStatus == "Idle") {
2020-11-09 14:47:08 +00:00
var direction = "Z-";
var distance = 1000;
2020-11-16 17:58:36 +00:00
if (hasSoftLimits) {
// Soft Limits is enabled so lets calculate maximum move distance
var mindistance = parseInt(grblParams.$132)
var maxdistance = 0; // Grbl all negative coordinates
// Negative move:
distance = (mindistance + (parseFloat(laststatus.machine.position.offset.z) + parseFloat(laststatus.machine.position.work.z))) - 1
distance = distance.toFixed(3);
if (distance < 1) {
toastJogWillHit("Z-");
2020-11-09 14:47:08 +00:00
}
2019-12-30 19:56:20 +00:00
}
2020-11-09 14:47:08 +00:00
var feed = $('#jograte').val();
2020-11-09 19:35:02 +00:00
if (distance >= 1) {
socket.emit('runCommand', "$J=G91 G21 " + direction + distance + " F" + feed + "\n");
continuousJogRunning = true;
waitingForStatus = true;
$('.zM').click();
}
} else {
toastJogNotIdle();
2020-11-09 14:47:08 +00:00
}
2020-04-16 13:32:26 +00:00
} else {
var feedrate = $('#jograte').val();
jog('Z', '-' + jogdist, feedrate);
2019-04-18 14:23:51 +00:00
}
2020-04-16 13:32:26 +00:00
$('#runNewProbeBtn').addClass("disabled")
$('#confirmNewProbeBtn').removeClass("disabled")
2019-04-18 14:23:51 +00:00
});
2020-04-15 13:59:32 +00:00
$('.zM').on('touchend mouseup', function(ev) {
ev.preventDefault();
2019-04-18 14:23:51 +00:00
if (allowContinuousJog) {
cancelJog()
}
});
2020-04-15 13:59:32 +00:00
$('.zP').on('touchstart mousedown', function(ev) {
ev.preventDefault();
2020-11-16 17:58:36 +00:00
var hasSoftLimits = false;
if (Object.keys(grblParams).length > 0) {
if (parseInt(grblParams.$20) == 1) {
hasSoftLimits = true;
}
}
2020-11-09 14:47:08 +00:00
if (allowContinuousJog) { // startJog();
2020-11-16 17:58:36 +00:00
if (!waitingForStatus && laststatus.comms.runStatus == "Idle") {
2020-11-09 14:47:08 +00:00
var direction = "Z";
var distance = 1000;
2020-11-16 17:58:36 +00:00
if (hasSoftLimits) {
// Soft Limits is enabled so lets calculate maximum move distance
var mindistance = parseInt(grblParams.$132)
var maxdistance = 0; // Grbl all negative coordinates
// Positive move:
distance = (maxdistance - (parseFloat(laststatus.machine.position.offset.z) + parseFloat(laststatus.machine.position.work.z))) - 1
distance = distance.toFixed(3);
if (distance < 1) {
toastJogWillHit("Z+");
2020-11-09 14:47:08 +00:00
}
2019-12-30 19:56:20 +00:00
}
2020-11-16 17:58:36 +00:00
2020-11-09 14:47:08 +00:00
var feed = $('#jograte').val();
2020-11-09 19:35:02 +00:00
if (distance >= 1) {
socket.emit('runCommand', "$J=G91 G21 " + direction + distance + " F" + feed + "\n");
continuousJogRunning = true;
waitingForStatus = true;
$('.zP').click();
}
} else {
toastJogNotIdle();
2020-11-09 14:47:08 +00:00
}
2020-04-16 13:32:26 +00:00
} else {
var feedrate = $('#jograte').val();
jog('Z', jogdist, feedrate);
2019-04-18 14:23:51 +00:00
}
2020-04-16 13:32:26 +00:00
$('#runNewProbeBtn').addClass("disabled")
$('#confirmNewProbeBtn').removeClass("disabled")
2019-04-18 14:23:51 +00:00
});
2020-04-15 13:59:32 +00:00
$('.zP').on('touchend mouseup', function(ev) {
ev.preventDefault();
2019-04-18 14:23:51 +00:00
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') {
2020-02-06 18:02:06 +00:00
var moves = `
2019-01-29 21:35:57 +00:00
$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`;
}
2020-02-06 18:02:06 +00:00
socket.emit('runJob', {
data: moves,
2020-03-30 15:26:11 +00:00
isJob: false,
fileName: ""
2020-02-06 18:02:06 +00:00
});
2018-09-06 21:08:06 +00:00
});
2018-06-21 20:02:40 +00:00
});
2019-04-16 18:17:42 +00:00
function changeStepSize(dir) {
2020-06-22 21:04:23 +00:00
if (jogdist == 0.1 || jogdist == 0.254) {
2019-04-16 18:17:42 +00:00
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
}
2020-06-22 21:04:23 +00:00
} else if (jogdist == 1 || jogdist == 2.54) {
2019-04-16 18:17:42 +00:00
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')
}
2020-06-22 21:04:23 +00:00
} else if (jogdist == 10 || jogdist == 25.4) {
2019-04-16 18:17:42 +00:00
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')
}
2020-06-22 21:04:23 +00:00
} else if (jogdist == 100 || jogdist == 254) {
2019-04-16 18:17:42 +00:00
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')
}
2020-11-09 19:35:02 +00:00
}
function toastJogWillHit(axis) {
printLog("<span class='fg-red'>[ jog ] </span><span class='fg-green'>Unable to jog toward " + axis + ", will hit soft-limit</span>")
var toast = Metro.toast.create;
toast("Unable to jog toward " + axis + ", will hit soft-limit", null, 1000, "bg-darkRed fg-white")
}
function toastJogNotIdle(axis) {
2020-11-16 17:58:36 +00:00
printLog("<span class='fg-red'>[ jog ] </span><span class='fg-green'>Please wait for machine to be Idle, before jogging</span>")
2020-11-09 19:35:02 +00:00
var toast = Metro.toast.create;
2020-11-16 17:58:36 +00:00
toast("Please wait for machine to be Idle, before jogging. Try again once it is Idle", null, 1000, "bg-darkRed fg-white")
2018-06-21 20:02:40 +00:00
}