OpenBuilds-CONTROL/app/js/jog.js

314 wiersze
9.3 KiB
JavaScript

var jogdist = 10;
var safeToUpdateSliders = true;
$(document).ready(function() {
$(document).mousedown(function(e) {
safeToUpdateSliders = false;
}).mouseup(function(e) {
safeToUpdateSliders = true;
}).mouseleave(function(e) {
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())
}
});
$('#dist01').on('click', function(ev) {
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')
})
$('#dist1').on('click', function(ev) {
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')
})
$('#dist10').on('click', function(ev) {
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')
})
$('#dist100').on('click', function(ev) {
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')
})
$('#dist500').on('click', function(ev) {
jogdist = 500;
$('.distbtn').removeClass('bd-openbuilds')
$('#dist500').addClass('bd-openbuilds')
$('.jogdist').removeClass('fg-openbuilds')
$('.jogdist').addClass('fg-gray')
$('#dist500label').removeClass('fg-gray')
$('#dist500label').addClass('fg-openbuilds')
})
$('#gotozeroWPos').on('click', function(ev) {
sendGcode('G21 G90');
sendGcode('G0 Z5');
sendGcode('G0 X0 Y0');
sendGcode('G0 Z0');
});
$('#gotozeroMPos').on('click', function(ev) {
sendGcode('G53 G0 Z0');
sendGcode('G0 X0 Y0');
sendGcode('G0 Z0');
});
$('#xM').on('click', function(ev) {
var dir = 'X-';
var feedrate = $('#jograte').val();
jog('X', '-' + jogdist, feedrate);
})
$('#xP').on('click', function(ev) {
var dir = 'X-';
var feedrate = $('#jograte').val();
jog('X', jogdist, feedrate);
})
$('#yM').on('click', function(ev) {
var dir = 'X-';
var feedrate = $('#jograte').val();
jog('Y', '-' + jogdist, feedrate);
})
$('#yP').on('click', function(ev) {
var dir = 'X-';
var feedrate = $('#jograte').val();
jog('Y', jogdist, feedrate);
})
$('#zM').on('click', function(ev) {
var dir = 'X-';
var feedrate = $('#jograte').val();
jog('Z', '-' + jogdist, feedrate);
})
$('#zP').on('click', function(ev) {
var dir = 'X-';
var feedrate = $('#jograte').val();
jog('Z', jogdist, feedrate);
})
$('#homeBtn').on('click', function(ev) {
home();
})
$('#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') {
if (object.userData.inch) {
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
`;
}
} 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);
});
});
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')
}
}
}
function jog(dir, dist, feed = null) {
if (feed) {
socket.emit('jog', dir + ',' + dist + ',' + feed);
} else {
socket.emit('jog', dir + ',' + dist);
}
}
function jogXY(xincrement, yincrement, feed = null) {
var data = {
x: xincrement,
y: yincrement,
feed: feed
}
socket.emit('jogXY', data);
}
function home() {
if (laststatus != undefined && laststatus.machine.firmware.type == 'grbl') {
sendGcode('$H')
} else if (laststatus != undefined && laststatus.machine.firmware.type == 'smoothie') {
sendGcode('G28')
}
}