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 @@
-
-
+
+
+ Set(0,0) + + +
+
+
@@ -236,6 +248,7 @@
+
@@ -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