Trying to save the file in BigTree3D format results in fatal error and crashes Cura. Doesn't matter which Plugins directory I use, ProgramFiles or USER appdata, same crash. And yes I'm using the newest plugin build from #20.
EDIT: I've done some more testing and it seems to work most of the time if I save the file normally to disk/flashdrive before then saving it a second time as BigTree3D Format but with a different file name (overwriting causes same crash). Also I don't see the option to save to Removable Drive as BigTree3D Format, nor am I able to open the settings under Extension>Icon Output Extension>Set Icon Configuration, clicking it does nothing, no pop-up window. I'd much prefer if the Base64 style image encoding worked as mentioned in the TouchScreenFirmware repo, as it's becoming the standard method and it's easier to use/share across other printers.

Here's the full error traceback:
Traceback (most recent call last):
File "cura\CuraApplication.py", line 1225, in event
return super().event(event)
File "UM\Qt\QtApplication.py", line 506, in event
event._function_event.call()
File "UM\Event.py", line 218, in call
self._function(*self._args, **self._kwargs)
File "UM\Signal.py", line 328, in __performEmitIndirect
self.__performEmit(*args, **kwargs)
File "UM\Signal.py", line 357, in __performEmit
func(dest, *args, **kwargs)
File "C:\Program Files\UltiMaker Cura 5.8.1\share\cura\plugins\BigTree3DPlugin\Bigtree3DStore.py", line 354, in _onWriteJobFinished
self.do_snap(job.getFileName())
File "cura\Utils\Threading.py", line 31, in _call_on_qt_thread_wrapper
return func(*args, **kwargs)
File "C:\Program Files\UltiMaker Cura 5.8.1\share\cura\plugins\BigTree3DPlugin\Bigtree3DStore.py", line 371, in do_snap
outdata = outdata + self.overseek()
File "cura\Utils\Threading.py", line 31, in _call_on_qt_thread_wrapper
return func(*args, **kwargs)
File "C:\Program Files\UltiMaker Cura 5.8.1\share\cura\plugins\BigTree3DPlugin\Bigtree3DStore.py", line 310, in overseek
outdatar = outdatar + self.overread(QSize(int(tems[0]),int(tems[1])))
File "cura\Utils\Threading.py", line 31, in _call_on_qt_thread_wrapper
return func(*args, **kwargs)
File "C:\Program Files\UltiMaker Cura 5.8.1\share\cura\plugins\BigTree3DPlugin\Bigtree3DStore.py", line 118, in overread
img = Snapshot.snapshot(width = msize.width(), height = msize.height()).scaled(msize.width(),msize.height(),Qt.AspectRatioMode.IgnoreAspectRatio, Qt.TransformationMode.SmoothTransformation)
AttributeError: 'NoneType' object has no attribute 'scaled'
And logs:
Thread 0x00007be0 (most recent call first):
File "C:\Program Files\UltiMaker Cura 5.8.1\share\cura\plugins\USBPrinting\USBPrinterOutputDeviceManager.py", line 90 in _updateThread
File "threading.py", line 946 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00002e18 (most recent call first):
File "threading.py", line 324 in wait
File "zeroconf_init_.py", line 2534 in wait
File "zeroconf_init_.py", line 1715 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00002314 (most recent call first):
File "threading.py", line 324 in wait
File "threading.py", line 600 in wait
File "C:\Program Files\UltiMaker Cura 5.8.1\share\cura\plugins\UM3NetworkPrinting\src\Network\ZeroConfClient.py", line 81 in _handleOnServiceChangedRequests
File "threading.py", line 946 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x000078b4 (most recent call first):
File "zeroconf_init_.py", line 1369 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x000056b0 (most recent call first):
File "C:\Program Files\UltiMaker Cura 5.8.1\share\cura\plugins\RemovableDriveOutputDevice\RemovableDrivePlugin.py", line 61 in _updateThread
File "threading.py", line 946 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x0000615c (most recent call first):
File "C:\Program Files\UltiMaker Cura 5.8.1\share\cura\plugins\BigTreeRemovableDriveOutputDevice\RemovableDrivePlugin.py", line 61 in _updateThread
File "threading.py", line 946 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x000063c8 (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00002cdc (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00006ee0 (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x000019c4 (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00005f80 (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00002bfc (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00003640 (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00007614 (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00007ee0 (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00000464 (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x0000720c (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00006d30 (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Current thread 0x00003004 (most recent call first):
File "cura\CrashHandler.py", line 397 in _logInfoWidget
File "cura\CrashHandler.py", line 182 in _createDialog
File "cura\CrashHandler.py", line 86 in init
File "cura_app.py", line 169 in exceptHook
File "UM\Qt\QtApplication.py", line 420 in exec
File "cura\CuraApplication.py", line 953 in run
File "cura_app.py", line 243 in
Trying to save the file in BigTree3D format results in fatal error and crashes Cura. Doesn't matter which Plugins directory I use, ProgramFiles or USER appdata, same crash. And yes I'm using the newest plugin build from #20.
EDIT: I've done some more testing and it seems to work most of the time if I save the file normally to disk/flashdrive before then saving it a second time as BigTree3D Format but with a different file name (overwriting causes same crash). Also I don't see the option to save to Removable Drive as BigTree3D Format, nor am I able to open the settings under Extension>Icon Output Extension>Set Icon Configuration, clicking it does nothing, no pop-up window. I'd much prefer if the Base64 style image encoding worked as mentioned in the TouchScreenFirmware repo, as it's becoming the standard method and it's easier to use/share across other printers.
Here's the full error traceback:
Traceback (most recent call last):
File "cura\CuraApplication.py", line 1225, in event
return super().event(event)
File "UM\Qt\QtApplication.py", line 506, in event
event._function_event.call()
File "UM\Event.py", line 218, in call
self._function(*self._args, **self._kwargs)
File "UM\Signal.py", line 328, in __performEmitIndirect
self.__performEmit(*args, **kwargs)
File "UM\Signal.py", line 357, in __performEmit
func(dest, *args, **kwargs)
File "C:\Program Files\UltiMaker Cura 5.8.1\share\cura\plugins\BigTree3DPlugin\Bigtree3DStore.py", line 354, in _onWriteJobFinished
self.do_snap(job.getFileName())
File "cura\Utils\Threading.py", line 31, in _call_on_qt_thread_wrapper
return func(*args, **kwargs)
File "C:\Program Files\UltiMaker Cura 5.8.1\share\cura\plugins\BigTree3DPlugin\Bigtree3DStore.py", line 371, in do_snap
outdata = outdata + self.overseek()
File "cura\Utils\Threading.py", line 31, in _call_on_qt_thread_wrapper
return func(*args, **kwargs)
File "C:\Program Files\UltiMaker Cura 5.8.1\share\cura\plugins\BigTree3DPlugin\Bigtree3DStore.py", line 310, in overseek
outdatar = outdatar + self.overread(QSize(int(tems[0]),int(tems[1])))
File "cura\Utils\Threading.py", line 31, in _call_on_qt_thread_wrapper
return func(*args, **kwargs)
File "C:\Program Files\UltiMaker Cura 5.8.1\share\cura\plugins\BigTree3DPlugin\Bigtree3DStore.py", line 118, in overread
img = Snapshot.snapshot(width = msize.width(), height = msize.height()).scaled(msize.width(),msize.height(),Qt.AspectRatioMode.IgnoreAspectRatio, Qt.TransformationMode.SmoothTransformation)
AttributeError: 'NoneType' object has no attribute 'scaled'
And logs:
Thread 0x00007be0 (most recent call first):
File "C:\Program Files\UltiMaker Cura 5.8.1\share\cura\plugins\USBPrinting\USBPrinterOutputDeviceManager.py", line 90 in _updateThread
File "threading.py", line 946 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00002e18 (most recent call first):
File "threading.py", line 324 in wait
File "zeroconf_init_.py", line 2534 in wait
File "zeroconf_init_.py", line 1715 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00002314 (most recent call first):
File "threading.py", line 324 in wait
File "threading.py", line 600 in wait
File "C:\Program Files\UltiMaker Cura 5.8.1\share\cura\plugins\UM3NetworkPrinting\src\Network\ZeroConfClient.py", line 81 in _handleOnServiceChangedRequests
File "threading.py", line 946 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x000078b4 (most recent call first):
File "zeroconf_init_.py", line 1369 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x000056b0 (most recent call first):
File "C:\Program Files\UltiMaker Cura 5.8.1\share\cura\plugins\RemovableDriveOutputDevice\RemovableDrivePlugin.py", line 61 in _updateThread
File "threading.py", line 946 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x0000615c (most recent call first):
File "C:\Program Files\UltiMaker Cura 5.8.1\share\cura\plugins\BigTreeRemovableDriveOutputDevice\RemovableDrivePlugin.py", line 61 in _updateThread
File "threading.py", line 946 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x000063c8 (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00002cdc (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00006ee0 (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x000019c4 (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00005f80 (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00002bfc (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00003640 (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00007614 (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00007ee0 (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00000464 (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x0000720c (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Thread 0x00006d30 (most recent call first):
File "threading.py", line 320 in wait
File "threading.py", line 460 in acquire
File "UM\JobQueue.py", line 98 in _nextJob
File "UM\JobQueue.py", line 124 in run
File "threading.py", line 1009 in _bootstrap_inner
File "threading.py", line 966 in _bootstrap
Current thread 0x00003004 (most recent call first):
File "cura\CrashHandler.py", line 397 in _logInfoWidget
File "cura\CrashHandler.py", line 182 in _createDialog
File "cura\CrashHandler.py", line 86 in init
File "cura_app.py", line 169 in exceptHook
File "UM\Qt\QtApplication.py", line 420 in exec
File "cura\CuraApplication.py", line 953 in run
File "cura_app.py", line 243 in