update
|
@ -1,4 +1,7 @@
|
|||
v1.0.207: Added LEAD1010 Laser Profile, fix bug #107 (Disable CheckSize button on PC's that doesnt support WebGL), fix bug with inch-mode Check Size
|
||||
v1.0.210: Focussed on close button of alarm/error dialogs to ease closing, added Driver Install button for beginners, beta probing wizards (internal testing only)
|
||||
v1.0.209: Added Node-Debugger to help check not-responding issue, disabled console.log debugging in server process
|
||||
v1.0.208: Removed accidental S-Word from coolant menu commands
|
||||
v1.0.207: Added LEAD1010 Laser Profile, fix bug #107 (Disable CheckSize button on PCs that doesn't support WebGL), fix bug with inch-mode Check Size
|
||||
v1.0.206: Fixed update check to comply with Github deprecations: https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api/
|
||||
v1.0.205: Updated version of avrgirl backend for Firmware flashing, fixes to CI
|
||||
v1.0.204: Soft-Limits support in Keyboard Continuous Jogging
|
||||
|
|
|
@ -0,0 +1,76 @@
|
|||
.probe-label:hover {
|
||||
fill: #ccc;
|
||||
}
|
||||
|
||||
.probe-label path {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.areaactive {
|
||||
fill: #dd0000;
|
||||
}
|
||||
|
||||
.areaactive:hover {
|
||||
fill: #ff0000;
|
||||
}
|
||||
|
||||
.probe-label, #probe-c-text, #probe-fl-text, #probe-fr-text, #probe-rl-text, #probe-rr-text {
|
||||
cursor: default;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: -moz-none;
|
||||
-o-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.B {
|
||||
stroke-linejoin: round
|
||||
}
|
||||
|
||||
.C {
|
||||
fill: #000
|
||||
}
|
||||
|
||||
.D {
|
||||
stroke: #000
|
||||
}
|
||||
|
||||
.E {
|
||||
word-spacing: 0px
|
||||
}
|
||||
|
||||
.F {
|
||||
font-family: Arial Black
|
||||
}
|
||||
|
||||
.G {
|
||||
text-anchor: middle
|
||||
}
|
||||
|
||||
.H {
|
||||
stroke: none
|
||||
}
|
||||
|
||||
.I {
|
||||
font-size: 10.033px
|
||||
}
|
||||
|
||||
.J {
|
||||
overflow: visible
|
||||
}
|
||||
|
||||
.K {
|
||||
fill-rule: evenodd
|
||||
}
|
||||
|
||||
.L {
|
||||
stroke-width: 1pt
|
||||
}
|
||||
|
||||
.M {
|
||||
stroke-width: 1.09
|
||||
}
|
||||
|
||||
.N {
|
||||
stroke-linejoin: miter
|
||||
}
|
Po Szerokość: | Wysokość: | Rozmiar: 54 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 45 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 50 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 56 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 3.6 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 80 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 45 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 18 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 4.5 KiB |
260
app/index.html
|
@ -13,6 +13,7 @@
|
|||
<link rel="stylesheet" href="lib/iconpicker/css/fontawesome-iconpicker.min.css" />
|
||||
<link rel="stylesheet" href="css/main.css" />
|
||||
<link rel="stylesheet" href="css/buttons.css" />
|
||||
<link rel="stylesheet" href="css/probev2.css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
@ -128,9 +129,11 @@
|
|||
<select data-prepend=" <i class='fab fa-usb'></i>" class="success" data-role="select" data-filter="false" id="portUSB" disabled>
|
||||
<option value="">Waiting for USB</option>
|
||||
</select>
|
||||
<button class="button success float-right" onclick="selectPort()" id="connectBtn" type="button" disabled>Connect</button>
|
||||
<button class="button alert" style="display:none;" onclick="closePort()" id="disconnectBtn" type="button">Disconnect</button>
|
||||
<button class="button secondary disabled" disabled style="display:none;" id="flashBtn" type="button">please wait...</button>
|
||||
<button class="button small success float-right" onclick="selectPort()" id="connectBtn" type="button" style="margin: 5px;" disabled>Connect</button>
|
||||
<button class="button alert" style="display:none;" onclick="closePort()" id="disconnectBtn" type="button" style="margin: 5px;">Disconnect</button>
|
||||
<button class="button small secondary disabled" disabled style="display:none;" id="flashBtn" type="button" style="margin: 5px;">please wait...</button>
|
||||
<button class="button small primary float-right" onclick="socket.emit('opendriverspage', true);" id="driverBtn" type="button" style="margin: 5px;">Install Drivers</button>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
@ -239,8 +242,8 @@
|
|||
<!-- <li class="divider"></li> -->
|
||||
<li><a class="grblmode" href="#" onclick="sendGcode('M3 S1000')">Plasma On (M3 S1000)</a></li>
|
||||
<li class="divider fg-lightGray"></li>
|
||||
<li id="menuMisting" style="display: none;"><a class="grblmode" href="#" onclick="sendGcode('M8 S1000')">Misting On (M7)</a></li>
|
||||
<li><a class="grblmode" href="#" onclick="sendGcode('M8 S1000')">Coolant On (M8)</a></li>
|
||||
<li id="menuMisting" style="display: none;"><a class="grblmode" href="#" onclick="sendGcode('M7')">Misting On (M7)</a></li>
|
||||
<li><a class="grblmode" href="#" onclick="sendGcode('M8')">Coolant On (M8)</a></li>
|
||||
<!-- <li><a class="grblmode" href="#" onclick="sendGcode('M9 S1000')">Coolant Off (M9)</a></li> -->
|
||||
|
||||
</ul>
|
||||
|
@ -260,7 +263,7 @@
|
|||
<ul class="ribbon-dropdown grblmode" data-role="dropdown" data-duration="100">
|
||||
<li><a class="grblmode" href="#" onclick="sendGcode('M5')">Spindle / Laser / Plasma Off (M5)</a></li>
|
||||
<li class="divider fg-lightGray"></li>
|
||||
<li><a class="grblmode" href="#" onclick="sendGcode('M9 S1000')">Coolant Off (M9)</a></li>
|
||||
<li><a class="grblmode" href="#" onclick="sendGcode('M9')">Coolant Off (M9)</a></li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -286,6 +289,7 @@
|
|||
<ul class="ribbon-dropdown grblmode" data-role="dropdown" data-duration="100">
|
||||
<li><a href="#" onclick="populateSurfaceToolForm();"><i class="fas fa-exchange-alt"></i> Surfacing / Flattening Wizard</a></li>
|
||||
<li><a href="#" onclick="jogWidget();"><i class="fas fa-mobile-alt"></i> Mobile Jog Widget</a></li>
|
||||
<li onclick="openProbeDialog();" class="needsXYZProbe"><a href="#"><span class="fas fa-podcast fa-rotate-180 icon"></span> Probing Wizards</a></li>
|
||||
<li class="divider fg-lightGray"></li>
|
||||
<li class="disabled grblCalibrationMenu" onclick="xstepscalibrate();"><a href="#"><i class="fas fa-wrench fa-fw"></i> Calibrate X-Axes Steps/mm</a></li>
|
||||
<li class="disabled grblCalibrationMenu" onclick="ystepscalibrate();"><a href="#"><i class="fas fa-wrench fa-fw"></i> Calibrate Y-Axes Steps/mm</a></li>
|
||||
|
@ -354,7 +358,6 @@
|
|||
<li class="divider"></li>
|
||||
<li onclick="disableSerialLog =! disableSerialLog; saveDiagnostics(); location.reload();" id="disableSerialLogTick"><a href="#"><i class="fas fa-fw fa-terminal"></i> Disable Serial Log</a></li>
|
||||
<li onclick="disableDROupdates = !disableDROupdates; saveDiagnostics(); location.reload();" id="disableDROupdatesTick"><a href="#"><i class="fas fa-fw fa-list-ol"></i> Disable DRO/Status Updates</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<span class="title">Settings</span>
|
||||
</div>
|
||||
|
@ -437,6 +440,9 @@
|
|||
<ul class="d-menu context drop-shadow drop-right" data-role="dropdown">
|
||||
<li><a href="#" onclick="sendGcode( 'G0 X0')"><span class="fas fa-chart-line fg-red icon"></span>Goto X0 (Work Coord) (G0 X0)</a></li>
|
||||
<li id="gotoXzeroMpos"><a href="#" onclick="sendGcode( 'G53 G0 X0')"><span class="fas fa-chart-line fg-red icon"></span>Goto X0 (Machine Coord) (G53 G0 X0)</a></li>
|
||||
<li class="divider"></li>
|
||||
<li class="needsXYZProbe"><a href="#" onclick="openProbeXDialog()"><span class="fas fa-podcast fa-rotate-180 fg-blue icon"></span>Probe X-Zero Wizard</a></li>
|
||||
<li class="needsXYZProbe"><a href="#" onclick="openProbeDialog()"><span class="fas fa-podcast fa-rotate-180 fg-blue icon"></span>Probe XYZ-Zero Wizard</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
|
@ -469,6 +475,9 @@
|
|||
<ul class="d-menu context drop-shadow drop-right" data-role="dropdown">
|
||||
<li><a href="#" onclick="sendGcode( 'G0 Y0')"><span class="fas fa-chart-line fg-green icon"></span>Goto Y0 (Work Coord) (G0 Y0)</a></li>
|
||||
<li id="gotoYzeroMpos"><a href="#" onclick="sendGcode( 'G53 G0 Y0')"><span class="fas fa-chart-line fg-green icon"></span>Goto Y0 (Machine Coord) (G53 G0 Y0)</a></li>
|
||||
<li class="divider"></li>
|
||||
<li class="needsXYZProbe"><a href="#" onclick="openProbeYDialog()"><span class="fas fa-podcast fa-rotate-180 fg-blue icon"></span>Probe Y-Zero Wizard</a></li>
|
||||
<li class="needsXYZProbe"><a href="#" onclick="openProbeDialog()"><span class="fas fa-podcast fa-rotate-180 fg-blue icon"></span>Probe XYZ-Zero Wizard</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
|
@ -502,7 +511,9 @@
|
|||
<li><a href="#" onclick="sendGcode( 'G0 Z0')"><span class="fas fa-chart-line fg-blue icon"></span>Goto Z0 (Work Coord) (G0 Z0)</a></li>
|
||||
<li id="gotoZzeroMpos"><a href="#" onclick="sendGcode( 'G53 G0 Z0')"><span class="fas fa-chart-line fg-blue icon"></span>Goto Z0 (Machine Coord) (G53 G0 Z0)</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="#" onclick="z0probe()"><span class="fas fa-podcast fa-rotate-180 fg-blue icon"></span>Probe Z0 Wizard</a></li>
|
||||
<!-- <li><a href="#" onclick="z0probe()()"><span class="fas fa-podcast fa-rotate-180 fg-blue icon"></span>Probe Z-Zero Wizard</a></li> -->
|
||||
<li class="needsXYZProbe"><a href="#" onclick="openProbeZDialog()"><span class="fas fa-podcast fa-rotate-180 fg-blue icon"></span>Probe Z-Zero Wizard with XYZ Plate</a></li>
|
||||
<li class="needsXYZProbe"><a href="#" onclick="openProbeDialog()"><span class="fas fa-podcast fa-rotate-180 fg-blue icon"></span>Probe XYZ-Zero Wizard</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
|
@ -1190,16 +1201,13 @@
|
|||
<li>Launches the installer for the new version</li>
|
||||
</ul>
|
||||
<small>You may want to wait until your machine is idle before continuing</small>
|
||||
<small id="changelogupdate"></small>
|
||||
</div>
|
||||
<div class="dialog-actions">
|
||||
<button class="button js-dialog-close">Not right now please</button>
|
||||
<button class="button success js-dialog-close" onclick="socket.emit('applyUpdate', true)">OK, Proceed with Update</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Modal Divs -->
|
||||
<div style="display: none;">
|
||||
|
||||
<div class="dialog dark" data-overlay-click-close="true" data-role="dialog" id="jogWidgetDialog">
|
||||
<div class="dialog-title"><i class="fas fa-mobile-alt"></i> Jog Widget</div>
|
||||
|
@ -1232,18 +1240,237 @@
|
|||
<button class="button js-dialog-close">Close</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- XYZ Probe -->
|
||||
<div class="dialog dark" id="xyzProbeWindow" data-role="dialog" data-overlay-click-close="true" data-to-top="true" data-width="800">
|
||||
<div class="dialog-title">Probing Wizard</div>
|
||||
<div class="dialog-content" style="max-height: calc(100vh - 100px);overflow-y: auto; overflow-x: hidden;">
|
||||
<nav data-role="ribbonmenu">
|
||||
<ul class="tabs-holder">
|
||||
<li onclick="probexyztab();" class="probetabxyz" id="probexyztab"><a href="#">XYZ-Zero</a></li>
|
||||
<li onclick="probextab();" class="probetabxyz" id="probextab"><a href="#">X-Zero</a></li>
|
||||
<li onclick="probeytab();" class="probetabxyz" id="probeytab"><a href="#">Y-Zero</a></li>
|
||||
<li onclick="probeztab();" class="probetabxyz" id="probeztab"><a href="#">Z-Zero</a></li>
|
||||
<li onclick="probezplatetab();" class="probetabz" id="probezplatetab" style="display: none;"><a href="#">Z Touch Plate</a></li>
|
||||
<li onclick="probeautotab();" class="probetabxyz disabled" id="probeautotab"><a href="#">Automatic</a></li>
|
||||
<li onclick="probeendmilltab();" class="probetabxyz disabled" id="probeendmilltab"><a href="#">Endmill Diameter</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
|
||||
<td>
|
||||
<div>
|
||||
<img src="./img/xyzprobe/auto.png" alt="probe-auto" height="350" id="img-probe-auto" class="img-probe">
|
||||
<img src="./img/xyzprobe/xyz.png" alt="probe-xyz" height="350" id="img-probe-xyz" class="img-probe" style="display: none;">
|
||||
<img src="./img/xyzprobe/x.png" alt="probe-x" height="350" id="img-probe-x" class="img-probe" style="display: none;">
|
||||
<img src="./img/xyzprobe/y.png" alt="probe-y" height="350" id="img-probe-y" class="img-probe" style="display: none;">
|
||||
<img src="./img/xyzprobe/z.png" alt="probe-z" height="350" id="img-probe-z" class="img-probe" style="display: none;">
|
||||
<img src="./img/xyzprobe/zplate.png" alt="probe-zplate" height="350" id="img-probe-zplate" class="img-probe" style="display: none;">
|
||||
<img src="./img/xyzprobe/endmill.png" alt="probe-endmill" height="350" id="img-probe-endmill" class="img-probe" style="display: none;">
|
||||
</div>
|
||||
|
||||
</td>
|
||||
|
||||
<td style="padding: 4px; padding-left: 15px; vertical-align: top;">
|
||||
|
||||
<div id="probe-auto" class="probe-tab-content" style="display: none;">
|
||||
<small>Automatic Probe Routine: This routine is used to find the XYZ origins, as well as automatically
|
||||
determine endmill diameter. </small>
|
||||
<hr>
|
||||
<small>Position the endmill above the hole in the probe plate as shown to the left just above the plate, clip
|
||||
on the magnetic connecting clip, then click Probe</small>
|
||||
</div>
|
||||
<div id="probe-xyz" class="probe-tab-content">
|
||||
<small>XYZ Probe Routine: This routine is used to find the XYZ origins</small>
|
||||
<hr>
|
||||
<small>Position the endmill above the hole in the probe plate as shown to the left just above the plate, clip
|
||||
on the magnetic connecting clip, then click Probe</small>
|
||||
</div>
|
||||
<div id="probe-x" class="probe-tab-content" style="display: none;">
|
||||
<small>X Probe Routine: This routine is used to find the X origin</small>
|
||||
<hr>
|
||||
<small>Position the endmill to the left of the probe plate as shown, clip on the magnetic connecting clip,
|
||||
then click Probe</small>
|
||||
</div>
|
||||
<div id="probe-y" class="probe-tab-content" style="display: none;">
|
||||
<small>Y Probe Routine: This routine is used to find the Y origin</small>
|
||||
<hr>
|
||||
<small>Position the endmill in front of the probe plate as shown, clip on the magnetic connecting clip, then
|
||||
click Probe</small>
|
||||
</div>
|
||||
<div id="probe-z" class="probe-tab-content" style="display: none;">
|
||||
<small>Z Probe Routine: This routine is used to find the Z origin</small>
|
||||
<hr>
|
||||
<small>Position the endmill above the probe plate as shown, clip on the magnetic connecting clip, then click
|
||||
Probe</small>
|
||||
</div>
|
||||
<div id="probe-endmill" class="probe-tab-content" style="display: none;">
|
||||
<small>Endmill Probe Routine: This routine is used to find the Endmill Diameter</small>
|
||||
<hr>
|
||||
<small>Position the endmill above the hole in the probe plate as shown to the left just above the plate, clip
|
||||
on the magnetic connecting clip, then click Probe</small>
|
||||
<hr>
|
||||
<small>
|
||||
This operation will perform an XYZ probe to establish the plate position, then using the hole in the plate,
|
||||
it will measure and calculate the Endmill Diameter and display it onscreen. <br>This operation will NOT set
|
||||
any work-coordinates!
|
||||
</small>
|
||||
</div>
|
||||
<hr>
|
||||
<div id="endmilldiameterform">
|
||||
<label>Endmill Diameter</label>
|
||||
<input id="probediameterxyz" type="number" value="6.35" data-role="input" data-append="mm" data-prepend="<img class='fa-fw' src='https://cam.openbuilds.com/images/endmilldia.svg' width='16px' height='16px'>"
|
||||
data-clear-button="false">
|
||||
</div>
|
||||
<hr>
|
||||
<button class="button" id="toggle-probe-advanced"><i class="fas fa-fw fa-cogs"></i> Advanced</button>
|
||||
<div class="pos-relative">
|
||||
<div data-role="collapse" data-toggle-element="#toggle-probe-advanced" data-collapsed="true" id="toggle-probe-advanced-content">
|
||||
|
||||
<div id="xyzdatum" class="probe-tab-content">
|
||||
|
||||
<small>Where is the XY Zero Datum / Origin in your CAM setup, relevant to the front-left corner we are
|
||||
probing? </small>
|
||||
<br>
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="300" height="180" viewBox="0 0 79.375 47.625">
|
||||
<style>
|
||||
|
||||
</style>
|
||||
<defs>
|
||||
<marker id="A" orient="auto" class="J">
|
||||
<path transform="matrix(.4 0 0 .4 2.96 .4)" d="m-2.5-1c0 2.76-2.24 5-5 5s-5-2.24-5-5 2.24-5 5-5 5 2.24 5 5z" class="D K L" />
|
||||
</marker>
|
||||
<marker id="B" orient="auto" class="J">
|
||||
<path transform="matrix(.4 0 0 .4 2.96 .4)" d="m-2.5-1c0 2.76-2.24 5-5 5s-5-2.24-5-5 2.24-5 5-5 5 2.24 5 5z" class="D K L" />
|
||||
</marker>
|
||||
<marker id="C" orient="auto" class="J">
|
||||
<path transform="matrix(.8 0 0 .8 10 0)" d="M0 0l5-5-17.5 5L5 5z" class="D K L" />
|
||||
</marker>
|
||||
<marker id="D" orient="auto" class="J">
|
||||
<path transform="matrix(.8 0 0 .8 10 0)" d="M0 0l5-5-17.5 5L5 5z" class="D K L" />
|
||||
</marker>
|
||||
</defs>
|
||||
<g fill="#fff" class="D">
|
||||
<g stroke-width=".132" class="B">
|
||||
<path d="M7.195 7.363l15.94 28.46L70.758 31.1 47.99 5.015z" fill="#999" />
|
||||
<path d="M23.133 35.823l-1.257 8.313 47.7-5.284 1.172-7.752z" fill="#ececec" />
|
||||
<path d="M7.195 7.363l15.94 28.46-1.257 8.313-15.722-29.89z" fill="#ccc" />
|
||||
</g>
|
||||
<g stroke-width=".049" class="C N">
|
||||
<path d="M7.198 7.363l63.74 25.952" />
|
||||
<path d="M23.322 38.1L47.993 5.093" />
|
||||
</g>
|
||||
<g fill="none" stroke-width=".197" class="N">
|
||||
<path d="M3.942 15.993L19.16 45.07" marker-start="url(#C)" marker-end="url(#A)" />
|
||||
<path d="M70.118 41.003l-47.624 5.73" marker-start="url(#D)" marker-end="url(#B)" />
|
||||
</g>
|
||||
<g transform="matrix(.24595 -.020313 .020313 .24595 108.29 -158.287)">
|
||||
<rect class="probe-label" id="probe-c" rx="5.925" height="16.422" width="59.717" y="682.21" x="-368.93" stroke-width=".987" class="B" />
|
||||
<text id="probe-c-text" xml:space="preserve" letter-spacing="0" font-size="2.229" y="694.532" x="-339.852" class="C E F G H">
|
||||
<tspan y="694.532" x="-330.852" class="I">CENTER</tspan>
|
||||
</text>
|
||||
<rect class="probe-label areaactive" id="probe-fl" rx="6.543" height="30.532" width="43.617" y="742.64" x="-423.17" class="B M" />
|
||||
<text id="probe-fl-text" xml:space="preserve" letter-spacing="0" y="755.631" x="-401.459" class="C E F G H I">
|
||||
<tspan y="755.631" x="-350">FRONT</tspan>
|
||||
<tspan y="768.172" x="-350">LEFT</tspan>
|
||||
</text>
|
||||
<rect class="probe-label" id="probe-fr" rx="6.543" height="30.532" width="43.617" y="733.68" x="-239.82" class="B M" />
|
||||
<text id="probe-fr-text" xml:space="preserve" letter-spacing="0" y="746.284" x="-217.439" class="C E F G H I">
|
||||
<tspan y="746.284" x="-166">FRONT</tspan>
|
||||
<tspan y="758.824" x="-169">RIGHT</tspan>
|
||||
</text>
|
||||
<rect class="probe-label" id="probe-rr" rx="6.543" height="30.532" width="43.617" y="621.52" x="-312.72" class="B M" />
|
||||
<text id="probe-rr-text" xml:space="preserve" letter-spacing="0" y="633.759" x="-290.442" class="C E F G H I">
|
||||
<tspan y="633.759" x="-239.442">REAR</tspan>
|
||||
<tspan y="646.3" x="-242.442">RIGHT</tspan>
|
||||
</text>
|
||||
<rect class="probe-label" id="probe-rl" rx="6.543" height="30.532" width="43.617" y="616.07" x="-476.33" class="B M" />
|
||||
<text id="probe-rl-text" xml:space="preserve" letter-spacing="0" y="628.815" x="-455.49" class="C E F G H I">
|
||||
<tspan y="628.815" x="-404">REAR</tspan>
|
||||
<tspan y="641.356" x="-404">LEFT</tspan>
|
||||
</text></g>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
<br>
|
||||
<small>If the origin is not Front, Left (Default): Then provide stock dimensions to calculate correct
|
||||
offset of X0, Y0:</small>
|
||||
<br>
|
||||
<label>Width</label>
|
||||
<input id="stockwidth" type="number" value="200" data-role="input" data-append="mm" data-prepend="<i class='fas fa-arrows-alt-h'></i>" data-clear-button="false">
|
||||
<label>Length</label>
|
||||
<input id="stocklength" type="number" value="200" data-role="input" data-append="mm" data-prepend="<i class='fas fa-arrows-alt-v'></i>" data-clear-button="false">
|
||||
|
||||
</div>
|
||||
<!-- end xyzdatum-->
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="dialog-actions">
|
||||
|
||||
<label>Probe Type: </label>
|
||||
|
||||
<a class="button" id="context_toggle"><span id="probetypebtn"><span class="icon"><img src="./img/xyzprobe/xyztouch.png" /></span> Prototype OpenBuilds XYZ Probe</span></a>
|
||||
<ul class="d-menu context" data-role="dropdown" data-toggle-element="#context_toggle">
|
||||
<li onclick="probetype('protoxyz');"><a href="#"><span class="icon"><img src="./img/xyzprobe/xyztouch.png" /></span> Prototype OpenBuilds XYZ Probe</a></li>
|
||||
<li onclick="probetype('xyz');"><a href="#"><span class="icon"><img src="./img/xyzprobe/xyztouch.png" /></span> OpenBuilds XYZ Probe</a></li>
|
||||
<li onclick="probetype('z');"><a href="#"><span class="icon"><img src="./img/xyzprobe/ztouch.png" /></span>OpenBuilds Z Touch Plate</a></li>
|
||||
<li class="divider"></li>
|
||||
<!-- li onclick="probetype('custom');"><a href="#">Custom</a></li -->
|
||||
</ul>
|
||||
<span style="padding-left: 200px;"></span>
|
||||
<button class="button js-dialog-close" onclick="Metro.dialog.close('#xyzProbeWindow');">Cancel</button>
|
||||
<button class="button success js-dialog-close" onclick="confirmProbeInPlace();">Probe</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- End XYZ Probe -->
|
||||
|
||||
<!-- XYZ Probe confirmation -->
|
||||
<div class="dialog dark" id="confirmXYZprobeModal" data-role="dialog" data-overlay-click-close="true">
|
||||
<div class="dialog-title"><i class='fas fa-podcast' data-fa-transform='rotate-180'></i> Confirm Probe Hardware</div>
|
||||
<div class="dialog-content" id="confirmXYZprobeDiv">
|
||||
</div>
|
||||
<div class="dialog-actions">
|
||||
<div class="float-right">
|
||||
<button class="button js-dialog-close">Cancel</button>
|
||||
<button onclick="runProbeNew()" class="button success js-dialog-close">Probe</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end XYZ Probe confirmation -->
|
||||
|
||||
|
||||
<!-- job completion confirmation -->
|
||||
<div class="dialog dark" id="completeMsgModal" data-role="dialog" data-overlay-click-close="true">
|
||||
<div class="dialog-title"><i class='far fa-check-square'></i> Completed</div>
|
||||
<div class="dialog-content" id="completeMsgDiv">
|
||||
</div>
|
||||
<div class="dialog-actions">
|
||||
<div class="float-right">
|
||||
<button class="button primary js-dialog-close">OK</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end job completion confirmation -->
|
||||
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<script type="x-shader/x-vertex" id="vertexShader">
|
||||
varying vec3 vWorldPosition; void main() { vec4 worldPosition = modelMatrix * vec4( position, 1.0 ); vWorldPosition = worldPosition.xyz; gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); }
|
||||
|
||||
</script>
|
||||
</script>
|
||||
<script type="x-shader/x-fragment" id="fragmentShader">
|
||||
uniform vec3 topColor; uniform vec3 bottomColor; uniform float offset; uniform float exponent; varying vec3 vWorldPosition; void main() { float h = normalize( vWorldPosition + offset ).z; gl_FragColor = vec4( mix( bottomColor, topColor, max( pow( max(
|
||||
h , 0.0), exponent ), 0.0 ) ), 1.0 ); }
|
||||
h , 0.0), exponent ), 0.0 ) ), 1.0 ); }
|
||||
|
||||
</script>
|
||||
</script>
|
||||
|
||||
|
||||
<script type="text/javascript" src="lib/fontawesome5/js/all.min.js"></script>
|
||||
|
@ -1303,6 +1530,7 @@
|
|||
<script type="text/javascript" src="js/calibrate-servo.js"></script>
|
||||
|
||||
<script type="text/javascript" src="js/probe.js"></script>
|
||||
<script type="text/javascript" src="js/probev2.js"></script>
|
||||
|
||||
<script type="text/javascript" src="wizards/surfacing.js"></script>
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@ function saveDiagnostics() {
|
|||
localStorage.setItem('disable3Dgcodepreview', disable3Dgcodepreview);
|
||||
localStorage.setItem('disableSerialLog', disableSerialLog);
|
||||
localStorage.setItem('disableDROupdates', disableDROupdates);
|
||||
|
||||
}
|
||||
|
||||
function initDiagnostics() {
|
||||
|
@ -81,6 +82,7 @@ function initDiagnostics() {
|
|||
} else {
|
||||
disableDROupdates = false;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
initDiagnostics();
|
|
@ -17,6 +17,15 @@ function getChangelog() {
|
|||
}
|
||||
template2 += `</ul>`
|
||||
$("#changelog").html(template2);
|
||||
var template3 = `Changelog: <hr> <ul>`
|
||||
for (var line = 0; line < 3; line++) {
|
||||
template3 += '<li>' + lines[line] + '</li>'
|
||||
}
|
||||
template3 += `</ul>`
|
||||
|
||||
$("#changelogupdate").html(template3);
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,517 @@
|
|||
var protoxyzprobeplate = {
|
||||
xoffset: 6,
|
||||
yoffset: 6,
|
||||
zoffset: 5,
|
||||
name: "Prototype OpenBuilds XYZ Touchplate",
|
||||
xyzmode: true
|
||||
}
|
||||
|
||||
var xyzprobeplate = {
|
||||
xoffset: 10,
|
||||
yoffset: 10,
|
||||
zoffset: 9,
|
||||
name: "OpenBuilds XYZ Touchplate",
|
||||
xyzmode: true
|
||||
}
|
||||
|
||||
var zprobeplate = {
|
||||
xoffset: 0,
|
||||
yoffset: 0,
|
||||
zoffset: 20,
|
||||
name: "OpenBuilds Z Touchplate",
|
||||
xyzmode: false
|
||||
}
|
||||
|
||||
var probemode = {
|
||||
mode: "auto", // auto, xyz, xzero, yzero, zzero, zplate, endmilldia
|
||||
endmilldia: 0,
|
||||
stock: {
|
||||
x: 0,
|
||||
y: 0,
|
||||
position: "fl" // fl, fr, rl, rr, c
|
||||
},
|
||||
plate: {
|
||||
traveldistance: 25,
|
||||
thickness: 20,
|
||||
feedrate: 500
|
||||
},
|
||||
probe: protoxyzprobeplate,
|
||||
}
|
||||
|
||||
// still beta, lets hide it from users
|
||||
// if (!enableBetaFeatures) {
|
||||
// $(".needsXYZProbe").hide();
|
||||
// }
|
||||
|
||||
function openProbeDialog() {
|
||||
Metro.dialog.open("#xyzProbeWindow");
|
||||
if (localStorage.getItem('probeType')) {
|
||||
probetype(localStorage.getItem('probeType'))
|
||||
if (localStorage.getItem('probeType') == "z") {
|
||||
setTimeout(function() {
|
||||
probezplatetab()
|
||||
$(".probetabxyz").removeClass("active")
|
||||
$("#probezplatetab").addClass("active")
|
||||
}, 100)
|
||||
} else {
|
||||
setTimeout(function() {
|
||||
probexyztab()
|
||||
$(".probetabxyz").removeClass("active")
|
||||
$("#probexyztab").addClass("active")
|
||||
}, 100)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function openProbeXDialog() {
|
||||
Metro.dialog.open("#xyzProbeWindow");
|
||||
if (localStorage.getItem('probeType')) {
|
||||
probetype(localStorage.getItem('probeType'))
|
||||
if (localStorage.getItem('probeType') == "z") {
|
||||
// setTimeout(function() {
|
||||
// probezplatetab()
|
||||
// $(".probetabxyz").removeClass("active")
|
||||
// $("#probezplatetab").addClass("active")
|
||||
// }, 100)
|
||||
} else {
|
||||
setTimeout(function() {
|
||||
probextab()
|
||||
$(".probetabxyz").removeClass("active")
|
||||
$("#probextab").addClass("active")
|
||||
}, 100)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function openProbeYDialog() {
|
||||
Metro.dialog.open("#xyzProbeWindow");
|
||||
if (localStorage.getItem('probeType')) {
|
||||
probetype(localStorage.getItem('probeType'))
|
||||
if (localStorage.getItem('probeType') == "z") {
|
||||
// setTimeout(function() {
|
||||
// probezplatetab()
|
||||
// $(".probetabxyz").removeClass("active")
|
||||
// $("#probezplatetab").addClass("active")
|
||||
// }, 100)
|
||||
} else {
|
||||
setTimeout(function() {
|
||||
probeytab()
|
||||
$(".probetabxyz").removeClass("active")
|
||||
$("#probeytab").addClass("active")
|
||||
}, 100)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function openProbeZDialog() {
|
||||
Metro.dialog.open("#xyzProbeWindow");
|
||||
if (localStorage.getItem('probeType')) {
|
||||
probetype(localStorage.getItem('probeType'))
|
||||
if (localStorage.getItem('probeType') == "z") {
|
||||
setTimeout(function() {
|
||||
probezplatetab()
|
||||
$(".probetabxyz").removeClass("active")
|
||||
$("#probezplatetab").addClass("active")
|
||||
}, 100)
|
||||
} else {
|
||||
setTimeout(function() {
|
||||
probeztab()
|
||||
$(".probetabxyz").removeClass("active")
|
||||
$("#probeztab").addClass("active")
|
||||
}, 100)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function probeautotab() {
|
||||
probemode.mode = "auto"; // auto, xyz, xzero, yzero, zzero, zplate, endmilldia
|
||||
$(".probe-tab-content").hide();
|
||||
$("#probe-auto").show();
|
||||
$("#xyzdatum").show();
|
||||
$(".img-probe").hide();
|
||||
$("#img-probe-auto").show();
|
||||
$("#toggle-probe-advanced").show();
|
||||
$("#endmilldiameterform").hide();
|
||||
if (probemode.stock.position == "fl") {
|
||||
$("#toggle-probe-advanced-content").data('collapse').collapse()
|
||||
} else {
|
||||
$("#toggle-probe-advanced-content").data('collapse').expand()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function probexyztab() {
|
||||
probemode.mode = "xyz"; // auto, xyz, xzero, yzero, zzero, zplate, endmilldia
|
||||
$(".probe-tab-content").hide();
|
||||
$("#probe-xyz").show();
|
||||
$("#xyzdatum").show();
|
||||
$(".img-probe").hide();
|
||||
$("#img-probe-xyz").show();
|
||||
$("#toggle-probe-advanced").show();
|
||||
$("#endmilldiameterform").show();
|
||||
if (probemode.stock.position == "fl") {
|
||||
$("#toggle-probe-advanced-content").data('collapse').collapse()
|
||||
} else {
|
||||
$("#toggle-probe-advanced-content").data('collapse').expand()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function probextab() {
|
||||
probemode.mode = "xzero"; // auto, xyz, xzero, yzero, zzero, zplate, endmilldia
|
||||
resetOffsetFL();
|
||||
$(".probe-tab-content").hide();
|
||||
$("#probe-x").show();
|
||||
$("#xyzdatum").hide();
|
||||
$(".img-probe").hide();
|
||||
$("#img-probe-x").show();
|
||||
$("#toggle-probe-advanced").hide();
|
||||
$("#endmilldiameterform").show();
|
||||
$("#toggle-probe-advanced-content").data('collapse').collapse()
|
||||
}
|
||||
|
||||
function probeytab() {
|
||||
probemode.mode = "yzero"; // auto, xyz, xzero, yzero, zzero, zplate, endmilldia
|
||||
resetOffsetFL();
|
||||
$(".probe-tab-content").hide();
|
||||
$("#probe-y").show();
|
||||
$("#xyzdatum").hide();
|
||||
$(".img-probe").hide();
|
||||
$("#img-probe-y").show();
|
||||
$("#toggle-probe-advanced").hide();
|
||||
$("#endmilldiameterform").show();
|
||||
$("#toggle-probe-advanced-content").data('collapse').collapse()
|
||||
}
|
||||
|
||||
function probeztab() {
|
||||
probemode.mode = "zzero"; // auto, xyz, xzero, yzero, zzero, zplate, endmilldia
|
||||
resetOffsetFL();
|
||||
$(".probe-tab-content").hide();
|
||||
$("#probe-z").show();
|
||||
$("#xyzdatum").hide();
|
||||
$(".img-probe").hide();
|
||||
$("#img-probe-z").show();
|
||||
$("#toggle-probe-advanced").hide();
|
||||
$("#endmilldiameterform").hide();
|
||||
$("#toggle-probe-advanced-content").data('collapse').collapse()
|
||||
}
|
||||
|
||||
function probezplatetab() {
|
||||
probemode.mode = "zplate"; // auto, xyz, xzero, yzero, zzero, zplate, endmilldia
|
||||
resetOffsetFL();
|
||||
$(".probe-tab-content").hide();
|
||||
$("#probe-z").show();
|
||||
$("#xyzdatum").hide();
|
||||
$(".img-probe").hide();
|
||||
$("#img-probe-zplate").show();
|
||||
$("#toggle-probe-advanced").hide();
|
||||
$("#endmilldiameterform").hide();
|
||||
$("#toggle-probe-advanced-content").data('collapse').expand()
|
||||
}
|
||||
|
||||
function probeendmilltab() {
|
||||
probemode.mode = "endmilldia"; // auto, xyz, xzero, yzero, zzero, zplate, endmilldia
|
||||
resetOffsetFL();
|
||||
$(".probe-tab-content").hide();
|
||||
$("#probe-endmill").show();
|
||||
$("#xyzdatum").hide();
|
||||
$(".img-probe").hide();
|
||||
$("#img-probe-endmill").show();
|
||||
$("#toggle-probe-advanced").hide();
|
||||
$("#endmilldiameterform").hide();
|
||||
$("#toggle-probe-advanced-content").data('collapse').collapse()
|
||||
}
|
||||
|
||||
function resetOffsetFL() {
|
||||
$(".probe-label").removeClass("areaactive")
|
||||
$("#probe-fl").addClass("areaactive")
|
||||
probemode.stock.position = "fl" // fl, fr, rl, rr, c
|
||||
}
|
||||
|
||||
$("#probe-fl, #probe-fl-text").on("click", function() {
|
||||
resetOffsetFL();
|
||||
});
|
||||
|
||||
$("#probe-fr, #probe-fr-text").on("click", function() {
|
||||
$(".probe-label").removeClass("areaactive")
|
||||
$("#probe-fr").addClass("areaactive")
|
||||
probemode.stock.position = "fr" // fl, fr, rl, rr, c
|
||||
});
|
||||
|
||||
$("#probe-rl, #probe-rl-text").on("click", function() {
|
||||
$(".probe-label").removeClass("areaactive")
|
||||
$("#probe-rl").addClass("areaactive")
|
||||
probemode.stock.position = "rl" // fl, fr, rl, rr, c
|
||||
});
|
||||
|
||||
$("#probe-rr, #probe-rr-text").on("click", function() {
|
||||
$(".probe-label").removeClass("areaactive")
|
||||
$("#probe-rr").addClass("areaactive")
|
||||
probemode.stock.position = "rr" // fl, fr, rl, rr, c
|
||||
});
|
||||
|
||||
$("#probe-c, #probe-c-text").on("click", function() {
|
||||
$(".probe-label").removeClass("areaactive")
|
||||
$("#probe-c").addClass("areaactive")
|
||||
probemode.stock.position = "c" // fl, fr, rl, rr, c
|
||||
});
|
||||
|
||||
function probetype(type) {
|
||||
localStorage.setItem('probeType', type);
|
||||
if (type == "xyz") {
|
||||
probemode.probe = xyzprobeplate // protoxyzprobeplate, xyzprobeplate, zprobeplate
|
||||
var template = `<span class="icon"><img src="https://i.ibb.co/QkxzYN8/xyztouch.png"/></span> OpenBuilds XYZ Probe`;
|
||||
$("#probetypebtn").html(template)
|
||||
$(".probetabz").hide();
|
||||
$(".probetabxyz").show();
|
||||
probexyztab()
|
||||
} else if (type == "protoxyz") {
|
||||
probemode.probe = protoxyzprobeplate // protoxyzprobeplate, xyzprobeplate, zprobeplate
|
||||
var template = `<span class="icon"><img src="https://i.ibb.co/QkxzYN8/xyztouch.png"/></span> Prototype OpenBuilds XYZ Probe`;
|
||||
$("#probetypebtn").html(template)
|
||||
$(".probetabz").hide();
|
||||
$(".probetabxyz").show();
|
||||
probexyztab()
|
||||
} else if (type == "z") {
|
||||
probemode.probe = zprobeplate // protoxyzprobeplate, xyzprobeplate, zprobeplate
|
||||
var template = `<span class="icon"><img src="https://i.ibb.co/CQ7rSW6/ztouch.png"/></span>OpenBuilds Z Touch Plate`;
|
||||
$("#probetypebtn").html(template)
|
||||
$(".probetabxyz").hide();
|
||||
$(".probetabz").show();
|
||||
probezplatetab();
|
||||
}
|
||||
}
|
||||
|
||||
function confirmProbeInPlace(operation) {
|
||||
|
||||
var imgurl = "./img/xyzprobe/xyz.png"
|
||||
if (probemode.mode == "xyz") { // auto, xyz, xzero, yzero, zzero, zplate, endmilldia
|
||||
imgurl = "./img/xyzprobe/xyz.png"
|
||||
} else if (probemode.mode == "xzero") { // auto, xyz, xzero, yzero, zzero, zplate, endmilldia
|
||||
imgurl = "./img/xyzprobe/x.png"
|
||||
} else if (probemode.mode == "yzero") { // auto, xyz, xzero, yzero, zzero, zplate, endmilldia
|
||||
imgurl = "./img/xyzprobe/y.png"
|
||||
} else if (probemode.mode == "zzero") { // auto, xyz, xzero, yzero, zzero, zplate, endmilldia
|
||||
imgurl = "./img/xyzprobe/z.png"
|
||||
} else if (probemode.mode == "zplate") { // auto, xyz, xzero, yzero, zzero, zplate, endmilldia
|
||||
imgurl = "./img/xyzprobe/zplate.png"
|
||||
} else if (probemode.mode == "endmilldia") { // auto, xyz, xzero, yzero, zzero, zplate, endmilldia
|
||||
imgurl = "./img/xyzprobe/endmill.png"
|
||||
} else if (probemode.mode == "auto") { // auto, xyz, xzero, yzero, zzero, zplate, endmilldia
|
||||
imgurl = "./img/xyzprobe/auto.png"
|
||||
}
|
||||
|
||||
var confirmTemplate = `
|
||||
<table>
|
||||
<tr>
|
||||
<td><img src="` + imgurl + `" height="350" class="img-probe"/>
|
||||
</td>
|
||||
<td style="padding: 4px; vertical-align: middle;">
|
||||
<ul>
|
||||
<li>Are you sure the probe plate was placed onto the front, left corner of the stock/workpiece?</li>
|
||||
<li>Are you sure the probe clip is attached to the bit?</li>
|
||||
<li>Are you sure you jogged the bit to the correct approximate position as shown, prior to initiating the probe?</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
`
|
||||
|
||||
$("#confirmXYZprobeDiv").html(confirmTemplate);
|
||||
setTimeout(function() {
|
||||
Metro.dialog.open("#confirmXYZprobeModal")
|
||||
}, 100);
|
||||
|
||||
}
|
||||
|
||||
|
||||
function runProbeNew() {
|
||||
$("#consoletab").click()
|
||||
probemode.stock.x = $("#stockwidth").val();
|
||||
probemode.stock.y = $("#stocklength").val();
|
||||
|
||||
template = `Code todo: run: \n`
|
||||
template += `Mode: ` + probemode.mode + `\n`
|
||||
template += `Probe: ` + probemode.probe.name + `\n`
|
||||
template += `Probe: X:` + probemode.probe.xoffset + `\n`
|
||||
template += `Probe: Y:` + probemode.probe.yoffset + `\n`
|
||||
template += `Probe: Z:` + probemode.probe.zoffset + `\n`
|
||||
|
||||
if (probemode.mode == "xyz" || probemode.mode == "xzero" || probemode.mode == "yzero" || probemode.mode == "zzero") {
|
||||
probemode.endmilldia = $("#probediameterxyz").val();
|
||||
template += `Endmill: ` + probemode.endmilldia + `mm\n`
|
||||
}
|
||||
|
||||
var stockoffset = {
|
||||
x: 0,
|
||||
y: 0
|
||||
}
|
||||
if (probemode.stock.position == "fl") { // fl, fr, rl, rr, c
|
||||
template += `Offset: NONE\n`
|
||||
}
|
||||
if (probemode.stock.position == "fr") { // fl, fr, rl, rr, c
|
||||
template += `Stock x:` + probemode.stock.x + `\n`;
|
||||
template += `Stock y: ` + probemode.stock.y + `\n`;
|
||||
template += `Offset: Front Right:\n`;
|
||||
template += `Offset x:` + probemode.stock.x + `\n`;
|
||||
template += `Offset y: ` + 0 + `\n`;
|
||||
stockoffset.x = probemode.stock.x
|
||||
}
|
||||
if (probemode.stock.position == "rl") { // fl, fr, rl, rr, c
|
||||
template += `Stock x:` + probemode.stock.x + `\n`;
|
||||
template += `Stock y: ` + probemode.stock.y + `\n`;
|
||||
template += `Offset: Rear Left:\n`;
|
||||
template += `Offset x:` + 0 + `\n`;
|
||||
template += `Offset y: ` + probemode.stock.y + `\n`;
|
||||
stockoffset.y = probemode.stock.y
|
||||
}
|
||||
if (probemode.stock.position == "rr") { // fl, fr, rl, rr, c
|
||||
template += `Stock x:` + probemode.stock.x + `\n`;
|
||||
template += `Stock y: ` + probemode.stock.y + `\n`;
|
||||
template += `Offset: Rear Right:\n`;
|
||||
template += `Offset x:` + probemode.stock.x + `\n`;
|
||||
template += `Offset y: ` + probemode.stock.y + `\n`;
|
||||
stockoffset.x = probemode.stock.x
|
||||
stockoffset.y = probemode.stock.y
|
||||
}
|
||||
if (probemode.stock.position == "c") { // fl, fr, rl, rr, c
|
||||
template += `Stock x:` + probemode.stock.x + `\n`;
|
||||
template += `Stock y: ` + probemode.stock.y + `\n`;
|
||||
template += `Offset: Center:\n`;
|
||||
template += `Offset x:` + probemode.stock.x / 2 + `\n`;
|
||||
template += `Offset y: ` + probemode.stock.y / 2 + `\n`;
|
||||
stockoffset.x = probemode.stock.y / 2
|
||||
stockoffset.y = probemode.stock.y / 2
|
||||
}
|
||||
|
||||
// alert(template)
|
||||
|
||||
if (probemode.mode == "xzero") {
|
||||
var xoffset = (probemode.probe.xoffset + probemode.endmilldia / 2) * -1 // *-1 to make negative as we are off to the left too far from x0
|
||||
var yoffset = (probemode.probe.yoffset + probemode.endmilldia / 2) * -1 // *-1 to make negative as we are off to the front too far from y0
|
||||
var zoffset = probemode.probe.zoffset // not *-1 as its offset in z pos
|
||||
|
||||
var xmacro = `
|
||||
; Header
|
||||
G21 ; mm mode
|
||||
G10 P1 L20 X0 ; zero out current location
|
||||
|
||||
; Probe X
|
||||
G38.2 X25 F100 ; Probe X
|
||||
G4 P0.4
|
||||
G10 P1 L20 X` + xoffset + ` ; set X as offset and half endmill diameter
|
||||
G0 X` + (xoffset - 2).toFixed(3) + `
|
||||
`
|
||||
|
||||
|
||||
socket.emit('runJob', {
|
||||
data: xmacro,
|
||||
isJob: false,
|
||||
completedMsg: "Probe Complete: Remove the Probe Clip and Probe Plate before continuing... "
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
if (probemode.mode == "yzero") {
|
||||
var xoffset = (probemode.probe.xoffset + probemode.endmilldia / 2) * -1 // *-1 to make negative as we are off to the left too far from x0
|
||||
var yoffset = (probemode.probe.yoffset + probemode.endmilldia / 2) * -1 // *-1 to make negative as we are off to the front too far from y0
|
||||
var zoffset = probemode.probe.zoffset // not *-1 as its offset in z pos
|
||||
|
||||
var ymacro = `
|
||||
; Header
|
||||
G21 ; mm mode
|
||||
G10 P1 L20 Y0 ; zero out current location
|
||||
|
||||
G38.2 Y25 F100 ; probe Y
|
||||
G4 P0.4
|
||||
G10 P1 L20 Y` + yoffset + ` ; set Y as offset and half endmill diameter
|
||||
G0 Y` + (yoffset - 2).toFixed(3) + `
|
||||
`
|
||||
socket.emit('runJob', {
|
||||
data: ymacro,
|
||||
isJob: false,
|
||||
completedMsg: "Probe Complete: Remove the Probe Clip and Probe Plate before continuing... "
|
||||
});
|
||||
}
|
||||
|
||||
if (probemode.mode == "zzero") {
|
||||
var xoffset = (probemode.probe.xoffset + probemode.endmilldia / 2) * -1 // *-1 to make negative as we are off to the left too far from x0
|
||||
var yoffset = (probemode.probe.yoffset + probemode.endmilldia / 2) * -1 // *-1 to make negative as we are off to the front too far from y0
|
||||
var zoffset = probemode.probe.zoffset // not *-1 as its offset in z pos
|
||||
|
||||
var zmacro = `
|
||||
; Header
|
||||
G21 ; mm mode
|
||||
G10 P1 L20 Z0 ; zero out current location
|
||||
|
||||
; Probe Z
|
||||
G38.2 Z-25 F100 ; Probe Z
|
||||
G4 P0.4
|
||||
G10 P1 L20 Z` + zoffset + ` ; Set Z6 where 6 is thickness of plate
|
||||
G0 Z10 ; retract
|
||||
`
|
||||
|
||||
socket.emit('runJob', {
|
||||
data: zmacro,
|
||||
isJob: false,
|
||||
completedMsg: "Probe Complete: Remove the Probe Clip and Probe Plate before continuing... "
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
if (probemode.mode == "xyz") {
|
||||
var xoffset = (probemode.probe.xoffset + probemode.endmilldia / 2) * -1 // *-1 to make negative as we are off to the left too far from x0
|
||||
var yoffset = (probemode.probe.yoffset + probemode.endmilldia / 2) * -1 // *-1 to make negative as we are off to the front too far from y0
|
||||
var zoffset = probemode.probe.zoffset // not *-1 as its offset in z pos
|
||||
|
||||
var xyzmacro = `
|
||||
; Header
|
||||
G21 ; mm mode
|
||||
G10 P1 L20 X0 Y0 Z0 ; zero out current location
|
||||
|
||||
; Probe Z
|
||||
G0 X22.5 Y22.5 ; position to center of logo
|
||||
G38.2 Z-25 F100 ; Probe Z
|
||||
G4 P0.4
|
||||
G10 P1 L20 Z` + zoffset + ` ; Set Z6 where 6 is thickness of plate
|
||||
G0 Z10 ; retract
|
||||
G0 X0 Y0 ; return
|
||||
|
||||
; Probe X
|
||||
G0 X-20 ; position to left side
|
||||
G0 Y15 ; and move forward a little to be closer to center of edge
|
||||
G0 Z0 ; drop down to be next to plate
|
||||
G38.2 X25 F100 ; Probe X
|
||||
G4 P0.4
|
||||
G10 P1 L20 X` + xoffset + ` ; set X as offset and half endmill diameter
|
||||
G0 X` + (xoffset - 2).toFixed(3) + `
|
||||
G0 Z10 ; retract
|
||||
G0 X0 Y0 ; return
|
||||
|
||||
; Probe Y
|
||||
G0 Y-20 ; position to front side
|
||||
G0 X15 ; and move right a little to be closer to center of edge
|
||||
G0 Z0 ; drop down to be next to plate
|
||||
G38.2 Y25 F100 ; probe Y
|
||||
G4 P0.4
|
||||
G10 P1 L20 Y` + yoffset + ` ; set Y as offset and half endmill diameter
|
||||
G0 Y` + (yoffset - 2).toFixed(3) + `
|
||||
G0 Z10 ; retract
|
||||
G0 X0 Y0 ; return
|
||||
`
|
||||
|
||||
if (stockoffset.x != 0 || stockoffset.y != 0) {
|
||||
xyzmacro += `
|
||||
G10 P1 L20 X-` + stockoffset.x + ` ; set X stock offset
|
||||
G10 P1 L20 Y-` + stockoffset.y + ` ; set Y stock offset
|
||||
G0 X0 Y0 ; return
|
||||
`
|
||||
}
|
||||
socket.emit('runJob', {
|
||||
data: xyzmacro,
|
||||
isJob: false,
|
||||
completedMsg: "Probe Complete: Remove the Probe Clip and Probe Plate before continuing... "
|
||||
});
|
||||
|
||||
}
|
||||
}
|
|
@ -8,6 +8,7 @@ function setConnectBar(val, status) {
|
|||
$("#flashBtn").hide();
|
||||
$('#portUSB').parent().show();
|
||||
$("#connectBtn").show();
|
||||
$("#driverBtn").show();
|
||||
if ($('#portUSB').val() != "") {
|
||||
$("#connectBtn").attr('disabled', false);
|
||||
} else {
|
||||
|
@ -29,6 +30,7 @@ function setConnectBar(val, status) {
|
|||
$('#connectStatus').html("Port: Connected");
|
||||
// Connect/Disconnect Button
|
||||
$("#connectBtn").hide();
|
||||
$("#driverBtn").hide();
|
||||
$('#portUSB').parent().hide();
|
||||
$("#connectBtn").attr('disabled', false);
|
||||
$("#disconnectBtn").show();
|
||||
|
@ -45,6 +47,7 @@ function setConnectBar(val, status) {
|
|||
$('#connectStatus').html("Port: Connected");
|
||||
// Connect/Disconnect Button
|
||||
$("#connectBtn").hide();
|
||||
$("#driverBtn").hide();
|
||||
$('#portUSB').parent().hide();
|
||||
$("#connectBtn").attr('disabled', false);
|
||||
$("#disconnectBtn").show();
|
||||
|
@ -61,6 +64,7 @@ function setConnectBar(val, status) {
|
|||
$('#connectStatus').html("Port: Connected");
|
||||
// Connect/Disconnect Button
|
||||
$("#connectBtn").hide();
|
||||
$("#driverBtn").hide();
|
||||
$('#portUSB').parent().hide();
|
||||
$("#connectBtn").attr('disabled', false);
|
||||
$("#disconnectBtn").show();
|
||||
|
@ -77,6 +81,7 @@ function setConnectBar(val, status) {
|
|||
$('#connectStatus').html("Port: Connected");
|
||||
// Connect/Disconnect Button
|
||||
$("#connectBtn").hide();
|
||||
$("#driverBtn").hide();
|
||||
$('#portUSB').parent().hide();
|
||||
$("#connectBtn").attr('disabled', false);
|
||||
$("#disconnectBtn").show();
|
||||
|
@ -92,6 +97,7 @@ function setConnectBar(val, status) {
|
|||
$('#connectStatus').html("Port: Flashing");
|
||||
// Connect/Disconnect Button
|
||||
$("#connectBtn").hide();
|
||||
$("#driverBtn").hide();
|
||||
$('#portUSB').parent().hide();
|
||||
$("#connectBtn").attr('disabled', false);
|
||||
$("#disconnectBtn").hide();
|
||||
|
|
|
@ -116,6 +116,7 @@ function initSocket() {
|
|||
// 6 = Firmware Upgrade State
|
||||
if (laststatus.comms.connectionStatus < 3 && !continuousJogRunning) {
|
||||
$('#availVersion').html(data)
|
||||
getChangelog();
|
||||
Metro.dialog.open('#downloadUpdate')
|
||||
}
|
||||
|
||||
|
@ -153,7 +154,17 @@ function initSocket() {
|
|||
});
|
||||
|
||||
socket.on("jobComplete", function(data) {
|
||||
console.log("Job Complete", data)
|
||||
|
||||
console.log("jobComplete", data)
|
||||
|
||||
if (data.completed) {
|
||||
console.log("Job Complete", data)
|
||||
}
|
||||
if (data.jobCompletedMsg && data.jobCompletedMsg.length > 0) {
|
||||
$("#completeMsgDiv").html(data.jobCompletedMsg);
|
||||
Metro.dialog.open("#completeMsgModal");
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
socket.on("machinename", function(data) {
|
||||
|
@ -231,6 +242,9 @@ function initSocket() {
|
|||
}
|
||||
]
|
||||
});
|
||||
setTimeout(function() {
|
||||
$(".closeAlarmBtn").focus();
|
||||
}, 200, )
|
||||
//
|
||||
});
|
||||
|
||||
|
@ -240,8 +254,18 @@ function initSocket() {
|
|||
Metro.dialog.create({
|
||||
title: "<i class='fas fa-exclamation-triangle'></i> Grbl Error:",
|
||||
content: "<i class='fas fa-exclamation-triangle fg-red'></i> " + data,
|
||||
clsDialog: 'dark'
|
||||
clsDialog: 'dark',
|
||||
actions: [{
|
||||
caption: "OK",
|
||||
cls: "js-dialog-close alert closeErrorBtn",
|
||||
onclick: function() {
|
||||
socket.emit('clearAlarm', 2)
|
||||
}
|
||||
}]
|
||||
});
|
||||
setTimeout(function() {
|
||||
$(".closeErrorBtn").focus();
|
||||
}, 200, )
|
||||
//
|
||||
});
|
||||
|
||||
|
@ -586,7 +610,10 @@ function populatePortsMenu() {
|
|||
response += `<option value="` + laststatus.comms.interfaces.ports[i].comName + `">` + port.note + " " + laststatus.comms.interfaces.ports[i].comName.replace("/dev/tty.", "") + `</option>`;
|
||||
};
|
||||
if (!laststatus.comms.interfaces.ports.length) {
|
||||
response += `<option value="">Waiting for USB</option`
|
||||
response += `<option value="">Waiting for USB</option>`
|
||||
$("#driverBtn").show();
|
||||
} else {
|
||||
$("#driverBtn").hide();
|
||||
}
|
||||
response += `</optgroup></select>`
|
||||
var select = $("#portUSB").data("select");
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "OpenBuildsCONTROL",
|
||||
"version": "1.0.207",
|
||||
"version": "1.0.210",
|
||||
"license": "AGPL-3.0",
|
||||
"description": "Machine Interface Driver for OpenBuilds",
|
||||
"author": "github.com/openbuilds <webmaster@openbuilds.com>",
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
<svg class="quadrantField" width="65" height="65"><path class="bkg" d="M52.8,62.9H10.5c-5.5,0-10-4.5-10-10V10.5c0-5.5,4.5-10,10-10h42.3c5.5,0,10,4.5,10,10v42.3 C62.9,58.4,58.4,62.9,52.8,62.9z"></path><g class="area tl"><circle cx="11.8" cy="11.8" r="9.8"></circle><path id="XMLID_37_" d="M12.1,9.2h-1.7v7.4H8.5V9.2H6.7V7.4h5.5V9.2z"></path><path id="XMLID_39_" d="M12.9,16.6V7.4h1.9v7.4h2.7v1.7H12.9z"></path></g><g class="area tr"><circle cx="51.5" cy="11.8" r="9.8"></circle><path id="XMLID_13_" d="M51.1,9.2h-1.7v7.4h-1.9V9.2h-1.8V7.4h5.5V9.2z"></path><path id="XMLID_15_" d="M55.5,16.6l-1.1-3.3h-0.5v3.3h-1.9V8.7l1.4-1.3h3.9v5.8h-1l1.2,3.3H55.5z M55.3,11.6V9.2h-1.5v2.4H55.3z"></path></g><g class="area c"><circle cx="31.7" cy="31.7" r="9.8"></circle><path id="XMLID_19_" d="M32.5,34.7v-1.1h1.9v1.6l-1.3,1.3H29v-7.9l1.4-1.3h4v3.5h-1.9V29h-1.5v5.7H32.5z"></path></g><g class="area bl active"><circle cx="11.8" cy="51.5" r="9.8"></circle><path id="XMLID_30_" d="M12.3,52.5v3.8H8L6.7,55v-7.9h3.9l1.3,1.2v2.5L11,51.6L12.3,52.5z M10,50.8v-1.9H8.6v1.9H10z M10.3,54.5 v-2.1H8.6v2.1H10.3z"></path><path id="XMLID_34_" d="M13.1,56.3v-9.2H15v7.4h2.7v1.7H13.1z"></path></g><g class="area br"><circle cx="51.5" cy="51.5" r="9.8"></circle><path id="XMLID_22_" d="M51.2,52.5v3.8h-4.3L45.6,55v-7.9h3.9l1.3,1.2v2.5l-0.9,0.7L51.2,52.5z M48.9,50.8v-1.9h-1.4v1.9H48.9z M49.2,54.5v-2.1h-1.7v2.1H49.2z"></path><path id="XMLID_26_" d="M55.5,56.3L54.4,53h-0.5v3.3H52v-7.9l1.4-1.3h3.9v5.8h-1l1.2,3.3H55.5z M55.4,51.2v-2.4h-1.5v2.4H55.4z"></path></g></svg>
|
Po Szerokość: | Wysokość: | Rozmiar: 1.5 KiB |