Add your plugin to the ToolBox
Closed this issue · 9 comments
Hi,
If you want us to add your plugin to the Cura ToolBox (we would like to :) ):
https://github.com/Ultimaker/Cura/wiki/Plugin-Directory#checklist
Hi Mark
I'd love to get this plugin into Cura - I might need a bit of help from you guys, as it seems that the 3.3 update changed the way quality definitions work, and I can't seem to get that working anymore. Additionally something else has changed in the 3.4 update so that the plugin no longer works (Cura crashes with the plugin) and I haven't yet had a chance to dig into what's causing the issue - any insight that you or the Cura team has would be appreciated
You can find more info on how to create a 3.4 compatible package here: https://github.com/Ultimaker/Cura/wiki/Creating-Packages
- You need to create a new .curapackage the structure (e.g. including a package.json file).
- function Preferences.getInstance at 0x105703400> is deprecated (since 3.3): Please use the getPreferences function in Application
Hi Mark
Thanks for the info. I appreciate your willingness to work with me 😀
I've reached down the crash to something related to the quality profiles. If I remove the line
has_machine_quality": true,
From the printer definition json file then the plug-in no longer crashes cura. Is there any documentation on the quality definitions?
You are welcome, we really like that people are creating plugins that help other users with their 3D printing challenges! We are currently working on some documentation to explain this better, I'll notify you when that is done.
Awesome - thanks again!
For completeness I'll include the crash report here of what happens when I do include the has_machine_quality": true
, line in my printer json (edit: replacing Preferences.getInstance with Application.getpreferences() doesn't solve the issue. I'm pretty sure there's something that I'm missing in the quality profiles, or something that's interconnected with them.)
The quality profiles that I'm using are here: https://github.com/timmehtimmeh/Cura-Dremel-3D20-Plugin/tree/master/resources/quality/dremel_3d20
Below are two logfiles that might help:
stderr.log
cura.log
And below are the contents of Cura's crash reporting tool:
Error Traceback:
Traceback (most recent call last):
File "X:\3.4\build\inst\lib\python3.5\site-packages\cura\CuraApplication.py", line 898, in getQualityProfilesDropDownMenuModel
File "X:\3.4\build\inst\lib\python3.5\site-packages\cura\Machines\Models\QualityProfilesDropDownMenuModel.py", line 47, in __init__
File "X:\3.4\build\inst\lib\python3.5\site-packages\cura\Machines\Models\QualityProfilesDropDownMenuModel.py", line 70, in _update
File "X:\3.4\build\inst\lib\python3.5\site-packages\cura\Machines\Models\QualityProfilesDropDownMenuModel.py", line 97, in _fetchLayerHeight
AttributeError: 'NoneType' object has no attribute 'getContainer'
Logs:
Thread 0x00000500 (most recent call first):
File "X:\3.4\build\inst\lib\python3.5\site-packages\UM\Backend\Backend.py", line 159 in _storeStderrToLogThread
File "threading.py", line 862 in run
File "threading.py", line 914 in _bootstrap_inner
File "threading.py", line 882 in _bootstrap
Thread 0x00003cf4 (most recent call first):
File "X:\3.4\build\inst\lib\python3.5\site-packages\UM\Backend\Backend.py", line 151 in _storeOutputToLogThread
File "threading.py", line 862 in run
File "threading.py", line 914 in _bootstrap_inner
File "threading.py", line 882 in _bootstrap
Thread 0x00001970 (most recent call first):
File "C:\Program Files\Ultimaker Cura 3.4\plugins\USBPrinting\USBPrinterOutputDeviceManager.py", line 82 in _updateThread
File "threading.py", line 862 in run
File "threading.py", line 914 in _bootstrap_inner
File "threading.py", line 882 in _bootstrap
Thread 0x00003fac (most recent call first):
File "threading.py", line 293 in wait
File "threading.py", line 424 in acquire
File "X:\3.4\build\inst\lib\python3.5\site-packages\UM\JobQueue.py", line 87 in _nextJob
File "X:\3.4\build\inst\lib\python3.5\site-packages\UM\JobQueue.py", line 117 in run
File "threading.py", line 914 in _bootstrap_inner
File "threading.py", line 882 in _bootstrap
Thread 0x0000468c (most recent call first):
File "threading.py", line 293 in wait
File "threading.py", line 424 in acquire
File "X:\3.4\build\inst\lib\python3.5\site-packages\UM\JobQueue.py", line 87 in _nextJob
File "X:\3.4\build\inst\lib\python3.5\site-packages\UM\JobQueue.py", line 117 in run
File "threading.py", line 914 in _bootstrap_inner
File "threading.py", line 882 in _bootstrap
Thread 0x00002184 (most recent call first):
File "threading.py", line 293 in wait
File "threading.py", line 424 in acquire
File "X:\3.4\build\inst\lib\python3.5\site-packages\UM\JobQueue.py", line 87 in _nextJob
File "X:\3.4\build\inst\lib\python3.5\site-packages\UM\JobQueue.py", line 117 in run
File "threading.py", line 914 in _bootstrap_inner
File "threading.py", line 882 in _bootstrap
Thread 0x00001924 (most recent call first):
File "threading.py", line 293 in wait
File "threading.py", line 424 in acquire
File "X:\3.4\build\inst\lib\python3.5\site-packages\UM\JobQueue.py", line 87 in _nextJob
File "X:\3.4\build\inst\lib\python3.5\site-packages\UM\JobQueue.py", line 117 in run
File "threading.py", line 914 in _bootstrap_inner
File "threading.py", line 882 in _bootstrap
Thread 0x00002658 (most recent call first):
File "threading.py", line 297 in wait
File "zeroconf.py", line 1569 in wait
File "zeroconf.py", line 1153 in run
File "threading.py", line 914 in _bootstrap_inner
File "threading.py", line 882 in _bootstrap
Thread 0x00000e9c (most recent call first):
File "threading.py", line 297 in wait
File "zeroconf.py", line 1569 in wait
File "zeroconf.py", line 1017 in run
File "threading.py", line 914 in _bootstrap_inner
File "threading.py", line 882 in _bootstrap
Thread 0x00005f88 (most recent call first):
File "zeroconf.py", line 946 in run
File "threading.py", line 914 in _bootstrap_inner
File "threading.py", line 882 in _bootstrap
Thread 0x00001478 (most recent call first):
File "threading.py", line 297 in wait
File "threading.py", line 549 in wait
File "C:\Program Files\Ultimaker Cura 3.4\plugins\UM3NetworkPrinting\UM3OutputDevicePlugin.py", line 287 in _handleOnServiceChangedRequests
File "threading.py", line 862 in run
File "threading.py", line 914 in _bootstrap_inner
File "threading.py", line 882 in _bootstrap
Thread 0x0000175c (most recent call first):
File "C:\Program Files\Ultimaker Cura 3.4\plugins\RemovableDriveOutputDevice\RemovableDrivePlugin.py", line 61 in _updateThread
File "threading.py", line 862 in run
File "threading.py", line 914 in _bootstrap_inner
File "threading.py", line 882 in _bootstrap
Current thread 0x0000354c (most recent call first):
File "X:\3.4\build\inst\lib\python3.5\site-packages\cura\CrashHandler.py", line 310 in _logInfoWidget
File "X:\3.4\build\inst\lib\python3.5\site-packages\cura\CrashHandler.py", line 160 in _createDialog
File "X:\3.4\build\inst\lib\python3.5\site-packages\cura\CrashHandler.py", line 81 in __init__
File "X:\3.4\build\inst\bin\cura_app.py", line 105 in exceptHook
File "X:\3.4\build\inst\lib\python3.5\site-packages\UM\Qt\QtApplication.py", line 270 in initializeEngine
File "X:\3.4\build\inst\lib\python3.5\site-packages\cura\CuraApplication.py", line 795 in runWithGUI
File "X:\3.4\build\inst\lib\python3.5\site-packages\cura\CuraApplication.py", line 719 in run
File "X:\3.4\build\inst\bin\cura_app.py", line 145 in <module>
File "Console.py", line 24 in <module>
File "<frozen importlib._bootstrap>", line 634 in _load_backward_compatible
File "<frozen importlib._bootstrap>", line 664 in _load_unlocked
File "<frozen importlib._bootstrap>", line 958 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 969 in _find_and_load
File "__startup__.py", line 12 in <module>
File "<frozen importlib._bootstrap>", line 634 in _load_backward_compatible
File "<frozen importlib._bootstrap>", line 664 in _load_unlocked
File "<frozen importlib._bootstrap>", line 958 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 969 in _find_and_load
Hi @timmehtimmeh , we have created wiki page explaining those machine/extruder definition files. You can find the link here:
https://github.com/Ultimaker/Cura/wiki/Definition-Files-Explained
@LipuFei - thank you so much! That page is super helpful =) I've been scrounging through code and other example files in your repo trying to understand the various options. I sincerely appreciate you taking the time to document one of the more complex examples =)
Cheers!
Hi @Appesteijn - Thanks to you and the rest of the engineering team at Ultimaker I've finally gotten the plugin in good enough shape for me to be happy to press the "send" button on the email to plugins@ultimaker.com for inclusion in your plugin repository. Many thanks to you, @LipuFei and @Ghostkeeper for the help you've given me!