Gcode viewer working?
-
@sindarius oh, yeah. I'm a developer w/30 years of experience, so I can help debug with as detailed of instructions you want to give.
logger.js:33 BJS - [08:48:59]: Setting vertex data kind 'position' with an empty array Logger._WarnEnabled @ logger.js:33 2app.67de8741.js:42 Uncaught DOMException: Failed to execute 'setItem' on 'Storage': Setting the value of 'cache/192.168.50.154' exceeded the quota. at setLocalSetting (http://192.168.50.154/js/app.67de8741.js:42:623575) at Store.save (http://192.168.50.154/js/app.67de8741.js:42:473589) at Array.wrappedActionHandler (http://192.168.50.154/js/app.67de8741.js:42:7562) at Store.dispatch (http://192.168.50.154/js/app.67de8741.js:42:9058) at Store.boundDispatch [as dispatch] (http://192.168.50.154/js/app.67de8741.js:42:4651) at http://192.168.50.154/js/app.67de8741.js:42:602913 sindarius-gcodeviewer.es.js:1 Missing feature Internal perimeter value @ sindarius-gcodeviewer.es.js:1 value @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 tryCatch @ runtime.js:63 invoke @ runtime.js:294 (anonymous) @ runtime.js:119 A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 Promise.then (async) A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 tryCatch @ runtime.js:63 invoke @ runtime.js:294 (anonymous) @ runtime.js:119 A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 _callee$ @ GCodeViewer.vue:553 tryCatch @ runtime.js:63 invoke @ runtime.js:294 (anonymous) @ runtime.js:119 asyncGeneratorStep @ asyncToGenerator.js:3 _next @ asyncToGenerator.js:25 sindarius-gcodeviewer.es.js:1 Missing feature Internal bridge infill value @ sindarius-gcodeviewer.es.js:1 value @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 tryCatch @ runtime.js:63 invoke @ runtime.js:294 (anonymous) @ runtime.js:119 A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 Promise.then (async) A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 Promise.then (async) A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 Promise.then (async) A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 Promise.then (async) A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 Promise.then (async) A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 Promise.then (async) A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 Promise.then (async) A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 tryCatch @ runtime.js:63 invoke @ runtime.js:294 (anonymous) @ runtime.js:119 A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 _callee$ @ GCodeViewer.vue:553 tryCatch @ runtime.js:63 invoke @ runtime.js:294 (anonymous) @ runtime.js:119 asyncGeneratorStep @ asyncToGenerator.js:3 _next @ asyncToGenerator.js:25 sindarius-gcodeviewer.es.js:1 Missing feature Thin wall value @ sindarius-gcodeviewer.es.js:1 value @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 tryCatch @ runtime.js:63 invoke @ runtime.js:294 (anonymous) @ runtime.js:119 A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 Promise.then (async) A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 Promise.then (async) A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 Promise.then (async) A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 Promise.then (async) A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 Promise.then (async) A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 Promise.then (async) A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 Promise.then (async) A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 Promise.then (async) A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 Promise.then (async) A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 Promise.then (async) A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 Promise.then (async) A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 Promise.then (async) A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 Promise.then (async) A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 tryCatch @ runtime.js:63 invoke @ runtime.js:294 (anonymous) @ runtime.js:119 A @ sindarius-gcodeviewer.es.js:1 o @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 (anonymous) @ sindarius-gcodeviewer.es.js:1 _callee$ @ GCodeViewer.vue:553 tryCatch @ runtime.js:63 invoke @ runtime.js:294 (anonymous) @ runtime.js:119 asyncGeneratorStep @ asyncToGenerator.js:3 _next @ asyncToGenerator.js:25 vue.runtime.esm.js:1897 TypeError: Cannot read properties of undefined (reading 'getDiameter') at r.value (sindarius-gcodeviewer.es.js:1:11146) at e.<anonymous> (sindarius-gcodeviewer.es.js:1:45285) at tryCatch (runtime.js:63:40) at Generator.invoke [as _invoke] (runtime.js:294:22) at Generator.next (runtime.js:119:21) at A (sindarius-gcodeviewer.es.js:1:1642) at o (sindarius-gcodeviewer.es.js:1:1841) at sindarius-gcodeviewer.es.js:1:1900 at new Promise (<anonymous>) at e.<anonymous> (sindarius-gcodeviewer.es.js:1:1787)
-
@gnydick What slicer are you using?
-
@sindarius oh, FWIW, PrusaSlicer and SuperSlicer.
Also, I'm using the Edge browser. I just tried it in Vivaldi, and it worked. I'm about to download chrome and firefox and see how it goes. I looked at the storage in the browser and it's not actually full.
-
@gnydick Some of those errors are because the processor is not picking up the feature types in the gcode. I have parsers for PrusaSlicer and SuperSlicer so I may be missing some features there. I do most of my testing in Chrome and FireFox but I thought Edge was using Chromium internally now?
-
@sindarius it's working in firefox and chrome, then I changed some render settings in the 3d-viewer and now they get stuck at the same place as Edge.
Even after resetting the render quality settings, by unchecking all of the options like High Quality, Force Line Rendering, they still get stuck.
In a brand new browser no "quality" is highlighted: SBC, Low, etc. None of them are selected.
After choosing any one of them it seems to fail.
I just cleared the browser storage on Firefox and it is now rendering again.
-
@gnydick If you're running standalone and don't mind could you give 3.4.2-RC1 a shot (just updating the DWC should work)
https://github.com/Duet3D/DuetWebControl/releases/tag/v3.4.2-rc1
That has an updated version of the viewer. Would help to know if the problem persists with that version.
-
@sindarius sure
-
@gnydick DOMException: Failed to execute 'setItem' on 'Storage': Setting the value of 'cache/192.168.50.154' exceeded the quota.
-
@gnydick If you switch to line rendering will it render out the gcode?
-
@sindarius it's working now, but I can't quite explain the course of events. I cleared the storage again, maybe that was it. I'll downgrade and work on giving you exact repro.
-
@gnydick there was one error toward the end which mentioned the diameter so I am looking into that. I have not yet exposed setting tools as extruders/endmills yet in dwc
-
@sindarius it looks like when you click the "stop" icon to stop the rendering, that wedges it. After that, it will only ever load the first few layers of any model, no matter what the settings are, even with Force Line Rendering.
Missing feature Internal perimeter value @ sindarius-gcodeviewer.es.js:1 vue.runtime.esm.js:1897 TypeError: Cannot read properties of undefined (reading 'isAdditive') at r.value (sindarius-gcodeviewer.es.js:1:22142) at e.<anonymous> (sindarius-gcodeviewer.es.js:1:45285) at tryCatch (runtime.js:63:40) at Generator.invoke [as _invoke] (runtime.js:294:22) at Generator.next (runtime.js:119:21) at A (sindarius-gcodeviewer.es.js:1:1642) at o (sindarius-gcodeviewer.es.js:1:1841) at sindarius-gcodeviewer.es.js:1:1900 at new Promise (<anonymous>) at e.<anonymous> (sindarius-gcodeviewer.es.js:1:1787) logError @ vue.runtime.esm.js:1897
-
@gnydick that’s good info I’ll test that
-
@sindarius seems like with 3.4.1 I can't get it to render unless I wipe storage and pick literally no other options. Any other interaction and I get errors: the getDiameter, isAdditive.
-
@sindarius Also seems like with 3.4.2-rc1, after clearing storage, it's pretty reliable, even without Force Line Rendering
-
@gnydick do you have any plugins/ad blockers running that could be preventing the writes?
-
@sindarius I have extensions, but I don't know if any of them block writes. Mainly 1Password is the only thing enabled.
BTW, I have 4 tools, but there are Extruders 0, 1, 2, 3, & 4 showing up for a total of 5.
-
@gnydick the tools are defaulted at 5 in the DWC ui at the moment. I plan an overhaul of the UI soon to be closer to my test site at http://sindarius.com
-
@sindarius ah, gotcha. Are you going to make the 3dviewer a stand-alone plugin that can be upgraded independently, like the Input Shaping one?
-
@gnydick I may look at publishing a separate version of the plugin that can be upgraded more frequently that should allow both to be installed. I'd like to get through the UI redo first.
The tools were originally defaulted to 5 to support 5 extruder mixing hotends without having to read through configurations. It also allows me a way to support M600 by cycling through the tools in the viewer.
Sample with color mixing