diff --git a/app/img/xyzprobe/custom.png b/app/img/xyzprobe/custom.png new file mode 100644 index 0000000..05a614a Binary files /dev/null and b/app/img/xyzprobe/custom.png differ diff --git a/app/index.html b/app/index.html index d7fc094..713e18e 100644 --- a/app/index.html +++ b/app/index.html @@ -1465,10 +1465,13 @@ - + + @@ -1477,8 +1480,20 @@ - - + +
+
Edit Custom Probe
+
+ + + +
+
+ + +
+
+
diff --git a/app/js/probev2.js b/app/js/probev2.js index 2019f6c..ffa582f 100644 --- a/app/js/probev2.js +++ b/app/js/probev2.js @@ -14,6 +14,14 @@ var zprobeplate = { name: "OpenBuilds Z Touchplate", } +var customprobeplate = { + xoffset: 6, + yoffset: 6, + zoffset: 8, + xyzmode: true, + name: "Custom XYZ Touchplate", +} + var probemode = { mode: "auto", // auto, xyz, xzero, yzero, zzero, zplate, endmilldia endmilldia: 0, @@ -38,6 +46,10 @@ $(document).ready(function() { $(".needsXYZProbe").hide() } }); + +if (localStorage.getItem('customProbe')) { + customprobeplate = (JSON.parse(localStorage.getItem('customProbe'))) +} // still beta, lets hide it from users // if (!enableBetaFeatures) { // $(".needsXYZProbe").hide(); @@ -310,28 +322,34 @@ function probetype(type) { localStorage.setItem('probeType', type); if (type == "xyz") { $(".needsXYZProbe").show() - probemode.probe = xyzprobeplate // protoxyzprobeplate, xyzprobeplate, zprobeplate - var template = ` OpenBuilds XYZ Probe`; - $("#probetypebtn").html(template) - $(".probetabz").hide(); - $(".probetabxyz").show(); - probexyztab() - } else if (type == "protoxyz") { - $(".needsXYZProbe").show() - probemode.probe = protoxyzprobeplate // protoxyzprobeplate, xyzprobeplate, zprobeplate - var template = ` Prototype OpenBuilds XYZ Probe`; + probemode.probe = xyzprobeplate // customprobeplate, xyzprobeplate, zprobeplate + var template = ` OpenBuilds XYZ Probe`; $("#probetypebtn").html(template) $(".probetabz").hide(); $(".probetabxyz").show(); + $("#editCustomProbeBtn").hide() + $("#ProbeButtonBarSpacer").show() probexyztab() } else if (type == "z") { $(".needsXYZProbe").hide() - probemode.probe = zprobeplate // protoxyzprobeplate, xyzprobeplate, zprobeplate - var template = `OpenBuilds Z Touch Plate`; + probemode.probe = zprobeplate // customprobeplate, xyzprobeplate, zprobeplate + var template = `OpenBuilds Z Touch Plate`; $("#probetypebtn").html(template) $(".probetabxyz").hide(); $(".probetabz").show(); + $("#editCustomProbeBtn").hide() + $("#ProbeButtonBarSpacer").show() probezplatetab(); + } else if (type == "custom") { + $(".needsXYZProbe").show() + probemode.probe = customprobeplate // customprobeplate, xyzprobeplate, zprobeplate + var template = ` Custom XYZ Probe`; + $("#probetypebtn").html(template) + $(".probetabz").hide(); + $(".probetabxyz").show(); + $("#editCustomProbeBtn").show() + $("#ProbeButtonBarSpacer").hide() + probexyztab() } } @@ -370,7 +388,7 @@ function runProbeNew() { template += `Probe: Z:` + probemode.probe.zoffset + `\n` if (probemode.mode == "xyz" || probemode.mode == "xzero" || probemode.mode == "yzero" || probemode.mode == "zzero") { - probemode.endmilldia = $("#probediameterxyz").val(); + probemode.endmilldia = parseFloat($("#probediameterxyz").val()); template += `Endmill: ` + probemode.endmilldia + `mm\n` } @@ -416,7 +434,7 @@ function runProbeNew() { stockoffset.y = probemode.stock.y / 2 } - // alert(template) + 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 @@ -521,7 +539,7 @@ function runProbeNew() { 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 zoffset = parseFloat(probemode.probe.zoffset) // not *-1 as its offset in z pos var xyzmacro = ` ; Header @@ -533,29 +551,26 @@ function runProbeNew() { 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 + G0 Z` + (zoffset + 5) + ` ; retract ; Probe X - G0 X-20 ; position to left side - G0 Y15 ; and move forward a little to be closer to center of edge + G0 X-20 Y15 ; position to left side 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 Z` + (zoffset + 5) + ` ; 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 X15 Y-20 ; position to front side 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 Z` + (zoffset + 5) + ` ; retract G0 X0 Y0 ; return ` @@ -610,4 +625,22 @@ function rippleEffect(el, color) { timer = null; $(".ripple").remove(); }, 400); +} + +function editCustomProbe() { + Metro.dialog.open('#editCustomProbeDialog'); + $("#customProbeXOffset").val(customprobeplate.xoffset); + $("#customProbeYOffset").val(customprobeplate.yoffset); + $("#customProbeZOffset").val(customprobeplate.zoffset); +} + +function saveEditCustomProbe() { + customprobeplate = { + xoffset: parseFloat($("#customProbeXOffset").val()), + yoffset: parseFloat($("#customProbeYOffset").val()), + zoffset: parseFloat($("#customProbeZOffset").val()), + xyzmode: true, // stays + name: "Custom Z Touchplate", // stays + }; + localStorage.setItem('customProbe', JSON.stringify(customprobeplate)); } \ No newline at end of file diff --git a/package.json b/package.json index 6b803b0..58ee389 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "OpenBuildsCONTROL", - "version": "1.0.217-internal-test", + "version": "1.0.218-internal-test", "license": "AGPL-3.0", "description": "Machine Interface Driver for OpenBuilds", "author": "github.com/openbuilds ",