Added Steps-per-mm File Tuning Calibration Widget #28

pull/110/head
openbuilds-engineer 2019-01-08 18:50:24 +02:00
rodzic 49ec8f9bb8
commit 13ed1a9083
7 zmienionych plików z 476 dodań i 69 usunięć

Wyświetl plik

@ -941,6 +941,11 @@
<script type="text/javascript" src="js/grbl-defaults.js"></script>
<script type="text/javascript" src="js/calibrate-x.js"></script>
<script type="text/javascript" src="js/calibrate-y.js"></script>
<script type="text/javascript" src="js/calibrate-z.js"></script>
<script type="text/javascript" src="js/probe.js"></script>
</html>

Wyświetl plik

@ -0,0 +1,118 @@
var xcaltemplate = `
<div id="xcalstep1">
<table class="table">
<tr>
<td>
<img src="img/calibrate/x/pos1.png" style="border: 1px solid #f1f2f3;">
</td>
<td>
Step 1: Mark Initial Position<br>
<small>This wizard, will allow you to fine-tune your steps-per-mm for the X-Axis</small><hr>
<small>To get started, jog your X-Axis until its near the X- position.</small><br>
<center>
<button class="button" onclick="jog('X', -10, 1000);"><i class="fas fa-arrow-left"></i> X- 10</button>
<button class="button"onclick="jog('X', 10, 1000);"><i class="fas fa-arrow-right"></i> X+ 10</button>
</center>
<hr>
<small>Then, place a physical mark
on your machine to mark where the X-Carriage currently is</small>
<hr>
<center>
<button class="button success" onclick="slide2();"><i class="fas fa-check"></i> I've made my 1<sup>st</sup> mark, continue...</button>
</center>
</td>
</tr>
</table>
</div>
<div id="xcalstep2" style="display: none">
<table class="table">
<tr>
<td>
<img src="img/calibrate/x/pos2.png" alt="pos2" border="0">
</td>
<td>
Step 2: Mark Second Position<br>
<small>Click the button below to jog your X-Axis 100mm in the X+ direction. Note this will move the axis a theoretical 100mm (What the machine thinks it should be). Then, place a physical mark on your machine to mark where the X-Carriage stops</small>
<hr>
<center>
<button id="xcal100mm" class="button alert" onclick="$('#xcal100mm').attr('disabled', true); $('#xcalcontinue2').attr('disabled', false); jog('X', 100, 1000);"><i class="fas fa-arrow-right"></i> Move X+100mm</button>
<hr>
<button class="button" onclick="slide1();"><i class="fas fa-chevron-left"></i> Back</button>
<button id="xcalcontinue2" class="button success" onclick="slide3();" disabled><i class="fas fa-check"></i> I've made my 2<sup>nd</sup> mark, continue...</button>
</center>
</td>
</tr>
</table>
</div>
<div id="xcalstep3" style="display: none">
<table class="table">
<tr>
<td>
<img src="img/calibrate/x/pos3.png" alt="pos3" border="0" style="border: 1px solid #f1f2f3;">
</td>
<td>
Step 3: Measure Actual Movement<br>
<small>Measure the actual distance between your two marks, as accurately as possible, and enter the value the machine moved below. This will be used to calculate a new actual steps-per-mm value</small><br>
<hr>
<input id="xcaltraveldist" type="number" value="100.0" data-role="input" data-append="mm" data-prepend="<i class='fas fa-arrows-alt-h'></i>" data-clear-button="false">
<small class="text-muted">Enter the distance the machine moved</small>
<hr>
<center>
<button class="button" onclick="slide2();"><i class="fas fa-chevron-left"></i> Back</button>
<button class="button success js-dialog-close" onclick="applycalibrationx();"><i class="fas fa-check"></i> Apply new value to Grbl Config</button>
</center>
</td>
</tr>
</table>
</div>
`
function applycalibrationx() {
var actualdist = $('#xcaltraveldist').val();
var currentstepspermm = parseFloat(grblParams['$100']);
// var currentstepspermm = 199.9;
// newstepsval = currentsteps * (intended distance / actual distance)
var newsteps = currentstepspermm * (100 / actualdist);
// alert("New Steps Per MM Value: " + newsteps);
$('#val-100-input').val(newsteps)
checkifchanged();
}
function xstepscalibrate() {
Metro.dialog.create({
title: "Calibrate Steps per mm for X-Axis ($100)",
content: xcaltemplate,
width: 750,
actions: [{
caption: "Cancel",
cls: "js-dialog-close",
onclick: function() {
//
}
}]
});
}
function slide1() {
$('#xcalstep1').show();
$('#xcalstep2').hide();
$('#xcalstep3').hide();
}
function slide2() {
$('#xcal100mm').attr('disabled', false);
$('#xcalcontinue2').attr('disabled', true);
$('#xcalstep1').hide();
$('#xcalstep2').show();
$('#xcalstep3').hide();
}
function slide3() {
$('#xcalstep1').hide();
$('#xcalstep2').hide();
$('#xcalstep3').show();
}

Wyświetl plik

@ -0,0 +1,119 @@
var ycaltemplate = `
<div id="ycalstep1">
<table class="table">
<tr>
<td>
<img src="img/calibrate/y/pos1.png" style="border: 1px solid #f1f2f3;">
</td>
<td>
Step 1: Mark Initial Position<br>
<small>This wizard, will allow you to fine-tune your steps-per-mm for the Y-Axis</small><hr>
<small>To get started, jog your Y-Axis until its near the Y- position.</small><br>
<center>
<button class="button" onclick="jog('Y', -10, 1000);"><i class="fas fa-arrow-down"></i> Y- 10</button>
<button class="button" onclick="jog('Y', -10, 1000);"><i class="fas fa-arrow-up"></i> Y+ 10</button>
</center>
<hr>
<small>Then, place a physical mark
on your machine to mark where the Y-Carriage currently is</small>
<hr>
<center>
<button class="button success" onclick="ycalslide2();"><i class="fas fa-check"></i> I've made my 1<sup>st</sup> mark, continue...</button>
</center>
</td>
</tr>
</table>
</div>
<div id="ycalstep2" style="display: none">
<table class="table">
<tr>
<td>
<img src="img/calibrate/y/pos2.png" alt="pos2" border="0">
</td>
<td>
Step 2: Mark Second Position<br>
<small>Click the button below to jog your Y-Axis 100mm in the Y+ direction. Note this will move the axis a theoretical 100mm (What the machine thinks it should be). Then, place a physical mark on your machine to mark where the Y-Carriage stops</small>
<hr>
<center>
<button id="ycal100mm" class="button alert" onclick="$('#ycal100mm').attr('disabled', true); $('#ycalcontinue2').attr('disabled', false); jog('Y', 100, 1000);"><i class="fas fa-arrow-up"></i> Move Y+100mm</button>
<hr>
<button class="button" onclick="ycalslide1();"><i class="fas fa-chevron-left"></i> Back</button>
<button id="ycalcontinue2" class="button success" onclick="ycalslide3();" disabled><i class="fas fa-check"></i> I've made my 2<sup>nd</sup> mark, continue...</button>
</center>
</td>
</tr>
</table>
</div>
<div id="ycalstep3" style="display: none">
<table class="table">
<tr>
<td>
<img src="img/calibrate/y/pos3.png" alt="pos3" border="0">
</td>
<td>
Step 3: Measure Actual Movement<br>
<small>Measure the actual distance between your two marks, as accurately as possible, and enter the value the machine moved below. This will be used to calculate a new actual steps-per-mm value</small><br>
<hr>
<input id="ycaltraveldist" type="number" value="100.0" data-role="input" data-append="mm" data-prepend="<i class='fas fa-arrows-alt-h'></i>" data-clear-button="false">
<small class="text-muted">Enter the distance the machine moved</small>
<hr>
<center>
<button class="button" onclick="ycalslide2();"><i class="fas fa-chevron-left"></i> Back</button>
<button class="button success js-dialog-close" onclick="applycalibrationy();"><i class="fas fa-check"></i> Apply new value to Grbl Config</button>
</center>
</td>
</tr>
</table>
</div>
`
function applycalibrationy() {
var actualdist = $('#ycaltraveldist').val();
var currentstepspermm = parseFloat(grblParams['$101']);
// var currentstepspermm = 199.9;
// newstepsval = currentsteps * (intended distance / actual distance)
var newsteps = currentstepspermm * (100 / actualdist);
// alert("New Steps Per MM Value: " + newsteps);
$('#val-101-input').val(newsteps)
checkifchanged();
}
function ystepscalibrate() {
Metro.dialog.create({
title: "Calibrate Steps per mm for Y-Axis ($101)",
content: ycaltemplate,
width: 750,
actions: [{
caption: "Cancel",
cls: "js-dialog-close",
onclick: function() {
//
}
}]
});
}
function ycalslide1() {
$('#ycalstep1').show();
$('#ycalstep2').hide();
$('#ycalstep3').hide();
}
function ycalslide2() {
$('#ycal100mm').attr('disabled', false);
$('#ycalcontinue2').attr('disabled', true);
$('#ycalstep1').hide();
$('#ycalstep2').show();
$('#ycalstep3').hide();
}
function ycalslide3() {
$('#ycalstep1').hide();
$('#ycalstep2').hide();
$('#ycalstep3').show();
}

Wyświetl plik

@ -0,0 +1,116 @@
var zcaltemplate = `
<div id="zcalstep1">
<table class="table">
<tr>
<td>
<img src="img/calibrate/z/pos1.png" style="border: 1px solid #f1f2f3;">
</td>
<td>
Step 1: Mark Initial Position<br>
<small>This wizard, will allow you to fine-tune your steps-per-mm for the Z-Axis</small><hr>
<small>To get started, jog your Z-Axis until its near the Z- position.</small><br>
<center>
<button class="button" onclick="jog('Z', -10, 1000);"><i class="fas fa-arrow-down"></i> Z- 10</button>
<button class="button" onclick="jog('Z', 10, 1000);"><i class="fas fa-arrow-up"></i> Z+ 10</button>
</center>
<hr>
<small>Then, place a physical mark
on your machine to mark where the Z-Carriage currently is</small>
<hr>
<center>
<button class="button success" onclick="zcalslide2();"><i class="fas fa-check"></i> I've made my 1<sup>st</sup> mark, continue...</button>
</center>
</td>
</tr>
</table>
</div>
<div id="zcalstep2" style="display: none">
<table class="table">
<tr>
<td>
<img src="img/calibrate/z/pos2.png" alt="pos2" border="0">
</td>
<td>
Step 2: Mark Second Position<br>
<small>Click the button below to jog your Z-Axis 50mm in the Y+ direction. Note this will move the axis a theoretical 50mm (What the machine thinks it should be). Then, place a physical mark on your machine to mark where the Y-Carriage stops</small>
<hr>
<center>
<button id="zcal50mm" class="button alert" onclick="$('#zcal50mm').attr('disabled', true); $('#zcalcontinue2').attr('disabled', false); jog('Z', 50, 1000)"><i class="fas fa-arrow-up"></i> Move Z+50mm</button>
<hr>
<button class="button" onclick="zcalslide1();"><i class="fas fa-chevron-left"></i> Back</button>
<button id="zcalcontinue2" class="button success" onclick="zcalslide3();" disabled><i class="fas fa-check"></i> I've made my 2<sup>nd</sup> mark, continue...</button>
</center>
</td>
</tr>
</table>
</div>
<div id="zcalstep3" style="display: none">
<table class="table">
<tr>
<td>
<img src="img/calibrate/z/pos3.png" alt="pos3" border="0">
</td>
<td>
Step 3: Measure Actual Movement<br>
<small>Measure the actual distance between your two marks, as accurately as possible, and enter the value the machine moved below. This will be used to calculate a new actual steps-per-mm value</small><br>
<hr>
<input id="zcaltraveldist" type="number" value="50.0" data-role="input" data-append="mm" data-prepend="<i class='fas fa-arrows-alt-h'></i>" data-clear-button="false">
<small class="text-muted">Enter the distance the machine moved</small>
<hr>
<center>
<button class="button" onclick="zcalslide2();"><i class="fas fa-chevron-left"></i> Back</button>
<button class="button success js-dialog-close" onclick="applycalibrationz();"><i class="fas fa-check"></i> Apply new value to Grbl Config</button>
</center>
</td>
</tr>
</table>
</div>
`
function applycalibrationz() {
var actualdist = $('#zcaltraveldist').val();
var currentstepspermm = parseFloat(grblParams['$102']);
// var currentstepspermm = 199.9;
// newstepsval = currentsteps * (intended distance / actual distance)
var newsteps = currentstepspermm * (50 / actualdist);
// alert("New Steps Per MM Value: " + newsteps);
$('#val-102-input').val(newsteps)
checkifchanged();
}
function zstepscalibrate() {
Metro.dialog.create({
title: "Calibrate Steps per mm for Z-Axis ($102)",
content: zcaltemplate,
width: 750,
actions: [{
caption: "Cancel",
cls: "js-dialog-close",
onclick: function() {
//
}
}]
});
}
function zcalslide1() {
$('#zcalstep1').show();
$('#zcalstep2').hide();
$('#zcalstep3').hide();
}
function zcalslide2() {
$('#zcal50mm').attr('disabled', false);
$('#zcalcontinue2').attr('disabled', true);
$('#zcalstep1').hide();
$('#zcalstep2').show();
$('#zcalstep3').hide();
}
function zcalslide3() {
$('#zcalstep1').hide();
$('#zcalstep2').hide();
$('#zcalstep3').show();
}

Wyświetl plik

@ -1,10 +1,4 @@
var grblcalctemplate = `<div>
<ul class="tabs-expand-sm" data-role="tabs">
<li><a href="#_stepspermm_1">Preset</a></li>
<!-- li><a href="#_stepspermm_2">Calibrate</a></li -->
</ul>
<div id="_stepspermm_1">
<div class="card">
<div class="card-content">
<table class="table striped compact">
@ -75,12 +69,6 @@ var grblcalctemplate = `<div>
</table>
</div>
</div>
</div>
<div id="_stepspermm_2">
</div>`
function xstepspermm() {
@ -88,7 +76,7 @@ function xstepspermm() {
Metro.dialog.create({
width: 600,
toTop: true,
title: "Calibrate Steps per mm for X-Axis ($100)",
title: "Calculate Steps per mm for X-Axis ($100)",
content: grblcalctemplate,
actions: [{
caption: "Apply",
@ -118,7 +106,7 @@ function ystepspermm() {
Metro.dialog.create({
width: 600,
toTop: true,
title: "Calibrate Steps per mm for Y-Axis ($101)",
title: "Calculate Steps per mm for Y-Axis ($101)",
content: grblcalctemplate,
actions: [{
caption: "Apply",
@ -147,7 +135,7 @@ function zstepspermm() {
Metro.dialog.create({
width: 600,
toTop: true,
title: "Calibrate Steps per mm for Z-Axis ($102)",
title: "Calculate Steps per mm for Z-Axis ($102)",
content: grblcalctemplate,
actions: [{
caption: "Apply",

Wyświetl plik

@ -91,7 +91,7 @@ function grblPopulate() {
</ul>
</div>
<div class="cell-4">
<input id="limitsinstalled" data-cls-caption="fg-openbuilds" data-cls-check="bd-openbuilds openbuilds-switch" data-cls-switch="openbuilds-switch" type="checkbox" data-role="switch" data-caption="Limit Switches Installed">
<input id="limitsinstalled" data-cls-caption="fg-openbuilds" data-cls-check="bd-openbuilds openbuilds-switch" data-cls-switch="openbuilds-switch" type="checkbox" data-role="switch" data-caption="Limit&nbsp;Switches&nbsp;Installed">
</div>
</div>
</div>
@ -104,58 +104,57 @@ function grblPopulate() {
<hr class="bg-openbuilds">
<div>
<div style="overflow-y: scroll; height: calc(100vh - 430px); ">
<table data-role="table" class="table compact striped row-hover row-border" data-show-rows-steps="false" data-rows="200" data-show-pagination="false" data-show-table-info="false" data-show-search="false">
<div style="overflow-y: scroll; height: calc(100vh - 450px); max-height: calc(100vh - 450px); ">
<table class="table compact striped row-hover row-border" data-show-rows-steps="false" data-rows="200" data-show-pagination="false" data-show-table-info="false" data-show-search="false">
<thead>
<tr>
<td>Key</th>
<th class="sortable-column" data-format="number"></th>
<th class="sortable-column">Parameter</th>
<th>Value</th>
<th></th>
<th>Key</th>
<th>Parameter</th>
<th style="width: 250px; min-width: 240px !important;">Value</th>
<th style="width: 110px; min-width: 110px !important;">Utility</th>
</tr>
</thead>
<tbody>
<tr><td>$</td><td>0</td><td>Step pulse time, microseconds</td><td><input data-role="input" data-append="&micro;s" style="width: 200px;" type="text" value="` + grblParams['$0'] + `" id="val-` + 0 + `-input"></td><td></td></tr>
<tr><td>$</td><td>1</td><td>Step idle delay, milliseconds</td><td><input data-role="input" data-append="ms" style="width: 200px;" type="text" value="` + grblParams['$1'] + `" id="val-` + 1 + `-input"></td><td></td></tr>
<tr><td>$</td><td>2</td>
<tr><td>$0</td><td>Step pulse time, microseconds</td><td><input data-role="input" data-clear-button="false" data-append="&micro;s" type="text" value="` + grblParams['$0'] + `" id="val-` + 0 + `-input"></td><td></td></tr>
<tr><td>$1</td><td>Step idle delay, milliseconds</td><td><input data-role="input" data-clear-button="false" data-append="ms" type="text" value="` + grblParams['$1'] + `" id="val-` + 1 + `-input"></td><td></td></tr>
<tr><td>$2</td>
<td>Step pulse invert</td>
<td>
<select style="width: 200px;" id="val-` + 2 + `-input" value="` + grblParams['$2'] + `">
<option value="0">[0] X:&#9898; Y:&#9898; Z:&#9898;</option>
<option value="1">[1] X:&#9899; Y:&#9898; Z:&#9898;</option>
<option value="2">[2] X:&#9898; Y:&#9899; Z:&#9898;</option>
<option value="3">[3] X:&#9898; Y:&#9898; Z:&#9899;</option>
<option value="4">[4] X:&#9899; Y:&#9899; Z:&#9898;</option>
<option value="5">[5] X:&#9899; Y:&#9898; Z:&#9899;</option>
<option value="6">[6] X:&#9898; Y:&#9899; Z:&#9899;</option>
<option value="7">[7] X:&#9899; Y:&#9899; Z:&#9899;</option>
</select>
<select id="val-` + 2 + `-input" value="` + grblParams['$2'] + `">
<option value="0">[0] X:&#9898; Y:&#9898; Z:&#9898;</option>
<option value="1">[1] X:&#9899; Y:&#9898; Z:&#9898;</option>
<option value="2">[2] X:&#9898; Y:&#9899; Z:&#9898;</option>
<option value="3">[3] X:&#9898; Y:&#9898; Z:&#9899;</option>
<option value="4">[4] X:&#9899; Y:&#9899; Z:&#9898;</option>
<option value="5">[5] X:&#9899; Y:&#9898; Z:&#9899;</option>
<option value="6">[6] X:&#9898; Y:&#9899; Z:&#9899;</option>
<option value="7">[7] X:&#9899; Y:&#9899; Z:&#9899;</option>
</select>
</td>
<td></td>
</tr>
<tr><td>$</td><td>3</td><td>Step direction invert</td><td><input readonly type="hidden" id="val-` + 3 + `-input" value="` + grblParams['$3'] + `">
<tr><td>$3</td><td>Step direction invert</td><td><input readonly type="hidden" id="val-` + 3 + `-input" value="` + grblParams['$3'] + `">
<input data-cls-caption="fg-openbuilds" data-cls-check="bd-openbuilds openbuilds-switch" data-cls-switch="openbuilds-switch" id="xdirinvert" class="secondary" type="checkbox" data-role="switch" data-caption="Invert X Direction"><br>
<input data-cls-caption="fg-openbuilds" data-cls-check="bd-openbuilds openbuilds-switch" data-cls-switch="openbuilds-switch" id="ydirinvert" class="secondary" type="checkbox" data-role="switch" data-caption="Invert Y Direction"><br>
<input data-cls-caption="fg-openbuilds" data-cls-check="bd-openbuilds openbuilds-switch" data-cls-switch="openbuilds-switch" id="zdirinvert" class="secondary" type="checkbox" data-role="switch" data-caption="Invert Z Direction">
</td><td></td></tr>
<tr><td>$</td><td>4</td><td>Invert step enable pin</td><td><select style="width: 200px;" id="val-` + 4 + `-input" value="` + grblParams['$4'] + `"><option value="0">&#x2717; Disable</option><option value="1">&#x2713; Enable</option></select></td><td></td></tr>
<tr><td>$</td><td>5</td><td>Invert limit pins</td><td><select style="width: 200px;" id="val-` + 5 + `-input" value="` + grblParams['$5'] + `"><option value="0">&#x2717; Disable</option><option value="1">&#x2713; Enable</option></select></td><td></td></tr>
<tr><td>$</td><td>6</td><td>Invert probe pin</td><td><select style="width: 200px;" id="val-` + 6 + `-input" value="` + grblParams['$6'] + `"><option value="0">&#x2717; Disable</option><option value="1">&#x2713; Enable</option></select></td><td></td></tr>
<tr><td>$</td><td>10</td><td>Status report options</td><td><select style="width: 200px;" id="val-` + 10 + `-input" value="` + grblParams['$10'] + `">
<tr><td>$4</td><td>Invert step enable pin</td><td><select id="val-` + 4 + `-input" value="` + grblParams['$4'] + `"><option value="0">&#x2717; Disable</option><option value="1">&#x2713; Enable</option></select></td><td></td></tr>
<tr><td>$5</td><td>Invert limit pins</td><td><select id="val-` + 5 + `-input" value="` + grblParams['$5'] + `"><option value="0">&#x2717; Disable</option><option value="1">&#x2713; Enable</option></select></td><td></td></tr>
<tr><td>$6</td><td>Invert probe pin</td><td><select id="val-` + 6 + `-input" value="` + grblParams['$6'] + `"><option value="0">&#x2717; Disable</option><option value="1">&#x2713; Enable</option></select></td><td></td></tr>
<tr><td>$10</td><td>Status report options</td><td><select id="val-` + 10 + `-input" value="` + grblParams['$10'] + `">
<option value="0">[0] WPos:&#9899; MPos:&#9898; Buf:&#9898;</option>
<option value="1">[1] WPos:&#9898; MPos:&#9899; Buf:&#9898;</option>
<option value="2">[2] WPos:&#9899; MPos:&#9898; Buf:&#9899;</option>
</select></td><td></td></tr>
<tr><td>$</td><td>11</td><td>Junction deviation, millimeters</td><td><input data-role="input" data-append="mm" style="width: 200px;" type="text" value="` + grblParams['$11'] + `" id="val-` + 11 + `-input"></td><td></td></tr>
<tr><td>$</td><td>12</td><td>Arc tolerance, millimeters</td><td><input data-role="input" data-append="mm" style="width: 200px;" type="text" value="` + grblParams['$12'] + `" id="val-` + 12 + `-input"></td><td></td></tr>
<tr><td>$</td><td>13</td><td>Report in inches</td><td><select style="width: 200px;" id="val-` + 13 + `-input" value="` + grblParams['$13'] + `"><option value="0">&#9898; Disable</option><option value="1">&#9899; Enable</option></select></td><td></td></tr>
<tr><td>$11</td><td>Junction deviation, millimeters</td><td><input data-role="input" data-clear-button="false" data-append="mm" type="text" value="` + grblParams['$11'] + `" id="val-` + 11 + `-input"></td><td></td></tr>
<tr><td>$12</td><td>Arc tolerance, millimeters</td><td><input data-role="input" data-clear-button="false" data-append="mm" type="text" value="` + grblParams['$12'] + `" id="val-` + 12 + `-input"></td><td></td></tr>
<tr><td>$13</td><td>Report in inches</td><td><select id="val-` + 13 + `-input" value="` + grblParams['$13'] + `"><option value="0">&#9898; Disable</option><option value="1">&#9899; Enable</option></select></td><td></td></tr>
<tr><td>$</td><td>20</td><td>Soft limits enable <small>(Enable and Save Homing first before enabling)<small></td><td><select style="width: 200px;" id="val-` + 20 + `-input" value="` + grblParams['$20'] + `"><option value="0">&#x2717; Disable</option><option value="1">&#x2713; Enable</option></select></td><td></td></tr>
<tr><td>$</td><td>21</td><td>Hard limits enable</td><td><select style="width: 200px;" id="val-` + 21 + `-input" value="` + grblParams['$21'] + `"><option value="0">&#x2717; Disable</option><option value="1">&#x2713; Enable</option></select></td><td></td></tr>
<tr><td>$</td><td>22</td><td>Homing cycle enable</td><td><select style="width: 200px;" id="val-` + 22 + `-input" value="` + grblParams['$22'] + `"><option value="0">&#x2717; Disable</option><option value="1">&#x2713; Enable</option></select></td><td></td></tr>
<tr><td>$</td><td>23</td><td>Homing direction invert</td><td><select style="width: 200px;" id="val-` + 23 + `-input" value="` + grblParams['$23'] + `">
<tr><td>$20</td><td>Soft limits enable <br><small>(Enable and Save Homing first before enabling)<small></td><td><select id="val-` + 20 + `-input" value="` + grblParams['$20'] + `"><option value="0">&#x2717; Disable</option><option value="1">&#x2713; Enable</option></select></td><td></td></tr>
<tr><td>$21</td><td>Hard limits enable</td><td><select id="val-` + 21 + `-input" value="` + grblParams['$21'] + `"><option value="0">&#x2717; Disable</option><option value="1">&#x2713; Enable</option></select></td><td></td></tr>
<tr><td>$22</td><td>Homing cycle enable</td><td><select id="val-` + 22 + `-input" value="` + grblParams['$22'] + `"><option value="0">&#x2717; Disable</option><option value="1">&#x2713; Enable</option></select></td><td></td></tr>
<tr><td>$23</td><td>Homing direction invert</td><td><select id="val-` + 23 + `-input" value="` + grblParams['$23'] + `">
<option value="0">[0] X:&#9898; Y:&#9898; Z:&#9898;</option>
<option value="1">[1] X:&#9899; Y:&#9898; Z:&#9898;</option>
<option value="2">[2] X:&#9898; Y:&#9899; Z:&#9898;</option>
@ -165,30 +164,92 @@ function grblPopulate() {
<option value="6">[6] X:&#9898; Y:&#9899; Z:&#9899;</option>
<option value="7">[7] X:&#9899; Y:&#9899; Z:&#9899;</option>
</select></td><td></td></tr>
<tr><td>$</td><td>24</td><td>Homing locate feed rate, mm/min</td><td><input data-role="input" data-append="mm/min" style="width: 200px;" type="text" value="` + grblParams['$24'] + `" id="val-` + 24 + `-input"></td><td></td></tr>
<tr><td>$</td><td>25</td><td>Homing search seek rate, mm/min</td><td><input data-role="input" data-append="mm/min" style="width: 200px;" type="text" value="` + grblParams['$25'] + `" id="val-` + 25 + `-input"></td><td></td></tr>
<tr><td>$</td><td>26</td><td>Homing switch debounce delay, milliseconds</td><td><input data-role="input" data-append="ms" style="width: 200px;" type="text" value="` + grblParams['$26'] + `" id="val-` + 26 + `-input"></td><td></td></tr>
<tr><td>$</td><td>27</td><td>Homing switch pull-off distance, millimeters</td><td><input data-role="input" data-append="mm" style="width: 200px;" type="text" value="` + grblParams['$27'] + `" id="val-` + 27 + `-input"></td><td></td></tr>
<tr><td>$24</td><td>Homing locate feed rate, mm/min</td><td><input data-role="input" data-clear-button="false" data-append="mm/min" type="text" value="` + grblParams['$24'] + `" id="val-` + 24 + `-input"></td><td></td></tr>
<tr><td>$25</td><td>Homing search seek rate, mm/min</td><td><input data-role="input" data-clear-button="false" data-append="mm/min" type="text" value="` + grblParams['$25'] + `" id="val-` + 25 + `-input"></td><td></td></tr>
<tr><td>$26</td><td>Homing switch debounce delay, milliseconds</td><td><input data-role="input" data-clear-button="false" data-append="ms" type="text" value="` + grblParams['$26'] + `" id="val-` + 26 + `-input"></td><td></td></tr>
<tr><td>$27</td><td>Homing switch pull-off distance, millimeters</td><td><input data-role="input" data-clear-button="false" data-append="mm" type="text" value="` + grblParams['$27'] + `" id="val-` + 27 + `-input"></td><td></td></tr>
<tr><td>$</td><td>30</td><td>Maximum spindle speed, RPM</td><td><input data-role="input" data-append="RPM" style="width: 200px;" type="text" value="` + grblParams['$30'] + `" id="val-` + 30 + `-input"></td><td></td></tr>
<tr><td>$</td><td>31</td><td>Minimum spindle speed, RPM</td><td><input data-role="input" data-append="RPM" style="width: 200px;" type="text" value="` + grblParams['$31'] + `" id="val-` + 31 + `-input"></td><td></td></tr>
<tr><td>$</td><td>32</td><td>Laser-mode enable</td><td><select style="width: 200px;" id="val-` + 32 + `-input" value="` + grblParams['$32'] + `"><option value="0">&#x2717; Disable</option><option value="1">&#x2713; Enable</option></select></td><td></td></tr>
<tr><td>$30</td><td>Maximum spindle speed, RPM</td><td><input data-role="input" data-clear-button="false" data-append="RPM" type="text" value="` + grblParams['$30'] + `" id="val-` + 30 + `-input"></td><td></td></tr>
<tr><td>$31</td><td>Minimum spindle speed, RPM</td><td><input data-role="input" data-clear-button="false" data-append="RPM" type="text" value="` + grblParams['$31'] + `" id="val-` + 31 + `-input"></td><td></td></tr>
<tr><td>$32</td><td>Laser-mode enable</td><td><select id="val-` + 32 + `-input" value="` + grblParams['$32'] + `"><option value="0">&#x2717; Disable</option><option value="1">&#x2713; Enable</option></select></td><td></td></tr>
<tr><td>$</td><td>100</td><td>X-axis steps per millimeter</td><td><input data-role="input" data-append="steps/mm" style="width: 200px;" type="text" value="` + grblParams['$100'] + `" id="val-` + 100 + `-input"></td><td><button class="button " type="button" onclick="xstepspermm()"><i class="fas fa-calculator"></i></button></td></tr>
<tr><td>$</td><td>101</td><td>Y-axis steps per millimeter</td><td><input data-role="input" data-append="steps/mm" style="width: 200px;" type="text" value="` + grblParams['$101'] + `" id="val-` + 101 + `-input"></td><td><button class="button" type="button" onclick="ystepspermm()"><i class="fas fa-calculator"></i></button></td></tr>
<tr><td>$</td><td>102</td><td>Z-axis steps per millimeter</td><td><input data-role="input" data-append="steps/mm" style="width: 200px;" type="text" value="` + grblParams['$102'] + `" id="val-` + 102 + `-input"></td><td><button class="button" type="button" onclick="zstepspermm()"><i class="fas fa-calculator"></i></button></td></tr>
<tr>
<td>$100</td>
<td>X-axis steps per millimeter</td>
<td><input data-role="input" data-clear-button="false" data-append="steps/mm" type="text" value="` + grblParams['$100'] + `" id="val-` + 100 + `-input"></td>
<td>
<button title="Calculate X-Axis Steps per mm" class="button " type="button" onclick="xstepspermm()">
<span class="fa-layers fa-fw">
<i class="fas fa-calculator" data-fa-transform="shrink-2"></i>
<span class="fa-layers-text" data-fa-transform="up-16" style="font-weight:600; font-family: Arial; font-size: 10px;">Calc</span>
<span class="fa-layers-text" data-fa-transform="down-19" style="font-weight:600; font-family: Arial; font-size: 10px;">Steps</span>
</span>
</button>
<button title="Fine Tune X-Axis Steps per mm" class="button " type="button" onclick="xstepscalibrate()">
<span class="fa-layers fa-fw">
<i class="fas fa-wrench" data-fa-transform="shrink-2"></i>
<span class="fa-layers-text" data-fa-transform="up-16" style="font-weight:600; font-family: Arial; font-size: 10px;">Fine</span>
<span class="fa-layers-text" data-fa-transform="down-19" style="font-weight:600; font-family: Arial; font-size: 10px;">Tune</span>
</span>
</button>
</td>
</tr>
<tr><td>$</td><td>110</td><td>X-axis maximum rate, mm/min</td><td><input data-role="input" data-append="mm/min" style="width: 200px;" type="text" value="` + grblParams['$110'] + `" id="val-` + 110 + `-input"></td><td></td></tr>
<tr><td>$</td><td>111</td><td>Y-axis maximum rate, mm/min</td><td><input data-role="input" data-append="mm/min" style="width: 200px;" type="text" value="` + grblParams['$111'] + `" id="val-` + 111 + `-input"></td><td></td></tr>
<tr><td>$</td><td>112</td><td>Z-axis maximum rate, mm/min</td><td><input data-role="input" data-append="mm/min" style="width: 200px;" type="text" value="` + grblParams['$112'] + `" id="val-` + 112 + `-input"></td><td></td></tr>
<tr>
<td>$101</td>
<td>Y-axis steps per millimeter</td>
<td><input data-role="input" data-clear-button="false" data-append="steps/mm" type="text" value="` + grblParams['$101'] + `" id="val-` + 101 + `-input"></td>
<td>
<button title="Calculate Y-Axis Steps per mm" class="button" type="button" onclick="ystepspermm()">
<span class="fa-layers fa-fw">
<i class="fas fa-calculator" data-fa-transform="shrink-2"></i>
<span class="fa-layers-text" data-fa-transform="up-16" style="font-weight:600; font-family: Arial; font-size: 10px;">Calc</span>
<span class="fa-layers-text" data-fa-transform="down-19" style="font-weight:600; font-family: Arial; font-size: 10px;">Steps</span>
</span>
</button>
<button title="Fine Tune Y-Axis Steps per mm" class="button " type="button" onclick="ystepscalibrate()">
<span class="fa-layers fa-fw">
<i class="fas fa-wrench" data-fa-transform="shrink-2"></i>
<span class="fa-layers-text" data-fa-transform="up-16" style="font-weight:600; font-family: Arial; font-size: 10px;">Fine</span>
<span class="fa-layers-text" data-fa-transform="down-19" style="font-weight:600; font-family: Arial; font-size: 10px;">Tune</span>
</span>
</button>
</td>
</tr>
<tr><td>$</td><td>120</td><td>X-axis acceleration, mm/sec<sup>2</sup></td><td><input data-role="input" data-append="mm/sec&sup2" style="width: 200px;" type="text" value="` + grblParams['$120'] + `" id="val-` + 120 + `-input"></td><td></td></tr>
<tr><td>$</td><td>121</td><td>Y-axis acceleration, mm/sec<sup>2</sup></td><td><input data-role="input" data-append="mm/sec&sup2" style="width: 200px;" type="text" value="` + grblParams['$121'] + `" id="val-` + 121 + `-input"></td><td></td></tr>
<tr><td>$</td><td>122</td><td>Z-axis acceleration, mm/sec<sup>2</sup></td><td><input data-role="input" data-append="mm/sec&sup2" style="width: 200px;" type="text" value="` + grblParams['$122'] + `" id="val-` + 122 + `-input"></td></td><td></td></tr>
<tr>
<td>$102</td>
<td>Z-axis steps per millimeter</td>
<td><input data-role="input" data-clear-button="false" data-append="steps/mm" type="text" value="` + grblParams['$102'] + `" id="val-` + 102 + `-input"></td>
<td>
<button title="Calculate Z-Axis Steps per mm" class="button" type="button" onclick="zstepspermm()">
<span class="fa-layers fa-fw">
<i class="fas fa-calculator" data-fa-transform="shrink-2"></i>
<span class="fa-layers-text" data-fa-transform="up-16" style="font-weight:600; font-family: Arial; font-size: 10px;">Calc</span>
<span class="fa-layers-text" data-fa-transform="down-19" style="font-weight:600; font-family: Arial; font-size: 10px;">Steps</span>
</span>
</button>
<button title="Fine Tune Z-Axis Steps per mm" class="button " type="button" onclick="zstepscalibrate()">
<span class="fa-layers fa-fw">
<i class="fas fa-wrench" data-fa-transform="shrink-2"></i>
<span class="fa-layers-text" data-fa-transform="up-16" style="font-weight:600; font-family: Arial; font-size: 10px;">Fine</span>
<span class="fa-layers-text" data-fa-transform="down-19" style="font-weight:600; font-family: Arial; font-size: 10px;">Tune</span>
</span>
</button>
</td>
</tr>
<tr><td>$</td><td>130</td><td>X-axis maximum travel, millimeters</td><td><input data-role="input" data-append="mm" style="width: 200px;" type="text" value="` + grblParams['$130'] + `" id="val-` + 130 + `-input"></td><td></td></tr>
<tr><td>$</td><td>131</td><td>Y-axis maximum travel, millimeters</td><td><input data-role="input" data-append="mm" style="width: 200px;" type="text" value="` + grblParams['$131'] + `" id="val-` + 131 + `-input"></td><td></td></tr>
<tr><td>$</td><td>132</td><td>Z-axis maximum travel, millimeters</td><td><input data-role="input" data-append="mm" style="width: 200px;" type="text" value="` + grblParams['$132'] + `" id="val-` + 132 + `-input"></td><td></td></tr>
<tr><td>$110</td><td>X-axis maximum rate, mm/min</td><td><input data-role="input" data-clear-button="false" data-append="mm/min" type="text" value="` + grblParams['$110'] + `" id="val-` + 110 + `-input"></td><td></td></tr>
<tr><td>$111</td><td>Y-axis maximum rate, mm/min</td><td><input data-role="input" data-clear-button="false" data-append="mm/min" type="text" value="` + grblParams['$111'] + `" id="val-` + 111 + `-input"></td><td></td></tr>
<tr><td>$112</td><td>Z-axis maximum rate, mm/min</td><td><input data-role="input" data-clear-button="false" data-append="mm/min" type="text" value="` + grblParams['$112'] + `" id="val-` + 112 + `-input"></td><td></td></tr>
<tr><td>$120</td><td>X-axis acceleration, mm/sec<sup>2</sup></td><td><input data-role="input" data-clear-button="false" data-append="mm/sec&sup2" type="text" value="` + grblParams['$120'] + `" id="val-` + 120 + `-input"></td><td></td></tr>
<tr><td>$121</td><td>Y-axis acceleration, mm/sec<sup>2</sup></td><td><input data-role="input" data-clear-button="false" data-append="mm/sec&sup2" type="text" value="` + grblParams['$121'] + `" id="val-` + 121 + `-input"></td><td></td></tr>
<tr><td>$122</td><td>Z-axis acceleration, mm/sec<sup>2</sup></td><td><input data-role="input" data-clear-button="false" data-append="mm/sec&sup2" type="text" value="` + grblParams['$122'] + `" id="val-` + 122 + `-input"></td></td><td></td></tr>
<tr><td>$130</td><td>X-axis maximum travel, millimeters</td><td><input data-role="input" data-clear-button="false" data-append="mm" type="text" value="` + grblParams['$130'] + `" id="val-` + 130 + `-input"></td><td></td></tr>
<tr><td>$131</td><td>Y-axis maximum travel, millimeters</td><td><input data-role="input" data-clear-button="false" data-append="mm" type="text" value="` + grblParams['$131'] + `" id="val-` + 131 + `-input"></td><td></td></tr>
<tr><td>$132</td><td>Z-axis maximum travel, millimeters</td><td><input data-role="input" data-clear-button="false" data-append="mm" type="text" value="` + grblParams['$132'] + `" id="val-` + 132 + `-input"></td><td></td></tr>
</tbody>
</table>
@ -215,7 +276,7 @@ function grblPopulate() {
$("#val-10-input").val(parseInt(grblParams['$10'])).trigger("change");
}, 100);;
$('#grblSettingsTable').on('keyup paste click', 'input, select', function() {
$('#grblSettingsTable').on('keyup paste click change', 'input, select', function() {
checkifchanged()
});

Wyświetl plik

@ -1,6 +1,6 @@
{
"name": "OpenBuildsCONTROL",
"version": "1.0.126",
"version": "1.0.127",
"license": "AGPL-3.0",
"description": "Machine Interface Driver for OpenBuilds",
"author": "github.com/openbuilds <webmaster@openbuilds.com>",