Hello - I am running SPJS 1.92 and using the GRBL workspace.
I am using the Eagle BRD import and autoleveling and have come across an issue. I import my Eagle file and do my configuration changes and click the “Send Gcode to Workspace” button on the BRD import. The dimensions and estimated time etc info disappears and there is an error (repeated 292 times) in the console:
geturl?url=http://threejs.org/build/three.js:31707 Uncaught TypeError: Failed to execute ‘uniform3fv’ on ‘WebGLRenderingContext’: No function was found that matched the signature provided.
The workaround I came up with was to finish my Eagle BRD import settings (speeds, depths etc), click “Send Gcode to Workspace” - click the “Gcode” tab inside the BRD widget, scroll to the bottom, copy the generated Gcode and import the code via the textarea option when expanding the “Drag and drop” button in the top-left widget. Then I could autolevel and mill as usual.
My gut is this is that there are inconsistent references to Three.js with respect to the URL being pointed to from different widgets. Thus that would mean different versions could get loaded depending on which widget loads first since they all load in parallel. This problem only seems to happen in the Grbl workspace.
Hey guys - and thanks for the feedback. @raykholo - I tried refreshing the workspace, no change. I also tried this in Chrome on a Win10 machine (I normally use Chrome on Mac). @jlauer - thank you for the info. @Ritchie_Wilson - I normally use Chrome. I tried updating to the latest FF (v48), and force-enabled WebGL and Layers Acceleration (to get ChiliPeppr shownin the 3D rendring). I was able to successfully import the BRD file, but same/similar error in the console (repeated around 150 times):
TypeError: Argument 2 is not valid for any of the 2-argument overloads of WebGLRenderingContext.uniform3fv.
setValue3fv()
geturl:31707
ChiliPeppr tries to point to the latest build of Three.js. My guess here is that a recent update they did to the core library moved a method call, but only one that’s made from the Eagle BRD widget.
Poo. I use chrome on all my systems and platforms but found three.js was just too unreliable within its confines.
hopefully yours is something specific John can trace out
I found something weird in the 3dviewer widget related to ThreeFontUtils on the grbl-new workspace. Nothing changed in the widget code and apparently probing stopped updating 3d-view of the probed board with lots of FontUtils related errors in the debug console. It looks like grbl workspace need kind of ‘regular maintenance’ in order to adapt necessary code modifications.
The answer on this one is that all ChiliPeppr widgets used to refer to the latest Three.js library at http://threejs.org/build/three.js because there were so many good new changes getting put in there to increase the speed of rendering, it made sense to point to that and always get new updates. What has happened though is they broke the consistency in later versions. All of that has been fixed in the TinyG workspace, but the Grbl workspace has less use thus it’s not all updated. One of the Grbl widgets is referring to the http://threejs.org/build/three.js library still and should instead refer to the actual r76 https://cdnjs.cloudflare.com/ajax/libs/three.js/r76/three.js
Although ChiliPeppr’s dependency system is super awesome and uses require.js, the one downside to the widget approach is that if multiple widgets need a library, they define a url to it. If those url’s get updated in one widget, the other widget may load first randomly, and you’ll get the old library randomly. The key to solving it is to make sure all widgets refer to the same url. The widgets in the Grbl workspace that refer to Three.js include the 3d viewer, which is updated correctly, the auto-level which is Grbl only, and Eagle which is updated. So the error probably occurs because of auto-level referring to the wrong version of Three.js.