diff --git a/frontend/app.html b/frontend/app.html
index 9bf36398..c81e6964 100644
--- a/frontend/app.html
+++ b/frontend/app.html
@@ -210,13 +210,25 @@
-
+
@@ -252,7 +265,15 @@
×
Note! Set an offset by shift-clicking in the work area.
-
+
+
+
×
+
Note! Shift-click arrow for finer movement.
+
+
+
×
+
Note! Use keyboard arrow keys for movement and return key to set home.
+
diff --git a/frontend/js/app.js b/frontend/js/app.js
index 58ab342c..02d00130 100644
--- a/frontend/js/app.js
+++ b/frontend/js/app.js
@@ -52,6 +52,46 @@ function send_gcode(gcode, success_msg, error_msg) {
});
}
+function set00(x,y){
+ //set offset
+ $("#offset_area").show();
+ $("#offset_area").animate({
+ opacity: 1.0,
+ left: x,
+ top: y,
+ width: 609-x,
+ height: 304-y
+ }, 200 );
+ gcode_coordinate_offset = [x,y];
+ var gcode = 'G10 L2 P1 X'+ 2.0*x + ' Y' + 2.0*y + '\nG55\n';
+ send_gcode(gcode, "Offset set.", "Serial not connected.");
+ $(this).css('border', '1px dashed #aaaaaa');
+ $("#offset_area").css('border', '1px dashed #ff0000');
+
+}
+
+function show_position(x,y){
+ $("#current_position").show();
+ $("#current_position").animate({
+ opacity: 1.0,
+ left: x,
+ top: y,
+ width: 10,
+ height: 10
+ }, 200 );
+ $("#current_position").css('border', '1px 0 0 1px solid #aaaaaa');
+
+ $("#current_position-b").show();
+ $("#current_position-b").animate({
+ opacity: 1.0,
+ left: x-10,
+ top: y-10,
+ width: 10,
+ height: 10
+ }, 200 );
+ $("#current_position-b").css('border', '0 1px 1px 0 solid #aaaaaa');
+
+}
var queue_num_index = 1;
function save_and_add_to_job_queue(name, gcode) {
@@ -340,7 +380,7 @@ $(document).ready(function(){
send_gcode(gcode, "Stopping ...", "Serial not connected.");
var delayedresume = setTimeout(function() {
var gcode = '~\nG0X0Y0F20000\n' // ~ is resume char
- $().uxmessage('notice', gcode.replace(/\n/g, '
'));
+ $().uxmessage('notice', gcode.replace(/\n/g, 'show_pos
'));
send_gcode(gcode, "Resetting ...", "Serial not connected.");
}, 1000);
e.preventDefault();
@@ -362,6 +402,24 @@ $(document).ready(function(){
// also reset offset
reset_offset();
}
+ // show_position($("#cutting_area").offset.left,$("#cutting_area").offset.top);
+ if (gcode_coordinate_offset) {
+ var cutting= $("#cutting_area").offset();
+ var offset = $("#offset_area").offset();
+ show_position(offset.left-cutting.left,offset.top-cutting.top);
+ currentX=offset.left-cutting.left;
+ currentY=offset.top-cutting.top;
+ $('#x_field').val(currentX*2.0);
+ $('#y_field').val(currentY*2.0);
+ }else{
+ var cutting= $("#cutting_area").offset();
+ show_position(0,0);
+ currentX=0;
+ currentY=0;
+ $('#x_field').val(currentX*2.0);
+ $('#y_field').val(currentY*2.0);
+ }
+
gcode = 'G0X0Y0F16000\n'
// $().uxmessage('notice', gcode);
send_gcode(gcode, "Going to origin ...", "Serial not connected.");
diff --git a/frontend/js/app_mover.js b/frontend/js/app_mover.js
index b485b7c0..1cfe608c 100644
--- a/frontend/js/app_mover.js
+++ b/frontend/js/app_mover.js
@@ -1,14 +1,23 @@
var gcode_coordinate_offset = undefined;
+var currentX=0.0;
+var currentY=0.0;
function reset_offset() {
$("#offset_area").hide();
$('#offset_area').css({'opacity':0.0, left:0, top:0});
+ $('#current_position').css({'opacity':0.0, left:0, top:0});
+ $('#current_position-b').css({'opacity':0.0, left:0, top:0});
gcode_coordinate_offset = undefined;
$("#cutting_area").css('border', '1px dashed #ff0000');
- $("#offset_area").css('border', '1px dashed #aaaaaa');
+ $("#offset_area").css('border', '1px dashed #aaaaaa');
+
send_gcode('G54\n', "Offset reset.", "Serial not connected.");
$('#coordinates_info').text('');
+ $('#x_field').val(0);
+ $('#y_field').val(0);
+ currentX=0.0;
+ currentY=0.0;
}
@@ -57,24 +66,18 @@ $(document).ready(function(){
var offset = $(this).offset();
var x = (e.pageX - offset.left);
var y = (e.pageY - offset.top);
+ currentX=x;
+ currentY=y;
+
+ $('#x_field').val(x*2.0);
+ $('#y_field').val(y*2.0);
if(e.shiftKey) {
- //// set offset
- $("#offset_area").show();
- $("#offset_area").animate({
- opacity: 1.0,
- left: x,
- top: y,
- width: 609-x,
- height: 304-y
- }, 200 );
- gcode_coordinate_offset = [x,y];
- var gcode = 'G10 L2 P1 X'+ 2*x + ' Y' + 2*y + '\nG55\n';
- send_gcode(gcode, "Offset set.", "Serial not connected.");
- $(this).css('border', '1px dashed #aaaaaa');
- $("#offset_area").css('border', '1px dashed #ff0000');
+ set00(x,y);
} else if (!gcode_coordinate_offset) {
assemble_and_send_gcode(x,y);
+ show_position(x,y);
+
} else {
var pos = $("#offset_area").position()
if ((x < pos.left) || (y < pos.top)) {
@@ -82,6 +85,7 @@ $(document).ready(function(){
reset_offset();
}
}
+
return false;
});
@@ -133,7 +137,18 @@ $(document).ready(function(){
if(!e.shiftKey) {
var offset = $(this).offset();
var x = (e.pageX - offset.left);
- var y = (e.pageY - offset.top);
+ var y = (e.pageY - offset.top);
+
+ var cuttingAreaOffset = $("#cutting_area").offset();
+
+ currentX=(e.pageX - cuttingAreaOffset.left);
+ currentY=(e.pageY - cuttingAreaOffset.top);;
+
+ $('#x_field').val(currentX*2.0);
+ $('#y_field').val(currentY*2.0);
+
+ show_position(currentX,currentY);
+
assemble_and_send_gcode(x,y);
return false
}
@@ -204,20 +219,106 @@ $(document).ready(function(){
//// jog buttons
$("#jog_up_btn").click(function(e) {
- var gcode = 'G91\nG0Y-10F6000\nG90\n';
- send_gcode(gcode, "Moving Up ...", "Serial not connected.")
+ if(e.shiftKey) {
+ var gcode = 'G91\nG0Y-1F6000\nG90\n';
+ currentY-=.5;
+ }else{
+ var gcode = 'G91\nG0Y-10F6000\nG90\n';
+ currentY-=5;
+ }
+ send_gcode(gcode, "Moving Up ...", "Serial not connected.")
+
});
$("#jog_left_btn").click(function(e) {
- var gcode = 'G91\nG0X-10F6000\nG90\n';
+ if(e.shiftKey) {
+ var gcode = 'G91\nG0X-1F6000\nG90\n';
+ currentX-=.5;
+ }else{
+ var gcode = 'G91\nG0X-10F6000\nG90\n';
+ currentX-=5;
+ }
send_gcode(gcode, "Moving Left ...", "Serial not connected.")
});
$("#jog_right_btn").click(function(e) {
- var gcode = 'G91\nG0X10F6000\nG90\n';
+ if(e.shiftKey) {
+ var gcode = 'G91\nG0X1F6000\nG90\n';
+ currentX+=.5;
+ }else{
+ var gcode = 'G91\nG0X10F6000\nG90\n';
+ currentX+=5;
+ }
send_gcode(gcode, "Moving Right ...", "Serial not connected.")
});
$("#jog_down_btn").click(function(e) {
- var gcode = 'G91\nG0Y10F6000\nG90\n';
+ if(e.shiftKey) {
+ var gcode = 'G91\nG0Y1F6000\nG90\n';
+ currentY+=.5;
+ }else{
+ var gcode = 'G91\nG0Y10F6000\nG90\n';
+ currentY+=5;
+ }
send_gcode(gcode, "Moving Down ...", "Serial not connected.")
});
-
+
+//keyboard arrows to move
+ $("body").keydown(function(e) {
+
+ if (e.which==38) {// 38 - up
+ if(e.shiftKey) {
+ var gcode = 'G91\nG0Y-1F6000\nG90\n';
+ currentY-=.5;
+ }else{
+ var gcode = 'G91\nG0Y-10F6000\nG90\n';
+ currentY-=5;
+ }
+ send_gcode(gcode, "Moving Up ...", "Serial not connected.")
+ }
+ else if(e.which==37) {// 37 - left
+ if(e.shiftKey) {
+ var gcode = 'G91\nG0X-1F6000\nG90\n';
+ currentX-=.5;
+ }else{
+ var gcode = 'G91\nG0X-10F6000\nG90\n';
+ currentX-=5;
+ }
+ send_gcode(gcode, "Moving Left ...", "Serial not connected.")
+ }
+ else if (e.which==39) {// 39 - right
+
+ if(e.shiftKey) {
+ var gcode = 'G91\nG0X1F6000\nG90\n';
+ currentX+=.5;
+ }else{
+ var gcode = 'G91\nG0X10F6000\nG90\n';
+ currentX+=5;
+ }
+ send_gcode(gcode, "Moving Right ...", "Serial not connected.")
+ }
+ else if(e.which==40) {// 40 - down
+ if(e.shiftKey) {
+ var gcode = 'G91\nG0Y1F6000\nG90\n';
+ currentY+=.5;
+ }else{
+ var gcode = 'G91\nG0Y10F6000\nG90\n';
+ currentY+=5;
+ }
+ send_gcode(gcode, "Moving Down ...", "Serial not connected.")
+ }
+ else if(e.which==13) { //enter
+ set00($('#x_field').val()*.5,$('#y_field').val()*.5);
+ }
+ else return;
+ $('#x_field').val(currentX*2.0);
+ $('#y_field').val(currentY*2.0);
+ show_position(currentX,currentY);
+
+ });
+
+ //set current location as 0,0
+ $("#set_here_00").click(function(e) {
+ set00($('#x_field').val()*.5,$('#y_field').val()*.5);
+ });
+
+
+
}); // ready