From 353cbb0eea758b94944e01cfe74d1b6d6ff94a84 Mon Sep 17 00:00:00 2001 From: David Carley Date: Tue, 2 Mar 2021 07:56:53 -0800 Subject: [PATCH 01/10] Pinned cbang, updated .gitignore, bumped version --- .gitignore | 3 +++ Makefile | 1 + package.json | 2 +- src/py/bbctrl/Config.py | 6 ++++-- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 2157929..8f3cf82 100644 --- a/.gitignore +++ b/.gitignore @@ -19,7 +19,10 @@ __pycache__ *.deb *.zip /rpi-share +/rpi-root /package-lock.json +/src/bbserial/linux-rpi-raspberrypi-kernel* +/src/bbserial/raspberrypi-kernel* *.elf *.hex diff --git a/Makefile b/Makefile index ee8c2c6..6803221 100644 --- a/Makefile +++ b/Makefile @@ -60,6 +60,7 @@ $(GPLAN_MOD): $(GPLAN_IMG) ./scripts/gplan-init-build.sh git -C rpi-share/cbang fetch git -C rpi-share/cbang reset --hard FETCH_HEAD + git -C rpi-share/cbang checkout 18f1e963107ef26abe750c023355a5c40dd07853 git -C rpi-share/camotics fetch git -C rpi-share/camotics reset --hard FETCH_HEAD git -C rpi-share/camotics checkout ec876c80d20fc19837133087cef0c447df5a939d diff --git a/package.json b/package.json index 1e3b07e..c8da749 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bbctrl", - "version": "1.0.6", + "version": "1.0.7b0", "homepage": "https://onefinitycnc.com/", "repository": "https://github.com/OneFinityCNC/onefinity", "license": "GPL-3.0+", diff --git a/src/py/bbctrl/Config.py b/src/py/bbctrl/Config.py index 0034cfe..83d61c8 100644 --- a/src/py/bbctrl/Config.py +++ b/src/py/bbctrl/Config.py @@ -137,7 +137,9 @@ class Config(object): def upgrade(self, config): - version = tuple(map(int, config['version'].split('.'))) + version = config['version'] + version = version.split('b')[0] # Strip off any "beta" suffix + version = tuple(map(int, version.split('.'))) # Break it into a tuple of integers if version < (0, 2, 4): for motor in config['motors']: @@ -177,7 +179,7 @@ class Config(object): self._update(config, False) with open(self.ctrl.get_path('config.json'), 'w') as f: - json.dump(config, f) + json.dump(config, f, indent=2) os.sync() From 5d52a06322bbabef7b69f3160f0cf04ea90c64e2 Mon Sep 17 00:00:00 2001 From: David Carley Date: Tue, 2 Mar 2021 08:11:21 -0800 Subject: [PATCH 02/10] "parallel build" flag for cbang/camotics builds --- scripts/gplan-build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/gplan-build.sh b/scripts/gplan-build.sh index a21237d..f294014 100755 --- a/scripts/gplan-build.sh +++ b/scripts/gplan-build.sh @@ -1,6 +1,6 @@ #!/bin/bash -ex cd /mnt/host -scons -C cbang disable_local="re2 libevent" +scons -j 8 -C cbang disable_local="re2 libevent" export CBANG_HOME="/mnt/host/cbang" -scons -C camotics gplan.so with_gui=0 with_tpl=0 +scons -j 8 -C camotics gplan.so with_gui=0 with_tpl=0 From 4a23455621847193ec22e89bd41bd427422e4a7d Mon Sep 17 00:00:00 2001 From: David Carley Date: Tue, 2 Mar 2021 10:16:24 -0800 Subject: [PATCH 03/10] Implemented a probe continuity test before probing --- src/js/app.js | 13 +++++++++---- src/js/control-view.js | 29 +++++++++++++++++++++-------- src/pug/templates/control-view.pug | 20 +++++++++++++++++--- 3 files changed, 47 insertions(+), 15 deletions(-) diff --git a/src/js/app.js b/src/js/app.js index e2555ad..f724022 100644 --- a/src/js/app.js +++ b/src/js/app.js @@ -359,13 +359,13 @@ module.exports = new Vue({ // }, get_ip_address : function() { - console.debug('get_ip>', this.ipAddress); - return this.ipAddress; + console.debug('get_ip>', this.ipAddress); + return this.ipAddress; }, get_ssid : function() { - console.debug('get_ssid>', this.wifiSSID); - return this.wifiSSID; + console.debug('get_ssid>', this.wifiSSID); + return this.wifiSSID; }, // get_disk_space : function() { @@ -408,6 +408,11 @@ module.exports = new Vue({ } update_object(this.state, e.data, false); + + if (this.state.pw === 0) { + Vue.set(this.state, "probe_connected", true); + } + this.$broadcast('update'); }.bind(this) diff --git a/src/js/control-view.js b/src/js/control-view.js index b0ca095..15ff114 100644 --- a/src/js/control-view.js +++ b/src/js/control-view.js @@ -67,6 +67,7 @@ module.exports = { deleteGCode: false, tab: 'auto', jog_incr: 1.0, + probe_test: false, tool_msg: false, tool_diameter: 6.35, toolpath_msg: {x: false, y: false, z: false, a: false, b: false, c: false}, @@ -259,8 +260,27 @@ module.exports = { }, - set_tool_diameter : function (new_diameter) { + start_probe_test: function(on_finish) { + this.probe_test = true; + Vue.set(this.state, "probe_connected", false); + Vue.set(this.state, "on_probe_finish", on_finish); + }, + finish_probe_test: function() { + this.probe_test = false; + Vue.set(this.state, "probe_connected", false); + + const on_finish = this.state.on_probe_finish; + Vue.set(this.state, "on_probe_finish", undefined); + + on_finish(); + }, + + show_tool_diameter_prompt: function() { + this.tool_msg = true; + }, + + set_tool_diameter : function (new_diameter) { if(isNaN(new_diameter)) return; @@ -269,7 +289,6 @@ module.exports = { this.tool_diameter = parseFloat(new_diameter); this.probe_xyz(); - }, set_jog_incr: function(newValue) { @@ -334,7 +353,6 @@ module.exports = { var zoffset = this.config.probe["probe-zdim"]; var fastSeek = this.config.probe["probe-fast-seek"]; var slowSeek = this.config.probe["probe-slow-seek"]; - debugger; if(this.mach_units == "METRIC") { @@ -442,8 +460,6 @@ module.exports = { var slowSeek = this.config.probe["probe-slow-seek"]; var zoffset = this.config.probe["probe-zdim"]; - debugger; - if(this.mach_units == "METRIC") { fastSeek = "F" + fastSeek; slowSeek = "F" + slowSeek; @@ -488,9 +504,6 @@ module.exports = { var zcmd = "Z" + z_jog * this.jog_incr; var acmd = "A" + a_jog * this.jog_incr; - console.log("Jog command: " + this.jog_incr); - //debugger; - this.send('G91\nG0' + xcmd + ycmd + zcmd + acmd + '\n'); }, diff --git a/src/pug/templates/control-view.pug b/src/pug/templates/control-view.pug index bad4a5f..dd8f96e 100644 --- a/src/pug/templates/control-view.pug +++ b/src/pug/templates/control-view.pug @@ -308,7 +308,21 @@ script#control-view-template(type="text/x-template") .bar(:style="'width:' + (progress || 0) * 100 + '%'") tr td(style="white-space: nowrap;text-align:center") - button(:class="state['pw'] ? '' : 'load-on'",style="height:100px;width:200px",@click="tool_msg = true",) Probe XYZ + message(:show.sync=`probe_test`) + h3(slot="header") Test probe connection + + div(slot="body") + .pure-form + p Attach the probe magnet to the collet. + p Touch the probe block to the bit. + + div(slot="footer") + button.pure-button(@click=`probe_test = false`) + | Cancel + + button.pure-button.button-success( + :disabled=`!state.probe_connected` + @click=`finish_probe_test()`) Continue message(:show.sync=`tool_msg`) h3(slot="header") Enter probe tool information @@ -328,9 +342,9 @@ script#control-view-template(type="text/x-template") button.pure-button.button-success( @click=`set_tool_diameter(tool_diameter)`) Set + button(:class="state['pw'] ? '' : 'load-on'", style="height:100px;width:200px", @click=`start_probe_test(show_tool_diameter_prompt)`) Probe XYZ + button(:class="state['pw'] ? '' : 'load-on'", style="height:100px;width:200px", @click=`start_probe_test(probe_z)`) Probe Z - button(:class="state['pw'] ? '' : 'load-on'",style="height:100px;width:200px",@click="probe_z()") Probe Z - .tabs From 6438d8849f2c3995978a2fd5f0d901166d0e43bf Mon Sep 17 00:00:00 2001 From: David Carley Date: Tue, 2 Mar 2021 10:18:39 -0800 Subject: [PATCH 04/10] Fixed the file dropdown showing old files --- src/py/bbctrl/State.py | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/py/bbctrl/State.py b/src/py/bbctrl/State.py index 80ff92f..2bb42fc 100644 --- a/src/py/bbctrl/State.py +++ b/src/py/bbctrl/State.py @@ -105,7 +105,7 @@ class State(object): def load_files(self): - self.files = [] + files = [] upload = self.ctrl.get_upload() @@ -116,37 +116,38 @@ class State(object): for path in os.listdir(upload): if os.path.isfile(upload + '/' + path): - self.files.append(path) + files.append(path) - self.files.sort() - self.set('files', self.files) + files.sort() + self.set('files', files) - if len(self.files): self.select_file(self.files[0]) + if len(files): self.select_file(files[0]) else: self.select_file('') def clear_files(self): self.select_file('') - self.files = [] - self.changes['files'] = self.files + self.set('files', []) def add_file(self, filename): - if not filename in self.files: - self.files.append(filename) - self.files.sort() - self.changes['files'] = self.files + files = copy.deepcopy(self.get('files')) + if not filename in files: + files.append(filename) + files.sort() + self.set('files', files) self.select_file(filename) def remove_file(self, filename): - if filename in self.files: - self.files.remove(filename) - self.changes['files'] = self.files + files = copy.deepcopy(self.get('files')) + if filename in files: + files.remove(filename) + self.set('files', files) if self.get('selected', filename) == filename: - if len(self.files): self.select_file(self.files[0]) + if len(files): self.select_file(files[0]) else: self.select_file('') From 1b32eeacc49e2b51bdf6b168bfb8904b37f14497 Mon Sep 17 00:00:00 2001 From: David Carley Date: Tue, 2 Mar 2021 10:20:16 -0800 Subject: [PATCH 05/10] A little dead code cleanup --- src/js/admin-general-view.js | 44 +++++++++++++++--------------------- src/py/bbctrl/Planner.py | 2 +- 2 files changed, 19 insertions(+), 27 deletions(-) diff --git a/src/js/admin-general-view.js b/src/js/admin-general-view.js index 049ea25..e4ba39c 100644 --- a/src/js/admin-general-view.js +++ b/src/js/admin-general-view.js @@ -73,14 +73,12 @@ module.exports = { restore: function (e) { - debugger; var files = e.target.files || e.dataTransfer.files; if (!files.length) return; var fr = new FileReader(); fr.onload = function (e) { var config; - debugger; try { config = JSON.parse(e.target.result); } catch (ex) { @@ -111,18 +109,15 @@ module.exports = { cache: false }).done(function (data) { - debugger; - //console.debug('>', data); - //this.default_config = data; - var config; - try { - config = JSON.parse(data); - } catch(ex) { - api.alert("Invalid default config file"); - return; - } - - api.put('config/save', config).done(function (data) { + var config; + try { + config = JSON.parse(data); + } catch(ex) { + api.alert("Invalid default config file"); + return; + } + + api.put('config/save', config).done(function (data) { this.confirmReset = false; this.$dispatch('update'); @@ -149,18 +144,15 @@ module.exports = { cache: false }).done(function (data) { - debugger; - //console.debug('>', data); - //this.default_config = data; - var config; - try { - config = JSON.parse(data); - } catch(ex) { - api.alert("Invalid default config file"); - return; - } - - api.put('config/save', config).done(function (data) { + var config; + try { + config = JSON.parse(data); + } catch(ex) { + api.alert("Invalid default config file"); + return; + } + + api.put('config/save', config).done(function (data) { this.confirmReset = false; this.$dispatch('update'); diff --git a/src/py/bbctrl/Planner.py b/src/py/bbctrl/Planner.py index 0b2e1b3..e5fc20b 100644 --- a/src/py/bbctrl/Planner.py +++ b/src/py/bbctrl/Planner.py @@ -381,7 +381,7 @@ class Planner(): except RuntimeError as e: # Pass on the planner message - self.log.error(str(e)); + self.log.error(str(e)) self.stop() except: From a6180ba120a044b42618af7952d39d1dba432a5f Mon Sep 17 00:00:00 2001 From: David Carley Date: Tue, 2 Mar 2021 15:29:22 -0800 Subject: [PATCH 06/10] Better support for large gcode files --- src/js/gcode-viewer.js | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/src/js/gcode-viewer.js b/src/js/gcode-viewer.js index 658382c..633a8d5 100644 --- a/src/js/gcode-viewer.js +++ b/src/js/gcode-viewer.js @@ -80,33 +80,29 @@ module.exports = { methods: { - load: function (file) { + load: async function(file) { if (file == this.file) return; this.clear(); this.file = file; if (!file) return; - var xhr = new XMLHttpRequest(); - xhr.open('GET', '/api/file/' + file + '?' + Math.random(), true); - xhr.responseType = 'text'; + const response = await fetch(`/api/file/${file}?${Math.random()}`); + const text = await response.text(); - xhr.onload = function (e) { - if (this.file != file) return; - var lines = escapeHTML(xhr.response.trimRight()).split(/\r?\n/); - - for (var i = 0; i < lines.length; i++) { - lines[i] = '
  • ' + - '' + (i + 1) + '' + lines[i] + '
  • '; - } + if (text.length > 20e6) { + this.clusterize.update(['File is large - gcode view disabled']); + } else { + const lines = escapeHTML(text.trimRight()) + .split(/[\r\n]/) + .map((line, i) => `
  • ${i + 1}${line}
  • `); this.clusterize.update(lines); - this.empty = false; + } - Vue.nextTick(this.update_line); - }.bind(this) + this.empty = false; - xhr.send(); + Vue.nextTick(this.update_line); }, From d752fd2b766cf2df49b2a7540c6cac755e05cdcf Mon Sep 17 00:00:00 2001 From: David Carley Date: Tue, 2 Mar 2021 18:42:34 -0800 Subject: [PATCH 07/10] Fixed the issue where the UI becomes unresponsive on the first file upload --- src/js/control-view.js | 20 ++++-- src/pug/templates/control-view.pug | 100 ++++++++++++++--------------- 2 files changed, 62 insertions(+), 58 deletions(-) diff --git a/src/js/control-view.js b/src/js/control-view.js index b0ca095..67412d9 100644 --- a/src/js/control-view.js +++ b/src/js/control-view.js @@ -511,15 +511,23 @@ module.exports = { }, - load_toolpath: function (file, file_time) { + load_toolpath: async function (file, file_time) { this.toolpath = {}; if (!file) return; - - api.get('path/' + file).done(function (toolpath) { if (this.last_file_time != file_time) return; + this.showGcodeMessage = true; + + let done; + while (!done) { + const toolpath = await api.get(`path/${file}`); + + console.log("toolpath progress: ", toolpath.progress); + if (typeof toolpath.progress == 'undefined') { + console.log("done loading toolpath"); + done = true; toolpath.filename = file; this.toolpath_progress = 1; this.showGcodeMessage = false; @@ -531,13 +539,11 @@ module.exports = { Vue.set(state, 'path_min_' + axis, bounds.min[axis]); Vue.set(state, 'path_max_' + axis, bounds.max[axis]); } - } else { - this.showGcodeMessage = true; + console.log("Still loading toolpath"); this.toolpath_progress = toolpath.progress; - this.load_toolpath(file, file_time); // Try again } - }.bind(this)); + } }, diff --git a/src/pug/templates/control-view.pug b/src/pug/templates/control-view.pug index bad4a5f..528f4d6 100644 --- a/src/pug/templates/control-view.pug +++ b/src/pug/templates/control-view.pug @@ -27,6 +27,54 @@ script#control-view-template(type="text/x-template") #control + message(:show.sync="showGcodeMessage") + h3(slot="header") Processing New File + + div(slot="body") + h3 Please wait.. + p Simulating GCode to check for errors, calculate ETA and generate 3D view. + + div(slot="footer") + label Simulating {{(toolpath_progress || 0) | percent}} + + message(:show.sync=`ask_home_msg`) + h3(slot="header") Home Machine + + div(slot="body") + p Home the machine? + + div(slot="footer") + button.pure-button(@click="home()") + | OK + + button.pure-button(@click='ask_home_msg = false; ask_home = false') + | Cancel + + message(:show.sync=`ask_zero_xy_msg`) + h3(slot="header") XY Origin + + div(slot="body") + p Move to XY origin? + + div(slot="footer") + button.pure-button(@click="goto_zero(1,1,0,0)") + | Confirm + + button.pure-button(@click='ask_zero_xy_msg = false') + | Cancel + + message(:show.sync=`ask_zero_z_msg`) + h3(slot="header") Z Origin + + div(slot="body") + p Move to Z origin? + + div(slot="footer") + button.pure-button(@click="goto_zero(0,0,1,0)") + | Confirm + + button.pure-button(@click='ask_zero_z_msg = false') + | Cancel table(width="99%") tr @@ -87,7 +135,7 @@ script#control-view-template(type="text/x-template") button.pure-button(title="Home all axes.", @click="home()", :disabled="!is_idle",style="height:60px;width:60px") .fa.fa-home - + each axis in 'xyzabc' tr.axis(:class=`${axis}.klass`, v-if=`${axis}.enabled`, :title=`${axis}.title`) @@ -114,56 +162,6 @@ script#control-view-template(type="text/x-template") button.pure-button(@click=`toolpath_msg['${axis}'] = false`) | OK - - message(:show.sync="showGcodeMessage") - h3(slot="header") Processing New File - - div(slot="body") - h3 Please wait.. - p Simulating GCode to check for errors, calculate ETA and generate 3D view. - - div(slot="footer") - label Simulating {{(toolpath_progress || 0) | percent}} - - message(:show.sync=`ask_home_msg`) - h3(slot="header") Home Machine - - div(slot="body") - p Home the machine? - - div(slot="footer") - button.pure-button(@click="home()") - | OK - - button.pure-button(@click='ask_home_msg = false; ask_home = false') - | Cancel - - message(:show.sync=`ask_zero_xy_msg`) - h3(slot="header") XY Origin - - div(slot="body") - p Move to XY origin? - - div(slot="footer") - button.pure-button(@click="goto_zero(1,1,0,0)") - | Confirm - - button.pure-button(@click='ask_zero_xy_msg = false') - | Cancel - - message(:show.sync=`ask_zero_z_msg`) - h3(slot="header") Z Origin - - div(slot="body") - p Move to Z origin? - - div(slot="footer") - button.pure-button(@click="goto_zero(0,0,1,0)") - | Confirm - - button.pure-button(@click='ask_zero_z_msg = false') - | Cancel - th.actions button.pure-button(:disabled="!can_set_axis", title=`Set {{'${axis}' | upper}} axis position.`, From e9330f06848478be446cbcfc0047306ba851a515 Mon Sep 17 00:00:00 2001 From: David Carley Date: Tue, 2 Mar 2021 18:44:13 -0800 Subject: [PATCH 08/10] Removed debugging code --- src/js/control-view.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/js/control-view.js b/src/js/control-view.js index 67412d9..4984f4c 100644 --- a/src/js/control-view.js +++ b/src/js/control-view.js @@ -519,14 +519,11 @@ module.exports = { this.showGcodeMessage = true; - let done; + let done = false; while (!done) { const toolpath = await api.get(`path/${file}`); - console.log("toolpath progress: ", toolpath.progress); - if (typeof toolpath.progress == 'undefined') { - console.log("done loading toolpath"); done = true; toolpath.filename = file; this.toolpath_progress = 1; @@ -540,7 +537,6 @@ module.exports = { Vue.set(state, 'path_max_' + axis, bounds.max[axis]); } } else { - console.log("Still loading toolpath"); this.toolpath_progress = toolpath.progress; } } From 21c9448da6edea367fb8b468a756047ff5ba15c7 Mon Sep 17 00:00:00 2001 From: David Carley Date: Tue, 2 Mar 2021 19:58:12 -0800 Subject: [PATCH 09/10] Refactored the probing code --- src/js/control-view.js | 229 ++++++++++++++++------------------------- 1 file changed, 88 insertions(+), 141 deletions(-) diff --git a/src/js/control-view.js b/src/js/control-view.js index b0ca095..2657ead 100644 --- a/src/js/control-view.js +++ b/src/js/control-view.js @@ -328,158 +328,105 @@ module.exports = { }, probe_xyz() { - var pcmd = ""; - var xoffset = this.config.probe["probe-xdim"]; - var yoffset = this.config.probe["probe-ydim"]; - var zoffset = this.config.probe["probe-zdim"]; - var fastSeek = this.config.probe["probe-fast-seek"]; - var slowSeek = this.config.probe["probe-slow-seek"]; - debugger; + let xoffset = this.config.probe["probe-xdim"]; + let yoffset = this.config.probe["probe-ydim"]; + let zoffset = this.config.probe["probe-zdim"]; + let fastSeek = this.config.probe["probe-fast-seek"]; + let slowSeek = this.config.probe["probe-slow-seek"]; - if(this.mach_units == "METRIC") { + xoffset += this.tool_diameter / 2.0; + yoffset += this.tool_diameter / 2.0; - fastSeek = "F" + fastSeek; - slowSeek = "F" + slowSeek; - - //Metric Probing - pcmd += "G92 X0\n"; - pcmd += "G92 Y0\n"; - pcmd += "G92 Z0\n"; - pcmd += "G21\n"; - pcmd += "G38.2 Z-25.4 " + fastSeek + "\n"; - pcmd += "G91 G0 Z1.5\n"; - pcmd += "G38.2 Z-2.5 " + slowSeek + "\n"; - - //var zoffset = 16.383; - pcmd += "G92 Z " + zoffset + "\n"; - - pcmd += "G91 G0 Z 3.175\n"; - pcmd += "G91 G0 X 19.05\n"; - pcmd += "G91 G0 Z -12.7\n"; - pcmd += "G38.2 X -19.05 " + fastSeek + "\n"; - pcmd += "G91 G1 X 1.27 " + fastSeek +"\n"; - pcmd += "G38.2 X -4 " + slowSeek + "\n"; - - xoffset += this.tool_diameter/2.0; - xoffset = xoffset.toFixed(5); - pcmd += "G92 X " + xoffset + "\n"; - - pcmd += "G91 G0 X 2.5\n"; - pcmd += "G91 G0 Y 17\n"; - pcmd += "G91 G0 X -13\n"; - pcmd += "G38.2 Y -17 " + fastSeek + "\n"; - pcmd += "G91 G0 Y 1.27\n"; - pcmd += "G38.2 Y -4 " + slowSeek +"\n"; - - yoffset += this.tool_diameter/2.0; - yoffset = yoffset.toFixed(5); - pcmd += "G92 Y " + yoffset + "\n"; - - pcmd += "G91 G0 Y2.54\n"; - pcmd += "G91 G0 Z 25.4\n"; - pcmd += "G90 G0 X0 Y0\n"; - } else { - - //Imperial Probing - - xoffset = xoffset / 25.4; - yoffset = yoffset / 25.4; - zoffset = zoffset / 25.4; - slowSeek = slowSeek / 25.4; - slowSeek = slowSeek.toFixed(5); - slowSeek = "F" + slowSeek; - fastSeek = fastSeek / 25.4; - fastSeek = fastSeek.toFixed(5); - fastSeek = "F" + fastSeek; - - pcmd += "G92 X0\n"; - pcmd += "G92 Y0\n"; - pcmd += "G92 Z0\n"; - pcmd += "G20\n"; - pcmd += "G38.2 Z-1.0 " + fastSeek + "\n"; - pcmd += "G91 G0 Z0.06\n"; - pcmd += "G38.2 Z-0.1 " + slowSeek + "\n"; - - //var zoffset = 0.645; - zoffset = zoffset.toFixed(5); - pcmd += "G92 Z " + zoffset + "\n"; - - - pcmd += "G91 G0 Z 0.125\n"; - pcmd += "G91 G0 X 0.75\n"; - pcmd += "G91 G0 Z -0.5\n"; - pcmd += "G38.2 X -0.75 " + fastSeek + "\n"; - pcmd += "G91 G1 X 0.05 " + fastSeek + "\n"; - pcmd += "G38.2 X -0.15 " + slowSeek + "\n"; - - xoffset += this.tool_diameter/2.0; - xoffset = xoffset.toFixed(5); - pcmd += "G92 X " + xoffset + "\n"; - - pcmd += "G91 G0 X 0.1\n"; - pcmd += "G91 G0 Y 0.75\n"; - pcmd += "G91 G0 X -0.5\n"; - pcmd += "G38.2 Y -0.75 " + fastSeek + "\n"; - pcmd += "G91 G0 Y 0.05\n"; - pcmd += "G38.2 Y -0.15 " + slowSeek +"\n"; - - yoffset += this.tool_diameter/2.0; - yoffset = yoffset.toFixed(5); - pcmd += "G92 Y " + yoffset + "\n"; - - pcmd += "G91 G0 Y0.1\n"; - pcmd += "G91 G0 Z1\n"; - pcmd += "G90 G0 X0 Y0\n"; + if (this.mach_units !== "METRIC") { + xoffset /= 25.4; + yoffset /= 25.4; + zoffset /= 25.4; + slowSeek /= 25.4; + fastSeek /= 25.4; } + + const zlift = 1; + + // After probing Z, we want to drop the bit down: + // Ideally, 12.7mm/0.5in + // And we don't want to be more than 75% down on the probe block + let plunge = Math.min(12.7, zoffset * 0.75); + plunge += zlift; // Compensate for the fact that we lift after probing Z + + xoffset = xoffset.toFixed(5); + yoffset = yoffset.toFixed(5); + zoffset = zoffset.toFixed(5); + slowSeek = slowSeek.toFixed(5); + fastSeek = fastSeek.toFixed(5); + plunge = plunge.toFixed(5); + + slowSeek = `F${slowSeek}`; + fastSeek = `F${fastSeek}`; + + this.send(` + G21 + G92 X0 Y0 Z0 + + G38.2 Z -25.4 ${fastSeek} + G91 G1 Z 1 + G38.2 Z -2 ${slowSeek} + G92 Z ${zoffset} + + G91 G0 Z ${zlift} + G91 G0 X 20 + G91 G0 Z -${plunge} + G38.2 X -20 ${fastSeek} + G91 G1 X 1 + G38.2 X -2 ${slowSeek} + G92 X ${xoffset} - this.send(pcmd); + G91 G0 X 1 + G91 G0 Y 20 + G91 G0 X -20 + G38.2 Y -20 ${fastSeek} + G91 G1 Y 1 + G38.2 Y -2 ${slowSeek} + G92 Y ${yoffset} + G91 G0 Y 3 + G91 G0 Z 25.4 + G90 G0 X0 Y0 + + M2 + `); }, probe_z() { - var pcmd = ""; - var fastSeek = this.config.probe["probe-fast-seek"]; - var slowSeek = this.config.probe["probe-slow-seek"]; - var zoffset = this.config.probe["probe-zdim"]; - - debugger; - - if(this.mach_units == "METRIC") { - fastSeek = "F" + fastSeek; - slowSeek = "F" + slowSeek; - - - pcmd += "G92 Z0\n"; - pcmd += "G21\n"; - pcmd += "G38.2 Z-25 " + fastSeek + "\n"; - pcmd += "G91 G0 Z1.5\n"; - pcmd += "G38.2 Z-2.5 " + slowSeek + "\n"; - pcmd += "G92 Z " + zoffset + "\n"; - pcmd += "G91 G0 Z3\n"; - - - } else { - zoffset = zoffset / 25.4; - slowSeek = slowSeek / 25.4; - slowSeek = slowSeek.toFixed(5); - slowSeek = "F" + slowSeek; - fastSeek = fastSeek / 25.4; - fastSeek = fastSeek.toFixed(5); - fastSeek = "F" + fastSeek; - - pcmd += "G92 Z0\n"; - pcmd += "G20\n"; - pcmd += "G38.2 Z-1.0 " + fastSeek +"\n"; - pcmd += "G91 G0 Z0.06\n"; - pcmd += "G38.2 Z-0.1 " + slowSeek + "\n"; - zoffset = zoffset.toFixed(5); - pcmd += "G92 Z " + zoffset + "\n"; - pcmd += "G91 G0 Z0.125\n"; + let fastSeek = this.config.probe["probe-fast-seek"]; + let slowSeek = this.config.probe["probe-slow-seek"]; + let zoffset = this.config.probe["probe-zdim"]; + if (this.mach_units !== "METRIC") { + zoffset /= 25.4; + slowSeek /= 25.4; + fastSeek /= 25.4; } - - this.send(pcmd); + zoffset = zoffset.toFixed(5); + slowSeek = slowSeek.toFixed(5); + fastSeek = fastSeek.toFixed(5); + + slowSeek = `F${slowSeek}`; + fastSeek = `F${fastSeek}`; + + this.send(` + G21 + G92 Z0 + + G38.2 Z -25.4 ${fastSeek} + G91 G1 Z 1 + G38.2 Z -2 ${slowSeek} + G92 Z ${zoffset} + + G91 G0 Z3 + + M2 + `); }, jog_fn: function (x_jog,y_jog,z_jog,a_jog) { From c43b14479f03d133f2ca2b197fd2d8d1c57cb7e4 Mon Sep 17 00:00:00 2001 From: OneFinityCNC <69640545+OneFinityCNC@users.noreply.github.com> Date: Tue, 2 Mar 2021 23:40:08 -0500 Subject: [PATCH 10/10] Updated Makefile with OneFinity hostname and default password --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 6803221..401d467 100644 --- a/Makefile +++ b/Makefile @@ -31,11 +31,11 @@ WATCH := src/pug src/pug/templates src/stylus src/js src/resources Makefile WATCH += src/static ifndef HOST -HOST=bbctrl.local +HOST=onefinity.local endif ifndef PASSWORD -PASSWORD=buildbotics +PASSWORD=onefinity endif