diff --git a/package-lock.json b/package-lock.json index 5b4c570d5..e882d1dd9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "duetwebcontrol", - "version": "3.5.0-beta.3+pre2", + "version": "3.5.0-beta.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "duetwebcontrol", - "version": "3.5.0-beta.3+pre2", + "version": "3.5.0-beta.3", "license": "GPL-3.0", "dependencies": { "@babylonjs/core": "^5.53.0", @@ -14,7 +14,7 @@ "@babylonjs/materials": "^5.53.0", "@duet3d/motionanalysis": "^3.5.0-beta.1", "@duet3d/objectmodel": "^3.5.0-beta.24", - "@sindarius/gcodeviewer": "^3.6.2", + "@sindarius/gcodeviewer": "^3.7.1", "chart.js": "^2.9.4", "chartjs-adapter-date-fns": "^1.0.0", "compression-webpack-plugin": "^10.0.0", @@ -2161,9 +2161,9 @@ "dev": true }, "node_modules/@sindarius/gcodeviewer": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@sindarius/gcodeviewer/-/gcodeviewer-3.7.0.tgz", - "integrity": "sha512-4Cy68PyTfjPImt2Yf5FBpH6sqT23jRsAa9XOUYtsueF8qg8hC2utljQK56LXEhSLfLezavF0u+4ats/DHVQFJg==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@sindarius/gcodeviewer/-/gcodeviewer-3.7.1.tgz", + "integrity": "sha512-OjMSr7dX5aX0kR9+y7ubjefdogNkwGLxIV4lh3PGBFgwgO9f7eXImJVGeX519OG9s8E7kyAa6j4fsSR0eW1Ltg==", "dependencies": { "@babylonjs/core": "^5.53.0", "@babylonjs/inspector": "^5.53.0", diff --git a/package.json b/package.json index 5abfe899e..06cf71567 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "@babylonjs/materials": "^5.53.0", "@duet3d/motionanalysis": "^3.5.0-beta.1", "@duet3d/objectmodel": "^3.5.0-beta.24", - "@sindarius/gcodeviewer": "^3.6.2", + "@sindarius/gcodeviewer": "^3.7.1", "chart.js": "^2.9.4", "chartjs-adapter-date-fns": "^1.0.0", "compression-webpack-plugin": "^10.0.0", diff --git a/src/i18n/en.json b/src/i18n/en.json index 71675aff6..f9b6ad3ff 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -1015,7 +1015,8 @@ "zBelt": "Z Belt", "zBeltAngle": "Z Belt Gantry Angle", "showWorkplace": "Show Workplace", - "perimeterOnly": "Perimeter Only" + "perimeterOnly": "Perimeter Only", + "progressMode": "Progress Mode" }, "heightmap": { "menuCaption": "Height Map", diff --git a/src/plugins/GCodeViewer/GCodeViewer.vue b/src/plugins/GCodeViewer/GCodeViewer.vue index e381009da..98f2cfae9 100644 --- a/src/plugins/GCodeViewer/GCodeViewer.vue +++ b/src/plugins/GCodeViewer/GCodeViewer.vue @@ -246,7 +246,9 @@ + + @@ -486,7 +488,10 @@ export default { resizeDebounce: null, codeView: false, fileData: "", - perimeterOnly: false + perimeterOnly: false, + transparencyPercent: 50, + transparencyDebounce: null, + progressMode: false }; }, computed: { @@ -641,7 +646,7 @@ export default { viewer = new gcodeViewer(this.$refs.viewerCanvas); viewer.fileData = ""; await viewer.init(); - + viewer.simulationMultiplier = 1; viewer.buildObjects.objectCallback = this.objectSelectionCallback; viewer.buildObjects.labelCallback = (label) => { @@ -727,10 +732,7 @@ export default { this.$root.$on('view-3d-model', this.viewModelEvent); this.$nextTick(() => { - viewer.gcodeProcessor.resetTools(); - for (let idx = 0; idx < this.toolColors.length; idx++) { - viewer.gcodeProcessor.addTool(this.toolColors[idx], 0.4); //hard code the nozzle size for now. - } + this.updateTools(); this.updateWorkplaces(); }); @@ -795,7 +797,8 @@ export default { } this.colorDebounce = setTimeout(() => { setPluginData('GCodeViewer', PluginDataType.machineCache, 'toolColors', this.toolColors); - }, 1000); + viewer.gcodeProcessor.forceRedraw(); + }, 200); }, updateBackground(value) { this.backgroundColor = value; @@ -873,6 +876,8 @@ export default { }, resetExtruderColors() { this.toolColors = ['#00FFFF', '#FF00FF', '#FFFF00', '#000000', '#FFFFFF']; + this.updateTools(); + viewer.gcodeProcessor.forceRedraw(); }, async reloadviewer() { if (this.loading) { @@ -938,6 +943,7 @@ export default { viewer.gcodeProcessor.useHighQualityExtrusion(this.useHQRendering); viewer.gcodeProcessor.perimeterOnly = this.perimeterOnly; viewer.gcodeProcessor.currentWorkplace = this.currentWorkplace; + viewer.gcodeProcessor.progressMode = this.progressMode; viewer.setZBelt(this.zBelt, this.zBeltAngle); if(this.g1AsExtrusion){ this.renderQuality = 5; @@ -1012,7 +1018,13 @@ export default { } } viewer.setWorkplaceVisiblity(this.showWorkplace); - } + }, + updateTools() { + viewer.gcodeProcessor.resetTools(); + for (let idx = 0; idx < this.toolColors.length; idx++) { + viewer.gcodeProcessor.addTool(this.toolColors[idx], 0.4); //hard code the nozzle size for now. + } + }, }, activated() { viewer.pause = false; @@ -1099,7 +1111,7 @@ export default { }, 'isJobRunning': function (newValue) { //Need to add a check for paused... - viewer.gcodeProcessor.setliveTracking(newValue); + viewer.gcodeProcessor.setLiveTracking(newValue); if (!newValue) { viewer.gcodeProcessor.doFinalPass(); } @@ -1179,6 +1191,19 @@ export default { }, showWorkplace() { this.updateWorkplaces(); + }, + 'toolColors': { + handler() { + this.updateTools(); + }, + deep: true + }, + transparencyPercent(to) { + viewer.gcodeProcessor.setTransparencyValue(to / 100); + viewer.gcodeProcessor.forceRedraw(); + }, + async progressMode() { + await this.reloadviewer() } }, };